useSheetPresentation
useSheetPresentation chooses a sheet when the pointer is coarse or the viewport is narrower than 640px, and a popover otherwise. Those are defaults: coarseQuery and narrowWidth change them. Unless forced is 'popover' or 'sheet', server render and the first paint are popover. isSheet mirrors presentation === "sheet"; it is not isTouch. useCombobox uses it for presentation: 'auto'.
popover · isSheet=false
When to use
When: Choose popover or sheet at runtime: coarse pointer or width under 640px (by default) → sheet. SSR and first paint are popover. forced overrides.
When not: Always a centered modal → Dialog. Always a sheet → BottomSheet alone. Desktop-only anchored overlay → usePopover alone.
Props
| Name | Type | Description |
|---|---|---|
narrowWidth | number | Viewport width that starts the narrow media query. Media is max-width: n - 1. Default: 640 |
coarseQuery | string | matchMedia query treated as coarse pointer. Default: '(pointer: coarse)' |
forced | "popover" | "sheet" | "auto" | Skip media when popover or sheet. auto uses coarse OR narrow. Default: "auto" |