DOCS
v0.4

Components / Sheet

Sheet

Slide-in sheet panel with snap points, dismiss gesture, and 4-sided positioning.

overlays v0.8.0

Playground

Examples

Bottom sheet
Open bottom sheetChoose an actionShareEditMoveArchive
<cg-button variant="primary" onclick="this.nextElementSibling.open=true">Open bottom sheet</cg-button><cg-sheet side="bottom" label="Quick actions"><cg-stack direction="column" gap="md"><cg-text size="md" weight="semibold">Choose an action</cg-text><cg-stack direction="column" gap="xs"><cg-button variant="tertiary">Share</cg-button><cg-button variant="tertiary">Edit</cg-button><cg-button variant="tertiary">Move</cg-button><cg-button variant="tertiary">Archive</cg-button></cg-stack></cg-stack></cg-sheet>
Right side panel
Open from rightFiltersApply
<cg-button variant="primary" onclick="this.nextElementSibling.open=true">Open from right</cg-button><cg-sheet side="right" label="Filters"><cg-stack direction="column" gap="md"><cg-text size="md" weight="semibold">Filters</cg-text><cg-checkbox label="Active only"></cg-checkbox><cg-checkbox label="Premium tier"></cg-checkbox><cg-checkbox label="With preview"></cg-checkbox><cg-checkbox label="Archived"></cg-checkbox><cg-button variant="primary">Apply</cg-button></cg-stack></cg-sheet>
Snap points (40% / 90%)
Open with snap pointsSnap-aware sheetDrag the handle to snap between 40% and 90% of viewport height.
<cg-button variant="primary" onclick="this.nextElementSibling.open=true">Open with snap points</cg-button><cg-sheet side="bottom" label="Player" .snapPoints=${[0.4,0.9]}><cg-stack direction="column" gap="sm"><cg-text size="md" weight="semibold">Snap-aware sheet</cg-text><cg-text size="sm" muted>Drag the handle to snap between 40% and 90% of viewport height.</cg-text></cg-stack></cg-sheet>

Import

import { CgSheet } from '@cognivo/components';
// Or tree-shake: import '@cognivo/components/cg-sheet';

Per-component imports ship only that component (~8 kB gzip).

API Reference

PropTypeDefaultDescription
open boolean false Open state
label string "Sheet" Accessible label
side "bottom"|"right"|"left"|"top" "bottom" Slide direction
snapPoints number[] Snap positions as viewport fractions
activeSnap number 0 Active snap index
dismissible boolean true Click/swipe to dismiss

Events

EventDetailDescription
cg-sheet-close {} Sheet dismissed