2026-08-21 — Theme store and Nabla slot visibility
Summary
Custom themes now live in a searchable theme store on /theme (F/T/N light and dark letter previews, load into the editor, per-theme preview at /theme/<id>). On /dev/nabla, primer / shadowMiddle / topBottom / midTop wells are labeled low visibility — they are wired in CSS but nearly unused in Nabla’s shipped COLR paint trees. Color wells keep a local draft while dragging; COLR CSS is rAF-coalesced, the EDPT wave freezes for the drag, and split preview drops to one surface so the native picker does not hitch on glyph paint.
Highlights
-
Verdict (Nabla wells): Not a CSS/
@font-palette-valuesbug. Live preview already writesoverride-colorsfor indices 0–9 and scopesfont-paletteonto accent letters. Upstreamshear_and_extrude.pydefault side gradient is shadowBottom → shadow → top (1, 3, 8); front is frontBottom → frontTop (6, 7). Slot 0 (primer) is an undercoat almost fully covered; slots 2 / 4 / 5 only paint when designer layer stops name them (rare on F/T/N). -
Live editor: high-visibility wells first; 0 / 2 / 4 / 5 behind a reveal; slot probe cards on the same page carry a Low visibility badge.
-
Non-blocking color pickers: SlotWell / theme color fields hold draft hex locally. Drag ticks only update a pending-palette ref and schedule one
requestAnimationFrameCOLR/<style>apply; idle flush + blur commit (notpointerup— OS dialogs fire that when the popup opens). While dragging Nabla wells, EDPT wave freezes to static base and split cream/asphalt collapses to cream only. Pausing EDPT materially helps — the wave setsfontVariationSettingsevery frame specifically to force COLR rebuilds, which stacks with palette invalidation. Browsers do not expose a Worker API to farmfont-palette/ COLR paint off the main thread; COLRv1 is not an SVG DOM you control. -
Live editor demotes slots 0 / 2 / 4 / 5 in a dashed Low-visibility wells (not broken) panel with optional reveal; probe cards below still badge Low visibility.
-
Theme hub/editor color fields use the same draft + rAF preview pattern for chrome/lockup.
-
Public Convex
themeSubmissions.listCatalog(optional nameq, recent window). -
/themehub: store grid under the customizer./theme/editor: search + Load./theme/[id]: chrome + F/T/N preview and load links (editor / Nabla live).