What problem does it solve?
UI transitions often break under cancellation, rapid reopen, or framework-specific presence handling, causing flicker, stuck elements, or lost payload data. This Skill guides implementation of a shared transition lifecycle so HTML and React adapters behave identically.
Core Features & Use Cases
- Shared Transition State: Reuse
TransitionState, TransitionDataAttrs, and createTransition instead of component-local timers or framework-only presence logic.
- CSS-Owned Motion: Apply
data-starting-style and data-ending-style attributes while CSS controls duration, easing, and transforms.
- Race-Safe Lifecycle: Handle no-animation completion, cancellation, rapid reopen, repeated exit updates, disconnect, and destroy without inferring completion from fixed CSS durations.
- Use Case: Keep a chapter indicator mounted while its exit animation completes, retaining its payload data and cleaning up safely if the user reopens it mid-exit.
Quick Start
Implement a UI transition for the popover component that keeps exiting content mounted until the animation completes and works identically in the HTML and React packages.