App / Page / Drawer
Responsive layout system inspired by Ionic. .header, .content, and .footer are generic structural components that work inside any flex-column container: page, drawer, card, modal, etc. All children go directly inside .page — no wrapper needed.
Basic Structure
Main scrollable content area
The content scrolls while header and footer stay fixed.
Drawer with toggle (no JS)
Main scrollable area with its own header and footer inside content.
The drawer has no header/footer — just padded content like Ionic.
Drawer with header & footer
Content area with its own header, content, and footer.
The drawer has header + footer. The main content also has nested header/content/footer.
Drawer Sizes
Select drawer size:
All Drawer Positions
Select position:
drawer-top and drawer-bottom also available for horizontal drawers.
Glass Variant
Glass morphism applied via the .glass modifier class.
Works on header, footer, and drawer.
Classes Reference
Generic Structure
Work inside any flex-column container: page, drawer, card, modal, sheet...
| Class | Description |
|---|---|
| header | Top bar (flex, shrink-0, border-bottom) |
| content | Scrollable body (flex-1, overflow-y auto) |
| footer | Bottom bar (flex, shrink-0, border-top) |
| no-border | Remove border from header/footer |
| glass | Glass morphism variant for header/footer/drawer |
Layout
| Class | Description |
|---|---|
| app | Root container, 100dvh, flex column |
| page | CSS Grid container for header + drawers + content + footer |
Drawer
| Class | Description |
|---|---|
| drawer | Sidebar panel base |
| drawer-toggle | Hidden checkbox for CSS-only toggle |
| drawer-start | Left position |
| drawer-end | Right position |
| drawer-top | Top position |
| drawer-bottom | Bottom position |
| drawer-title | Title text styling |
| drawer-collapsed | Desktop: width 0, content expands |
| drawer-open | Mobile: visible as overlay (class-based, for JS) |
| drawer-sm / lg / xl | Size variants (220/360/480px) |
| drawer-backdrop | Overlay backdrop (mobile, use as label) |
| drawer-backdrop-open | Show backdrop (class-based, for JS) |
Page Context
Applied automatically when .header/.footer are direct children of .page
| Selector | Effect |
|---|---|
| .page > .header | Full width, sticky, z-index 200 |
| .page > .content | Center column in grid |
| .page > .footer | Full width, sticky, z-index 200 |
| safe-area | Adds safe-area padding (notch devices) |