Problem
The Kimi Web settings dialog exposes color scheme, accent, and font size preferences, but there is no way to change the font family. The UI and reading text are pinned to the Inter-first stack (--font-ui), so users who prefer the native platform font or a serif face for long reading sessions have no recourse. (There was a code-font switcher in early iterations that was removed during the dark-mode refactor in June; nothing covers the UI/reading font today.)
Proposal
Add a Font preference to Appearance settings (desktop SettingsDialog + mobile MobileSettingsSheet) with a small curated set:
- Default — the current Inter-first stack (unchanged)
- System — the platform's native UI stack (SF Pro / Segoe / Roboto + CJK fallbacks), no webfont download
- Serif — a reading-oriented serif stack (Charter/Georgia + Songti/Noto Serif CJK fallbacks), also local-only
Implementation follows the existing appearance-preference pattern: persist the choice in localStorage, mirror it onto <html data-ui-font-family>, and remap the --font-ui token in CSS. Since --font-display and --sans reference var(--font-ui), every component picks the new face up with zero component-level changes; --font-mono (code) is unaffected.
Happy to send a PR for this.
Problem
The Kimi Web settings dialog exposes color scheme, accent, and font size preferences, but there is no way to change the font family. The UI and reading text are pinned to the Inter-first stack (
--font-ui), so users who prefer the native platform font or a serif face for long reading sessions have no recourse. (There was a code-font switcher in early iterations that was removed during the dark-mode refactor in June; nothing covers the UI/reading font today.)Proposal
Add a Font preference to Appearance settings (desktop
SettingsDialog+ mobileMobileSettingsSheet) with a small curated set:Implementation follows the existing appearance-preference pattern: persist the choice in localStorage, mirror it onto
<html data-ui-font-family>, and remap the--font-uitoken in CSS. Since--font-displayand--sansreferencevar(--font-ui), every component picks the new face up with zero component-level changes;--font-mono(code) is unaffected.Happy to send a PR for this.