Skip to content

Typography

Clear, accessible typography that ensures readability across all LawnGuru experiences.

📝 Font Families

Primary Font - Inter

css
--font-family-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

Usage: Body text, UI elements, general content, forms, buttons

Why Inter?

  • Optimized for screen readability
  • Excellent for UI/UX design
  • Wide range of weights (100-900)
  • Open source and free

Display/Heading Font - Geist

css
--font-family-heading: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

Usage: Headings, titles, hero text, marketing content

Why Geist?

  • Modern, clean aesthetic
  • Strong visual presence
  • Perfect for headlines
  • Excellent legibility

Monospace Font

css
--font-family-mono: 'Geist Mono', 'SF Mono', Monaco, 'Courier New', monospace;

Usage: Code snippets, technical content, data, numbers

📏 Type Scale

Headings

Display / Heading 34

css
--font-size-34: 34px;
--line-height-48: 48px;
--font-weight-700: 700; /* Bold */

Usage: Hero sections, marketing headlines, landing pages

Heading 28

css
--font-size-28: 28px;
--line-height-38: 38px;
--font-weight-700: 700; /* Bold */

Usage: Page titles (H1), major section headers

Heading 22

css
--font-size-22: 22px;
--line-height-32: 32px;
--font-weight-600: 600; /* Semibold */

Usage: Section headings (H2), card titles

Heading 20

css
--font-size-20: 20px;
--line-height-28: 28px;
--font-weight-600: 600; /* Semibold */

Usage: Subsection headings (H3), panel titles

Heading 18

css
--font-size-18: 18px;
--line-height-24: 24px;
--font-weight-600: 600; /* Semibold */

Usage: Component titles (H4), small section headers

Body Text

Body 16 (Base)

css
--font-size-16: 16px;
--line-height-24: 24px;
--font-weight-400: 400; /* Regular */
--font-weight-500: 500; /* Medium - for emphasis */

Usage: Standard body text, most UI text, paragraphs, descriptions

Body 14

css
--font-size-14: 14px;
--line-height-20: 20px;
--font-weight-400: 400; /* Regular */
--font-weight-500: 500; /* Medium - for buttons/links */

Usage: Secondary text, form labels, button text, navigation

Body 12

css
--font-size-12: 12px;
--line-height-16: 16px;
--font-weight-400: 400; /* Regular */
--font-weight-500: 500; /* Medium - for emphasis */

Usage: Captions, helper text, input hints, badges

Body 11

css
--font-size-11: 11px;
--line-height-14: 14px;
--font-weight-400: 400; /* Regular */

Usage: Fine print, timestamps, metadata

Body 10 (Smallest)

css
--font-size-10: 10px;
--line-height-12: 12px;
--font-weight-400: 400; /* Regular */

Usage: Legal text, extremely small labels (use sparingly)

🎯 Font Weights

css
--font-weight-400: 400;  /* Regular - body text */
--font-weight-500: 500;  /* Medium - emphasis, buttons */
--font-weight-600: 600;  /* Semibold - headings, labels */
--font-weight-700: 700;  /* Bold - major headings, hero text */

Usage Guidelines:

  • Regular (400): Default for all body text, paragraphs, descriptions
  • Medium (500): Buttons, links, emphasized text, active states
  • Semibold (600): Most headings (H2-H6), form labels, navigation
  • Bold (700): Large headings (H1, Display), hero text, marketing content

📐 Letter Spacing

css
--letter-spacing-tight-1-5: -1.5%;  /* Very tight */
--letter-spacing-tight-1: -1%;      /* Tight */
--letter-spacing-tight-0-5: -0.5%;  /* Slightly tight */
--letter-spacing-0: 0%;             /* Normal (default) */
--letter-spacing-wide-0-5: 0.5%;    /* Slightly wide */
--letter-spacing-wide-1: 1%;        /* Wide */
--letter-spacing-wide-1-5: 1.5%;    /* Very wide */

Usage:

  • Tight spacing (-0.5% to -1.5%): Large headings, display text, hero sections
  • Normal (0%): Body text, standard headings, most UI elements
  • Wide spacing (0.5% to 1.5%): All caps text, small labels, buttons, tags

📱 Responsive Typography

Typography scales based on viewport size for optimal readability.

Mobile (< 768px)

  • Reduce heading sizes by 20-30%
  • Maintain minimum 16px for body text
  • Tighter line heights for compact layouts

Tablet (768px - 1024px)

  • Standard scale with slight adjustments
  • Balance between mobile and desktop

Desktop (> 1024px)

  • Full type scale
  • Optimal line lengths (50-75 characters)

📋 Usage Guidelines

Do's ✅

  • Use heading hierarchy properly (don't skip levels)
  • Maintain consistent line heights for vertical rhythm
  • Limit line length to 50-75 characters for body text
  • Use proper font weights for emphasis

Don'ts ❌

  • Don't use more than 2-3 font families
  • Avoid excessive font weights in a single view
  • Don't use font sizes smaller than 12px (except legal text)
  • Avoid all caps for long text (reduces readability)

♿ Accessibility

Font Size

  • Minimum body text: 16px
  • Allow text to scale up to 200% without breaking layout
  • Use relative units (rem, em) instead of pixels

Line Height

  • Body text: 1.5 minimum
  • Headings: 1.2-1.3
  • Dense UI: 1.4 minimum

Text Spacing

  • Letter spacing: Normal for body, slight increase for all caps
  • Word spacing: Default (adjust only for specific cases)

🔄 Typography System Overview

Primary Fonts:

  • Geist - Display and headings
  • Inter - Body text and UI

Complete Type Scale:

  • Display: 34px/48px (Bold 700)
  • Headings: 28px, 22px, 20px, 18px
  • Body: 16px (base), 14px, 12px, 11px, 10px
  • Weights: 400 (Regular), 500 (Medium), 600 (Semibold), 700 (Bold)
  • Letter spacing: -1.5% to +1.5%

Last Updated: Synced with Figma Font.json tokens (2026-03-25)

Note: This typography system provides a comprehensive, accessible type scale optimized for digital interfaces. All sizes and line heights are designed to work together harmoniously.

📊 Complete Typography Token Reference

Font Size Tokens

TokenValueUsage
font-size-3434pxDisplay, hero headings
font-size-2828pxH1, page titles
font-size-2424pxLarge headings
font-size-2020pxH2, section headings
font-size-1818pxH3, subsection headings
font-size-1616pxBase body text
font-size-1515pxMedium body text
font-size-1414pxSmall body text, UI labels
font-size-1313pxSmall labels
font-size-1212pxCaptions, helper text
font-size-1111pxFine print
font-size-1010pxSmallest text, badges

Line Height (font-height) Tokens

TokenValueBest Paired With
font-height-4646pxfont-size-34
font-height-3838pxfont-size-28
font-height-3232pxfont-size-24
font-height-2828pxfont-size-20
font-height-2626pxfont-size-18
font-height-2525pxfont-size-18
font-height-2424pxfont-size-16 (base)
font-height-2222pxfont-size-15
font-height-2121pxfont-size-14
font-height-2020pxfont-size-14
font-height-1818pxfont-size-13
font-height-1717pxfont-size-12
font-height-1515pxfont-size-11
font-height-1414pxfont-size-10

Font Family Tokens

TokenValueUsage
font-family-geistGeistHeadings, display text
font-family-interInterBody text, UI elements

Font Weight Tokens

TokenValueNameUsage
font-weight-700700BoldLarge headings, emphasis
font-weight-600600SemiboldHeadings, labels
font-weight-500500MediumSubheadings, important UI
font-weight-400400RegularBody text, default

Next Steps:

Built with 🌱 by the LawnGuru team