sans
Corpo de UI, controles, navegação — a fonte de trabalho. Default em tudo.
O brilho do sol e a paz da neve. 0123456789.
Closed vocabulary of typeface roles, canonical CSS variables, hosting rules, weights, scale, fallback chain, and tests for typography in every Koder surface (web/landing, Flutter mobile/desktop, CLI/TUI). Self-hosted-first: webfonts ship as `.woff2` from the consumer's own origin; Google Fonts / jsDelivr / unpkg are forbidden.
Outras specs Koder referenciam roles, nunca nomes específicos de fonte. Wave 1 reusa Inter + JetBrains Mono sob OFL; Wave 2 introduz Koder Display; Wave 3 entrega Koder Sans + Koder Mono proprietários.
Corpo de UI, controles, navegação — a fonte de trabalho. Default em tudo.
O brilho do sol e a paz da neve. 0123456789.
Código, saída de terminal, tabelas numéricas, IDs e hashes.
fn run() -> Result<(), Error> { let n = 42; Ok(()) }
Headlines, hero, posters, OG images. Wave 1 cai pra sans em pesos pesados.
Construa a próxima geração.
Modo leitura long-form (opcional, opt-in por surface).
Leitura longa se beneficia de formas calmas e line-height generoso.
Pesos obrigatórios por role. Fontes variáveis (Inter VF, JetBrains Mono VF) são preferidas — um único .woff2 cobre toda a família.
Use estes valores em px pra font-size; mapeie para CSS custom properties quando a surface tiver mais que ~5 tamanhos. Line-heights seguem os buckets body/UI/headline/leitura.
line-height: 1.4line-height: 1.4line-height: 1.5line-height: 1.5line-height: 1.2line-height: 1.2line-height: 1.2line-height: 1.2Declare em :root uma vez. CSS de componente resolve font-family pela variável — o swap Wave-2/3 vira mudança de uma linha.
:root {
--kds-font-sans: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
--kds-font-mono: 'JetBrains Mono', ui-monospace, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace;
--kds-font-display: var(--kds-font-sans);
--kds-font-serif: ui-serif, Georgia, "Times New Roman", serif;
}
body, button, input, select, textarea { font-family: var(--kds-font-sans); }
code, kbd, pre, samp, .mono { font-family: var(--kds-font-mono); }
h1, h2, h3, .display { font-family: var(--kds-font-display); }Toda surface — landing, mobile, desktop, TV, web — deve passar nesses checks antes do release. Veja specs/fonts/typography.kmd § Tests.
| ID | Teste |
|---|---|
T1 | grep por hosts proibidos (fonts.googleapis, fonts.gstatic, jsdelivr/unpkg de font CDN) retorna vazio. |
T2 | Todo font-family em CSS/Dart/templ resolve pra um role da tabela acima ou pra cadeia de fallback. |
T3 | Todo bloco @font-face inclui font-display: swap. |
T4 | Hero / páginas críticas emitem <link rel="preload" as="font" type="font/woff2" crossorigin> pra fonte body. |
T5 | Cada .woff2 entregue ≤ 50 KB por subset/peso (ou carrega comentário de exceção). |
T6 | Fonte variável usada quando o upstream provê (Inter VF / JetBrains Mono VF). |
T7 | Contraste AAA preservado em toda a cadeia de fallback (fontes do sistema passam tools/a11y-test/). |
Comece a digitar para buscar. Tecle / em qualquer lugar.