May 2025
Dialog/drawer/sheet system rewrite, duck-variants with 7x performance, duck-motion package, website launch, and build tooling migration.
Dialog System feat
Major rewrite of the dialog, drawer, sheet, and alert-dialog system:
Dialog
- Migrated all overlay components to shared Dialog primitives
- Implemented draggable functionality in DrawerContent with snap points
- Built
useDrawerDraghook with debounce for smooth touch handling - Added scroll lock functionality during dialog open/close transitions
- Replaced
useShouldRenderwithShouldRendercomponent - Streamlined dialog close event handling
Sheet and Drawer feat
Drawer
Sheet
- Introduced Sheet component with customizable content and animations
- Updated
AnimSheetVariantsfor improved positioning and animation - Drawer with drag-to-dismiss, snap points, and scale background effect
duck-motion Package feat
Built @gentleduck/motion for shared animation primitives:
- Created
AnimDialogVariantsandAnimSheetVariantsfor dialog and sheet animations - Added
AnimDrawerVariantsfor enhanced drawer animations - Implemented accelerated variants for smoother transitions
- Separated easing functions for reuse
- Reduced default animation duration from 200ms to 150ms
duck-variants feat
@gentleduck/variants achieved 7x performance improvement over alternatives in our benchmarks.
Completed the type-safe variant system:
- Enhanced test cases and benchmarking tests
- Added
boundVariantsfeature for pre-bound variant functions - Added
extractPropstype utility - Migrated build from tsup to tsdown
See the full variants docs.
Alert Dialog feat
Alert Dialog
- Updated alert-dialog to use shared Dialog primitives
- Improved component structure for semantic HTML (heading instead of paragraph for title)
Website Launch feat
- Launched website with home page, header navigation, and blog routes
- Integrated content collections with Velite
- Added Brotli compression and image optimization
- Added Blog navigation item
Build Tooling chore
- Migrated packages from tsup to tsdown for build
- Added biome linting across all packages
- Added Husky to the dev cycle for pre-commit hooks
- Set up unified catalog dependencies
- Added Vite integration with
rolldown-vite