Bottom Sheet

A mobile-style sheet you drag between snap points (screen fractions or auto height); a fast flick or long pull dismisses it. It portals to the body, pins the page so iOS cannot scroll underneath, and closes on Escape or a scrim tap.

Preview

Bottom Sheet preview width

Install

Add it with the shadcn CLI, or copy the source manually.

$ bunx --bun shadcn add @karaui/bottom-sheet
@karaui not found? Add it to components.json
{
  "registries": {
    "@karaui": "https://karaui.kamisama-v0.my.id/r/{name}.json"
  }
}

@karaui is in shadcn's public registry directory, so the latest CLI needs no setup. On an older CLI, merge this into the existing file once and every @karaui/… install resolves.

API Reference

open
boolean
—
onOpenChange
(open: boolean) => void
—
snapPoints?
(number | "auto")[]

Heights (0-1 = fraction of viewport, or "auto"). First entry is default.

[0.5, 0.92]
defaultSnap?
number
0
title?
string
—
description?
string
—
className?
string
—
dismissThreshold?
number

Min drag distance (px) past current snap to dismiss.

120

Updated