fa Design System

Design with
intent. Build with
confidence.

A comprehensive design system built for vibe coding. Everything you need to build beautiful, consistent interfaces — tokens, components, patterns, and prompts.

Explore the System

Navigate through foundations, components, and vibe coding resources.

Color System
Brand palette, semantic colors, and accessibility-driven usage guidelines for light and dark contexts.
Typography
Roboto type scale from display headings to captions, with line-height and letter-spacing guidelines.
Components
40+ production-ready components from buttons and forms to tables, modals, and navigation patterns.
Vibe Coding Guide
Optimized prompts, patterns, and workflows for building with Claude — faster, with better results.
Get Started

Quick Start

Von null zu einem funktionierenden Interface in drei Schritten. Tokens einbinden, Komponenten kopieren, loslegen.

1
Tokens einbinden
Lade tokens.css als erste Datei in deinem Projekt. Alle Farben, Abstände, Radien und Typografie stehen dann als CSS-Variablen zur Verfügung.
HTML
<!-- Option A: Direkt in HTML -->
<link rel="stylesheet" href="tokens.css">

<!-- Option B: In CSS importieren -->
@import './tokens.css';

<!-- Option C: Direkt in :root einfügen -->
<!-- Gehe zu Foundations → Design Tokens -->
einbindung
2
Roboto einbinden
Die gesamte Typografie läuft über Roboto. Ein einziger Link-Tag reicht.
HTML
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"
      rel="stylesheet">
google fonts
3
Erste Komponente bauen
Alle Komponenten unter Components haben direkt kopierbare HTML- und CSS-Blöcke. Einfach auf "Copy HTML" oder "Copy CSS" klicken und einfügen.
HTML
<button class="fa-btn fa-btn-primary">Loslegen</button>
<button class="fa-btn fa-btn-accent">Accent</button>
<button class="fa-btn fa-btn-secondary">Secondary</button>
button · actions

Workflow mit Claude

Das System ist für Vibe Coding optimiert. So arbeitest du am effektivsten.

Neues Feature
  1. Tokens kopieren (diese Seite → Schritt 1)
  2. Komponenten-Prompt von der Prompt Library kopieren
  3. Beides in Claude einfügen + Anforderungen beschreiben
  4. Generierten Code direkt nutzen — Tokens sind schon drin
Bestehende Komponente anpassen
  1. Komponente unter Components suchen
  2. "Copy HTML" + "Copy CSS" klicken
  3. Code in Claude einfügen + Änderungen beschreiben
  4. "Behalte alle CSS-Variablen und Klassennamen"

Dateistruktur

Empfohlene Struktur für ein neues Projekt mit diesem System.

TREE
my-project/
├── styles/
│   ├── tokens.css          ← Design Tokens (dieses System)
│   ├── components.css      ← Kopierte Komponenten-Styles
│   └── app.css             ← Deine eigenen Styles
├── components/
│   ├── Button.html         ← Aus dem Design System kopiert
│   └── Card.html
└── index.html
    ↳ <link rel="stylesheet" href="styles/tokens.css">
       <link rel="stylesheet" href="styles/components.css">
projektstruktur
Guide

Vibe Coding with Claude

How to get the best results when building UIs with this design system and Claude as your coding partner.

1. Start with the System Prompt

Always paste the design token block at the start of a new conversation. This primes Claude with your brand.

SYSTEM PROMPT
You are building a UI for Functional Aesthetics.
Always use these CSS variables in every component:

/* Brand */
--color-primary: #09371D;      /* dark forest green */
--color-accent:  #CEFC32;      /* neon yellow-green */

/* Typography */
font-family: 'Roboto', sans-serif;

/* Rules */
- Use semantic CSS variables, never raw hex values in components
- Border radius: 4px (md), 8px (lg), 12px (xl)
- All interactive states: hover, focus, active, disabled
- WCAG AA contrast compliance required

2. Golden Prompt Rules

✓ Do
  • Token Reference tokens by name: "use --color-primary"
  • State Specify all states: "with hover, focus, disabled"
  • Size Define sizes: "sm (32px), md (40px), lg (48px)"
  • A11y Ask for ARIA labels and keyboard navigation
✗ Avoid
  • Color Hardcoding hex values inside component styles
  • Vague "Make it look nice" — be specific about intent
  • Style Inline styles for repeated patterns
  • Magic Magic numbers — always map to spacing tokens

3. Component Request Template

TEMPLATE
Create a [COMPONENT NAME] component:

/* Variants */
- Variants: [list variants]
- Sizes: sm | md | lg
- States: default, hover, focus, active, disabled

/* Design */
- Use CSS variables from the design system
- Border-radius: var(--radius-md)
- Font: var(--font-family), var(--font-size-base)
- Transitions: var(--transition-fast)

/* Output */
- Pure HTML + CSS (no frameworks)
- Include usage example
- Add ARIA attributes for accessibility
Foundations

Color

A purposeful palette built around deep forest green and neon accent, designed for clarity and brand expression.

Corporate Colors

Klicke auf eine Farbe um den Hex-Wert zu kopieren.

Primary #09371D
Primary 500 #1A7047
Primary 400 #3D9E6E
Primary 200 #A6D4BC
Primary 50 #F0F7F3
Accent #CEFC32
Accent 400 #B0DE1A
Neutral 900 #111110
Neutral 600 #555550
White #FFFFFF
Success #168500
Error #DE2417

Brand Palette

Primary — Forest Green
50
#F0F7F3
100
#D4EBE0
200
#A6D4BC
300
#72BB97
400
#3D9E6E
500
#1A7047
600 ★
#09371D
700
#072E17
800
#052310
900
#031709
Accent — Neon Yellow-Green
50
#F9FFD6
100
#EFFE99
200
#E4FD64
300 ★
#CEFC32
400
#B0DE1A
500
#8CB50E
600
#678906
700
#456003
800
#2A3B01
900
#141E00
Neutral
0
#FFFFFF
50
#F7F7F5
100
#EDEDEA
200
#D8D8D3
300
#B8B8B1
400
#96968E
500
#737369
600
#555550
700
#3A3A36
800
#242421
900
#111110

Semantic Colors

Success
#168500
Error
#DE2417
Warning
#B57300

Color Usage Rules

Use the 600 stop for primary CTAs, active navigation states, links, focus rings, and key brand moments. Use 50–100 stops for backgrounds and tinted surfaces. Reserve 800–900 for text on light backgrounds only.
The neon accent (#CEFC32) is reserved for high-emphasis moments: accent buttons, active chips, progress fills, and highlight callouts. Always use dark text (800–900) on accent backgrounds to ensure AA contrast. Never use on small text.
Body text must maintain 4.5:1 contrast ratio (WCAG AA). Large text ≥ 18pt or bold ≥ 14pt requires 3:1. UI components require 3:1. The primary-600 on white achieves 10.3:1. Accent-300 (#CEFC32) on white achieves 6.8:1 — use with dark text.
Foundations

Typography

Roboto as our single typeface — versatile, legible, and professional across all weights and sizes.

Type Scale

Display 56px / Light 300 / tracking -0.03em / lh 1.1
Building Tomorrow
Heading 1 40px / Light 300 / tracking -0.02em / lh 1.2
Functional Design
Heading 2 32px / Regular 400 / tracking -0.01em / lh 1.25
System Overview
Heading 3 24px / Regular 400 / lh 1.3
Component Library
Heading 4 20px / Medium 500 / lh 1.35
Design Tokens
Body Large 18px / Regular 400 / lh 1.75
This is body large text, ideal for introductory paragraphs and lead text. It creates breathing room and improves readability at the start of a section.
Body Default 14px / Regular 400 / lh 1.5
Standard body text for most content. Used in paragraphs, descriptions, and general UI text. Roboto at this size is highly legible across all screen densities.
Label / UI 12px / Medium 500 / tracking 0.02em / lh 1.4
Form Label · Navigation Item · Metadata
Caption 11px / Regular 400 / tracking 0.02em / lh 1.4
Image caption, footnote, or helper text — always at minimum 11px for legibility.
Overline 11px / Medium 500 / tracking 0.08em / uppercase
Section Category
Code 13px / Monospace / lh 1.6
--color-primary: #09371D;
Foundations

Spacing

A consistent 4px base unit system that creates visual harmony across all components and layouts.

Spacing Scale

--space-1
4px · 0.25rem
--space-2
8px · 0.5rem
--space-3
12px · 0.75rem
--space-4
16px · 1rem
--space-5
20px · 1.25rem
--space-6
24px · 1.5rem
--space-8
32px · 2rem
--space-10
40px · 2.5rem
--space-12
48px · 3rem
--space-16
64px · 4rem
--space-20
80px · 5rem
--space-24
96px · 6rem
Foundations

Grid & Layout

A 12-column grid system with responsive breakpoints and container widths.

Breakpoints

NameTokenWidthColumnsGutter
Mobile--container-sm< 640px416px
Tablet--container-md640–960px824px
Desktop--container-lg960–1280px1232px
Wide--container-xl> 1440px1240px

12-Column Grid

span 12
span 6
span 6
span 4
span 4
span 4
span 3
span 3
span 3
span 3
span 8
span 4
Foundations

Elevation & Shape

Shadow and radius tokens that create depth hierarchy and consistent rounding across all components.

Shadow Scale

shadow-xs
Cards at rest
shadow-sm
Cards on hover
shadow-md
Dropdowns
shadow-lg
Toasts, popovers
shadow-xl
Modals, dialogs

Border Radius

radius-none
0px
radius-sm
2px
radius-md
4px
radius-lg
8px
radius-xl
12px
radius-full
9999px
Foundations

Motion

Purposeful transitions that guide attention and communicate state changes without distraction.

Transition Tokens

TokenValueUse Case
--transition-fast100ms easeHover states, color changes, icon swaps
--transition-normal200ms easeExpanding elements, toggles, checkboxes
--transition-slow300ms easeModals, drawers, page transitions

Hover the buttons to see transitions in action:

Foundations

Design Tokens

All CSS custom properties — copy the root block and paste it into any project.

Complete Token Reference

CSS
:root {
  /* ── Brand ─────────────────────── */
  --color-primary:          #09371D;
  --color-primary-50:       #F0F7F3;
  --color-primary-100:      #D4EBE0;
  --color-primary-200:      #A6D4BC;
  --color-primary-300:      #72BB97;
  --color-primary-400:      #3D9E6E;
  --color-primary-500:      #1A7047;
  --color-primary-600:      #09371D;
  --color-primary-700:      #072E17;
  --color-primary-800:      #052310;
  --color-primary-900:      #031709;

  --color-accent:           #CEFC32;
  --color-accent-50:        #F9FFD6;
  --color-accent-100:       #EFFE99;
  --color-accent-200:       #E4FD64;
  --color-accent-300:       #CEFC32;
  --color-accent-400:       #B0DE1A;
  --color-accent-500:       #8CB50E;
  --color-accent-600:       #678906;
  --color-accent-700:       #456003;
  --color-accent-800:       #2A3B01;
  --color-accent-900:       #141E00;

  /* ── Semantic ───────────────────── */
  --color-success:          #168500;
  --color-success-light:    #D6F5CE;
  --color-error:            #DE2417;
  --color-error-light:      #FCD1D0;
  --color-warning:          #B57300;
  --color-warning-light:    #FDEEC0;

  /* ── Backgrounds ────────────────── */
  --bg-page:                #F7F7F5;
  --bg-surface:             #FFFFFF;
  --bg-surface-secondary:   #F0F0EC;
  --bg-surface-tertiary:    #E8E8E3;
  --bg-inverse:             #111110;

  /* ── Text ───────────────────────── */
  --text-primary:           #111110;
  --text-secondary:         #555550;
  --text-tertiary:          #96968E;
  --text-disabled:          #B8B8B1;
  --text-inverse:           #FFFFFF;
  --text-link:              #09371D;

  /* ── Typography ─────────────────── */
  --font-family:      'Roboto', sans-serif;
  --font-size-xs:           0.6875rem;
  --font-size-sm:           0.75rem;
  --font-size-base:         0.875rem;
  --font-size-md:           1rem;
  --font-size-lg:           1.125rem;
  --font-size-xl:           1.25rem;
  --font-size-2xl:          1.5rem;
  --font-size-3xl:          2rem;
  --font-size-4xl:          2.5rem;
  --font-weight-light:      300;
  --font-weight-regular:    400;
  --font-weight-medium:     500;
  --font-weight-bold:       700;
  --line-height-tight:      1.25;
  --line-height-normal:     1.5;
  --line-height-relaxed:    1.75;

  /* ── Spacing ────────────────────── */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;

  /* ── Border Radius ──────────────── */
  --radius-none: 0;
  --radius-sm:   0.125rem;
  --radius-md:   0.25rem;
  --radius-lg:   0.5rem;
  --radius-xl:   0.75rem;
  --radius-2xl:  1rem;
  --radius-full: 9999px;

  /* ── Shadows ────────────────────── */
  --shadow-xs:  0 1px 2px rgba(0,0,0,0.05);
  --shadow-sm:  0 1px 4px rgba(0,0,0,0.08);
  --shadow-md:  0 4px 12px rgba(0,0,0,0.10);
  --shadow-lg:  0 8px 24px rgba(0,0,0,0.12);
  --shadow-xl:  0 16px 40px rgba(0,0,0,0.14);

  /* ── Transitions ────────────────── */
  --transition-fast:   100ms ease;
  --transition-normal: 200ms ease;
  --transition-slow:   300ms ease;
}
Components

Actions

Buttons, links, and interactive controls that trigger operations and navigate users.

Button Variants

Immer kursiv, keine runden Ecken. Primary und Accent tauschen beim Hover die Farben.

HTML
<button class="fa-btn fa-btn-primary">Primary</button>
<button class="fa-btn fa-btn-accent">Accent</button>
<button class="fa-btn fa-btn-secondary">Secondary</button>
<button class="fa-btn fa-btn-ghost">Ghost</button>
<button class="fa-btn fa-btn-danger">Danger</button>
button · 5 variants

Button Größen

Chips

Filter A
Active Filter
Filter B
Filter C
HTML
<div class="fa-chip">Filter A</div>
<div class="fa-chip selected">Active Filter</div>
chip · filter
Components

Forms

Input controls, selects, and form patterns for capturing user data.

Text Input

We'll never share your email.
Invalid characters detected.
HTML
<div class="fa-field">
  <label class="fa-label fa-label-required">Email</label>
  <input class="fa-input" type="email"
    placeholder="you@example.com">
  <span class="fa-helper">Helper text</span>
</div>
text input · field

Select & Textarea

Toggle, Checkbox & Radio

Components

Feedback

Badges, toasts, tooltips, and other feedback components that communicate system status.

Badges

Primary Accent Active Pending Error Neutral
HTML
<span class="fa-badge fa-badge-success fa-badge-dot">Active</span>
badge · status

Toast Notifications

Changes saved successfully
Your profile has been updated.
Upload failed
File exceeds maximum size of 10MB.
!
Session expiring soon
You will be logged out in 5 minutes.
i
New version available
Refresh to get the latest features.

Tooltip

This is a tooltip
Copied to clipboard!

Progress Bar

Upload progress72%
Neon accent45%
Error state90%
Components

Content & Data

Cards, tables, avatars, and components for displaying structured information.

Card

Project Alpha
Last updated 2 hours ago
Active

A comprehensive redesign of the user onboarding experience with improved conversion goals.

68% complete12 tasks left

Media Cards

Tutorial
Getting Started Guide
Everything you need to set up your first project.
Reference
Component API Docs
Full technical reference for all components.

Data Table

User Role Status Last Active Actions
MR
Maya Rodriguez
maya@example.com
Admin Active 2 min ago
TK
Thomas Klein
t.klein@example.com
Editor Away 1 hour ago
SJ
Sarah Johnson
sarah@example.com
Viewer Offline 3 days ago

Avatars

MR
MR
TK
SJ

Skeleton Loading

Components

Navigation

Tabs, breadcrumbs, accordions, and other wayfinding components.

Tab Navigation

Overview
Analytics
Settings
Team

Breadcrumb

Accordion

A design system is a collection of reusable components, guided by clear standards, that can be assembled together to build any number of applications.
Start by pasting the design token block into your Claude conversation, then use the prompt templates in our Vibe Coding Guide for consistent, high-quality results.
Yes. The design tokens are framework-agnostic CSS custom properties. Component examples use plain HTML/CSS but can be translated to any framework.
Components

Overlays

Modal dialogs for focused interactions and confirmations.

Modal

Confirm deletion

Are you sure you want to delete Project Alpha? This action cannot be undone and all associated data will be permanently removed.

Components

Loading & Status

Spinners, progress bars, and skeleton states for communicating system activity.

Loading Spinners

Vibe Coding

Prompt Library

Ready-to-use Claude prompts, optimized for this design system. Copy, customize, and ship.

New Component — Boilerplate Universal
Create a [COMPONENT_NAME] component using the Functional Aesthetics design system. Use only CSS custom properties (no hardcoded hex values): - Colors: --color-primary-*, --color-accent-*, --text-*, --bg-* - Spacing: --space-1 through --space-24 - Typography: --font-family, --font-size-*, --font-weight-* - Radius: --radius-md (4px), --radius-lg (8px), --radius-xl (12px) - Shadows: --shadow-xs through --shadow-xl - Transitions: --transition-fast (100ms), --transition-normal (200ms) Include: default, hover, focus, active, disabled states. Output: clean HTML + CSS, no external dependencies.
Form with Validation Forms
Build a [FORM_NAME] form with: Fields: [list fields] Design requirements: - Use .fa-field, .fa-label, .fa-input, .fa-helper classes - Required fields: .fa-label-required - Error state: .fa-input.error + .fa-helper.error - Success state: .fa-input.success - Primary submit: .fa-btn.fa-btn-primary - Focus ring: box-shadow: 0 0 0 3px rgba(9,55,29,0.12) Validation: real-time on blur, summary on submit. Accessible: aria-required, aria-describedby, aria-invalid.
Data Table with Sort & Filter Data
Create a sortable data table for [DATA_TYPE] with columns: [columns]. Use the .fa-table styling pattern: - th: 11px uppercase, 0.06em tracking, bg-surface-secondary - td: 14px, 16px padding, border-bottom - Hover row: background var(--color-primary-50) Add: column sort (asc/desc arrows), search filter input (.fa-input), pagination controls (.fa-btn.fa-btn-ghost), row count badge (.fa-badge). Include loading skeleton and empty state.
Dashboard Layout Layout
Build a dashboard layout for [APP_NAME] with: Sidebar (260px): - Logo at top with --color-primary-600 background mark - Nav sections with .ds-nav-item pattern - Active state: left border + primary-50 background Main content: - Top bar: breadcrumb + user avatar - Stats grid: 4 columns, --shadow-xs cards - Content area: max-width 960px, --space-12 padding Responsive: sidebar collapses at 900px. All colors via CSS variables only.
Iterate on Existing Component Refine
Refine this [COMPONENT] component: [PASTE CURRENT CODE HERE] Changes needed: - [describe change 1] - [describe change 2] Constraints: - Keep all CSS variables, no hardcoded values - Maintain existing class names for backwards compatibility - Preserve accessibility attributes - Only output the changed code sections with comments
Vibe Coding

UI Patterns

Common interaction patterns and page layouts — assembled from system components.

Login Form Pattern

Sign in
Welcome back
Vibe Coding

Accessibility

WCAG 2.1 AA compliance guidelines and accessible component patterns.

Color Contrast Ratios

CombinationRatioAA (4.5:1)AAA (7:1)
White on Primary-600 10.3:1 Pass Pass
Dark on Accent 6.8:1 Pass Near miss
Secondary text on white 7.4:1 Pass Pass
Tertiary text on white 3.5:1 Large text only Fail

Claude Accessibility Prompt

Accessibility Audit A11y
Review this component for WCAG 2.1 AA compliance: [PASTE COMPONENT HTML] Check and fix: 1. All images have descriptive alt attributes 2. Form inputs have associated labels (for/id or aria-label) 3. Interactive elements are keyboard reachable (tabindex) 4. Focus styles are visible (focus-visible, not removed) 5. Color is not the only means of conveying information 6. Minimum touch target 44×44px for mobile 7. ARIA roles/states on custom interactive elements 8. Error messages linked via aria-describedby Output: fixed code + list of changes made.
Get Started

Principles

The core values that guide every design and development decision in this system.

Clarity First

Every component communicates its purpose immediately. Ambiguity is eliminated through consistent patterns and clear visual hierarchy.

Token-First

Never hardcode values. Every color, spacing, and radius decision maps to a named token, enabling global changes with a single update.

Composable

Components are atomic building blocks. Complex interfaces emerge from composing simple, well-defined primitives — not from one-off custom styles.

Accessible by Default

WCAG 2.1 AA compliance is not an afterthought — it is embedded in every component through color contrast, keyboard navigation, and ARIA patterns.

Vibe Coding

Importing from Figma

Connect your Figma workspace to pull components, tokens, and styles directly into the design system — and keep everything in sync as designs evolve.

How it works

The Figma integration works in two directions: importing new components for the first time, and updating existing ones when designs change. Both flows use the Figma REST API with a personal access token.

1. Connect

Enter your Figma personal access token and the file URL. Claude reads the component structure via the Figma REST API.

2. Select

Choose which components, color styles, or text styles to import. Preview the mapping before generating any code.

3. Generate

Claude converts Figma nodes into production-ready HTML/CSS components using the design system tokens.

Import a component

Paste a Figma file URL and select a component node to generate a matching HTML/CSS component.

Copy from the browser address bar while the Figma file is open.
Generate in Figma → Account Settings → Personal access tokens. Token stays in your browser only.
Right-click a component in Figma → Copy/Paste → Copy link, then extract the node-id from the URL.

Update an existing component

When a design changes in Figma, regenerate the component code while keeping the class names and token references intact.

WORKFLOW
/* 1. Fetch the updated Figma node */
GET https://api.figma.com/v1/files/{fileKey}/nodes?ids={nodeId}
Authorization: Bearer {personalAccessToken}

/* 2. Send to Claude with the existing component code */
"The Figma node has been updated (data below).
Regenerate the component, keeping class names and CSS variables.
Only output changed sections."

/* 3. Diff & review */
git diff src/components/ComponentName.html

Claude Prompts for Figma import

Import component from Figma JSON Figma
I have a Figma component node exported as JSON (below). Convert it into a production-ready HTML + CSS component for the Functional Aesthetics design system. Rules: - Map Figma fills → CSS variables (--color-primary-*, --color-accent-*) - Map Figma spacing → --space-* tokens (round to nearest 4px step) - Map Figma corner radius → --radius-* tokens - Map Figma text styles → --font-size-* and --font-weight-* tokens - Use class prefix: fa- - Include hover + focus states - Output: component HTML + CSS block only Figma JSON: [PASTE FIGMA NODE JSON HERE]
Sync updated Figma component Update
The Figma design for [COMPONENT_NAME] has changed. Here is the updated Figma node JSON: [PASTE UPDATED JSON] Here is the current component code: [PASTE CURRENT HTML/CSS] Update the component to reflect the Figma changes: - Keep all existing class names (.fa-*) - Keep all CSS variable references - Keep ARIA and accessibility attributes - Only output the lines that changed, with comments marking each change - Do not rewrite unchanged sections
Import color styles from Figma Tokens
I exported all color styles from a Figma file (list below). Map them to the Functional Aesthetics token naming convention and output a CSS :root block. Mapping rules: - Primary brand colors → --color-primary-{50–900} - Accent colors → --color-accent-{50–900} - Neutral grays → --color-neutral-{0–1000} - Semantic (success/error/warning) → --color-success/error/warning - Surface backgrounds → --bg-page / --bg-surface / --bg-surface-secondary - Text colors → --text-primary / --text-secondary / --text-tertiary Figma color styles: [PASTE COLOR LIST]

Figma API reference

EndpointUse caseKey params
/v1/files/{key} Full file structure + all components geometry=paths
/v1/files/{key}/nodes Single component node by ID ids=123:456
/v1/files/{key}/styles All color, text & effect styles
/v1/images/{key} Export component as SVG/PNG ids=, format=svg
/v1/files/{key}/components List all published components
Foundations

Design Tokens

Klicke auf einen Token um ihn zu kopieren. Oder lade alle Tokens auf einmal als tokens.css herunter.

--color-primary #09371D
--color-primary-50 #F0F7F3
--color-primary-100 #D4EBE0
--color-primary-200 #A6D4BC
--color-primary-300 #72BB97
--color-primary-400 #3D9E6E
--color-primary-500 #1A7047
--color-primary-600 #09371D
--color-primary-700 #072E17
--color-primary-800 #052310
--color-primary-900 #031709
--color-accent #CEFC32
--color-accent-50 #F9FFD6
--color-accent-100 #EFFE99
--color-accent-200 #E4FD64
--color-accent-300 #CEFC32
--color-accent-400 #B0DE1A
--color-accent-500 #8CB50E
--color-accent-600 #678906
--color-accent-700 #456003
--color-accent-800 #2A3B01
--color-accent-900 #141E00
--color-success #168500
--color-success-light #D6F5CE
--color-error #DE2417
--color-error-light #FCD1D0
--color-warning #B57300
--color-warning-light #FDEEC0
--bg-page #F7F7F5
--bg-surface #FFFFFF
--bg-surface-secondary #F0F0EC
--bg-surface-tertiary #E8E8E3
--bg-inverse #111110
--text-primary #111110
--text-secondary #555550
--text-tertiary #96968E
--text-disabled #B8B8B1
--text-inverse #FFFFFF
--text-link #09371D
--font-family 'Roboto', sans-serif
--font-size-xs 0.6875rem · 11px
--font-size-sm 0.75rem · 12px
--font-size-base 0.875rem · 14px
--font-size-md 1rem · 16px
--font-size-lg 1.125rem · 18px
--font-size-xl 1.25rem · 20px
--font-size-2xl 1.5rem · 24px
--font-size-3xl 2rem · 32px
--font-size-4xl 2.5rem · 40px
--font-weight-light 300
--font-weight-regular 400
--font-weight-medium 500
--font-weight-bold 700
--line-height-tight 1.25
--line-height-normal 1.5
--line-height-relaxed 1.75
--space-1 0.25rem · 4px
--space-2 0.5rem · 8px
--space-3 0.75rem · 12px
--space-4 1rem · 16px
--space-5 1.25rem · 20px
--space-6 1.5rem · 24px
--space-8 2rem · 32px
--space-10 2.5rem · 40px
--space-12 3rem · 48px
--space-16 4rem · 64px
--space-20 5rem · 80px
--space-24 6rem · 96px
--radius-none 0
--radius-sm 0.125rem · 2px
--radius-md 0.25rem · 4px
--radius-lg 0.5rem · 8px
--radius-xl 0.75rem · 12px
--radius-2xl 1rem · 16px
--radius-full 9999px
--shadow-xs 0 1px 2px rgba(0,0,0,0.05)
--shadow-sm 0 1px 4px rgba(0,0,0,0.08)
--shadow-md 0 4px 12px rgba(0,0,0,0.10)
--shadow-lg 0 8px 24px rgba(0,0,0,0.12)
--shadow-xl 0 16px 40px rgba(0,0,0,0.14)
--transition-fast 100ms ease
--transition-normal 200ms ease
--transition-slow 300ms ease
--z-dropdown 100
--z-sticky 200
--z-overlay 300
--z-modal 400
--z-toast 500
--z-tooltip 600
fa Design System

Design with
intent. Build with
confidence.

A comprehensive design system built for vibe coding. Everything you need to build beautiful, consistent interfaces — tokens, components, patterns, and prompts.

Explore the System

Navigate through foundations, components, and vibe coding resources.

Color System
Brand palette, semantic colors, and accessibility-driven usage guidelines for light and dark contexts.
Typography
Roboto type scale from display headings to captions, with line-height and letter-spacing guidelines.
Components
40+ production-ready components from buttons and forms to tables, modals, and navigation patterns.
Vibe Coding Guide
Optimized prompts, patterns, and workflows for building with Claude — faster, with better results.
Get Started

Quick Start

Von null zu einem funktionierenden Interface in drei Schritten. Tokens einbinden, Komponenten kopieren, loslegen.

1
Tokens einbinden
Lade tokens.css als erste Datei in deinem Projekt. Alle Farben, Abstände, Radien und Typografie stehen dann als CSS-Variablen zur Verfügung.
HTML
<!-- Option A: Direkt in HTML -->
<link rel="stylesheet" href="tokens.css">

<!-- Option B: In CSS importieren -->
@import './tokens.css';

<!-- Option C: Direkt in :root einfügen -->
<!-- Gehe zu Foundations → Design Tokens -->
einbindung
2
Roboto einbinden
Die gesamte Typografie läuft über Roboto. Ein einziger Link-Tag reicht.
HTML
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"
      rel="stylesheet">
google fonts
3
Erste Komponente bauen
Alle Komponenten unter Components haben direkt kopierbare HTML- und CSS-Blöcke. Einfach auf "Copy HTML" oder "Copy CSS" klicken und einfügen.
HTML
<button class="fa-btn fa-btn-primary">Loslegen</button>
<button class="fa-btn fa-btn-accent">Accent</button>
<button class="fa-btn fa-btn-secondary">Secondary</button>
button · actions

Workflow mit Claude

Das System ist für Vibe Coding optimiert. So arbeitest du am effektivsten.

Neues Feature
  1. Tokens kopieren (diese Seite → Schritt 1)
  2. Komponenten-Prompt von der Prompt Library kopieren
  3. Beides in Claude einfügen + Anforderungen beschreiben
  4. Generierten Code direkt nutzen — Tokens sind schon drin
Bestehende Komponente anpassen
  1. Komponente unter Components suchen
  2. "Copy HTML" + "Copy CSS" klicken
  3. Code in Claude einfügen + Änderungen beschreiben
  4. "Behalte alle CSS-Variablen und Klassennamen"

Dateistruktur

Empfohlene Struktur für ein neues Projekt mit diesem System.

TREE
my-project/
├── styles/
│   ├── tokens.css          ← Design Tokens (dieses System)
│   ├── components.css      ← Kopierte Komponenten-Styles
│   └── app.css             ← Deine eigenen Styles
├── components/
│   ├── Button.html         ← Aus dem Design System kopiert
│   └── Card.html
└── index.html
    ↳ <link rel="stylesheet" href="styles/tokens.css">
       <link rel="stylesheet" href="styles/components.css">
projektstruktur
Guide

Vibe Coding with Claude

How to get the best results when building UIs with this design system and Claude as your coding partner.

1. Start with the System Prompt

Always paste the design token block at the start of a new conversation. This primes Claude with your brand.

SYSTEM PROMPT
You are building a UI for Functional Aesthetics.
Always use these CSS variables in every component:

/* Brand */
--color-primary: #09371D;      /* dark forest green */
--color-accent:  #CEFC32;      /* neon yellow-green */

/* Typography */
font-family: 'Roboto', sans-serif;

/* Rules */
- Use semantic CSS variables, never raw hex values in components
- Border radius: 4px (md), 8px (lg), 12px (xl)
- All interactive states: hover, focus, active, disabled
- WCAG AA contrast compliance required

2. Golden Prompt Rules

✓ Do
  • Token Reference tokens by name: "use --color-primary"
  • State Specify all states: "with hover, focus, disabled"
  • Size Define sizes: "sm (32px), md (40px), lg (48px)"
  • A11y Ask for ARIA labels and keyboard navigation
✗ Avoid
  • Color Hardcoding hex values inside component styles
  • Vague "Make it look nice" — be specific about intent
  • Style Inline styles for repeated patterns
  • Magic Magic numbers — always map to spacing tokens

3. Component Request Template

TEMPLATE
Create a [COMPONENT NAME] component:

/* Variants */
- Variants: [list variants]
- Sizes: sm | md | lg
- States: default, hover, focus, active, disabled

/* Design */
- Use CSS variables from the design system
- Border-radius: var(--radius-md)
- Font: var(--font-family), var(--font-size-base)
- Transitions: var(--transition-fast)

/* Output */
- Pure HTML + CSS (no frameworks)
- Include usage example
- Add ARIA attributes for accessibility
Foundations

Color

A purposeful palette built around deep forest green and neon accent, designed for clarity and brand expression.

Corporate Colors

Klicke auf eine Farbe um den Hex-Wert zu kopieren.

Primary #09371D
Primary 500 #1A7047
Primary 400 #3D9E6E
Primary 200 #A6D4BC
Primary 50 #F0F7F3
Accent #CEFC32
Accent 400 #B0DE1A
Neutral 900 #111110
Neutral 600 #555550
White #FFFFFF
Success #168500
Error #DE2417

Full Palette

Primary — Forest Green
50
100
200
300
400
500
600 ★
700
800
900
Accent — Neon Yellow-Green
50
100
200
300 ★
400
500
600
700
800
900
Neutral
0
50
100
200
300
400
500
600
700
800
900

Semantic Colors

Success
#168500
Error
#DE2417
Warning
#B57300

Color Usage Rules

Use the 600 stop for primary CTAs, active navigation states, links, focus rings, and key brand moments. Use 50–100 stops for backgrounds and tinted surfaces. Reserve 800–900 for text on light backgrounds only.
The neon accent (#CEFC32) is reserved for high-emphasis moments: accent buttons, active chips, progress fills, and highlight callouts. Always use dark text (800–900) on accent backgrounds to ensure AA contrast. Never use on small text.
Body text must maintain 4.5:1 contrast ratio (WCAG AA). Large text ≥ 18pt or bold ≥ 14pt requires 3:1. UI components require 3:1. The primary-600 on white achieves 10.3:1. Accent-300 (#CEFC32) on white achieves 6.8:1 — use with dark text.
Foundations

Typography

Roboto as our single typeface — versatile, legible, and professional across all weights and sizes.

Type Scale

Display 56px / Light 300 / tracking -0.03em / lh 1.1
Building Tomorrow
Heading 1 40px / Light 300 / tracking -0.02em / lh 1.2
Functional Design
Heading 2 32px / Regular 400 / tracking -0.01em / lh 1.25
System Overview
Heading 3 24px / Regular 400 / lh 1.3
Component Library
Heading 4 20px / Medium 500 / lh 1.35
Design Tokens
Body Large 18px / Regular 400 / lh 1.75
This is body large text, ideal for introductory paragraphs and lead text. It creates breathing room and improves readability at the start of a section.
Body Default 14px / Regular 400 / lh 1.5
Standard body text for most content. Used in paragraphs, descriptions, and general UI text. Roboto at this size is highly legible across all screen densities.
Label / UI 12px / Medium 500 / tracking 0.02em / lh 1.4
Form Label · Navigation Item · Metadata
Caption 11px / Regular 400 / tracking 0.02em / lh 1.4
Image caption, footnote, or helper text — always at minimum 11px for legibility.
Overline 11px / Medium 500 / tracking 0.08em / uppercase
Section Category
Code 13px / Monospace / lh 1.6
--color-primary: #09371D;
Foundations

Spacing

A consistent 4px base unit system that creates visual harmony across all components and layouts.

Spacing Scale

--space-1
4px · 0.25rem
--space-2
8px · 0.5rem
--space-3
12px · 0.75rem
--space-4
16px · 1rem
--space-5
20px · 1.25rem
--space-6
24px · 1.5rem
--space-8
32px · 2rem
--space-10
40px · 2.5rem
--space-12
48px · 3rem
--space-16
64px · 4rem
--space-20
80px · 5rem
--space-24
96px · 6rem
Foundations

Grid & Layout

A 12-column grid system with responsive breakpoints and container widths.

Breakpoints

NameTokenWidthColumnsGutter
Mobile--container-sm< 640px416px
Tablet--container-md640–960px824px
Desktop--container-lg960–1280px1232px
Wide--container-xl> 1440px1240px

12-Column Grid

span 12
span 6
span 6
span 4
span 4
span 4
span 3
span 3
span 3
span 3
span 8
span 4
Foundations

Elevation & Shape

Shadow and radius tokens that create depth hierarchy and consistent rounding across all components.

Shadow Scale

shadow-xs
Cards at rest
shadow-sm
Cards on hover
shadow-md
Dropdowns
shadow-lg
Toasts, popovers
shadow-xl
Modals, dialogs

Border Radius

radius-none
0px
radius-sm
2px
radius-md
4px
radius-lg
8px
radius-xl
12px
radius-full
9999px
Foundations

Motion

Purposeful transitions that guide attention and communicate state changes without distraction.

Transition Tokens

TokenValueUse Case
--transition-fast100ms easeHover states, color changes, icon swaps
--transition-normal200ms easeExpanding elements, toggles, checkboxes
--transition-slow300ms easeModals, drawers, page transitions

Hover the buttons to see transitions in action:

Foundations

Design Tokens

All CSS custom properties — copy the root block and paste it into any project.

Complete Token Reference

CSS
:root {
  /* ── Brand ─────────────────────── */
  --color-primary:          #09371D;
  --color-primary-50:       #F0F7F3;
  --color-primary-100:      #D4EBE0;
  --color-primary-200:      #A6D4BC;
  --color-primary-300:      #72BB97;
  --color-primary-400:      #3D9E6E;
  --color-primary-500:      #1A7047;
  --color-primary-600:      #09371D;
  --color-primary-700:      #072E17;
  --color-primary-800:      #052310;
  --color-primary-900:      #031709;

  --color-accent:           #CEFC32;
  --color-accent-50:        #F9FFD6;
  --color-accent-100:       #EFFE99;
  --color-accent-200:       #E4FD64;
  --color-accent-300:       #CEFC32;
  --color-accent-400:       #B0DE1A;
  --color-accent-500:       #8CB50E;
  --color-accent-600:       #678906;
  --color-accent-700:       #456003;
  --color-accent-800:       #2A3B01;
  --color-accent-900:       #141E00;

  /* ── Semantic ───────────────────── */
  --color-success:          #168500;
  --color-success-light:    #D6F5CE;
  --color-error:            #DE2417;
  --color-error-light:      #FCD1D0;
  --color-warning:          #B57300;
  --color-warning-light:    #FDEEC0;

  /* ── Backgrounds ────────────────── */
  --bg-page:                #F7F7F5;
  --bg-surface:             #FFFFFF;
  --bg-surface-secondary:   #F0F0EC;
  --bg-surface-tertiary:    #E8E8E3;
  --bg-inverse:             #111110;

  /* ── Text ───────────────────────── */
  --text-primary:           #111110;
  --text-secondary:         #555550;
  --text-tertiary:          #96968E;
  --text-disabled:          #B8B8B1;
  --text-inverse:           #FFFFFF;
  --text-link:              #09371D;

  /* ── Typography ─────────────────── */
  --font-family:      'Roboto', sans-serif;
  --font-size-xs:           0.6875rem;
  --font-size-sm:           0.75rem;
  --font-size-base:         0.875rem;
  --font-size-md:           1rem;
  --font-size-lg:           1.125rem;
  --font-size-xl:           1.25rem;
  --font-size-2xl:          1.5rem;
  --font-size-3xl:          2rem;
  --font-size-4xl:          2.5rem;
  --font-weight-light:      300;
  --font-weight-regular:    400;
  --font-weight-medium:     500;
  --font-weight-bold:       700;
  --line-height-tight:      1.25;
  --line-height-normal:     1.5;
  --line-height-relaxed:    1.75;

  /* ── Spacing ────────────────────── */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;

  /* ── Border Radius ──────────────── */
  --radius-none: 0;
  --radius-sm:   0.125rem;
  --radius-md:   0.25rem;
  --radius-lg:   0.5rem;
  --radius-xl:   0.75rem;
  --radius-2xl:  1rem;
  --radius-full: 9999px;

  /* ── Shadows ────────────────────── */
  --shadow-xs:  0 1px 2px rgba(0,0,0,0.05);
  --shadow-sm:  0 1px 4px rgba(0,0,0,0.08);
  --shadow-md:  0 4px 12px rgba(0,0,0,0.10);
  --shadow-lg:  0 8px 24px rgba(0,0,0,0.12);
  --shadow-xl:  0 16px 40px rgba(0,0,0,0.14);

  /* ── Transitions ────────────────── */
  --transition-fast:   100ms ease;
  --transition-normal: 200ms ease;
  --transition-slow:   300ms ease;
}
Components

Actions

Buttons, links, and interactive controls that trigger operations and navigate users.

Button Variants

Immer kursiv, keine runden Ecken. Primary und Accent tauschen beim Hover die Farben.

HTML
<button class="fa-btn fa-btn-primary">Primary</button>
<button class="fa-btn fa-btn-accent">Accent</button>
<button class="fa-btn fa-btn-secondary">Secondary</button>
<button class="fa-btn fa-btn-ghost">Ghost</button>
<button class="fa-btn fa-btn-danger">Danger</button>
button · 5 variants

Button Größen

Chips

Filter A
Active Filter
Filter B
Filter C
HTML
<div class="fa-chip">Filter A</div>
<div class="fa-chip selected">Active Filter</div>
chip · filter
Components

Forms

Input controls, selects, and form patterns for capturing user data.

Text Input

We'll never share your email.
Invalid characters detected.
HTML
<div class="fa-field">
  <label class="fa-label fa-label-required">Email</label>
  <input class="fa-input" type="email"
    placeholder="you@example.com">
  <span class="fa-helper">Helper text</span>
</div>
text input · field

Select & Textarea

Toggle, Checkbox & Radio

Components

Feedback

Badges, toasts, tooltips, and other feedback components that communicate system status.

Badges

Primary Accent Active Pending Error Neutral
HTML
<span class="fa-badge fa-badge-success fa-badge-dot">Active</span>
badge · status

Toast Notifications

Changes saved successfully
Your profile has been updated.
Upload failed
File exceeds maximum size of 10MB.
!
Session expiring soon
You will be logged out in 5 minutes.
i
New version available
Refresh to get the latest features.

Tooltip

This is a tooltip
Copied to clipboard!

Progress Bar

Upload progress72%
Neon accent45%
Error state90%
Components

Content & Data

Cards, tables, avatars, and components for displaying structured information.

Card

Project Alpha
Last updated 2 hours ago
Active

A comprehensive redesign of the user onboarding experience with improved conversion goals.

68% complete12 tasks left

Media Cards

Tutorial
Getting Started Guide
Everything you need to set up your first project.
Reference
Component API Docs
Full technical reference for all components.

Data Table

User Role Status Last Active Actions
MR
Maya Rodriguez
maya@example.com
Admin Active 2 min ago
TK
Thomas Klein
t.klein@example.com
Editor Away 1 hour ago
SJ
Sarah Johnson
sarah@example.com
Viewer Offline 3 days ago

Avatars

MR
MR
TK
SJ

Skeleton Loading

Components

Navigation

Tabs, breadcrumbs, accordions, and other wayfinding components.

Tab Navigation

Overview
Analytics
Settings
Team

Breadcrumb

Accordion

A design system is a collection of reusable components, guided by clear standards, that can be assembled together to build any number of applications.
Start by pasting the design token block into your Claude conversation, then use the prompt templates in our Vibe Coding Guide for consistent, high-quality results.
Yes. The design tokens are framework-agnostic CSS custom properties. Component examples use plain HTML/CSS but can be translated to any framework.
Components

Overlays

Modal dialogs for focused interactions and confirmations.

Modal

Confirm deletion

Are you sure you want to delete Project Alpha? This action cannot be undone and all associated data will be permanently removed.

Components

Loading & Status

Spinners, progress bars, and skeleton states for communicating system activity.

Loading Spinners

Vibe Coding

Prompt Library

Ready-to-use Claude prompts, optimized for this design system. Copy, customize, and ship.

New Component — Boilerplate Universal
Create a [COMPONENT_NAME] component using the Functional Aesthetics design system. Use only CSS custom properties (no hardcoded hex values): - Colors: --color-primary-*, --color-accent-*, --text-*, --bg-* - Spacing: --space-1 through --space-24 - Typography: --font-family, --font-size-*, --font-weight-* - Radius: --radius-md (4px), --radius-lg (8px), --radius-xl (12px) - Shadows: --shadow-xs through --shadow-xl - Transitions: --transition-fast (100ms), --transition-normal (200ms) Include: default, hover, focus, active, disabled states. Output: clean HTML + CSS, no external dependencies.
Form with Validation Forms
Build a [FORM_NAME] form with: Fields: [list fields] Design requirements: - Use .fa-field, .fa-label, .fa-input, .fa-helper classes - Required fields: .fa-label-required - Error state: .fa-input.error + .fa-helper.error - Success state: .fa-input.success - Primary submit: .fa-btn.fa-btn-primary - Focus ring: box-shadow: 0 0 0 3px rgba(9,55,29,0.12) Validation: real-time on blur, summary on submit. Accessible: aria-required, aria-describedby, aria-invalid.
Data Table with Sort & Filter Data
Create a sortable data table for [DATA_TYPE] with columns: [columns]. Use the .fa-table styling pattern: - th: 11px uppercase, 0.06em tracking, bg-surface-secondary - td: 14px, 16px padding, border-bottom - Hover row: background var(--color-primary-50) Add: column sort (asc/desc arrows), search filter input (.fa-input), pagination controls (.fa-btn.fa-btn-ghost), row count badge (.fa-badge). Include loading skeleton and empty state.
Dashboard Layout Layout
Build a dashboard layout for [APP_NAME] with: Sidebar (260px): - Logo at top with --color-primary-600 background mark - Nav sections with .ds-nav-item pattern - Active state: left border + primary-50 background Main content: - Top bar: breadcrumb + user avatar - Stats grid: 4 columns, --shadow-xs cards - Content area: max-width 960px, --space-12 padding Responsive: sidebar collapses at 900px. All colors via CSS variables only.
Iterate on Existing Component Refine
Refine this [COMPONENT] component: [PASTE CURRENT CODE HERE] Changes needed: - [describe change 1] - [describe change 2] Constraints: - Keep all CSS variables, no hardcoded values - Maintain existing class names for backwards compatibility - Preserve accessibility attributes - Only output the changed code sections with comments
Vibe Coding

UI Patterns

Common interaction patterns and page layouts — assembled from system components.

Login Form Pattern

Sign in
Welcome back
Vibe Coding

Accessibility

WCAG 2.1 AA compliance guidelines and accessible component patterns.

Color Contrast Ratios

CombinationRatioAA (4.5:1)AAA (7:1)
White on Primary-600 10.3:1 Pass Pass
Dark on Accent 6.8:1 Pass Near miss
Secondary text on white 7.4:1 Pass Pass
Tertiary text on white 3.5:1 Large text only Fail

Claude Accessibility Prompt

Accessibility Audit A11y
Review this component for WCAG 2.1 AA compliance: [PASTE COMPONENT HTML] Check and fix: 1. All images have descriptive alt attributes 2. Form inputs have associated labels (for/id or aria-label) 3. Interactive elements are keyboard reachable (tabindex) 4. Focus styles are visible (focus-visible, not removed) 5. Color is not the only means of conveying information 6. Minimum touch target 44×44px for mobile 7. ARIA roles/states on custom interactive elements 8. Error messages linked via aria-describedby Output: fixed code + list of changes made.
Get Started

Principles

The core values that guide every design and development decision in this system.

Clarity First

Every component communicates its purpose immediately. Ambiguity is eliminated through consistent patterns and clear visual hierarchy.

Token-First

Never hardcode values. Every color, spacing, and radius decision maps to a named token, enabling global changes with a single update.

Composable

Components are atomic building blocks. Complex interfaces emerge from composing simple, well-defined primitives — not from one-off custom styles.

Accessible by Default

WCAG 2.1 AA compliance is not an afterthought — it is embedded in every component through color contrast, keyboard navigation, and ARIA patterns.

Vibe Coding

Importing from Figma

Connect your Figma workspace to pull components, tokens, and styles directly into the design system — and keep everything in sync as designs evolve.

How it works

The Figma integration works in two directions: importing new components for the first time, and updating existing ones when designs change. Both flows use the Figma REST API with a personal access token.

1. Connect

Enter your Figma personal access token and the file URL. Claude reads the component structure via the Figma REST API.

2. Select

Choose which components, color styles, or text styles to import. Preview the mapping before generating any code.

3. Generate

Claude converts Figma nodes into production-ready HTML/CSS components using the design system tokens.

Import a component

Paste a Figma file URL and select a component node to generate a matching HTML/CSS component.

Copy from the browser address bar while the Figma file is open.
Generate in Figma → Account Settings → Personal access tokens. Token stays in your browser only.
Right-click a component in Figma → Copy/Paste → Copy link, then extract the node-id from the URL.

Update an existing component

When a design changes in Figma, regenerate the component code while keeping the class names and token references intact.

WORKFLOW
/* 1. Fetch the updated Figma node */
GET https://api.figma.com/v1/files/{fileKey}/nodes?ids={nodeId}
Authorization: Bearer {personalAccessToken}

/* 2. Send to Claude with the existing component code */
"The Figma node has been updated (data below).
Regenerate the component, keeping class names and CSS variables.
Only output changed sections."

/* 3. Diff & review */
git diff src/components/ComponentName.html

Claude Prompts for Figma import

Import component from Figma JSON Figma
I have a Figma component node exported as JSON (below). Convert it into a production-ready HTML + CSS component for the Functional Aesthetics design system. Rules: - Map Figma fills → CSS variables (--color-primary-*, --color-accent-*) - Map Figma spacing → --space-* tokens (round to nearest 4px step) - Map Figma corner radius → --radius-* tokens - Map Figma text styles → --font-size-* and --font-weight-* tokens - Use class prefix: fa- - Include hover + focus states - Output: component HTML + CSS block only Figma JSON: [PASTE FIGMA NODE JSON HERE]
Sync updated Figma component Update
The Figma design for [COMPONENT_NAME] has changed. Here is the updated Figma node JSON: [PASTE UPDATED JSON] Here is the current component code: [PASTE CURRENT HTML/CSS] Update the component to reflect the Figma changes: - Keep all existing class names (.fa-*) - Keep all CSS variable references - Keep ARIA and accessibility attributes - Only output the lines that changed, with comments marking each change - Do not rewrite unchanged sections
Import color styles from Figma Tokens
I exported all color styles from a Figma file (list below). Map them to the Functional Aesthetics token naming convention and output a CSS :root block. Mapping rules: - Primary brand colors → --color-primary-{50–900} - Accent colors → --color-accent-{50–900} - Neutral grays → --color-neutral-{0–1000} - Semantic (success/error/warning) → --color-success/error/warning - Surface backgrounds → --bg-page / --bg-surface / --bg-surface-secondary - Text colors → --text-primary / --text-secondary / --text-tertiary Figma color styles: [PASTE COLOR LIST]

Figma API reference

EndpointUse caseKey params
/v1/files/{key} Full file structure + all components geometry=paths
/v1/files/{key}/nodes Single component node by ID ids=123:456
/v1/files/{key}/styles All color, text & effect styles
/v1/images/{key} Export component as SVG/PNG ids=, format=svg
/v1/files/{key}/components List all published components