Spaces:
Configuration error
Configuration error
A newer version of the Gradio SDK is available: 6.25.0
Plan — Branch ui-styling (UI-Verschönerung)
Branch-Basis: master @ 286e987 User-Scope (bestätigt): Nur Styling — keine Funktionsänderung Status: Scope-Dokument vor Implementierung (DevMind-Regel: 2× fragen)
Ziel
Visuelle Politur der Gradio-WebUI (chat_tab + TTS-Accordion + Profile-Editor + Sessions-Tab), ohne die zugrundeliegende Logik anzufassen. Schneller ästhetischer Gewinn mit minimalem Risiko.
In-Scope
1. CSS-Variablen + Theme-Basis
- Einheitliche CSS-Variablen für Farben, Spacing, Border-Radius in einer neuen Datei
gradio_tabs/_styles.py. - Definiert einen
--bg-primary,--bg-secondary,--accent,--text-primaryetc., aus denen die Komponenten ihre Werte ziehen. - Keine Hardcoded-Farben in chat_tab.py mehr; alle bestehenden Inline-Styles durch Variablen ersetzt.
2. Chatbot-Polish
- Bubble-Alignment User rechts / Assistant links (heute unklar).
- Avatar-Platzhalter für User und Assistant (Initial-Buchstabe in Kreis, kein Bild-Asset nötig).
- Code-Block-Highlight via gr.Code(component) statt reinem Markdown für ```-Blöcke.
- Markdown-Rendering für Assistant-Antworten aktivieren (gr.Markdown statt plain text).
- Token-Counter-Badge rechts oben in der Toolbar (prompt_tokens / completion_tokens / total).
3. Sidebar / Layout
- Linke Sidebar mit Logo, Session-Liste, Profile-Auswahl in eigenem Block.
- Hauptbereich Chat + rechte Sidebar mit Settings-Akkordeon (TTS, Profile, Auto-Tune).
- 3-Spalten-Layout via
gr.Row+gr.Column(scale=...). - Tabs oben ersetzen Sidebar-Tabs (Settings/Sessions/Profile/TTS) zu Bottom-Panel-Accordion.
4. Komponenten-Polish
- Buttons: einheitliche Border-Radius (8px), Hover-Effekt, Disabled-State deutlich.
- Accordions: Pfeil-Rotation beim Öffnen, Übergangs-Animation.
- Dropdowns: Suche-Prompt wenn >5 Items, klare Selected-Highlight-Farbe.
- Textbox: Placeholder-Italic, Focus-Border akzentfarben.
5. TTS-Accordion-Schönheit
- Engine-Auswahl als Radio-Buttons mit Engine-Icon (Buchstabe oder Initial in Quadrat).
- Audio-Player zentriert statt full-width.
- Status-Pill oben rechts ("Engine: piper ✓").
Out-of-Scope (EXPLIZIT)
- Keine neuen Features (z.B. kein Multi-Chat, kein Theme-Toggle Light/Dark, keine Animation-Frameworks).
- Keine Änderungen an Server-Endpoints, generators.py, patch.py, model_manager.py — Motor unangetastet (DevMind-Regel: kein motor-touch).
- Keine Änderungen an der Session-Logik, Auto-Tune-Lock, Profile-Resolution.
- Keine Änderungen an Tests, die Logik pinnen — nur ggf. neue CSS-/Visual-Tests (Pillow-Snapshot-Tests von Gradio-Komponenten, falls Zeit reicht).
- Keine Dependency-Additions (kein tailwindcss, kein npm, alles in reinem Gradio-CSS/Inline-Style).
Erlaubte Dateien (lesen + editieren)
gradio_tabs/chat_tab.py(UI-Komposition)gradio_tabs/_styles.py(NEU — CSS-Variablen)app.py(nur Mount-Order / Reihenfolge der Tabs, KEINE Logik)gradio_tabs/__init__.py(Re-Exports der neuen Helper)tests/test_ui_styling.py(NEU — Smoke-Tests: Komponenten gerendert, CSS-Vars vorhanden)
Verifikation
bash run.shstartet sauber, keine Warnings.- UI lädt in <2s (kein zusätzlicher Network-IO).
- Alle bestehenden Tests grün (189+).
- Manuelle Sichtprüfung: Chat-Bubbles aligned, Avatar sichtbar, TTS-Akkordeon ästhetisch, keine 1-Pixel-Bugs.
- Optional: Pillow-Snapshot-Test (Vergleich vorher/nachher — hartes Kriterium für "kein Stil-Regress").
Risiken
- Gradio-CSS-Spezifität: Inline-Styles in Gradio-Komponenten werden oft von Gradio-Defaults überschrieben. Mitigiert durch
css=-Argument ingr.Blocks(css=...)+ höhere Spezifität. - Visuelle Regression in 1b vs 4b: Falls das UI Preset-spezifische States hat (PX-Engine-Aktiv-Indikator). Smoke-Test in beiden Presets.
- Lade-Regression: Zu viele CSS-Variablen können Theme-Init verlangsamen. Mitigiert durch <50 Variablen.
Reihenfolge
gradio_tabs/_styles.pymit zentralen CSS-Variablen.chat_tab.pyminimal-invasiv: Inline-Styles → Variablen, Avatar hinzu, Markdown-Renderer.- Layout-Refactor 3-Spalten (Sidebar + Chat + Settings).
- TTS-Accordion-Polish.
- Tests + Smoke (Server lokal, Screenshot-Vergleich).
- Commit pro Sub-Bereich, nicht ein Mega-Commit.
Was NICHT in diesem Plan ist
- KEINE Auto-Tune-Logik-Änderung.
- KEIN Light/Dark-Toggle (User-Wahl: "Nur Styling", keine Features).
- KEINE neuen TTS-Engines.
- KEINE Modal-Overlays oder Toasts (Gradio-Standard reicht).
- KEINE Mobile-Optimierung (Gradio handhabt das selbst).
Verwandte
- Branch
self-conversation(separater Branch, separat dokumentiert) - Branch
relay-layer-discovery(separater Branch, separat dokumentiert)