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

3.8 KiB

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