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
319 lines
11 KiB
Markdown
319 lines
11 KiB
Markdown
# 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**:
|
|
```css
|
|
[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)
|
|
4. **Token-Export/Import** (Phase 3) - Integration mit Design-Tools
|
|
5. **Performance-Optimierung** (Phase 6) - Skalierbarkeit
|
|
6. **Token-Testing** (Phase 7) - Qualitätssicherung
|
|
|
|
### Langfristig (6+ Monate)
|
|
7. **Token-Dokumentation** (Phase 5) - Developer Experience
|
|
8. **Token-Editor UI** (Phase 8) - Benutzerfreundlichkeit
|
|
9. **Erweiterte Farb-Features** (Phase 9) - Erweiterte Funktionalität
|
|
10. **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
|
|
|