Core UI
Mobile Menu Drawer
Left-docked full-height nav drawer with focus trap, outside-click close, Escape handling, scroll lock, and focus restoration.
$ velocityx add mobile-menu-drawer
Built for react.
Needs react already installed
as a peer dependency.
An Astro-only project needs @astrojs/react wired up first — this won't run on its own in plain Astro.
Full docs for Mobile Menu Drawer →
Needs a licence key —
subscribe here, then
velocityx loginonce.
Props
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| open | boolean | Yes | ||
| onClose | () => void | Yes | ||
| links | { label, href }[] | No | [ { label: 'Product', href: '#product' }, { label: 'Pricing', href: '#pricing' }, { label: 'Docs', href: '#docs' }, ] | |
| cta | { label, href } | No | { label: 'Get started', href: '#get-started' } | |
| triggerRef | optional ref to the button that opened the drawer (for focus restore) | Yes |
File this creates
The CLI writes this path into your project, relative to its root — nothing else moves.
components/velocity/mobile-menu-drawer/MobileMenuDrawer.jsx Using the Mobile Menu Drawer component
Install it with velocityx add mobile-menu-drawer.
The CLI writes the source straight into your project — no runtime dependency, no registry
lock-in, and it themes itself from the same primary-*/accent-* scale as the rest of the library.
Related components
More from Core UI.
Expand/collapse FAQ list with measured-height animation, single or multi-open modes, and arrow-key navigation between headers.
reactFloating button that fades in past a scroll threshold and scrolls to top, instantly under reduced motion.
reactBottom consent bar with accept-all, reject-all, and an inline expandable preferences checklist, persisted to localStorage.
reactScrollable data table with a sticky header row and client-side column sorting that cycles ascending, descending, and unsorted.
react