feat(ui): Integrate Inter and Maple Mono typography
This commit is contained in:
BIN
assets/fonts/Inter-Bold.ttf
Normal file
BIN
assets/fonts/Inter-Bold.ttf
Normal file
Binary file not shown.
BIN
assets/fonts/Inter-Regular.ttf
Normal file
BIN
assets/fonts/Inter-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/fonts/MapleMono-Regular.ttf
Normal file
BIN
assets/fonts/MapleMono-Regular.ttf
Normal file
Binary file not shown.
21
scripts/tasks/download_fonts.py
Normal file
21
scripts/tasks/download_fonts.py
Normal 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}")
|
||||
10
src/gui_2.py
10
src/gui_2.py
@@ -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()
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user