Vaul is a React drawer component used to create accessible, draggable bottom sheets and slide-up panels. It serves as a mobile-friendly alternative to traditional dialogs and modals by rendering content into a separate DOM node via a portal to avoid layout nesting issues.
The library features configurable snap points that allow panels to lock into specific vertical heights during drag gestures. It supports hierarchical UI layering, enabling the use of nested drawers for complex navigation or multi-level menus.
The component includes an accessibility layer with ARIA announcements and focus management for screen readers. Additional capabilities cover programmatic visibility control, dismissal restrictions, and automatic position adjustments to maintain content visibility when virtual keyboards are active.