Escala de texto pronta, do rótulo minúsculo ao título — sem tocar em font-size na mão.
Classes utilitárias pra tamanho, peso, família, cor e tratamento de texto, numa escala única e consistente em todo o framework. A fonte é a Geist (sans) + Geist Mono — as únicas duas do SWCore 2, self-hosted (sem Google Fonts em produção) e VARIÁVEIS: um arquivo só cobre o peso inteiro, de 100 (fininha) a 900 (bem larga/preta).
Escala de tamanho vai de t-pp (12px) a t-xxg (48px). As classes de título t-h1…t-h6 aplicam o MESMO visual de um heading nativo em qualquer tag — útil quando a hierarquia semântica (h1/h2/h3) precisa ser diferente da hierarquia visual. Os títulos h1–h6 nativos (via reset) já usam essa escala sozinhos, fluida com clamp() do mobile ao desktop — peso 400 em todos; o "forte" vem de tamanho + tracking negativo, não de font-weight.
Ágil, o cão marrom pula sobre a raposa. 0123456789
Ágil, o cão marrom pula sobre a raposa. 0123456789
<!-- Geist (sans) — var(--sw-f-san) / .sw-f1–.sw-f3 — texto e títulos -->
<p style="font-family:var(--sw-f-san)">Ágil, o cão marrom pula sobre a raposa.</p>
<!-- Geist Mono — var(--sw-f-mon) / .sw-f4–.sw-f6 — código, números, rótulos -->
<p style="font-family:var(--sw-f-mon)">Ágil, o cão marrom pula sobre a raposa.</p>
<!-- ambas: fonte VARIÁVEL (100–900 num arquivo só), self-hosted, zero request de terceiro -->
Aa fininha 100 — o rápido cão marrom
Aa leve 300 — o rápido cão marrom
Aa regular 400 — o rápido cão marrom
Aa semi bold 600 — o rápido cão marrom
Aa bold 800 — o rápido cão marrom
Aa bem larga 900 — o rápido cão marrom
<p class="fw1">fininha — peso 100</p>
<p class="fw3">leve — peso 300</p>
<p class="fw4">regular — peso 400 (padrão do corpo de texto)</p>
<p class="fw6">semi bold — peso 600</p>
<p class="fw8">bold — peso 800</p>
<p class="fw9">bem larga (black) — peso 900</p>
<!-- fw1…fw9 = 100 a 900, de 100 em 100 — a fonte é variável, então
QUALQUER peso no intervalo funciona, não só os 9 marcados -->
legenda (12px)
texto de UI (14px)
corpo padrão (17px)
texto de leitura (19px)
destaque (22px)
subtítulo (32px)
<p class="t-pp">legenda — 12px</p>
<p class="t-p">texto de UI — 14px</p>
<p class="t-m">corpo padrão — 17px (= var(--sw-f-base))</p>
<p class="t-g">texto de leitura — 19px</p>
<p class="t-gg">destaque — 22px</p>
<p class="t-xg">subtítulo — 32px</p>
<p class="t-xxg">título grande — 48px</p>
<!-- cada um usa clamp() — cresce do mobile ao desktop sozinho -->
<span class="t-h1">clamp(32px → 72px)</span>
<span class="t-h2">clamp(28px → 48px)</span>
<span class="t-h3">clamp(22px → 34px)</span>
<span class="t-h4">clamp(19px → 24px)</span>
<span class="t-h5">clamp(16px → 19px)</span>
<span class="t-h6">clamp(14px → 16px)</span>
<!-- os <h1>–<h6> nativos já vêm com essa escala, sem classe nenhuma -->
<!-- peso: 100 a 900 -->
<b class="fw4">Regular</b>
<b class="fw6">Semi Bold</b>
<b class="fw7">Bold</b>
<!-- cor semântica do texto -->
<span class="t-pri">primária</span>
<span class="t-suc">sucesso</span>
<span class="t-err">erro</span>
<span class="t-mut">apagada (secundário)</span>
<!-- transformação, alinhamento, quebra -->
<span class="t-upp ls-w">MAIÚSCULAS ESPAÇADAS</span>
<span class="t-ct">centralizado</span>
<span class="truncate">corta numa linha…</span>
<h2 class="twr-b">título que quebra de forma equilibrada</h2>
Nenhum.
t-pp · t-p · t-m · t-g · t-gg · t-xg · t-xxgt-h1…t-h6fw1…fw9sw-f1…sw-f6t-pri · t-sec · t-suc · t-err · t-ale · t-inf · t-acc · t-mut · t-invt-upp · t-low · t-cap · t-ital · t-ctlh-1 · lh-sn · lh-bs · lh-lols-tt · ls-t · ls-n · ls-w · ls-wwtwr-b · twr-pwordb-ba · wordb-bw · truncateNenhum.
Nenhum.
Nenhuma.
Nenhuma.