Back to Docs
UX Pattern
Bottom Sheet Recipe
A draggable overlay panel anchored to the viewport edge — perfect for mobile-first actions, filters, and contextual menus.
Anatomy
Drag handle
Content slotStates
Collapsed
Peek handle only
Half
~50vh default
Expanded
~90vh full
Implementation
<div className="fixed inset-x-0 bottom-0
z-50 max-h-[90vh] rounded-t-2xl
bg-[#0A0612] border-t border-gray-800
shadow-2xl shadow-[#8B5CF6]/10">
<div className="mx-auto mt-3 h-1 w-10
rounded-full bg-gray-700" />
<div className="p-6">{children}</div>
</div>Best Practices
- •Lock body scroll when sheet is open via overflow-hidden on document.documentElement.
- •Use a 200ms ease-out transition on transform for snap points.
- •Render a scrim (bg-black/50) behind the sheet — tap to dismiss.
- •Respect safe-area-inset-bottom for notched devices.
This pattern ships in Meridian's mobile filter panel and quick-action drawer. See the component library for the production-ready variant.