# Layouts CSS Grid-based page layouts. All layouts are responsive by default. ## Sidebar Layout ```html
Main content
``` **Variants:** - `.layout-sidebar` - 250px sidebar (default) - `.layout-sidebar.narrow` - 150px sidebar - `.layout-sidebar.wide` - 350px sidebar - `.layout-sidebar.invert` - Sidebar on right - `.layout-sidebar.fill` - Full-height sidebar (for app shells) ## App Shell with Sidebar ```html
``` ## Card Grid Auto-fill responsive grid: ```html
Card 1
Card 2
Card 3
``` Customize minimum card width: ```html
``` ## Split (50/50) ```html
Left half
Right half
``` Add `.no-stack` to prevent stacking on mobile. ## Three Column ```html
Column 1
Column 2
Column 3
``` Responsive: 3 cols → 2 cols → 1 col. ## Holy Grail Sidebar + content + sidebar: ```html
Content
``` ## Readable Width Max-width container for optimal reading: ```html

Content constrained to readable width

``` **Variants:** - `.layout-readable` - Start-aligned - `.layout-readable.center` - Centered - `.layout-readable.end` - End-aligned **Full bleed child:** ```html

Normal content

Back to readable width

``` ## CSS Variables - `--gap` or `--layout-gap` - Gap between grid items - `--min-card-width` - Minimum card width for `.layout-card` - `--max-width` - Max width for `.layout-readable` - `--padding` - Inline padding for `.layout-readable` ## See Also - [Stack & cluster](https://graffiti-ui.com/llms/stack-cluster.txt) - Flexbox layouts - [Sidebar navigation](https://graffiti-ui.com/llms/sidebar-nav.txt) - Nav component for sidebars