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
- 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
11 KiB
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-Wertbase_token_id(VARCHAR 255, NULL) - Für abgeleitete Tokensmutation_data(JSON, NULL) - StateMutation als JSONdescription(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:
CssAstBuildergeneriert 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)
- Datenbank-Speicherung (Phase 1) - Ermöglicht dynamische Token-Verwaltung
- Token-Themes (Phase 4) - Wichtiges Feature für Multi-Theme-Support
- Token-Validierung (Phase 2) - Qualitätssicherung
Mittelfristig (3-6 Monate)
- Token-Export/Import (Phase 3) - Integration mit Design-Tools
- Performance-Optimierung (Phase 6) - Skalierbarkeit
- Token-Testing (Phase 7) - Qualitätssicherung
Langfristig (6+ Monate)
- Token-Dokumentation (Phase 5) - Developer Experience
- Token-Editor UI (Phase 8) - Benutzerfreundlichkeit
- Erweiterte Farb-Features (Phase 9) - Erweiterte Funktionalität
- 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