Name:v0.20.0Status:planning
v0.20.0 — Surface model: chrome, fills, cover layout & engine variants
Completes the surface model — every rune surface gets a consistent chrome, fill, and layout vocabulary — and lands the engine primitive (config variants) that the cover layout depends on.
Progress 18/18 work items
- Engine config variants: modifier-keyed config deltas, with
card/bento-cellmigrated to the flat-slot model (SPEC-091) - Surface chrome: universal
elevation+ aframepreset registry,frameTargetrouting, host-owned clip;showcasecollapsed into the frame model (SPEC-086) - Surface fills:
substratepatterns + a tint-tracking inset surface (SPEC-087) bggradients + a formalized custom-CSS escape hatch and structuredscrim(SPEC-088)media-position="cover"layout: content placement, default scrim, intrinsic height (SPEC-089)- Media-guest interaction posture: presentational guests, clickable containers, cover backdrops (SPEC-090)
Work Items
Done 18
WORK-358 main
Engine config variants: RuneConfig.variants type + axis validation Add the variants field to RuneConfig — modifier-keyed config deltas — and validate at config load that every variant axis is a declared modifier. This is the foundational type + validation layer for engine config variants.
3/3 criteria
WORK-359 main
Per-instance variant resolution and merge over base config Resolve each variant axis per instance and merge matching deltas over the base config before layout assembly, reusing the existing mergeThemeConfig machinery.
3/3 criteria
WORK-360 main
Per-variant structure contracts and inspect variant selection Make structure contracts and CSS-coverage per-variant, and let refrakt inspect render a variant via the selecting modifier value.
3/3 criteria
WORK-361 main
Migrate card/bento-cell to flat-slot model; feature grid/stack + cover variants Migrate card/bento-cell to the SPEC-081 flat-slot + base-layout model (prerequisite for the cover variant), migrate feature's grid/stack conditional out of its transform into a media-position variant, and document the variants primitive.
4/4 criteria
WORK-362 main
Universal elevation attribute backed by a --rf-shadow-* token scale Add a universal elevation attribute backed by a shared --rf-shadow-* token scale and migrate bespoke per-rune shadows onto it.
3/3 criteria
WORK-363 main
frames preset registry + frame attribute and inline facet overrides Add a frames preset registry parallel to backgrounds, the frame attribute with inline facet overrides, and complete the offset named scale.
4/4 criteria
WORK-364 main
frameTarget routing + host-owned clip + shared frame CSS layer Add RuneConfig.frameTarget routing, the host-owned clip contract, the oversize opt-out, a shared frame CSS layer, and reconcile with bento's existing media vars.
5/5 criteria
WORK-365 main
Collapse showcase into the frame model with deprecated aliases + docs Re-express showcase as frameTarget: 'self' consuming frame, with deprecated aliases for its old attributes (breakout bleed retained), and document the surface model.
4/4 criteria
WORK-366 main
Tint-tracking inset surface: --rf-surface-inset-shift token + use-site color-mix Add the tint-tracking inset surface: a --rf-surface-inset-shift mix-amount token and a use-site color-mix recipe applied to media wells and chart/diagram.
4/4 criteria
WORK-367 main
substrate pattern attribute: engine enum + shared base gradient stylesheet Add the substrate pattern attribute with a fixed engine-level enum and a shared, always-included base stylesheet of token-driven gradient recipes.
4/4 criteria
WORK-368 main
substrateTarget routing + build validation + surfaces theme-authoring docs Add substrateTarget routing (default self, theme-overridable, author wins), media-well binding and validation, and document the three fill layers.
3/3 criteria
WORK-369 main
bg gradient fill: inline facets + structured BgPresetDefinition.gradient Add a token-driven bg gradient fill via inline facets and a structured BgPresetDefinition.gradient preset field.
3/3 criteria
WORK-370 main
Formalize the bg raw-CSS escape hatch + project-config backgrounds merge Promote BgPresetDefinition.style to a documented, intentional last-resort escape hatch and confirm the project-config backgrounds home with merge-over-theme semantics.
2/2 criteria
WORK-371 main
Structured overlay/scrim facets + raw-string overlay deprecation path Split the conflated overlay string into a structured flat-wash overlay and a structured scrim legibility facet, with a deprecation path for the raw-string passthrough.
4/4 criteria
WORK-372 main
Soft-lint raw CSS covered by structured facets + bg reference docs Add a build-time soft warning for raw CSS that a structured facet now covers, and document gradients/escape-hatch/overlay in the bg reference.
2/2 criteria
WORK-377 main
Media-guest interaction model: presentational default + capability flag + fallbacks Define media guests as presentational by default with an explicit interactive capability and a static fallback per interactive guest.
2/2 criteria
WORK-378 main
href demotion of media guests + cover backdrop pointer-events Demote a clickable container's media guest to presentational + pointer-events: none, and make a cover guest an inert backdrop unconditionally.
3/3 criteria
WORK-379 main
Interaction-posture build warnings + posture reference docs Emit the interaction-posture build warning and document the posture in the reference + composability docs.
2/2 criteria