layout-sidebar
Sidebar layout with a fixed-width sidebar and flexible main content area. Automatically stacks on narrow viewports.
Attributes
| Attribute | Values | Default | Description |
|---|---|---|---|
data-layout-side |
start, end |
start |
Which side the sidebar appears on |
data-layout-gap |
xs, s, m, l, xl |
m |
Gap between sidebar and main content |
data-layout-sidebar-width |
narrow, normal, wide |
normal |
Width of the sidebar (12rem, 15rem, 20rem) |
data-layout-content-min |
40, 50, 60 |
50 |
Minimum width percentage for main content before wrapping |
data-layout-nowrap |
boolean | - | Prevents stacking on narrow viewports |
Side Variants
The data-layout-side attribute controls which side the sidebar appears on.
Sidebar side variants
<!-- Sidebar on start --><layout-sidebar data-layout-gap="m"> <aside>Sidebar content</aside> <main>Main content</main></layout-sidebar> <!-- Sidebar on end --><layout-sidebar data-layout-gap="m" data-layout-side="end"> <main>Main content</main> <aside>Sidebar content</aside></layout-sidebar>
Width Variants
The data-layout-sidebar-width attribute controls the sidebar width.
Sidebar width variants
<!-- Narrow sidebar (12rem) --><layout-sidebar data-layout-sidebar-width="narrow"> <aside>Sidebar content</aside> <main>Main content</main></layout-sidebar> <!-- Normal sidebar (15rem) - default --><layout-sidebar data-layout-sidebar-width="normal"> <aside>Sidebar content</aside> <main>Main content</main></layout-sidebar> <!-- Wide sidebar (20rem) --><layout-sidebar data-layout-sidebar-width="wide"> <aside>Sidebar content</aside> <main>Main content</main></layout-sidebar>
Gap Variants
The data-layout-gap attribute controls spacing between sidebar and main content.
Sidebar gap variants
<layout-sidebar data-layout-gap="xs">...</layout-sidebar><layout-sidebar data-layout-gap="s">...</layout-sidebar><layout-sidebar data-layout-gap="m">...</layout-sidebar><layout-sidebar data-layout-gap="l">...</layout-sidebar><layout-sidebar data-layout-gap="xl">...</layout-sidebar>
Usage Examples
Dashboard Layout
Dashboard with sidebar navigation
<layout-sidebar data-layout-gap="l" data-layout-sidebar-width="normal"> <aside> <nav> <ul> <li><a href="#">Overview</a></li> <li><a href="#">Analytics</a></li> <li><a href="#">Reports</a></li> <li><a href="#">Settings</a></li> </ul> </nav> </aside> <main> <h2>Dashboard Content</h2> <layout-grid data-layout-min="12rem" data-layout-gap="m"> <layout-card>Stat 1</layout-card> <layout-card>Stat 2</layout-card> <layout-card>Stat 3</layout-card> </layout-grid> </main></layout-sidebar>
Article with Related Content
Article with sidebar for related content
<layout-sidebar data-layout-gap="l" data-layout-side="end"> <article> <h2>Article Title</h2> <p>Main article content...</p> </article> <aside> <h3>Related Articles</h3> <ul> <li><a href="#">Article 1</a></li> <li><a href="#">Article 2</a></li> </ul> </aside></layout-sidebar>
Filters Layout
Product listing with filters sidebar
<layout-sidebar data-layout-gap="m" data-layout-sidebar-width="narrow"> <aside> <h3>Filters</h3> <select> <option>Category</option> </select> <select> <option>Price Range</option> </select> <button type="button">Apply Filters</button> </aside> <main> <layout-grid data-layout-min="10rem" data-layout-gap="m"> <layout-card>Product 1</layout-card> <layout-card>Product 2</layout-card> <layout-card>Product 3</layout-card> </layout-grid> </main></layout-sidebar>
Related
<layout-stack>- Vertical stacking layout<layout-grid>- Auto-fit grid layout<layout-switcher>- Responsive row/column switcher