Design System Entwicklung als Subscription

Wann brauchen Sie ein Design System?

Ein Design System ist keine Sammlung von Buttons und Farben. Es ist ein lebendiges System aus Prinzipien, Komponenten und Patterns das sicherstellt, dass Ihr Produkt konsistent aussieht und sich konsistent anfühlt, egal wer daran arbeitet.

Die typischen Symptome ohne Design System

  • Inkonsistente UI: Jede Seite sieht anders aus. Verschiedene Abstände, verschiedene Farben, verschiedene Button-Stile
  • Langsame Entwicklung: Jedes Feature erfordert Custom-Styling. Kein Entwickler nutzt existierende Komponenten weil sie nicht dokumentiert sind
  • Design-Dev Ping-Pong: Designer liefern Mockups, Entwickler bauen sie unterschiedlich um. Endlose Review-Zyklen
  • Accessibility-Lücken: Jede Komponente implementiert Accessibility anders, oder gar nicht
  • Onboarding-Probleme: Neue Entwickler brauchen Wochen um den visuellen Standard zu verstehen

Der ROI eines Design Systems

InvestitionOhne Design SystemMit Design System
Neue Seite bauen3-5 Tage0,5-1 Tag
Design Review2-3 Runden pro Feature0-1 Runde
Onboarding neuer Entwickler4 Wochen1 Woche
Redesign/Rebranding3-6 Monate2-4 Wochen (Token-Wechsel)
Accessibility AuditMonate an NacharbeitBereits eingebaut
Bug Reports "sieht komisch aus"WöchentlichFast nie

Faustregel: Ab 3 Entwicklern und 20+ Screens lohnt sich ein Design System. Ab 5 Entwicklern ist es unverzichtbar. Die Investition amortisiert sich typischerweise nach 3-4 Monaten.

Von Figma zum Code: Unser Prozess

Design Tokens als Foundation

Design Tokens sind die atomaren Einheiten Ihres Design Systems. Farben, Abstände, Schriftgrößen, Schatten, Border-Radii, alles als Variablen definiert.

Vorteile von Design Tokens:

  • Single Source of Truth: Figma und Code nutzen dieselben Werte
  • Theming: Light Mode, Dark Mode, White-Label mit einem Token-Wechsel
  • Konsistenz: Kein Entwickler erfindet Farben oder Abstände. Alles kommt aus dem Token-Set
  • Automatisierung: Token-Änderungen in Figma propagieren automatisch in den Code

Unsere Token-Architektur

tokens/
├── global/
│   ├── colors.json        # Basis-Palette (blue-500, gray-100, etc.)
│   ├── spacing.json       # 4px Grid (xs, sm, md, lg, xl)
│   ├── typography.json    # Font Families, Sizes, Weights
│   ├── shadows.json       # Elevation System
│   └── radii.json         # Border Radii
├── semantic/
│   ├── colors.json        # primary, secondary, success, error, etc.
│   ├── spacing.json       # component-padding, page-margin, etc.
│   └── typography.json    # heading-1, body-text, caption, etc.
└── component/
    ├── button.json        # Button-spezifische Tokens
    ├── input.json         # Input-spezifische Tokens
    └── card.json          # Card-spezifische Tokens

Drei Ebenen: Global (Rohwerte) → Semantic (Bedeutung) → Component (Kontext). Eine Änderung auf Global-Ebene propagiert durch alle Ebenen.

Figma-Integration

Wir synchronisieren Figma und Code bidirektional:

  1. Designer definiert Tokens als Figma Variables
  2. Token Studio exportiert Tokens als JSON
  3. Style Dictionary transformiert Tokens in CSS Custom Properties und Tailwind Config
  4. CI/CD deployed Token-Änderungen automatisch
  5. Storybook zeigt die aktuelle Token-Dokumentation

Component Library Architektur

Headless Components mit Radix UI

Wir trennen Verhalten von Styling. Radix UI liefert zugängliche, keyboard-navigierbare, screen-reader-freundliche Primitives. Wir stylen sie mit Tailwind CSS.

Warum Headless?

  • Accessibility eingebaut: WAI-ARIA konform ohne manuelle Implementierung
  • Keyboard Navigation: Tab, Enter, Escape, Arrow Keys, alles funktioniert
  • Styling-Freiheit: Kein Überschreiben von Framework-Styles nötig
  • Composable: Kleinere Primitives lassen sich zu komplexen Komponenten zusammenbauen

Komponenten-Kategorien

KategorieBeispieleKomplexität
PrimitivesButton, Badge, Avatar, SeparatorNiedrig
Form ControlsInput, Select, Checkbox, Radio, Switch, DatePickerMittel
FeedbackToast, Alert, Dialog, Popover, TooltipMittel
NavigationTabs, Breadcrumbs, Sidebar, CommandPaletteMittel
Data DisplayTable, DataGrid, Chart, KPI CardHoch
LayoutStack, Grid, Container, DividerNiedrig
CompositeFileUpload, SearchWithFilters, UserCardHoch

Varianten-System

Jede Komponente unterstützt konsistente Varianten:

  • Size: sm, md, lg (manche auch xs und xl)
  • Variant: default, outline, ghost, destructive
  • State: default, hover, active, focus, disabled, loading
  • Color: Semantische Farben aus den Design Tokens

Wir nutzen CVA (Class Variance Authority) oder Tailwind Variants für die Varianten-Implementierung. Das garantiert typsichere Varianten mit TypeScript Autocomplete.

Storybook: Die lebende Dokumentation

Jede Komponente wird in Storybook dokumentiert. Storybook ist die interaktive Bibliothek die Designer, Entwickler und Product Owner nutzen um Komponenten zu finden, zu verstehen und zu testen.

Was jede Story enthält

  • Alle Varianten: Jede Size, jeder Variant, jeder State in einer Übersicht
  • Interactive Controls: Props live ändern und das Ergebnis sehen
  • Code Snippets: Copy-paste-fertiger Code für jede Variante
  • Accessibility Checks: Automatische a11y-Tests pro Story
  • Responsive Preview: Mobile, Tablet, Desktop in einem Klick
  • Design Tokens: Welche Tokens die Komponente verwendet

Chromatic für Visual Regression Testing

Jeder PR wird automatisch auf visuelle Veränderungen geprüft:

  1. Chromatic rendert jede Story als Screenshot
  2. Vergleich mit der vorherigen Version (Pixel-für-Pixel)
  3. Unbeabsichtigte Änderungen werden im PR als Review markiert
  4. Designer können visuelle Änderungen in Chromatic approven

Ergebnis: Kein CSS-Change bricht versehentlich eine Komponente in einem anderen Teil der App.

Tailwind CSS vs CSS-in-JS: Unsere Entscheidung

Wir haben jahrelang Styled Components und Emotion genutzt. Seit 2022 setzen wir ausschließlich auf Tailwind CSS. Hier ist warum:

Der Vergleich

KriteriumTailwind CSSCSS-in-JS (Styled Components)
PerformanceZero RuntimeRuntime-Overhead (Bundle + Rendering)
Bundle Size~10KB (Purged)15-30KB Library + generierte Styles
Server ComponentsKompatibelNicht kompatibel (Client-only)
Developer ExperienceUtility-Klassen im JSXSeparate Styled-Dateien
Design Tokenstailwind.config.tsTheme Provider
Dark Modedark: PrefixTheme-Wechsel im Provider
Responsivesm:, md:, lg:Media Queries in JS
Co-LocationStyles direkt an der KomponenteSeparate Dateien oder Template Literals
Onboarding1-2 Tage EingewöhnungSofort verständlich
IDE SupportTailwind IntelliSense (exzellent)Weniger IDE-Support
Tree-ShakingAutomatisch (nur genutzte Klassen)Nicht möglich

Warum Tailwind gewinnt: Performance (Zero Runtime), Server Component Compatibility, und schnellere Entwicklung nach der Eingewöhnungsphase. Der einzige Nachteil, lange Klassennamen, wird durch CVA und Component-Abstraktion gelöst.

Warum nicht beide?

Einige Teams kombinieren Tailwind mit CSS-in-JS. Wir raten davon ab. Zwei Styling-Systeme bedeuten zwei mentale Modelle, inkonsistente Patterns und doppelten Bundle-Overhead. Wählen Sie eines und bleiben Sie dabei.

Accessibility: Kein Afterthought

Accessibility (a11y) ist kein Feature das man am Ende einbaut. Es ist ein Qualitätsmerkmal das von Anfang an in jeder Komponente stecken muss.

WCAG 2.2 Level AA

Jede Komponente die wir bauen erfüllt WCAG 2.2 Level AA:

  • Perceivable: Ausreichende Kontrastverhältnisse (4.5:1 für Text, 3:1 für UI), Alt-Texte, Beschriftungen
  • Operable: Vollständige Keyboard-Navigation, keine Zeitlimits, Skip-Links
  • Understandable: Konsistente Navigation, klare Fehlermeldungen, vorhersagbares Verhalten
  • Robust: Semantisches HTML, korrekte ARIA-Attribute, Screen-Reader getestet

Automatisierte a11y-Tests

  • Storybook a11y Addon: Axe-Core Tests für jede Story
  • Playwright a11y: Automatisierte Accessibility-Tests in der CI/CD Pipeline
  • Lighthouse: Accessibility-Score als Quality Gate (Minimum 95)
  • Screen-Reader Testing: Manuelles Testing mit VoiceOver (macOS) und NVDA (Windows)

Fokus-Management

Fokus-Management ist der am häufigsten übersehene Accessibility-Aspekt:

  • Focus Trap: In Dialogen und Modals bleibt der Fokus innerhalb
  • Focus Restore: Nach dem Schließen eines Modals kehrt der Fokus zum Trigger zurück
  • Focus Visible: :focus-visible statt :focus für Keyboard-only Styling
  • Skip to Content: Überspringt Navigation für Screen-Reader und Keyboard-Nutzer
  • Logical Tab Order: Die Tab-Reihenfolge folgt dem visuellen Layout

Design System für mehrere Produkte

Wenn Ihr Unternehmen mehrere Produkte hat, ist ein geteiltes Design System der Schlüssel zu Konsistenz und Effizienz.

Multi-Brand Architektur

packages/
├── design-tokens/
│   ├── brand-a/          # Tokens für Produkt A
│   ├── brand-b/          # Tokens für Produkt B
│   └── shared/           # Geteilte Tokens (Spacing, Typography Scale)
├── ui-primitives/        # Headless Components (brand-agnostisch)
├── ui-brand-a/           # Brand A styled Components
└── ui-brand-b/           # Brand B styled Components
  • Primitives: Verhalten ist identisch über alle Brands
  • Tokens: Jede Brand hat eigene Farben, Schriften, Radii
  • Themed Components: Derselbe Button, unterschiedliches Aussehen

White-Label Support

Für SaaS-Produkte die von Kunden gebrandet werden:

  • CSS Custom Properties: Runtime-Theming ohne Rebuild
  • Token Override API: Kunden laden ihre Tokens, das System passt sich an
  • Logo, Favicon, Fonts: Konfigurierbar pro Mandant
  • Preview: Kunden sehen ihre Anpassungen live vor dem Speichern

Design System Maintenance

Ein Design System ist nie fertig. Es wächst mit Ihrem Produkt.

Governance

  • Contribution Guidelines: Wie wird eine neue Komponente vorgeschlagen und eingebaut?
  • Breaking Change Policy: Semantic Versioning, Migration Guides, Deprecation Warnings
  • Design Review: Jede neue Komponente wird von Design und Engineering reviewed
  • Usage Analytics: Welche Komponenten werden wie oft genutzt? Welche nicht?

Versionierung und Distribution

  • NPM Package: Das Design System wird als internes NPM-Paket published
  • Semantic Versioning: Major für Breaking Changes, Minor für neue Komponenten, Patch für Fixes
  • Changelog: Automatisch generiert aus Conventional Commits
  • Migration Guides: Für jede Major-Version eine Schritt-für-Schritt-Anleitung

So arbeiten wir an Ihrem Design System

1. Audit des Ist-Zustands

Wir analysieren Ihre bestehende UI: wie viele verschiedene Button-Stile gibt es? Wie viele Farben? Wie viele Schriftgrößen? Das Ergebnis ist eine Component Inventory die zeigt wo Inkonsistenzen liegen.

2. Token-Definition

Gemeinsam mit Ihrem Design-Team definieren wir das Token-System: Farben, Spacing, Typography, Shadows, Radii. In Figma und als JSON.

3. Core Components

Die ersten 15-20 Komponenten die 80% der UI abdecken: Button, Input, Select, Checkbox, Radio, Switch, Dialog, Toast, Card, Table, Badge, Avatar, Tabs, Sidebar, Form.

4. Storybook & Dokumentation

Jede Komponente mit interaktiver Dokumentation, Code-Beispielen und a11y-Tests in Storybook.

Unser Prozess im Detail: Development as a Subscription

5. Integration

Die Component Library wird in Ihre bestehenden React oder Next.js Projekte integriert. Schrittweise Migration von Custom-Styles zu Design-System Komponenten.

6. Maintenance

Neue Komponenten bei Bedarf, Token-Updates bei Redesign, Dependency-Updates, Storybook-Aktualisierungen. Alles in Ihrer Subscription enthalten.

Häufige Fragen zum Design System

Ab welcher Teamgröße lohnt sich ein Design System?

Ab 3 Entwicklern die am selben Produkt arbeiten. Darunter reicht eine gut organisierte Komponentenbibliothek ohne die volle Design-System-Infrastruktur (Tokens, Storybook, Chromatic).

Wie lange dauert der Aufbau eines Design Systems?

Die Core Components (15-20 Stück) dauern 4-6 Wochen. Ein vollständiges Design System mit 50+ Komponenten, Dark Mode, Responsive, und Accessibility: 3-4 Monate. Danach wächst es kontinuierlich mit Ihrem Produkt.

Können wir ein bestehendes Design System nutzen (Shadcn, MUI)?

Ja, aber mit Bedacht. Wir empfehlen shadcn/ui als Ausgangspunkt: es ist Copy-Paste (kein Dependency-Lock), Tailwind-basiert und nutzt Radix UI Primitives. MUI empfehlen wir nicht, zu viel Framework-Vendor-Lock-in und Runtime-Overhead.

Design System vs Component Library, was ist der Unterschied?

Eine Component Library ist Code. Ein Design System ist Code plus Design Tokens, Design Principles, Usage Guidelines, Contribution Workflow und Governance. Die Library ist ein Teil des Systems, nicht das Ganze.

Was kostet ein Design System?

Der Aufbau: 2-4 Monate Subscription (ab Scale 150 empfohlen). Die Maintenance: ein kleiner Teil Ihrer laufenden Subscription. Der ROI: ab Monat 3-4 positiv. Vergleich der Modelle: Freelancer vs Agentur vs Subscription.

Brauche ich einen Designer oder liefern Sie das Design mit?

Idealerweise haben Sie einen Designer der die Figma-Seite pflegt. Wir übersetzen Design in Code. Wenn Sie keinen Designer haben, können wir mit etablierten Design-Systemen (wie Shadcn oder eigenen Tokens) arbeiten, aber die besten Ergebnisse entstehen in der Zusammenarbeit von Design und Engineering.

Verwandte Leistungen

Kostenrechner

Vergleich: proreactware vs. vergleichbare interne Kapazität

3 Items gleichzeitig

~2.5 Entwickler intern

€30.000

pro Monat (Gehalt + AG + Tools + Büro)

Advanced 300

€9.995

pro Monat (fix, kein Recruiting/Onboarding)

Ersparnis: €20.005/Monat (67%)

€240.060/Jahr, plus eingesparte Recruiting-Kosten (~€15.000 pro Stelle)

Kalkulation basiert auf Ø €12.000 Gesamtkosten/Monat pro Senior-Entwickler in Deutschland (€8.000 Gehalt + ~21% AG-Anteile + Tools + anteilig Recruiting/Onboarding/Büro). Tatsaechliche Kosten variieren je nach Standort und Seniorität.

Design System besprechen

Buchen Sie ein kostenloses Erstgespräch.

Erstgespräch buchen

Wir respektieren Ihre Privatsphäre

Diese Website verwendet Cookies für essentielle Funktionen und optional für Analyse und Marketing. Datenschutzerklärung