wiki/c-work/4-done/2026-06-style-system-overhaul-smart-tables.md

60 lines
3.8 KiB
Markdown

<!-- status: done -->
<!-- started: 2026-06-03 -->
<!-- component: gateway -->
# Style-System Overhaul + Smart Table Styling
## Beschreibung
Vollstaendige Ueberarbeitung des Dokumenten-Styling-Systems in `serviceGeneration`:
1. **Statische Presets entfernt:** `THEME_PRESETS`, `resolveTheme()` und der `documentTheme`-Parameter wurden end-to-end entfernt (styleDefaults, mainServiceGeneration, _mediaTools, methodAi, generateDocument, documentPath, mainServiceAi, mainTrustee). Zurueck zum ADR-Originalentscheid 2026-04 (kein Theme-Katalog).
2. **AI-getriebene Style-Enhancement:** `_enhanceStyleWithAi()` in `mainServiceGeneration.py` analysiert Dokumenttitel, -typ und User-Request und liefert ein JSON-Delta auf den Basis-Style. Das vollstaendige Style-Set (~920 Bytes, alle 12 Sektionen) wird dem AI als Kontext mitgegeben.
3. **DEFAULT_STYLE modernisiert:** Cursor/VS-Code-inspirierte Basis-Aesthetik (Calibri, GitHub-Farbpalette, subtile Rahmen, leichte Header-Hintergruende).
4. **Style-Chain-Luecken geschlossen:**
- `_convertUnifiedStyleToInternal()` erweitert um page, image, table font sizes, codeBlock.borderColor, coverPage, caption, table_banding, table_padding, fonts, colors
- Heading-Key-Mismatch in XLSX/PPTX behoben
- DOCX h3/h4 Styles registriert
- Fallback-Farben an DEFAULT_STYLE angeglichen
- HTML Legacy-Pfad (`_getStyleSet`, `_getDefaultStyleSet`) entfernt
5. **Smart Table Styling:**
- Neue Style-Keys: `borderStyle` (grid/horizontal/none), `bandingEnabled` (Toggle), `cellPaddingPt`
- Per-Table Overrides via `content.tableStyle` im JSON (deep-merge mit globalem Style)
- Automatische Spaltenausrichtung (`_inferColumnAlignments`: Zahlen rechts, Daten zentriert, Text links)
- Neue Schema-Sektionen `coverPage` und `caption`
6. **Dead Code entfernt:** `_getStyleSet`, `_enhanceStylesWithAI`, `_getDefaultStyleSet`, `_validateStylesContrast` und weitere Legacy-Methoden aus allen 5 Renderern.
## Entscheidungen
| Datum | Entscheidung | Begruendung |
|-------|-------------|-------------|
| 2026-06-03 | THEME_PRESETS + documentTheme entfernt | ADR 2026-04 Originalentscheid wiederhergestellt |
| 2026-06-03 | AI-Enhancement statt statischer Presets | Kontextbasierte Anpassung ohne Pflege eines Preset-Katalogs |
| 2026-06-03 | Vollstaendiges Style-Set im AI-Prompt | Alle 12 Sektionen muessen anpassbar sein |
| 2026-06-03 | Per-Table Overrides via content.tableStyle | Jede Tabelle kann eigene Styles haben |
| 2026-06-03 | Auto-Column-Alignment | Deterministische Heuristik ohne AI-Call |
## Betroffene Dateien
- `serviceGeneration/styleDefaults.py` — DEFAULT_STYLE, resolveStyle, deepMerge
- `serviceGeneration/mainServiceGeneration.py` — renderReport, _enhanceStyleWithAi
- `serviceGeneration/renderers/documentRendererBaseTemplate.py` — _convertUnifiedStyleToInternal, _inferColumnAlignments
- `serviceGeneration/renderers/rendererPdf.py` — Smart Table, Cover, Caption, Code Border
- `serviceGeneration/renderers/rendererDocx.py` — h3/h4, List, Code, Cover, Caption, Smart Table
- `serviceGeneration/renderers/rendererPptx.py` — Heading-Fix, List, Code, Smart Table
- `serviceGeneration/renderers/rendererXlsx.py` — Heading-Fix, List, Code Border, Smart Table
- `serviceGeneration/renderers/rendererHtml.py` — Legacy entfernt, Heading Spacing, Caption CSS
- `serviceAgent/coreTools/_mediaTools.py` — documentTheme entfernt
- `workflows/methods/methodAi/*` — documentTheme entfernt
- `serviceAi/mainServiceAi.py` — documentTheme entfernt
## Links
- Kanonische Referenz: [b-reference/platform-core/document-rendering.md](../../b-reference/platform-core/document-rendering.md)
- ADR: [c-work/4-done/2026-04-ai-reports-theming-and-pipeline.md](2026-04-ai-reports-theming-and-pipeline.md)
- Vorgaenger: [c-work/4-done/2026-06-po-cleanup-neutralization-docgen.md](2026-06-po-cleanup-neutralization-docgen.md) (A3)