feat(ui): Integrate Inter and Maple Mono typography

This commit is contained in:
2026-03-08 21:47:23 -04:00
parent 1ba321668b
commit b1d612e19f
6 changed files with 31 additions and 2 deletions

BIN
assets/fonts/Inter-Bold.ttf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,21 @@
import urllib.request
import os
import ssl
import zipfile
import io
ssl._create_default_https_context = ssl._create_unverified_context
inter_url = "https://github.com/rsms/inter/releases/download/v4.0/Inter-4.0.zip"
print(f"Downloading Inter from {inter_url}")
try:
req = urllib.request.Request(inter_url, headers={'User-Agent': 'Mozilla/5.0'})
with urllib.request.urlopen(req) as response:
with zipfile.ZipFile(io.BytesIO(response.read())) as z:
for info in z.infolist():
if info.filename.endswith("Inter-Regular.ttf") or info.filename.endswith("Inter-Bold.ttf"):
info.filename = os.path.basename(info.filename)
z.extract(info, "assets/fonts/")
print(f"Extracted {info.filename}")
except Exception as e:
print(f"Failed to get Inter: {e}")

View File

@@ -2754,7 +2754,15 @@ class App:
def _load_fonts(self) -> None:
font_path, font_size = theme.get_font_loading_params()
if font_path and Path(font_path).exists():
hello_imgui.load_font(font_path, font_size)
self.main_font = hello_imgui.load_font_ttf_with_font_awesome_icons(font_path, font_size)
else:
self.main_font = None
mono_path = Path("assets/fonts/MapleMono-Regular.ttf")
if mono_path.exists():
self.mono_font = hello_imgui.load_font(str(mono_path), font_size)
else:
self.mono_font = None
def _post_init(self) -> None:
theme.apply_current()

View File

@@ -241,7 +241,7 @@ def load_from_config(config: dict) -> None:
global _current_font_path, _current_font_size, _current_scale, _current_palette
t = config.get("theme", {})
_current_palette = t.get("palette", "ImGui Dark")
_current_font_path = t.get("font_path", "")
_current_font_path = t.get("font_path", "assets/fonts/Inter-Regular.ttf")
_current_font_size = float(t.get("font_size", 16.0))
_current_scale = float(t.get("scale", 1.0))
# Don't apply here — imgui context may not exist yet.