WORK-425
Setting up your dashboard 0 entities found · 6/29 branches scanned
ID:WORK-425Status:ready

Lumina: map the axes + retire the static surface groups

Paint the SPEC-107 axes in Lumina and retire the rune-name lists in surfaces.css — the last cross-rune file that enumerates runes (SPEC-094 §8).

Priority:highComplexity:complexMilestone:v0.23.0Source:SPEC-107

Criteria completion

Criteria completion: 0 of 3 (0%) checked; tracking started on Jun 14, no incremental history yet0%25%50%75%100%Jun 14Jun 15

Tracking started Jun 14 — check back for trends.

Scope

  • Map each data-elevation rung to a chrome bundle (fill / border / radius / shadow) via low-specificity attribute selectors — the rung's shadow is the rune surface's resting box-shadow depth, kept distinct from frame-shadow's per-guest drop-shadow (SPEC-107 §1); map each data-prominence value to a header type register (using the v0.22.0 type tokens).
  • Set Lumina's per-rune defaultElevation / defaultProminence (and defaultWidth where a rune was a banner) so today's appearance is preserved: card-bucket runes → raised/flat, inline → flush, inset → sunken, banner → flush + width: full.
  • Replace the four surfaces.css rune-name buckets (and the two nested :where(.rf-card, …) media-chrome lists) with [data-elevation] / [data-prominence] selectors.

Acceptance Criteria

  • surfaces.css no longer enumerates rune names; chrome is selected by [data-elevation="…"] (and media-chrome by attribute, not the :where rune lists).
  • Per-rune defaults in Lumina's config reproduce the current card/inline/inset/banner appearance (no unintended visual change for unchanged content).
  • prominence registers are wired to the type tokens; CSS-coverage tests + structure contracts stay green.

Dependencies

  • Requires WORK-423 + WORK-424 (the axes + defaults).

References

  • SPEC-107 · packages/lumina/styles/dimensions/surfaces.css · packages/lumina/src/config.ts.