LifeDS

Components

Typography

Type scale, weights, tracking and colour utilities sourced from Tailwind v4. The project uses a single font family — --font-sans — mapped via @theme inline.

--font-sans--font-heading → var(--font-sans)Inter (next/font)

Heading scale

Applied globally in @layer base — every h1h6 gets these properties automatically, no utility classes needed. Each property reads from a --heading-N-* CSS variable with a fallback, so themes/overrides can redefine them without touching this file.

<h1>--heading-1-*
36pxw700lh 39.6px (110%)ls -1.5px

The quick brown fox

<h2>--heading-2-*
30pxw700lh 36px (120%)ls -1.25px

The quick brown fox

<h3>--heading-3-*
24pxw700lh 28.8px (120%)ls -1px

The quick brown fox jumps

<h4>--heading-4-*
20pxw700lh 28px (140%)ls -0.83px

The quick brown fox jumps over

<h5>--heading-5-*
18pxw700lh 27px (150%)ls -0.75px
The quick brown fox jumps over the lazy dog
<h6>--heading-6-*
16pxw700lh 24px (150%)ls -0.67px
The quick brown fox jumps over the lazy dog

Body scale

Prose text at four sizes. Default weight is font-normal (400).

Large

text-lg
18pxlh 28px

Body text at large size. Used for lead paragraphs and prominent descriptions.

Base

text-base
16pxlh 24px

Body text at base size. The default for all prose content in the application.

Small

text-sm
14pxlh 20px

Body text at small size. Labels, supporting copy, secondary information.

XSmall

text-xs
12pxlh 16px

Extra small text. Timestamps, legal copy, metadata, captions.

Font weight

Weight scale available via Tailwind utilities.

font-normal400

Normal — The quick brown fox

font-medium500

Medium — The quick brown fox

font-semibold600

Semibold — The quick brown fox

font-bold700

Bold — The quick brown fox

font-extrabold800

Extrabold — The quick brown fox

Letter spacing

tracking-widest is commonly used for uppercase labels and badge text.

tracking-tighter-0.05em

Tighter — The quick fox

tracking-tight-0.025em

Tight — The quick fox

tracking-normal0em

Normal — The quick fox

tracking-wide0.025em

Wide — The quick fox

tracking-wider0.05em

Wider — The quick fox

tracking-widest0.1em

Widest — The quick fox

Text colours

Semantic colour utilities. Always use token-based colours — never raw hex.

text-foreground

Foreground — The quick brown fox jumps over the lazy dog

text-muted-foreground

Muted foreground — The quick brown fox jumps over the lazy dog

text-primary

Primary — The quick brown fox jumps over the lazy dog

text-destructive

Destructive — The quick brown fox jumps over the lazy dog

text-secondary-foreground

Secondary fg — The quick brown fox jumps over the lazy dog

Usage patterns

Real-world combinations used across the product. Copy the utility string directly.

Page titletext-3xl font-bold

Design System Migration

Section headingtext-lg font-bold

Token architecture

Card titletext-base font-semibold

Contribution History

Body texttext-sm text-muted-foreground

Migrating the UI to Tailwind v4 with a fresh component library built the shadcn-style way.

Label / captiontext-xs font-medium uppercase tracking-widest text-muted-foreground

DESIGN SYSTEM

Badge / tagtext-xs font-semibold

Tailwind v4

Prose example

How the scale reads together in a realistic content block.

Wellzesta

Design System Migration

Migrating the UI to Tailwind v4 with a fresh component library built the shadcn-style way — Tailwind + CVA + tailwind-merge + clsx. One source of truth for tokens, shared between Figma and code.

Token architecture

Three layers mirror how Figma variables are organized. Designers and engineers share the same token names, preventing drift between design and implementation.

Tailwind v4CVAshadcn/ui

Tokens used

4 semantic tokens consumed by this component.

--foregroundForeground
text-foreground
--muted-foregroundMuted Foreground
text-muted-foreground
--primaryPrimary
bg-primarytext-primaryborder-primaryring-primary
--borderBorder
border-borderborder