Spaces:
Running on Zero
Running on Zero
Commit History
23 days ago
-
Part 65: comprehensive responsive UI overhaul
Device-responsive layout for phone / tablet / laptop / desktop / TV: - Fluid typography via clamp() — text scales smoothly across viewports - Header restructured: mobileMenuBtn + h1 on left, meta collapsible into a dropdown menu on phones/tablets (⋯ button) - JS device detection adds body.device-{mobile,tablet,laptop,desktop,tv} and body.has-touch based on innerWidth + UA sniffing (resize-aware) - 100dvh replaces 100vh for correct mobile keyboard handling - viewport-fit=cover for iPhone notch - Modal goes full-screen on phones (was cramped dialog) - markdown tables scroll horizontally on mobile - Print stylesheet hides chrome (sidebar, header, footer) - TV mode: larger fonts, larger buttons, focus rings - JS syntax checker: force UTF-8 on subprocess pipe (Windows CP1252 fix) Also fixes the issue where the header crammed 7 items into one row on small screens — now they collapse into a dropdown. - src/sunnyware/webui.py: new CSS (Part 65 block), header rewrite, device JS - scripts…60a9aa4
24 days ago
-
Part 43 fix: replace wrapBareBase64 regex with string-based scanner
The original regex literal broke JS parsing in some browsers with: Uncaught SyntaxError: Invalid regular expression: missing / This killed the entire <script> block — no sessions, no welcome message, no input handler — because a single syntax error aborts the whole script. Replaced with a plain string scan that walks the text looking for 'iVBORw0KGgo' magic bytes and validates the surrounding base64 chars. No regex literals means no way to break the parser. Also adds scripts/js_syntax_check.py (uses node --check) to catch this class of bug pre-push.c22080b