Spaces:
Running on Zero
Running on Zero
| """M08 — Gradio theme definitions. | |
| Spec: docs/M08-ui.md §7 | |
| Two themes: | |
| hearthnet_theme — default purple/dark theme used at all times | |
| emergency_theme — red-accent override shown in emergency mode | |
| """ | |
| from __future__ import annotations | |
| try: | |
| import gradio as gr | |
| hearthnet_theme = gr.themes.Soft( | |
| primary_hue="purple", | |
| secondary_hue="violet", | |
| neutral_hue="slate", | |
| font=[gr.themes.GoogleFont("Inter"), "ui-sans-serif", "system-ui", "sans-serif"], | |
| ).set( | |
| # CSS variable overrides (spec §7) | |
| body_background_fill="#e6e6f1", | |
| body_background_fill_dark="#0f0f1a", | |
| block_background_fill="#d2d8e8", | |
| block_border_color="#7c3aed", | |
| button_primary_background_fill="#7c3aed", | |
| button_primary_background_fill_hover="#6d28d9", | |
| button_primary_text_color="#ffffff", | |
| input_background_fill="#d7dee7", | |
| ) | |
| emergency_theme = gr.themes.Soft( | |
| primary_hue="red", | |
| secondary_hue="orange", | |
| neutral_hue="zinc", | |
| font=[gr.themes.GoogleFont("Inter"), "ui-sans-serif", "system-ui", "sans-serif"], | |
| ).set( | |
| body_background_fill="#1a0a0a", | |
| body_background_fill_dark="#0f0505", | |
| block_background_fill="#2d0000", | |
| block_border_color="#dc2626", | |
| button_primary_background_fill="#dc2626", | |
| button_primary_background_fill_hover="#b91c1c", | |
| button_primary_text_color="#ffffff", | |
| input_background_fill="#1f0000", | |
| ) | |
| except ImportError: | |
| # Gradio not installed — provide None sentinels so imports don't fail | |
| hearthnet_theme = None # type: ignore[assignment] | |
| emergency_theme = None # type: ignore[assignment] | |
| __all__ = ["emergency_theme", "hearthnet_theme"] | |