Typography
A 15-style type system built on Poppins (display) and Inter (UI) from your Figma brand. Every style has a precise role — nothing overlaps, nothing is missing.
Typefaces
Three purpose-specific families — each chosen for its role, not interchangeable.
Display Styles
Large-scale type for heroes, landing pages, and marketing screens. Poppins only.
Headings
Inter-based headings for app screens, dashboards, and documents. H1–H4.
Body Styles
Four body sizes for different content densities. All Inter 400 for optimal readability.
Labels
Tight, purposeful styles for UI chrome: buttons, navigation, form labels, table headers, status indicators.
Code Type
JetBrains Mono for all code, tokens, and technical identifiers. Excellent for monospaced alignment and long strings.
--primary to override the brand colour.
Full Scale Reference
All 15 type styles in one view. Use CSS custom properties to apply consistently.
Line Heights
Line height is critical for readability. Display type is tight (1.05); body text is loose (1.65) for maximum legibility.
Font Sizes at a Glance
The type scale follows a loose modular ratio — each step is purposeful, not mechanical.
Usage Guidelines
Full Specimen
Every style together — how the system looks in real app context.
CSS Tokens
Copy-paste the complete typography custom properties block.
:root {
/* Font families */
--font-sans: 'Inter', system-ui, sans-serif;
--font-display: 'Poppins', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
/* Font sizes */
--text-xs: 11px; /* Label S */
--text-sm: 12px; /* Body S, Label M */
--text-base: 14px; /* Body M, Label L */
--text-md: 16px; /* Body L */
--text-lg: 18px; /* Body XL, H4 */
--text-xl: 20px; /* H3 */
--text-2xl: 24px; /* H2 */
--text-3xl: 32px; /* H1 */
--text-4xl: 36px; /* Display M */
--text-5xl: 48px; /* Display L */
--text-6xl: 56px; /* Display XL */
/* Font weights */
--weight-regular: 400;
--weight-medium: 500;
--weight-semibold: 600;
--weight-bold: 700;
/* Line heights */
--lh-tight: 1.05; /* Display XL */
--lh-snug: 1.15; /* Display M */
--lh-normal: 1.3; /* H2 */
--lh-relaxed: 1.5; /* Body M */
--lh-loose: 1.65; /* Body L, Body XL */
}