Skip to main content
Gremorie

Typography

Font families, a size scale with paired line-heights, weights, leading and tracking - all Tailwind v4 primitives.

Typography is where visual hierarchy begins. Gremorie uses the native Tailwind v4 scale, which is modular, perceptually spaced, and production tested, and adds line-height pairs so you do not have to think about line height in 90% of cases.

How the scale works

Thirteen stops (xs to 9xl) cover everything from microcopy (12px) to extreme display (128px). The scale is not purely geometric: the jumps are larger at the top (display) and smaller at the base (UI). That mirrors reality: you rarely need "slightly bigger than 96px", but you constantly need "14px or 16px, depending".

Each --text-* ships with a paired --text-*--line-height, calculated to give a comfortable height for that size. Use text-base and you get a 1.5 line-height automatically. Use text-4xl and you get 1.111, tighter, the way a heading wants it.

Families

Gremorie inherits the Tailwind v4 system stack: no downloaded fonts, maximum performance. If you want to switch to Inter, Geist or anything else, redefine --font-sans in the theme file.

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.

Sizes

The Sample column shows the characters "Aa" at the actual size. The Line-height next to it is the paired default; you can override it with leading-* when needed.

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.

Weights

Nine stops, from 100 (thin) to 900 (black). System fonts usually only ship 400, 500, 600 and 700; the other stops depend on a custom font being loaded.

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

When the paired line-height does not fit (multi-line heading compositions, long editorial reading), use the standalone tokens:

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 used deliberately is a sign of typographic care. Use negative tracking to tighten large display text and positive tracking to open up caps and 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

Best practices

  • Pair size with weight. Display uses a lighter weight (light or normal) because the size already draws attention. Body uses an intermediate weight (normal or medium) because heavier weights tire the eye at scale.
  • Use the paired line-height whenever possible. It was calculated for that specific size.
  • Negative tracking above --text-2xl corrects the exaggerated spacing most fonts show at display sizes.
  • Be careful with text-9xl. Beautiful on a portfolio page, brutal in any product interface. Reserve it for hero pages and brand displays.
  • Do not invent weights. If the font lacks font-extralight, the browser silently renders font-light. Audit the synthetic weight that shows up with font-synthesis.

On this page