feat: add per-project font override settings

Add font selectors that allow per-project font customization for both
sans and mono fonts, independent of theme selection. Uses system fonts.

- Add fontFamilySans and fontFamilyMono to ProjectSettings and Project types
- Create ui-font-options.ts config with system font options
- Add store actions: setProjectFontSans, setProjectFontMono, getEffectiveFontSans, getEffectiveFontMono
- Apply font CSS variables in root component
- Add font selector UI in project-theme-section (Project Settings → Theme)
This commit is contained in:
Stefan de Vogelaere
2026-01-16 23:36:56 +01:00
parent aa35eb3d3a
commit 1322722db2
8 changed files with 263 additions and 1027 deletions

View File

@@ -718,6 +718,12 @@ export interface ProjectSettings {
/** Project theme (undefined = use global setting) */
theme?: ThemeMode;
// Font Configuration (project-specific override)
/** UI/Sans font family override (undefined = use default Geist Sans) */
fontFamilySans?: string;
/** Code/Mono font family override (undefined = use default Geist Mono) */
fontFamilyMono?: string;
// Worktree Management
/** Project-specific worktree preference override */
useWorktrees?: boolean;