unovue/vaul-vue

An unstyled drawer component for Vue.

TypeScript

498

115 commits

updated Jun 29, 2026

See the code

README

Vaul Vue

[!WARNING] This package is no longer maintained. Reka UI now ships a full Drawer component that supersedes Vaul Vue, and the original Vaul library is no longer actively maintained either. We recommend migrating to Reka UI's Drawer for new and existing projects.

Vaul Vue is an unstyled drawer component for Vue that can be used as a Dialog replacement on tablet and mobile devices. It uses Reka UI's Dialog primitive under the hood and is a feature complete port of Emil Kowalski's Vaul library (built for React).

Installation

pnpm add vaul-vue
npm install vaul-vue
yarn add vaul-vue

Usage

<script setup lang="ts">
import { DrawerContent, DrawerOverlay, DrawerPortal, DrawerRoot, DrawerTrigger } from 'vaul-vue'
</script>

<template>
  <DrawerRoot>
    <DrawerTrigger> Open </DrawerTrigger>
    <DrawerPortal>
      <DrawerOverlay />
      <DrawerContent>
        <p>Content</p>
      </DrawerContent>
    </DrawerPortal>
  </DrawerRoot>
</template>

Credits

All credits go to these open-source works and resources

dialog
drawer
vaul
vue

unovue/vaul-vue

An unstyled drawer component for Vue.

TypeScript

498

115 commits

updated Jun 29, 2026

See the code

README

Vaul Vue

[!WARNING] This package is no longer maintained. Reka UI now ships a full Drawer component that supersedes Vaul Vue, and the original Vaul library is no longer actively maintained either. We recommend migrating to Reka UI's Drawer for new and existing projects.

Vaul Vue is an unstyled drawer component for Vue that can be used as a Dialog replacement on tablet and mobile devices. It uses Reka UI's Dialog primitive under the hood and is a feature complete port of Emil Kowalski's Vaul library (built for React).

Installation

pnpm add vaul-vue
npm install vaul-vue
yarn add vaul-vue

Usage

<script setup lang="ts">
import { DrawerContent, DrawerOverlay, DrawerPortal, DrawerRoot, DrawerTrigger } from 'vaul-vue'
</script>

<template>
  <DrawerRoot>
    <DrawerTrigger> Open </DrawerTrigger>
    <DrawerPortal>
      <DrawerOverlay />
      <DrawerContent>
        <p>Content</p>
      </DrawerContent>
    </DrawerPortal>
  </DrawerRoot>
</template>

Credits

All credits go to these open-source works and resources

dialog
drawer
vaul
vue

Significant stargazers

SerKo

380 followers · starred Jul 2024

Fayaz Ahmed

729 followers · starred Mar 2024

Cristopher

140 followers · starred May 2025

Hugo Torzuoli

147 followers · starred Oct 2024