WORK-475
ID:WORK-475Status:done

Second rune adopts carousel + carousel docs

Land at least one further rune (testimonial or pricing or cast) on layout="carousel" through config + contract + CSS only, demonstrating zero new behavior code per adoption, and note the layout mode on adopting runes' docs. Per SPEC-100 Phase B.6.

Priority:lowComplexity:simpleMilestone:v0.26.0Source:SPEC-100
changeset-release/main View source

Criteria completion

Criteria completion: 3 of 3 (100%) checked; tracking started on Jun 26, no incremental history yet0%25%50%75%100%Jun 26Jul 11

Tracking started Jun 26 — check back for trends.

Branches 3
History 3
  1. 340475d
    Created (done)by github-actions[bot]
  2. df29856
    Content editedby Claude
    WORK-475: cast adopts carousel + carousel docs
  3. 17d2678
    Content editedby Claude
    v0.26.0: accept ADR-018 + SPEC-099/100/108, break down into 15 work item

Scope

  • Pick one of testimonial / pricing / cast (whichever renders the cleanest homogeneous item band) and add carousel to its layout matches, mapping its item collection onto the shared contract; add track CSS. Zero new behavior code.
  • Verify CSS-coverage for the new [data-layout="carousel"] selectors on the adopting rune.
  • Docs: each adopting rune's page notes layout="carousel" (the contract itself was documented once in WORK-470).

Acceptance Criteria

  • At least one further rune (testimonial/pricing/cast) adopts layout="carousel" through config + contract + CSS only, with zero new behavior code.
  • CSS-coverage passes for the new [data-layout="carousel"] selectors on the adopting rune.
  • The adopting rune's docs page notes layout="carousel".

Dependencies

  • WORK-472 — the shared behavior the new rune binds to.
  • WORK-474feature adoption proves the pattern first.

References

  • Spec: SPEC-100 Phase B.6 + Non-goals (incremental adoption; not every candidate this milestone).

Resolution

Completed: 2026-06-25

Branch: claude/spec-100-carousel-layout-mode

What was done

  • plugins/business/src/tags/cast.tscast adopts layout="carousel" (matches migrated onto the canonical const layoutMatches([LAYOUT.grid, LAYOUT.list, LAYOUT.carousel])); its members <ul> ref renamed membersitems (the shared carousel track token). Zero new behavior code — the shared dispatch + behavior drive it.
  • plugins/business/src/config.ts — editHints membersitems.
  • packages/skeleton/styles/runes/cast.css + packages/lumina/styles/runes/cast.css.rf-cast__members.rf-cast__items; .rf-cast--carousel sets cast's --rf-carousel-slide (track + nav come from the shared carousel CSS).
  • Docs: site/content/runes/business/cast.md notes layout="carousel"; site/content/runes/marketing/feature.md documents carousel + the collapse-to dial.
  • Contracts regenerated; 288 business/lumina tests green (contracts + CSS coverage). Site prerender clean.

Notes

  • Proves the zero-per-rune-behavior-code adoption: cast added config + the items track token + a one-line slide-width rule. As with feature, adoption required renaming cast's semantic container (membersitems) per the maintainer's "reuse data-name=items" decision — worth noting this rename-per-adopter cost if the carousel is rolled out widely.