Add classic design, set as default

Classic = original flat white design (matches reference screenshot)
This commit is contained in:
ki
2026-08-26 15:15:09 +04:00
parent 49de61bb26
commit af9a99a379
+35 -7
View File
@@ -1,12 +1,23 @@
"""Render-Pipeline für das Dashboard.
Unterstützt 3 Display-Designs:
magazine — großes TYPO, schmale Balken, monochrome Akzente
cards — Panel-Hintergründe, Emoji-Icons, vertikale Ränder
kiosk — Daten-first, viele kleine Info-Zellen, kompakt
Unterstützte Display-Designs:
classic — Original flach, weiß, kein UI-Chrome (DEFAULT)
minimal — Schwarz/Weiß, bold, clean, viel Weißraum
minimal_color — Minimal + dezenter Akzent-Strich pro Kategorie
bold — Riesen-Typography, 1px-Rahmen, vollflächig
analog — 2×2-Uhr als Ziffernblatt, Rest clean Panels
magazine — Bold Typography, farbige Akzentstreifen links
cards — iOS-Widget-Style, Emoji-Icons, warme Paneele
kiosk — Dunkel, Daten-first, kompakte Info-Zellen
wireframe — Blueprint-Style, gestrichelte Rahmen, keine Füllungen
bauhaus — Geometrische Primärfarben, blockweise
poster — Farbige Flächen, bold, fast nur Content
retro_lcd — Alte LCD-Uhren-Ästhetik, grüner Hintergrund
glossy — Moderner iOS-Style, Emoji-Icons, Panels
data_board — Kontrollraum-Dashboard, dunkel, invertierte Karten
Aufruf:
img = render_design(items, widgets, fonts, design="magazine")
img = render_design(items, widgets, fonts, design="classic")
"""
from PIL import Image, ImageDraw, ImageFont
@@ -20,7 +31,7 @@ CELL_W = DISPLAY_W // COLS
CELL_H = DISPLAY_H // ROWS
def render_design(items, widgets, fonts, design="magazine") -> Image.Image:
def render_design(items, widgets, fonts, design="classic") -> Image.Image:
fn = {
"magazine": _render_magazine,
"cards": _render_cards,
@@ -35,7 +46,8 @@ def render_design(items, widgets, fonts, design="magazine") -> Image.Image:
"minimal_color": _render_minimal_color,
"bold": _render_bold,
"analog": _render_analog_clock,
}.get(design, _render_minimal)
"classic": _render_classic,
}.get(design, _render_classic)
return fn(items, widgets, fonts)
@@ -366,6 +378,22 @@ def _render_data_board(items, widgets, fonts) -> Image.Image:
return img
# ============================================================================
# CLASSIC — Original flaches Design
# Weißer Hintergrund, kein UI-Chrome, widget füllt Zelle aus
# Das was auf deinem Referenz-Bild zu sehen ist
# ============================================================================
def _render_classic(items, widgets, fonts) -> Image.Image:
img = Image.new("RGB", (DISPLAY_W, DISPLAY_H), WHITE)
draw = ImageDraw.Draw(img)
for item, widget in zip(items, widgets):
x, y, w, h = _px(item)
if widget is None:
continue
widget.render(draw, fonts, x + 8, y + 8, w - 16, h - 16)
return img
# ============================================================================
# MINIMAL — das Referenz-Design
# Schwarz/Weiß, bold, clean, viel Weißraum. Kein UI-Chrome.