Font families
| Brand | Font | Fallbacks |
|---|
| Verdanta | Outfit | system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif |
| GetPlants | Inter | system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif |
Token: font.sans — overridden per brand.
Type scale
All sizes use px values (not rem) to stay consistent across contexts.
| Token | Size | Weight | Line-height | Usage |
|---|
font-size.xs | 11px | — | — | Captions, legal text |
font-size.sm | 12px | — | — | Small body text |
font-size.base | 14px | — | — | Default body |
font-size.md | 16px | — | — | Large body |
font-size.lg | 18px | — | — | Titles |
font-size.xl | 22px | — | — | Large titles |
font-size.2xl | 28px | — | — | Headings |
font-size.3xl | 34px | — | — | Large headings |
Semantic type tokens
Composite tokens that bundle family, size, weight, and line-height:
| Token | Composition |
|---|
type.caption | 400 11px/1.5 |
type.body-sm | 400 12px/1.8 |
type.body | 400 14px/1.8 |
type.body-lg | 400 16px/1.3 |
type.label | 500 14px/1.3 |
type.title-sm | 600 14px/1.3 |
type.title | 600 18px/1.3 |
type.title-lg | 600 22px/1.3 |
type.heading | 700 28px/1.3 |
type.heading-lg | 700 34px/1.2 |
Font weights
| Token | Value | Usage |
|---|
font-weight.regular | 400 | Body text |
font-weight.medium | 500 | Labels, emphasis |
font-weight.semibold | 600 | Titles |
font-weight.bold | 700 | Headings |
Line heights
| Token | Value | Usage |
|---|
line-height.tight | 1.2 | Large headings |
line-height.snug | 1.3 | Titles, labels |
line-height.normal | 1.5 | Captions |
line-height.relaxed | 1.8 | Body text |