Sidebar
import { Sidebar, SidebarHeader, SidebarSearch, SidebarContent, SidebarGroup, SidebarItem, SidebarFooter } from "pleate/sidebar";Search, folding groups, icon rail, drawer
ExploreType in Search to filter. Below lg this is a drawer.
Settings in cards
Groups as cards with a colored tile per row, as in iPadOS Settings.
Props
- open / onOpenChange
Drawer state below the breakpoint.
boolean- collapsed
Icon rail on desktop; the filter is off while collapsed.
boolean- breakpoint
Column from here up.
"md" | "lg"default "lg"- variant / selection
Background and selected-row style.
"plain" | "surface" / "soft" | "filled"default "plain" / "filled"- sticky / top
Sticky column and its offset.
boolean / string- query / onQueryChange
Control the filter text yourself (optional).
string- SidebarSearch
Filter field. Down arrow moves into the results, Enter opens the first, Escape clears.
placeholder, label, shortcut- SidebarGroup
A titled group of rows. Folding animates; filterable={false} hides it while filtering.
label, icon, collapsible, defaultOpen, open, variant, textValue, filterable- SidebarItem
One row; closes the drawer on press. textValue is what the filter matches when children are not text.
icon, active, badge, asChild, textValue- SidebarContent emptyLabel
Shown when the filter leaves nothing.
ReactNode
Accessibility
- Drawer is a modal dialog: focus trap, Escape, scroll lock.
- Rail rows keep their label for screen readers and as a tooltip.
- Fold buttons expose aria-expanded; a folded list is inert, so it leaves the tab order.
- The filter announces the number of results in a status region.