KDS
Primitive

Typography

Famílias de fonte, escala de tamanho com line-height pareada, pesos, leading e tracking — todos primitivos do Tailwind v4.

Tipografia é onde a hierarquia visual começa. A KDS usa a escala nativa do Tailwind v4 — modular, perceptualmente espaçada, testada em produção — e adiciona pares de line-height para que você não precise pensar em altura de linha em 90% dos casos.

Como a escala funciona

Treze stops (xs9xl) cobrem desde microcópia (12px) até display extremo (128px). A escala não é geométrica pura — os saltos são maiores no topo (display) e menores na base (UI). Isso reflete a realidade: você raramente precisa de "um pouquinho maior que 96px", mas frequentemente precisa de "14px ou 16px, depende".

Cada --text-* vem com --text-*--line-height pareada, calculada para resultar em uma altura confortável para aquele tamanho. Se você usar text-base, ganha line-height de 1.5 automaticamente. Se usar text-4xl, ganha 1.111 (mais apertado, como heading quer).

Famílias

KDS herda o system stack do Tailwind v4 — sem fontes baixadas, performance máxima. Se quiser trocar para Inter, Geist ou qualquer outra, redefina --font-sans no arquivo de tema.

TokenClasseDescrição
--font-sansfont-sansSistema operacional do usuário — sem download, máxima performance. ui-sans-serif, system-ui, sans-serif e fallbacks de emoji.
--font-seriffont-serifPilha serif do sistema — Georgia, Cambria, Times. Para conteúdo editorial e displays com tom literário.
--font-monofont-monoPilha monoespaçada — SFMono, Menlo, Monaco, Consolas. Para código, tokens, valores numéricos alinhados.

Tamanhos

A coluna Amostra mostra o caractere "Aa" no tamanho real. A Line-height ao lado é o que vem pareado por default — você pode sobrepor com leading-* quando precisar.

AmostraTokenClasseTamanhoLine-heightUso
Aa--text-xstext-xs0.75rem / 12px1.333 (16px)Captions, labels secundários, microcópia
Aa--text-smtext-sm0.875rem / 14px1.429 (20px)Texto compacto em UI densa, tabelas
Aa--text-basetext-base1rem / 16px1.5 (24px)Body padrão. Default do sistema.
Aa--text-lgtext-lg1.125rem / 18px1.556 (28px)Body em conteúdo editorial, leitura longa
Aa--text-xltext-xl1.25rem / 20px1.4 (28px)Subtítulos, lead paragraphs
Aa--text-2xltext-2xl1.5rem / 24px1.333 (32px)H3 / títulos de cards
Aa--text-3xltext-3xl1.875rem / 30px1.2 (36px)H2 / títulos de seção
Aa--text-4xltext-4xl2.25rem / 36px1.111 (40px)H1 em apps; H2 em landing pages
Aa--text-5xltext-5xl3rem / 48px1Hero pequeno, números grandes em KPIs
Aa--text-6xltext-6xl3.75rem / 60px1Hero médio em landing pages
Aa--text-7xltext-7xl4.5rem / 72px1Hero grande, displays editoriais
Aa--text-8xltext-8xl6rem / 96px1Display gigante, manchete de portfolio
Aa--text-9xltext-9xl8rem / 128px1Display extremo. Use com parcimônia.

Pesos

Nove stops, do 100 (thin) ao 900 (black). System fonts geralmente entregam só 400, 500, 600, 700 — os outros stops dependem de uma fonte custom estar carregada.

AmostraTokenClasseValorUso
Texto--font-weight-thinfont-thin100Display somente — ilegível em corpo
Texto--font-weight-extralightfont-extralight200Display refinado em telas grandes
Texto--font-weight-lightfont-light300Editorial, textos longos com pegada elegante
Texto--font-weight-normalfont-normal400Body padrão
Texto--font-weight-mediumfont-medium500Botões, navs — peso intermediário
Texto--font-weight-semiboldfont-semibold600Headings de UI, labels enfáticos
Texto--font-weight-boldfont-bold700Headings principais, ênfase forte
Texto--font-weight-extraboldfont-extrabold800Display, branding
Texto--font-weight-blackfont-black900Display extremo. Pode sobrecarregar a página.

Leading

Quando o line-height pareado não serve (compose de heading multilinha, leitura editorial longa), use os tokens standalone:

TokenClasseValorUso
--leading-tightleading-tight1.25Headings grandes — fecha o espaço entre linhas
--leading-snugleading-snug1.375Subtítulos e UI compacta
--leading-normalleading-normal1.5Body padrão
--leading-relaxedleading-relaxed1.625Editorial, leitura longa, posts de blog
--leading-looseleading-loose2Citações, poesia, espaçamento dramático

Tracking

Letter-spacing usado conscientemente é um sinal de cuidado tipográfico. Use negative tracking para apertar displays grandes; positive tracking para abrir caps e eyebrows.

TokenClasseValorUso
--tracking-tightertracking-tighter-0.05emDisplay gigante — corrige spacing exagerado
--tracking-tighttracking-tight-0.025emHeadings grandes
--tracking-normaltracking-normal0emBody padrão
--tracking-widetracking-wide0.025emCaps, eyebrows, microcópia
--tracking-widertracking-wider0.05emAll-caps em UI compacta
--tracking-widesttracking-widest0.1emEyebrows dramáticos, branding

Boas práticas

  • Pareie tamanho com weight. Display usa peso menor (light ou normal) — o tamanho já chama atenção. Body usa peso intermediário (normal ou medium) — peso maior cansa em massa.
  • Use o line-height pareado sempre que possível. Ele foi calculado para o tamanho específico.
  • Tracking negativo acima de --text-2xl corrige o spacing exagerado que fontes geralmente têm em display.
  • Cuidado com text-9xl. Bonito numa página de portfólio, brutal em qualquer interface de produto. Reserve para hero pages e displays de marca.
  • Não invente weights. Se a fonte não tem font-extralight, o navegador mostra font-light — silenciosamente. Audite o weight sintético que aparece com font-synthesis.

On this page