Skip to content

字体排版

默认字体

JetBrains Mono 是整个应用的默认字体。等宽字体是财务数据的首选,因为数字宽度一致,使数字列易于扫视。

css
--font-family-mono: "JetBrains Mono", ui-monospace, monospace;

基础设置

属性
基础字体大小14px (--base-font-size)
行高1.5
渲染反锯齿 (-webkit-font-smoothing: antialiased)

字体选项

提供 9 种字体。通过 设置 > 字体排版 或标题中的 SettingsPopover 切换。ThemeProvider 在挂载时从 Google Fonts 加载字体。

字体类别说明
JetBrains Mono等宽默认。清晰的数字,非常适合财务数据。
Fira Code等宽编程连字。
Source Code Pro等宽Adobe 出品。干净中性。
IBM Plex Mono等宽经典技术美学。
Roboto Mono等宽Google 出品。均匀的字符宽度。
Ubuntu Mono等宽独特、略带圆润。
Cascadia Code等宽微软出品。支持连字。
Inter无衬线比例字体。更宽敞,适合密集文本。
Geist无衬线Vercel 出品。现代几何比例字体。

字体大小

三种大小预设,由 --base-font-size 控制。通过设置或 uiPreferences.fontSize 存储值设置。

预设大小CSS 变量值
12px--base-font-size: 12px
中(默认)14px--base-font-size: 14px
16px--base-font-size: 16px

数字格式化

财务数字使用表格数字以实现右对齐列。应用 .tabular-nums 工具类或直接使用 CSS 属性:

css
.tabular-nums {
  font-variant-numeric: tabular-nums;
}

所有货币值右对齐,并通过 src/lib/formatting.tsformatNZD() 格式化。这确保了一致的 NZD 货币格式(如 $1,234.56)。

文本层次

设计系统使用大小和透明度来建立层次,而非字重:

角色大小颜色变量示例
面板标题11px--color-text-muted大写、加宽字间距、中等字重
正文12-13px--color-text-primary默认内容
次要文本11-12px--color-text-secondary辅助细节
柔和文本10-11px--color-text-muted标签、时间戳

字体加载

ThemeProvider 在挂载时通过单个 <link> 元素从 Google Fonts 加载所有字体系列。加载的字重:400、500、600、700(Ubuntu Mono:仅 400、700)。

typescript
// ThemeProvider 在挂载时加载这些字体
const fonts = [
  'JetBrains+Mono:wght@400;500;600;700',
  'Fira+Code:wght@400;500;600;700',
  'Source+Code+Pro:wght@400;500;600;700',
  'IBM+Plex+Mono:wght@400;500;600;700',
  'Roboto+Mono:wght@400;500;600;700',
  'Ubuntu+Mono:wght@400;700',
  'Inter:wght@400;500;600;700',
  'Plus+Jakarta+Sans:wght@400;500;600;700',
];

字体切换即时生效。当主题存储中的字体选择改变时,ThemeProviderdocument.documentElement 上设置 --font-family-mono