Skip to content
Twentyfirst UIHalo

Sheet

Overlays · Drawer, SelectMenu, Button

View as Markdown

A Drawer that slides in from any edge: side="right" (default), "left", "top" or "bottom". Bottom sheets suit filters and quick actions on phones; left sheets hold navigation.

  • Focus moves into the sheet and stays there until it closes; Escape and a click outside close it.

Props

Drawer

PropTypeNotes
titlestringRequired
subtitle?ReactNode
avatar?string
onClose?() => void
width?number | string
inline?boolean
children?ReactNode
open?booleanOptional: with `open` the component stays mounted while it animates out; without it, render it only while open.
className?stringExtra class on the root element.
style?CSSPropertiesInline style on the root element.

SelectMenu

PropTypeNotes
options(string | SelectMenuOption)[]Required
value?string
defaultValue?string
onChange?(value: string) => void
placeholder?string
disabled?boolean
size?"sm" | "md"`sm`: a compact trigger, e.g. a sort menu next to a heading.
label?string
hint?string
error?string
className?stringExtra class on the root element.
style?CSSPropertiesInline style on the root element.

Button

PropTypeNotes
variant?"primary" | "secondary" | "soft" | "ghost" | "danger" | "danger-solid"
size?"md" | "sm"
icon?IconName
iconRight?IconName
disabled?boolean
type?"button" | "submit" | "reset"
onClick?(e: MouseEvent<HTMLButtonElement>) => void
children?ReactNode
asChild?booleanRender the single child element (a link, a router Link) with the button's look instead of a <button>.
id?string
name?stringForm field name and value, sent with the form when this button submits it.
value?string
form?stringThe id of the form this button belongs to, when it sits outside it.
title?string
tabIndex?number
autoFocus?boolean
aria-label?string
aria-labelledby?string
aria-describedby?string
aria-expanded?boolean | "true" | "false"For disclosure and menu triggers: whether what the button controls is open.
aria-controls?string
aria-haspopup?boolean | "true" | "false" | "menu" | "listbox" | "tree" | "grid" | "dialog"
aria-pressed?boolean | "true" | "false" | "mixed"For toggle buttons.
aria-current?boolean | "true" | "false" | "page" | "step" | "location" | "date" | "time"
className?stringExtra class on the root element.
style?CSSPropertiesInline style on the root element.