Overview
The demo is a "Share Q3 report" drawer with share targets and link access options. Drag it down past the threshold to close it, or let go early and it springs back. Escape and a close button work too. Motion: enter (rise from the bottom, backdrop fade): 260 ms, cubic-bezier(0.2, 0.8, 0.2, 1); exit (down and out): 180 ms, cubic-bezier(0.4, 0, 1, 1); canceled drag settle (spring: stiffness 320, damping 36, mass 1): 400 ms, spring, critically damped. Every duration and easing curve lives in one tokens file, so changing a value there changes the motion everywhere. With reduced motion turned on, the component changes state without movement and stays fully usable. Built with React 19 and TypeScript, Tailwind CSS 4 and Motion, with keyboard and screen reader behavior from Base UI. Light and dark themes come from CSS variables you can edit. Included: the component source, the accessible behavior it is built on, shared motion tokens, light and dark theme variables, a runnable demo page, and setup guides for people and for AI coding agents.
Highlights
- Production-ready, documented source
- Clean, componentized architecture
- Drops into your stack with minimal setup

