Skip to main content

Design System Starter Kit - Token Architecture + Component Foundation

A starter Figma system with token architecture, core components, naming conventions, and auto-layout structure so teams can build on a real foundation instead of a loose UI kit.

Template (Planner + Reference) Free Updated May 2026 21 checklist prompts 7 data tables

Built for practical use

3-tier token architecture

A starter Figma system with token architecture, core components, naming conventions, and auto-layout structure so teams can build on a real foundation instead of a loose UI kit.

20 core components

A starter Figma system with token architecture, core components, naming conventions, and auto-layout structure so teams can build on a real foundation instead of a loose UI kit.

File structure guidance

A starter Figma system with token architecture, core components, naming conventions, and auto-layout structure so teams can build on a real foundation instead of a loose UI kit.

Maturity checklist

A starter Figma system with token architecture, core components, naming conventions, and auto-layout structure so teams can build on a real foundation instead of a loose UI kit.

Scope Your Design System

Define maturity, platforms, token layers, and the first components your team should standardize.

System Scope

Component Foundation

What This Resource Covers

This is a documented starter guide for building a SaaS design system from scratch. It includes:

  • Design token architecture (3-tier system used by leading design systems)
  • Core component inventory (20 essential components)
  • Figma file structure and setup
  • Naming conventions
  • Integration guidance (Figma → dev handoff)

Note: The actual Figma file is distributed separately. This markdown document explains the architecture, rationale, and implementation so you can build your own starter (or understand why ours is structured the way it is).

Who this is for: Designers and design leads building a new design system, or founders evaluating what "a good design system" should include.

Part 1: Why Design Tokens Matter

The problem design tokens solve

Without tokens:

  • Colors scattered across 200 screens as raw hex codes (#3B82F6, #3B82F6, #3C82F5...)
  • Spacing values duplicated (16px, 16px, 15px — inconsistencies creep in)
  • Changing the brand color requires finding-and-replacing across every file
  • Dark mode requires manually duplicating every color
  • Developers re-implement styles instead of using shared values

With tokens:

  • One source of truth: primary brand color is defined once
  • Change the token, everything updates automatically
  • Themes become possible (light/dark, brand variants, accessibility modes)
  • Designers and developers reference the same tokens
  • Design and code stay in sync

The 3-tier token architecture

Leading design systems (Salesforce Lightning, Adobe Spectrum, IBM Carbon, Atlassian Design System) use a 3-tier architecture:

Tier 1: Primitive (Reference) Tokens Raw values. The complete palette of choices.

  • blue-50, blue-100, ... blue-900
  • space-1 (4px), space-2 (8px), ... space-16 (64px)
  • font-size-xs (12px), font-size-sm (14px), ... font-size-4xl (48px)

Tier 2: Semantic (Alias) Tokens Named by purpose, referencing primitives.

  • color-primaryblue-600
  • color-errorred-500
  • space-smspace-2
  • text-body-defaultfont-size-sm

Tier 3: Component Tokens Named by component, referencing semantics.

  • button-primary-backgroundcolor-primary
  • button-primary-textcolor-white
  • card-paddingspace-md

Why 3 tiers matter:

  • Change the brand color once (primitive) → everything updates
  • Switch themes (dark mode) → change semantic tokens, components update
  • Customize a specific component → change component tokens without affecting others

Part 2: Color Token System

Primitive color palette

Start with a neutral scale + 3-5 hue ramps:

Neutrals (critical — use 80% of the time):

  • gray-0 (white, #FFFFFF)
  • gray-50 through gray-950 (11 values)
  • gray-1000 (black, #000000)

Primary (brand color):

  • primary-50 through primary-900

Semantic hues:

  • success (green): 50-900
  • warning (amber/yellow): 50-900
  • error (red): 50-900
  • info (blue): 50-900

Each ramp should include:

  • -50: Background tint (very light)
  • -100, -200, -300: Light shades (backgrounds, borders)
  • -400: Mid-light (disabled states)
  • -500: Base (primary use)
  • -600: Mid-dark (hover states)
  • -700, -800, -900: Dark shades (text, high contrast)

Semantic color tokens

TokenReferencesUsage
color-background-defaultgray-0 (white)Page background
color-background-surfacegray-50Cards, modals
color-background-subtlegray-100Code blocks, dividers
color-text-primarygray-900Body text
color-text-secondarygray-700Secondary text
color-text-tertiarygray-500Metadata, captions
color-text-disabledgray-400Disabled elements
color-text-inversegray-0Text on dark backgrounds
color-border-defaultgray-200Default borders
color-border-stronggray-300Emphasized borders
color-border-focusprimary-500Focus rings
color-action-primaryprimary-600Primary buttons
color-action-primary-hoverprimary-700Primary hover
color-feedback-successsuccess-500Success states
color-feedback-warningwarning-500Warning states
color-feedback-errorerror-500Error states
color-feedback-infoinfo-500Info states

Dark mode considerations

For dark mode, semantic tokens change but primitives stay the same:

TokenLight ModeDark Mode
color-background-defaultgray-0gray-950
color-background-surfacegray-50gray-900
color-text-primarygray-900gray-50
color-text-secondarygray-700gray-200
color-border-defaultgray-200gray-700

Dark mode gotchas:

  • Pure black (#000000) is too harsh — use gray-950 (e.g., #0A0A0A)
  • Shadows don't work in dark mode — use elevation through surface colors
  • Primary colors often need desaturation in dark mode
  • Error red in dark mode uses red-400 instead of red-500 (less harsh)

Contrast requirements

Every color token pair (background + text) must meet WCAG AA:

  • Normal text (<18px): 4.5:1 contrast minimum
  • Large text (18px+ or 14px+ bold): 3:1 contrast minimum
  • UI components: 3:1 contrast minimum

Test tools:

  • WebAIM Contrast Checker (webaim.org/resources/contrastchecker)
  • Stark plugin for Figma
  • Chrome DevTools Accessibility inspector

Part 3: Typography Token System

Primitive font size scale

Based on a modular scale (1.250 ratio or similar):

TokenSizeUse Case
font-size-xs12px (0.75rem)Captions, labels
font-size-sm14px (0.875rem)Small UI text
font-size-base16px (1rem)Body text (default)
font-size-md18px (1.125rem)Large body text
font-size-lg20px (1.25rem)Subheadings
font-size-xl24px (1.5rem)H4
font-size-2xl30px (1.875rem)H3
font-size-3xl36px (2.25rem)H2
font-size-4xl48px (3rem)H1
font-size-5xl60px (3.75rem)Display

Semantic typography tokens

TokenSizeWeightLine Height
text-display48pxBold (700)1.1
text-heading-136pxBold (700)1.2
text-heading-230pxSemibold (600)1.25
text-heading-324pxSemibold (600)1.3
text-heading-420pxSemibold (600)1.4
text-body-lg18pxRegular (400)1.55
text-body16pxRegular (400)1.5
text-body-sm14pxRegular (400)1.45
text-caption12pxRegular (400)1.4
text-label14pxMedium (500)1.4
text-button14pxMedium (500)1

Font family recommendations

For SaaS: Inter (free, modern, excellent legibility at small sizes) Alternatives: Roboto, Manrope, DM Sans, Plus Jakarta Sans, Geist

Font weights to include:

  • 400 (Regular)
  • 500 (Medium)
  • 600 (Semibold)
  • 700 (Bold)

Avoid loading all 9 weights — most SaaS products need only 4.

Part 4: Spacing Token System

Primitive spacing scale

Based on 4px base unit:

TokenSizeUse
space-00pxReset
space-14pxVery tight spacing
space-28pxTight spacing
space-312pxSmall gaps
space-416pxDefault gap
space-520pxMedium gap
space-624pxComfortable gap
space-832pxLarge gap
space-1040pxExtra-large gap
space-1248pxSection spacing
space-1664pxLarge sections
space-2080pxMajor sections
space-2496pxPage-level spacing

Why the 8-point grid

  • 8 is divisible by 2 and 4 (flexible)
  • Matches common screen resolutions
  • Aligns with native mobile guidelines (iOS, Android)
  • Creates visual rhythm
  • Industry standard (Material Design, iOS HIG, Carbon, Polaris)

Part 5: Border Radius Token System

TokenSizeUse
radius-none0pxSharp corners
radius-sm4pxSmall elements (badges, tags)
radius-md6-8pxDefault (buttons, inputs)
radius-lg12pxCards, modals
radius-xl16pxLarge containers
radius-2xl24pxFeature cards
radius-full9999pxPills, circular avatars

Part 6: Shadow/Elevation Tokens

TokenUse
shadow-xsSubtle depth (input fields)
shadow-smCards at rest
shadow-mdCards on hover, dropdowns
shadow-lgModals, popovers
shadow-xlLarge floating elements

Example shadow values:

shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05)
shadow-md: 0 4px 6px rgba(0, 0, 0, 0.05), 0 2px 4px rgba(0, 0, 0, 0.06)
shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)

Dark mode: Shadows don't work well. Use surface elevation (background color shifts) instead.

Part 7: 20 Core Components (Starter Set)

These are the minimum components needed for most SaaS products.

Foundation Components

1. Button

  • Variants: Primary, Secondary, Tertiary/Ghost, Destructive
  • Sizes: Small (32px), Medium (40px), Large (48px)
  • States: Default, Hover, Focus, Active, Disabled, Loading
  • With/without icon (left, right, icon-only)

2. Input

  • Variants: Text, Email, Password, Search, Number, Textarea
  • States: Default, Hover, Focus, Filled, Disabled, Error, Success
  • With/without label, helper text, error message
  • With/without leading icon, trailing icon

3. Select / Dropdown

  • Single-select, Multi-select
  • Searchable, Filterable
  • With/without grouping
  • States: Default, Open, Disabled, Error

4. Checkbox & Radio

  • States: Unchecked, Checked, Indeterminate, Disabled
  • With/without label and description

5. Switch / Toggle

  • On, Off states
  • Sizes: Small, Medium
  • With/without label

6. Slider

  • Single value, Range
  • With/without labels, value display

Layout Components

7. Card

  • Variants: Default, Hoverable, Clickable
  • With/without header, footer
  • Padding variants

8. Modal / Dialog

  • Sizes: Small (400px), Medium (600px), Large (800px), Full-screen
  • With/without backdrop, close button
  • Action placement (bottom-right)

9. Drawer / Side Panel

  • Positions: Left, Right
  • Sizes: Small, Medium, Large

10. Tabs

  • Variants: Horizontal, Vertical
  • Sizes: Small, Medium, Large
  • With/without icons

Feedback Components

11. Toast / Notification

  • Variants: Success, Error, Warning, Info
  • Positions: Top, Bottom, Top-right, Bottom-right
  • Duration: Auto-dismiss (3-5s) or persistent

12. Alert / Banner

  • Variants: Info, Success, Warning, Error
  • With/without close button, action button

13. Progress Indicator

  • Variants: Linear, Circular
  • Determinate, Indeterminate

14. Skeleton Loader

  • For cards, text lines, images, avatars

Navigation Components

15. Navigation Bar (Top)

  • Logo, navigation items, user menu
  • With/without search

16. Sidebar Navigation

  • Collapsible, Expanded
  • With sub-navigation (nested)

17. Breadcrumb

  • With separators
  • Truncation for long paths

18. Pagination

  • Page numbers, Previous/Next
  • With/without page size selector

Data Display Components

19. Table

  • Sortable columns
  • Row selection (single, multi)
  • Pagination or infinite scroll
  • Empty state, loading state
  • Actions (row-level, bulk)

20. Avatar & User Display

  • Variants: Image, Initials, Icon
  • Sizes: XS (24px), SM (32px), MD (40px), LG (48px), XL (64px)
  • With/without status indicator

Additional (Nice-to-Have)

  • Tag / Chip / Badge
  • Tooltip
  • Popover
  • Accordion / Collapse
  • Stepper / Progress Stepper
  • Rating / Stars
  • Empty State
  • Error State

Part 8: Figma File Structure

Recommended organization:

📁 Design System (Figma File)
├── 📄 01 - Getting Started (intro, guidelines)
├── 📄 02 - Tokens (colors, typography, spacing)
├── 📄 03 - Icons (icon library)
├── 📄 04 - Foundation Components (buttons, inputs, etc.)
├── 📄 05 - Layout Components (cards, modals, etc.)
├── 📄 06 - Feedback Components (toasts, alerts)
├── 📄 07 - Navigation Components (nav, tabs, breadcrumbs)
├── 📄 08 - Data Components (tables, charts, avatars)
├── 📄 09 - Patterns (login, signup, settings, dashboard)
├── 📄 10 - Templates (common page layouts)
└── 📄 99 - Changelog / Roadmap

Each component page includes:

  • Component example (default state)
  • All variants displayed in a grid
  • All states documented
  • Usage guidelines (when to use, when not to use)
  • Anatomy (labeled parts)
  • Spec annotations (sizes, spacing)
  • Related components (links to similar patterns)

Part 9: Naming Conventions

Component names: PascalCase

  • Button, InputField, NavigationBar, UserAvatar

Variants: kebab-case

  • primary, secondary, destructive-confirm

States: kebab-case

  • default, hover, focus, active, disabled, loading, error

Tokens: kebab-case with semantic prefixes

  • color-background-default
  • space-md
  • text-body
  • radius-lg
  • shadow-md

Figma component structure:

Button/Primary/Medium/Default
Button/Primary/Medium/Hover
Button/Primary/Medium/Disabled

Part 10: Dev Handoff Integration

Figma → Code token export

Tools for syncing tokens:

  • Style Dictionary (Amazon's open source tool) — exports tokens to multiple formats
  • Tokens Studio (Figma plugin) — manages tokens in Figma
  • Specify — Figma-to-code sync
  • Supernova — Design system management

Output formats:

  • CSS custom properties
  • SCSS variables
  • JavaScript/TypeScript constants
  • Tailwind config
  • iOS Swift / Android Kotlin

Component documentation for developers

Each component should have:

  • Figma link
  • Code example (React/Vue/Svelte)
  • Props documentation
  • Accessibility notes (ARIA roles, keyboard behavior)
  • Browser compatibility notes

Part 11: Design System Maturity Checklist

Rate your design system:

Level 1: Starter (where most teams begin)

  • Color tokens defined
  • Typography scale defined
  • 10-15 core components documented
  • Figma file structured

Level 2: Established

  • 3-tier token architecture (primitive → semantic → component)
  • 20+ core components with all states
  • Dark mode support
  • Accessibility tested (WCAG AA)
  • Documented usage guidelines

Level 3: Mature

  • Tokens synced to code (Style Dictionary or similar)
  • Component library in production code
  • Design system team / contributors
  • Versioning and changelog
  • Regular audits and updates
  • Training resources for new designers/developers

Level 4: World-class (few reach this)

  • Multi-product consistency
  • Public documentation site
  • Design system metrics (adoption, contribution)
  • Multi-theme support (light/dark/custom)
  • Accessibility testing automated
  • Design tokens part of CI/CD

Sources and References

  • Salesforce Lightning Design System (public documentation)
  • Atlassian Design System (design.atlassian.com)
  • IBM Carbon Design System (carbondesignsystem.com)
  • Adobe Spectrum (spectrum.adobe.com)
  • Shopify Polaris (polaris.shopify.com)
  • Material Design 3 (m3.material.io)
  • Design Tokens Community Group (W3C)
  • Nathan Curtis, "Design Tokens for Dummies"
  • Brad Frost, "Atomic Design"
  • Jina Anne, Design Systems Handbook

Created by Desisle — SaaS UI/UX Design Agency desisle.com | hello@desisle.com Free to use and share with attribution.

For a custom design system project, contact us at hello@desisle.com.

Keep Building With These Next

Checklist

The UI Design Checklist - 80 Points for Pixel-Perfect Screens

A UI review checklist for typography, color systems, spacing, consistency, responsiveness, states, accessibility, and handoff readiness.

Open UI Checklist
Template

SaaS Color System Generator - Build an Accessible Palette in Minutes

A tool concept that takes one primary brand color and expands it into a SaaS-ready, WCAG-aware system including semantic colors and export options.

Open Color System Generator
Template

User Journey Mapping Template - From First Touch to Renewal

A visual template for mapping discovery, signup, onboarding, support, renewal, and referral moments with emotion tracking and friction spotting.

Open Journey Map

Need This Applied to Your Product? We'll Turn It Into Execution.

These resource pages are meant to be used hands-on. If you want the audit, plan, or framework translated into live product work, we can do that with your team.