Drawer component for React made with Base-UI.
npm install base-vaul> Note
> This repository is a port of the original Vaul library by Emil Kowalski, migrated from radix-ui to base-ui.
The primary goal of this repository is to provide a base-ui equivalent of Vaul while preserving the original API and behavior as closely as possible.
This port intentionally minimizes changes in order to:
- Reduce migration friction for existing Vaul users
- Keep parity with the upstream project
- Establish a stable baseline before introducing enhancements or divergence
``bash`
npm install base-vaulor
pnpm add base-vaulor
yarn add base-vaul
`tsx
import { Drawer } from 'base-vaul';
export function Example() {
return (
);
}
`
The API mirrors the original Vaul implementation as closely as possible, with the main differences coming from the underlying base-ui primitives.
Since base-ui does not support asChild, components that relied on this pattern in radix-ui now expose a render prop instead.
Original (Radix / Vaul):
`tsx`
This port (Base UI):
`tsx``
Planned next steps include:
- Writing proper documentation (usage, API, and migration notes)
- Solidifying the project structure with a well-defined monorepo setup
- Upgrading development dependencies and expanding test coverage
- Ongoing maintenance, bug fixes, and alignment with upstream changes where relevant