An authored capability record for motion and media enhancement gates and exact fallbacks.
The shared foundations, Carousel, Marquee and Stagger are implemented. Try the media browser and motion preferences. Scroll Indicator and Cover Flow are also implemented. Image Gallery and its complete lightbox composition are implemented. Recorded capability probes remain separate from the real component interaction tests.
Reviewed . These are locked browser probes, not detection of your browser or proof that a complete component is implemented.
Capability policy and declaration support
| Feature and source | Policy | chromium 151.0.7922.34 | firefox 153.0 | webkit 26.5 | Fallback |
|---|---|---|---|---|---|
| anchorScope | optional | Detected | Detected | Detected | Snap native Dialog |
| animationRange | optional | Detected | Not detected | Detected | Static presentation |
| dialogCommands | required | Detected | Detected | Detected | Separate ordinary image destination |
| discreteTransitions | optional | Detected | Detected | Detected | Snap native Dialog |
| generatedControls | deferred | Detected | Not detected | Not detected | Real item links and native scroll |
| has | optional | Detected | Detected | Detected | Static list; preview unavailable |
| nativeScroll | required | Detected | Detected | Detected | Complete list and ordinary links |
| scrollSnap | optional | Detected | Detected | Detected | Native scrolling |
| scrollTimeline | optional | Detected | Not detected | Detected | Neutral track; no animation |
| timelineScope | optional | Detected | Not detected | Detected | Instance-local static presentation |
| transform3d | optional | Detected | Detected | Detected | Flat presentation |
| viewTimeline | optional | Detected | Not detected | Detected | Flat presentation |
Observed behavior — separate from parsing
chromium 151.0.7922.34
- checkboxGate: true
- coverFlowTransform: true
- dialogDismissed: true
- dialogOpened: true
- generatedControls: deferred
- nativeScroll: true
- originTransition: deferred-phase-5
- scrollTimelineChanges: true
- stationaryTimelineStable: true
- viewTimelineChanges: true
firefox 153.0
- checkboxGate: true
- coverFlowTransform: false
- dialogDismissed: true
- dialogOpened: true
- generatedControls: deferred
- nativeScroll: true
- originTransition: deferred-phase-5
- scrollTimelineChanges: false
- stationaryTimelineStable: true
- viewTimelineChanges: false
webkit 26.5
- checkboxGate: true
- coverFlowTransform: true
- dialogDismissed: true
- dialogOpened: true
- generatedControls: deferred
- nativeScroll: true
- originTransition: deferred-phase-5
- scrollTimelineChanges: true
- stationaryTimelineStable: true
- viewTimelineChanges: true
Generated scroll controls and the optional gallery origin effect remain deferred. Unsupported timelines retain static native content; no script supplies a substitute.
Phase 4 actual component behavior
Actual generated HEEx and compiled CSS, not declaration parsing or visitor detection. Enhanced cases require wide containers, system motion permitted and no forced colors. All engines retain native content. Reviewed 2026-08-26.
- chromium 151.0.7922.34: Scroll Indicator enhanced; Cover Flow enhanced.
- firefox 153.0: Scroll Indicator neutral; Cover Flow flat.
- webkit 26.5: Scroll Indicator enhanced; Cover Flow enhanced.
Run npm run browser:milestone-e-phase4
to verify native keys, isolated idle timelines, suppression and flat fallbacks. Narrow containers stay flat; no effect reports reading completion or a selected image.
Phase 5 native gallery and deferred origin effect
Chromium starts at the scoped thumbnail; Firefox and WebKit expose anchor/discrete declarations but no origin transition in this actual-modal probe. Defer the optional effect across this release; all engines use existing native snap Dialog.
- chromium 151.0.7922.34: actual modal true; thumbnail-origin match true. Release presentation: native snap.
- firefox 153.0: actual modal true; thumbnail-origin match false. Release presentation: native snap.
- webkit 26.5: actual modal true; thumbnail-origin match false. Release presentation: native snap.
Reproduce with node scripts/record-gallery-origin.mjs --check
and npm run browser:milestone-e-phase5. Test-only probe code and observations are excluded from the package.
Local media fixtures
Original geometric illustrations test aspect ratios, intrinsic sizing, captions and local publication. They are demo assets, not package dependencies.
Inspect intentional image failure
Motion and replacement
Choose the component by its native behavior
- Carousel is a complete scrollable list with real item links, not tabs or an automatically advancing slideshow.
- Cover Flow decorates images in that same list; depth never means selection.
- Scroll Indicator is decorative position in its own region. Use Progress for task completion or Meter for a scalar measurement.
- Marquee is a static list with an optional finite preview. Stagger is a bounded entrance, not a visibility or application animation controller.
- Image Gallery composes native Dialog. Its ordinary image destinations remain available without a lightbox or origin transition.
What remains when an enhancement is absent
Without scroll snap, use ordinary scrolling and item links. Without timelines, Cover Flow stays flat and Scroll Indicator stays neutral. Without anchor or transition support, the native dialog snaps open and closed. Generated scroll controls and origin transitions are deliberately deferred, even where declarations parse.
Failed images retain captions, alternative text and destinations. Lazy loading and async decoding are browser hints, not fetch-on-open, privacy or authorization guarantees. Applications own media rights and CSP. Finite previews may finish offscreen (Marquee at most five seconds, Stagger at most one); no observer pauses them.
Use System motion or Reduce motion in the header. System always respects your device setting. No force-animation choice exists. This evidence page itself starts no animation.
Native checkbox, scroll and dialog state can reset when the application replaces markup. Applications own patch boundaries and restoration; ShadcnUI adds no state manager.
Reproduce this evidence
npm run capabilities:motion-media:check
npm run browser:milestone-e-phase1
Run exact locked browsers and inspect fallbacks before claiming support. Source review and automatic checks do not replace keyboard and assistive-technology review.
Support and exact fallback
| Feature | Locked-engine evidence | When missing |
|---|---|---|
| Semantic page baseline | Controller and static-export tests exercise the same closed route. | Without optional gallery presentation, complete content and ordinary destinations remain in document order. |
Without optional gallery presentation, complete content and ordinary destinations remain in document order.