Add classic design, set as default
Classic = original flat white design (matches reference screenshot)
This commit is contained in:
+35
-7
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user