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:
|
def _load_fonts(self) -> None:
|
||||||
font_path, font_size = theme.get_font_loading_params()
|
font_path, font_size = theme.get_font_loading_params()
|
||||||
if font_path and Path(font_path).exists():
|
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:
|
def _post_init(self) -> None:
|
||||||
theme.apply_current()
|
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
|
global _current_font_path, _current_font_size, _current_scale, _current_palette
|
||||||
t = config.get("theme", {})
|
t = config.get("theme", {})
|
||||||
_current_palette = t.get("palette", "ImGui Dark")
|
_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_font_size = float(t.get("font_size", 16.0))
|
||||||
_current_scale = float(t.get("scale", 1.0))
|
_current_scale = float(t.get("scale", 1.0))
|
||||||
# Don't apply here — imgui context may not exist yet.
|
# Don't apply here — imgui context may not exist yet.
|
||||||
|
|||||||
Reference in New Issue
Block a user