"""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/overlay/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, "button-spinner": 38, "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