CSS Grid & Flexbox
Complete flexbox and CSS grid reference with common layout patterns.
cssfrontendlayout
# CSS Grid & Flexbox
## Flexbox
```css
.container {
display: flex;
flex-direction: row; /* row | column | row-reverse | column-reverse */
justify-content: space-between; /* main axis alignment */
align-items: center; /* cross axis alignment */
flex-wrap: wrap;
gap: 1rem;
}
.item {
flex: 1 1 200px; /* grow shrink basis */
align-self: flex-start;
order: 2;
}
```
## CSS Grid
```css
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-areas:
"header header header"
"sidebar main main"
"footer footer footer";
gap: 1rem;
}
.header { grid-area: header; }
.item {
grid-column: 1 / 3; /* span cols 1-2 */
grid-row: span 2;
}
```
## Responsive grid (no media queries)
```css
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
```
## Common patterns
```css
/* Sticky footer */
body { display: flex; flex-direction: column; min-height: 100vh; }
main { flex: 1; }
/* Centered card */
.page { display: grid; place-items: center; min-height: 100vh; }
```
## When to use which
- **Flexbox**: 1D (row or column), navbars, button groups, component internals.
- **Grid**: 2D page layout, card grids, overlapping elements.API: /api/skills/css-layout