WORK-470
ID:WORK-470Status:ready

Carousel canonical token + shared DOM contract

Graduate carousel into the canonical pool and define the shared track/item DOM contract every adopting rune emits. Per SPEC-100 Phase A.1–A.2 and ADR-018.

Priority:highComplexity:simpleMilestone:v0.26.0Source:SPEC-100
claude/v0.26.0-milestone-2vuxi9 View source

Criteria completion

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

Tracking started Jun 25 — check back for trends.

Branches 3
History 1
  1. 17d2678
    Created (ready)by bjornolofandersson

Scope

  • Add carousel to the canonical layout const (WORK-466) so adopting runes import one token.
  • Define and document the shared carousel DOM contract that layout="carousel" implies:
    • host element carrying data-layout="carousel" (already the engine's layout-modifier output);
    • a track container [data-name="items"] and item elements [data-name="item"]reuse gallery's existing tokens verbatim (the lightbox also queries [data-name="item"], so keeping the names leaves gallery byte-stable).
  • Document the contract once alongside the canonical token (rune-authoring) so every adopting rune emits the same shape; note the :scope > query expectation for adopters.

Acceptance Criteria

  • carousel is added to the canonical layout const and importable by adopting runes.
  • A documented shared carousel DOM contract exists: host data-layout="carousel" + track [data-name="items"] + items [data-name="item"] (gallery's tokens reused unchanged).
  • The contract is documented once in rune-authoring, including the scoped-query expectation.

Dependencies

  • WORK-466 — the canonical const must exist before carousel is added to it.

References

  • Spec: SPEC-100 Phase A.1–A.2 + Design notes (keep items/item). Decision: ADR-018 (graduation rule).
  • packages/runes/src/tags/gallery.ts, packages/runes/src/config.ts (Gallery).