Skip to main content

Types

SheetDetent

<TrueSheet detents={['auto', 0.8, 1]}>
<View />
</TrueSheet>
ValueDescription🍎🤖🌐
"auto"Auto resize based on content height.16+
numberFractional height (0-1) representing percentage of screen height.

BlurTint

Blur tint that is mapped into native values in IOS.

<TrueSheet blurTint="dark">
<View />
</TrueSheet>
Value
"light"
"dark"
"default"
"extra-light"
"regular"
"prominent"
"system-ultra-thin-material"
"system-thin-material"
"system-material"
"system-thick-material"
"system-chrome-material"
"system-ultra-thin-material-light"
"system-thin-material-light"
"system-material-light"
"system-thick-material-light"
"system-chrome-material-light"
"system-ultra-thin-material-dark"
"system-thin-material-dark"
"system-material-dark"
"system-thick-material-dark"
"system-chrome-material-dark"

BlurOptions

Options for customizing the blur effect. Only applies when blurTint is set.

<TrueSheet
blurTint="dark"
blurOptions={{
intensity: 80,
interaction: false,
}}
>
<View />
</TrueSheet>
PropertyTypeDescriptionDefault
intensitynumberThe intensity of the blur effect (0-100).system default
interactionbooleanEnables or disables user interaction on the blur view. Disabling can help with visual artifacts on iOS 18+.true

GrabberOptions

Options for customizing the grabber (drag handle) appearance.

<TrueSheet
grabber
grabberOptions={{
width: 48,
height: 6,
topMargin: 10,
cornerRadius: 3,
color: '#FF0000',
adaptive: false,
}}
>
<View />
</TrueSheet>
PropertyTypeDescriptionDefault
widthnumberThe width of the grabber pill.iOS: 36, Android: 32
heightnumberThe height of the grabber pill.iOS: 5, Android: 4
topMarginnumberThe top margin from the sheet edge.iOS: 5, Android: 16
cornerRadiusnumberThe corner radius of the grabber pill.height / 2
colorColorValueThe color of the grabber. Uses native styling when not provided.
adaptivebooleanWhether the grabber adapts to light/dark mode. Uses vibrancy on iOS and theme-based colors on Android.true

InsetAdjustment

Controls how the bottom safe area inset affects detent heights.

<TrueSheet insetAdjustment="never">
<View />
</TrueSheet>
ValueDescription
"automatic"System handles insets automatically. This is the default behavior.
"never"TrueSheet will keep the layout as-is for precise sizing.

StackBehavior

Defines the stack behavior when a modal is presented while another is visible. Web only.

<TrueSheet stackBehavior="push">
<View />
</TrueSheet>
ValueDescription
"push"Mount the modal on top of the current one.
"switch"Minimize the current modal then mount the new one. This is the default behavior.
"replace"Dismiss the current modal then mount the new one.

DetentInfoEventPayload

Object that comes with most sheet events.

{
index: 1,
position: 123.5,
detent: 0.5
}
PropertyTypeDescription
indexnumberThe detent index from the provided detents. See detents prop.
positionnumberThe Y position of the sheet relative to the screen.
detentnumberThe detent value (0-1) for the current index.

PositionChangeEventPayload

Object that comes with the onPositionChange event. Extends DetentInfoEventPayload.

{
index: 1.5,
position: 123.5,
detent: 0.5,
realtime: true
}
PropertyTypeDescription
indexnumberThe interpolated detent index. Continuous value that smoothly transitions between detents (e.g., 0.5 means halfway between detent 0 and 1).
positionnumberThe Y position of the sheet relative to the screen.
detentnumberThe detent value (0-1) for the nearest detent index.
realtimebooleanWhether the position is a real-time value (e.g., during drag or animation tracking). When false, position should be animated in JS.