🎯 Nexus teaches Next.js from foundations to professional systems⚡ App Router, React 19, and Tailwind v4 in one learning path🧩 Inspect real components, layouts, and reusable patterns🛠️ Build production discipline, not just polished demos📚 Tracks, references, and design studies in one place🎯 Nexus teaches Next.js from foundations to professional systems⚡ App Router, React 19, and Tailwind v4 in one learning path🧩 Inspect real components, layouts, and reusable patterns🛠️ Build production discipline, not just polished demos📚 Tracks, references, and design studies in one place🎯 Nexus teaches Next.js from foundations to professional systems⚡ App Router, React 19, and Tailwind v4 in one learning path🧩 Inspect real components, layouts, and reusable patterns🛠️ Build production discipline, not just polished demos📚 Tracks, references, and design studies in one place🎯 Nexus teaches Next.js from foundations to professional systems⚡ App Router, React 19, and Tailwind v4 in one learning path🧩 Inspect real components, layouts, and reusable patterns🛠️ Build production discipline, not just polished demos📚 Tracks, references, and design studies in one place
UI

BottomDrawer

Mobile-first bottom sheet drawer with snap points and drag-to-dismiss, powered by vaul.

Quick Preview

Installation

# No extra dependencies
// Copy component from
src/components/ui/BottomDrawer.tsx

Usage

import BottomDrawer from '@/components/ui/BottomDrawer'
<BottomDrawer
trigger={<button>Open</button>}
title="Settings"
description="Adjust your preferences"
>
<p>Content</p>
</BottomDrawer>

Prompt Preview

Copy a prompt that recreates this UI

Paste this into your AI coding assistant to generate code that closely matches the reference, including color, size, shape, typography, spacing, and polish.

Copy-ready AI prompt

Starts from the current visual reference and project constraints.

Tweak only product-specific copy or data after the first generation pass.

Props

PropTypeDefaultDescription
trigger*React.ReactNode-Element that opens the drawer
titlestring-Drawer heading
snapPoints(number | string)[]-Array of snap positions