Setting up your dashboard0 entities found · 7/34 branches scanned
Name:v0.23.0Status:planning
v0.23.0 — Surface axes & the skeleton/skin extraction
The second slice of the SPEC-094 theme-platform epic. Where v0.22.0 tokenized type and built the gallery safety net, v0.23.0 attacks the differentiation surface: it extracts skeleton from skin and replaces the last cross-rune rune-name lists with engine-emitted, theme-overridable config.
Its centerpiece is SPEC-107 — the surface-axis decomposition. It amends SPEC-094 §8: the single surface enum (card/banner/inline/inset) splits into three orthogonal, theme-defaulted axes — an ordered elevation depth ladder (sunken/flush/flat/raised/floating, folding in today's shadow-only elevation), width carrying the bleed, and a page-section-family prominence scale (quiet/normal/prominent/display). The motivating outcome: the same recipe reads as a bordered card in prose and a full-bleed, large-title hero at the top of a page.
Not enough history yet — burndown needs at least one completed day of activity.
Turn elevation into the universal chrome/depth axis from SPEC-107: an ordered semantic ladder emitted as data-elevation, superseding both §8's surface enum and today's shadow-only none/sm/md/lg scale. The foundation the rest of the milestone builds on.
Add the header-emphasis axis from SPEC-107: prominence scales a rune's page-section header (eyebrow / title / blurb / rhythm), selecting its typographic register. Unlike elevation it is not universal — it is available only to runes that carry the page-section header model.
Close the loop on the use case that motivated SPEC-107: the same content rune reading as a contained card and as a full-width hero, by composing the axes — no rune fork.
The prerequisite the WORK-410 spike surfaced: a clean skeleton/skin split needs spacing to be tokenized, exactly as the type split needed WORK-404/WORK-405. Skeleton references spacing tokens by name; skin owns their values — but today Lumina hardcodes magnitudes (0.5rem, 0.375rem, 0.8125em, …), so the skin layer can't retune them without restating structure. The gate for the re-bucketing.
Stand up the packaging + cascade-layer infrastructure the WORK-410 spike settled, so skeleton and skin can ship and version separately. The structural home the re-bucketing fills.
The "content, not CSS" finding from the WORK-410 spike (SPEC-094 §8's icon-from-config): rune CSS embeds glyph shapes as data:image/svg+xml mask-images. Move them to the theme icon registry so a theme swaps glyph sets without touching CSS.