Skip to content

Live demos ​

Every demo runs the real built package. Each panel is one small source file, shown whole below its preview. The basics live here; stacks, rewrites and popovers are on Complex examples.

Anatomy ​

One sheet with every structural part colour-coded, so you can see the pieces before wiring one up.

Vanilla ​

The framework-agnostic core on plain DOM — no React, no framework at all.

Basic ​

Themed ​

Per-instance theming: style sets --sheet-* tokens on the root, so they reach every part — including the backdrop, which a card class can't reach.

React ​

The sheet-view/react adapter — createSheets() plus <SheetHost/>, slots widened to ReactNode.

Basic ​

A pinned footer over a scrolling body, plus both default-header glyphs supplied as plain JSX — icon before the title and closeIcon inside the close button. The button itself stays library-owned, so its label, its disabled state and its 44×44 hit target come for free.

Form & native controls ​

A real <form> inside the modal sheet, and the library is not involved at any point. autocomplete attributes let password managers offer autofill; focusOnOpen keeps the entrance keyboard-safe on mobile while the email field autofocuses. The <select> and date popups are OS-rendered, so the modal top layer doesn't apply to them — no portalling, no positioning code. Built-in browser autofill works, and so does an extension's dropdown (iCloud Passwords in Chrome) — see Notes & limitations.

Everything past the basics — Complex examples: stacked sheets, keyed re-opens, in-place rewrites, anchored dropdowns, and a toast above the modal.