Vaul Vue is an unstyled, headless drawer component specifically designed for Vue 3 applications, serving as a modern and highly customizable replacement for traditional dialogs and modals, particularly optimized for tablet and mobile devices. It stands at version 0.4.1 and demonstrates an active development cadence with frequent patch releases addressing bug fixes and occasional minor releases introducing new features or significant architectural refactorings. This library is a feature-complete port of Emil Kowalski's original Vaul library, which was built for React, ensuring a mature and well-tested interaction model. Under the hood, Vaul Vue leverages Reka UI's Dialog primitive, providing a robust foundation for accessibility and core interaction logic. Its unstyled nature is a key differentiator, granting developers complete control over the visual presentation to seamlessly integrate with any design system. The headless architecture ensures that essential accessibility features are provided out-of-the-box, without dictating styling. Key features include highly customizable snap points, support for various drag directions, and a comprehensive set of primitives (`DrawerRoot`, `DrawerTrigger`, `DrawerPortal`, `DrawerOverlay`, `DrawerContent`) that enable building bespoke drawer experiences tailored to specific application needs, making it a powerful tool for responsive web design.
npm install vaul-vueVerified import paths — ran on the pinned version, not inferred.
Demonstrates a basic Vaul Vue drawer with snap points, custom styling (using Tailwind-like classes), and a trigger button, including the necessary CSS import.
Review the Reka UI documentation for Dialog primitives and update your component usage accordingly. The public API of Vaul Vue components should mostly remain consistent, but direct primitive usage will need adjustment.
Update all CSS selectors and JavaScript code that targets `vaul-*` attributes to use `data-vaul-*` instead (e.g., `[vaul-drawer]` becomes `[data-vaul-drawer]`).
Add `import 'vaul-vue/dist/style.css'` to your main application entry file or directly within the component where Vaul Vue is used.
Upgrade to `vaul-vue@0.4.1` or later to resolve these issues.
Add `import 'vaul-vue/dist/style.css'` to your main application file or component.
Update your HTML and CSS to use `data-vaul-*` attributes instead of `vaul-*` (e.g., `data-vaul-drawer` instead of `vaul-drawer`).
Upgrade to `vaul-vue@0.4.1` or a newer version to benefit from the fixes.
Remove any lingering Radix Vue imports or usage that were previously tied to Vaul Vue. Ensure you are only using the `vaul-vue` components which now internally rely on Reka UI, or follow Reka UI's documentation for direct primitive usage.