Sam asked to bump the CALL NOW font weight by 100 on element 37 (sa-cva-split-hero), then flagged it still looked ~500-600. Investigation found the real bug: the button used the font: shorthand with a bare var(--font-ui) and no fallback. When the token is undefined (true on registry preview pages), CSS invalidates the whole shorthand at computed-value time and weight falls to 400. Declared 700, rendered 400. The H1 was safe because it uses explicit longhands with fallbacks.
Fixes, all verified with Playwright computed styles:
font:700 15px/1 var(--font-ui) with explicit longhands (font-family:var(--font-ui),'Poppins',sans-serif;font-weight:700;font-size:15px;line-height:1). CALL NOW now computes a true 700/15px on /preview/37. Version bumped 2026-06-11.var(--font-display) shorthands. All 30 decomposed with weights/sizes/line-heights preserved exactly. Display fallback stack Georgia,'Times New Roman',Times,serif matches the live site token. Both previews verified (CTAs 700, display headlines 500 serif, body at declared weights). Versions bumped.Registry: full pre-change backup of all 86 elements taken first (all_elements_backup_2026-06-11.json in session outputs); restore any element via POST /admin/edit/{id} with its backed-up fields. GitHub: git revert 21100df.
Work complete. All requested and discovered fixes shipped and QA'd.
:root{--font-ui:'Poppins',system-ui,sans-serif;--font-display:Georgia,'Times New Roman',Times,serif;} to the preview <style> would make previews match live-site token context and prevent this entire bug class for future elements, even ones added with fragile shorthand. Small, safe, one-file change.font: shorthand with a var() in element CSS; always explicit longhands with fallback stacks. Would stop reintroduction at authoring time.The registry admin endpoints and the registry_api.py helper in the sa-element-registry skill worked exactly as documented. GITHUB_TOKEN_1 from API Keys & App Secrets works for clone and push over HTTPS. When QA-ing element typography, trust Playwright computed styles over declared CSS; the preview pages load Poppins 400/500/700/800 but NOT 600, so a declared 600 silently renders 500 in previews — another reason for the :root token fix above. Live production WP defines both font tokens, so live rendering and preview rendering can legitimately differ until that fix lands.