GitHub

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

Preview
Header

Main scrollable content area

The content scrolls while header and footer stay fixed.

Footer / Tabbar

Drawer with toggle (no JS)

Preview
My App
Dashboard

Main scrollable area with its own header and footer inside content.

The drawer has no header/footer — just padded content like Ionic.

Tabbar

Drawer with header & footer

Preview
Orders

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

Preview

Select drawer size:

All Drawer Positions

Preview

Select position:

drawer-top and drawer-bottom also available for horizontal drawers.

Glass Variant

Preview
Glass Header

Glass morphism applied via the .glass modifier class.

Works on header, footer, and drawer.

Glass Footer

Classes Reference

Generic Structure

Work inside any flex-column container: page, drawer, card, modal, sheet...

Class Description
headerTop bar (flex, shrink-0, border-bottom)
contentScrollable body (flex-1, overflow-y auto)
footerBottom bar (flex, shrink-0, border-top)
no-borderRemove border from header/footer
glassGlass morphism variant for header/footer/drawer

Layout

Class Description
appRoot container, 100dvh, flex column
pageCSS Grid container for header + drawers + content + footer

Drawer

Class Description
drawerSidebar panel base
drawer-toggleHidden checkbox for CSS-only toggle
drawer-startLeft position
drawer-endRight position
drawer-topTop position
drawer-bottomBottom position
drawer-titleTitle text styling
drawer-collapsedDesktop: width 0, content expands
drawer-openMobile: visible as overlay (class-based, for JS)
drawer-sm / lg / xlSize variants (220/360/480px)
drawer-backdropOverlay backdrop (mobile, use as label)
drawer-backdrop-openShow backdrop (class-based, for JS)

Page Context

Applied automatically when .header/.footer are direct children of .page

Selector Effect
.page > .headerFull width, sticky, z-index 200
.page > .contentCenter column in grid
.page > .footerFull width, sticky, z-index 200
safe-areaAdds safe-area padding (notch devices)