Files
michaelschiemer/docs/todo/design-token-system-future-features.md
Michael Schiemer 36ef2a1e2c
Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
fix: Gitea Traefik routing and connection pool optimization
- Remove middleware reference from Gitea Traefik labels (caused routing issues)
- Optimize Gitea connection pool settings (MAX_IDLE_CONNS=30, authentication_timeout=180s)
- Add explicit service reference in Traefik labels
- Fix intermittent 504 timeouts by improving PostgreSQL connection handling

Fixes Gitea unreachability via git.michaelschiemer.de
2025-11-09 14:46:15 +01:00

11 KiB

Design Token System - Empfohlene Features

Übersicht

Dieses Dokument beschreibt empfohlene Erweiterungen für das Design Token System, die das System noch mächtiger und flexibler machen würden.

Phase 1: Datenbank-Speicherung (Priorität: Hoch)

1.1 Database Schema

  • Datei: src/Framework/Design/Migrations/CreateDesignTokensTable.php
  • Schema:
    • id (VARCHAR 255, Primary Key)
    • name (VARCHAR 255, NOT NULL)
    • type (VARCHAR 50) - 'color', 'spacing', 'typography', etc.
    • state (VARCHAR 50, DEFAULT 'default')
    • scope (VARCHAR 100) - 'framework', 'admin', etc.
    • value_data (JSON) - Token-Wert
    • base_token_id (VARCHAR 255, NULL) - Für abgeleitete Tokens
    • mutation_data (JSON, NULL) - StateMutation als JSON
    • description (TEXT)
    • metadata (JSON)
    • created_at, updated_at (TIMESTAMP)
    • Indizes: (name, state, scope), scope, type, state

1.2 DesignTokenEntity

  • Datei: src/Framework/Design/Database/DesignTokenEntity.php
  • Funktionalität: Entity-Mapping für Design Tokens
  • Features:
    • Serialisierung/Deserialisierung von Token-ValueObjects
    • StateMutation als JSON speichern/laden
    • Versionierung von Tokens

1.3 DatabaseTokenRepository

  • Datei: src/Framework/Design/Repositories/DatabaseTokenRepository.php
  • Funktionalität:
    • Lädt Tokens aus Datenbank
    • Konvertiert DB-Entities zu TokenInterface
    • Caching für Performance
    • Filterung nach Scope, Type, State

1.4 HybridTokenRegistry

  • Datei: src/Framework/Design/ValueObjects/HybridTokenRegistry.php
  • Funktionalität:
    • Lädt Code-basierte Tokens (wie bisher)
    • Lädt DB-Tokens (optional)
    • Merged beide Quellen (DB überschreibt Code)
    • Cache für Performance
    • Hot-Reload für DB-Änderungen (optional)

Vorteile:

  • Dynamische Anpassung ohne Code-Deployment
  • UI für Token-Verwaltung möglich
  • Versionierung/Audit-Trail
  • Multi-Tenant Support

Phase 2: Token-Validierung & Linting (Priorität: Mittel)

2.1 Token Validator

  • Datei: src/Framework/Design/Validators/TokenValidator.php
  • Funktionalität:
    • Validiert Token-Werte (z.B. OKLCH-Werte im gültigen Bereich)
    • Prüft auf fehlende States
    • Prüft auf inkonsistente Mutationen
    • WCAG-Kontrast-Validierung für Farben

2.2 Token Linter

  • Datei: src/Framework/Design/Linters/TokenLinter.php
  • Funktionalität:
    • Prüft Naming Conventions
    • Prüft auf ungenutzte Tokens
    • Prüft auf fehlende Fallbacks
    • Prüft auf Performance-Probleme

2.3 Console Command

  • Datei: src/Application/Console/Commands/Design/ValidateTokensCommand.php
  • Command: design:validate-tokens
  • Funktionalität:
    • Validiert alle Tokens
    • Zeigt Linter-Warnungen
    • Prüft WCAG-Kontrast
    • Generiert Report

Phase 3: Token-Export & Import (Priorität: Mittel)

3.1 Export-Formate

  • JSON: Standard JSON-Format für Tokens
  • W3C Design Tokens: W3C Design Tokens Format
  • Style Dictionary: Style Dictionary Format
  • CSS Variables: Reine CSS Custom Properties
  • TypeScript: TypeScript-Typen für Frontend

3.2 Import-Formate

  • JSON: Import aus JSON
  • W3C Design Tokens: Import aus W3C Format
  • CSS: Parse bestehende CSS Custom Properties
  • Figma Tokens: Import aus Figma Tokens Plugin

3.3 Console Commands

  • Datei: src/Application/Console/Commands/Design/ExportTokensCommand.php
  • Command: design:export-tokens --format=json|w3c|css|typescript
  • Datei: src/Application/Console/Commands/Design/ImportTokensCommand.php
  • Command: design:import-tokens --file=path/to/tokens.json --format=json

Phase 4: Token-Themes & Varianten (Priorität: Hoch)

4.1 Theme System

  • Datei: src/Framework/Design/ValueObjects/Theme.php
  • Funktionalität:
    • Definiert Theme-Varianten (z.B. "Light", "Dark", "High Contrast")
    • Theme-spezifische Token-Überschreibungen
    • Theme-Wechsel zur Laufzeit

4.2 Theme Registry

  • Datei: src/Framework/Design/ValueObjects/ThemeRegistry.php
  • Funktionalität:
    • Verwaltet mehrere Themes
    • Theme-Aktivierung
    • Theme-Merging (Basis-Theme + Varianten)

4.3 CSS-Generierung für Themes

  • Erweiterung: CssAstBuilder generiert CSS für alle Themes
  • Output: Separate CSS-Dateien oder CSS-Variablen mit Theme-Präfix

Beispiel:

[data-theme="light"] {
    --color-primary: oklch(70% 0.2 295);
}

[data-theme="dark"] {
    --color-primary: oklch(60% 0.22 295);
}

[data-theme="high-contrast"] {
    --color-primary: oklch(50% 0.3 295);
}

Phase 5: Token-Dokumentation & Storybook-Integration (Priorität: Niedrig)

5.1 Automatische Dokumentation

  • Datei: src/Framework/Design/Documentation/TokenDocumentationGenerator.php
  • Funktionalität:
    • Generiert Markdown-Dokumentation aus Tokens
    • Zeigt alle Token-Werte
    • Zeigt State-Variationen
    • Zeigt Verwendungsbeispiele

5.2 Storybook Integration

  • Datei: src/Framework/Design/Storybook/TokenStoriesGenerator.php
  • Funktionalität:
    • Generiert Storybook-Stories für Tokens
    • Visualisiert Token-Werte
    • Zeigt State-Variationen
    • Interaktive Token-Exploration

5.3 Token-Showcase

  • Datei: src/Application/Admin/Controllers/DesignTokenShowcaseController.php
  • Funktionalität:
    • Admin-UI für Token-Visualisierung
    • Interaktive Token-Exploration
    • State-Variationen anzeigen
    • Export-Funktionen

Phase 6: Token-Performance-Optimierung (Priorität: Mittel)

6.1 CSS-Optimierung

  • Minification: Minimiert generiertes CSS
  • Tree-Shaking: Entfernt ungenutzte Tokens
  • Critical CSS: Extrahiert kritische Tokens
  • CSS-Layering: Optimiert @layer-Struktur

6.2 Caching-Strategien

  • Token-Cache: Cached geladene Tokens
  • CSS-Cache: Cached generiertes CSS
  • Invalidation: Intelligente Cache-Invalidierung
  • Preloading: Preload häufig verwendeter Tokens

6.3 Lazy Loading

  • On-Demand Loading: Lädt Tokens nur bei Bedarf
  • Code-Splitting: Splittet Token-CSS nach Scope
  • Dynamic Imports: Dynamische CSS-Imports

Phase 7: Token-Testing & QA (Priorität: Mittel)

7.1 Unit Tests

  • Token-Tests: Testet Token-Erstellung und -Manipulation
  • Mutation-Tests: Testet State-Mutationen
  • CSS-Generierung-Tests: Testet CSS-Output

7.2 Visual Regression Tests

  • Screenshot-Tests: Vergleicht Token-Rendering
  • State-Variation-Tests: Testet alle States
  • Theme-Tests: Testet Theme-Varianten

7.3 Accessibility Tests

  • Kontrast-Tests: Automatische WCAG-Kontrast-Prüfung
  • Color-Blindness-Tests: Simuliert Farbenblindheit
  • Screen-Reader-Tests: Prüft Screen-Reader-Kompatibilität

Phase 8: Token-Editor UI (Priorität: Niedrig)

8.1 Admin-Interface

  • Token-Editor: Visueller Editor für Tokens
  • Color-Picker: OKLCH-basierter Color-Picker
  • State-Editor: Editor für State-Mutationen
  • Live-Preview: Live-Vorschau der Änderungen

8.2 Token-Management

  • CRUD-Operationen: Create, Read, Update, Delete für Tokens
  • Bulk-Operations: Massenbearbeitung von Tokens
  • Import/Export: UI für Import/Export
  • Versionierung: UI für Token-Versionen

8.3 Analytics

  • Token-Usage: Zeigt Verwendung von Tokens
  • Performance-Metriken: Zeigt Performance-Impact
  • Accessibility-Scores: Zeigt Accessibility-Scores

Phase 9: Erweiterte Farb-Features (Priorität: Niedrig)

9.1 Farb-Paletten-Generierung

  • Datei: src/Framework/Design/Services/ColorPaletteGenerator.php
  • Funktionalität:
    • Generiert Farb-Paletten aus Basis-Farbe
    • Harmonische Farb-Kombinationen
    • Kontrast-optimierte Paletten
    • Accessibility-optimierte Paletten

9.2 Farb-Analyse

  • Datei: src/Framework/Design/Services/ColorAnalyzer.php
  • Funktionalität:
    • Analysiert Farb-Eigenschaften
    • Berechnet Kontrast-Verhältnisse
    • Erkennt Farb-Harmonien
    • Simuliert Farbenblindheit

9.3 Farb-Konvertierung

  • Erweiterung: Unterstützung für weitere Farb-Räume
    • LAB, LUV, XYZ
    • CMYK
    • Pantone (näherungsweise)
    • NCS (Natural Color System)

Phase 10: Token-Versionierung & Migration (Priorität: Mittel)

10.1 Token-Versionierung

  • Datei: src/Framework/Design/ValueObjects/TokenVersion.php
  • Funktionalität:
    • Versions-Tracking für Tokens
    • Semantische Versionierung
    • Changelog-Generierung
    • Breaking Changes Detection

10.2 Migration-Tools

  • Datei: src/Framework/Design/Migrations/TokenMigration.php
  • Funktionalität:
    • Automatische Token-Migrationen
    • Bulk-Updates
    • Deprecation-Warnings
    • Auto-Fix für einfache Änderungen

10.3 Rollback-Mechanismus

  • Funktionalität:
    • Rollback zu vorherigen Token-Versionen
    • Version-Vergleich
    • Diff-Visualisierung

Priorisierung

Kurzfristig (1-2 Monate)

  1. Datenbank-Speicherung (Phase 1) - Ermöglicht dynamische Token-Verwaltung
  2. Token-Themes (Phase 4) - Wichtiges Feature für Multi-Theme-Support
  3. Token-Validierung (Phase 2) - Qualitätssicherung

Mittelfristig (3-6 Monate)

  1. Token-Export/Import (Phase 3) - Integration mit Design-Tools
  2. Performance-Optimierung (Phase 6) - Skalierbarkeit
  3. Token-Testing (Phase 7) - Qualitätssicherung

Langfristig (6+ Monate)

  1. Token-Dokumentation (Phase 5) - Developer Experience
  2. Token-Editor UI (Phase 8) - Benutzerfreundlichkeit
  3. Erweiterte Farb-Features (Phase 9) - Erweiterte Funktionalität
  4. Token-Versionierung (Phase 10) - Enterprise-Features

Abhängigkeiten

  • Phase 1 (Datenbank) ist Voraussetzung für Phase 8 (Editor UI)
  • Phase 2 (Validierung) ist Voraussetzung für Phase 10 (Versionierung)
  • Phase 4 (Themes) kann parallel zu anderen Phasen entwickelt werden
  • Phase 6 (Performance) profitiert von allen vorherigen Phasen

Technische Überlegungen

Datenbank-Speicherung

  • Hybrid-Ansatz: Code-basierte Tokens als Default, DB als Override
  • Caching: Aggressives Caching für Performance
  • Migration: Schrittweise Migration von Code zu DB

Performance

  • Lazy Loading: Tokens nur bei Bedarf laden
  • CSS-Optimierung: Minimierung und Tree-Shaking
  • CDN-Integration: Generiertes CSS auf CDN ausliefern

Skalierbarkeit

  • Multi-Tenant: Unterstützung für mehrere Tenant-Token-Sets
  • Caching-Strategien: Verschiedene Caching-Ebenen
  • Load Balancing: Verteilung der Token-Generierung

Erfolgs-Metriken

  • Developer Experience: Reduzierte Zeit für Token-Verwaltung
  • Performance: Schnellere CSS-Generierung
  • Qualität: Weniger Token-Fehler durch Validierung
  • Flexibilität: Einfacheres Theme-Management
  • Integration: Bessere Integration mit Design-Tools