Files
Classroom_Desktop/lib/classroom_style.py
T
ekklesiaandClaude Opus 5 3e69f3f05c refactor: share the stylesheet renderer
The DVD control bar has to look like the dock, which is best guaranteed
by drawing it from the same template with the same measurements rather
than by keeping two stylesheets in step by hand.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-04 22:33:37 -05:00

36 lines
913 B
Python

"""The classroom stylesheet, resolved at the room's UI scale.
The dock and the DVD control bar share this so they cannot drift apart:
one template, one set of measurements, one look.
"""
from pathlib import Path
from classroom_config import scaled
TEMPLATE = Path("/etc/ekklesia-classroom/dock/style.css.in")
# Every measurement in the template, at UI_SCALE=1.0.
MEASUREMENTS = {
"dock-radius": 24,
"dock-padding-v": 8,
"dock-padding-h": 10,
"button-radius": 16,
"button-padding": 6,
"button-size": 44,
"clock-radius": 16,
"clock-padding-v": 7,
"clock-padding-h": 12,
"clock-font": 17,
}
def render(scale, template=None):
"""Resolve the measurement tokens in the stylesheet template."""
css = (template or TEMPLATE).read_text()
for token, value in MEASUREMENTS.items():
css = css.replace(f"@{token}@", str(scaled(value, scale)))
return css