css-flexbox-grid
Master Flexbox and CSS Grid layouts for modern responsive design
When & Why to Use This Skill
This Claude skill provides comprehensive guidance and code generation for modern CSS layouts, specializing in Flexbox and CSS Grid. It empowers developers to implement responsive 1D and 2D design patterns with validated parameters, mobile-first strategies, and production-ready CSS snippets to streamline frontend development.
Use Cases
- Building responsive navigation bars, centered hero sections, and flexible content containers using Flexbox alignment properties.
- Designing complex, multi-dimensional web layouts such as dashboard interfaces, card grids, and masonry galleries with CSS Grid.
- Implementing common UI patterns like the 'Holy Grail' layout or sidebar-main content structures with built-in responsive breakpoints.
- Optimizing existing CSS codebases by migrating legacy float-based layouts to modern, maintainable Flexbox and Grid systems.
- Rapidly prototyping fluid layouts using advanced CSS functions like clamp(), minmax(), and auto-fit for cross-device compatibility.
| name | css-flexbox-grid |
|---|---|
| description | Master Flexbox and CSS Grid layouts for modern responsive design |
| sasmp_version | "1.3.0" |
| version | "2.0.0" |
| updated | "2025-12-30" |
| bonded_agent | 02-css-layout-master |
| bond_type | PRIMARY_BOND |
CSS Flexbox & Grid Skill
Master modern CSS layout systems: Flexbox for 1D layouts and CSS Grid for 2D layouts.
Overview
This skill provides atomic, focused guidance on CSS layout techniques with comprehensive parameter validation and practical examples.
Skill Metadata
| Property | Value |
|---|---|
| Category | Layout |
| Complexity | Intermediate to Advanced |
| Dependencies | css-fundamentals |
| Bonded Agent | 02-css-layout-master |
Usage
Skill("css-flexbox-grid")
Parameter Schema
parameters:
layout_type:
type: string
required: true
enum: [flexbox, grid, comparison, responsive]
description: Layout system to explore
pattern:
type: string
required: false
enum: [centering, sidebar, card-grid, holy-grail, navbar, gallery]
description: Common layout pattern
include_responsive:
type: boolean
required: false
default: true
description: Include responsive adaptations
validation:
- rule: layout_type_required
message: "layout_type parameter is required"
- rule: valid_pattern
message: "pattern must be a recognized layout pattern"
Topics Covered
Flexbox
- Container properties: display, flex-direction, flex-wrap
- Alignment: justify-content, align-items, align-content
- Item properties: flex-grow, flex-shrink, flex-basis
- Gap, order, and self-alignment
CSS Grid
- Grid template: columns, rows, areas
- Grid placement: lines, spans, named areas
- Auto-fit, auto-fill, minmax()
- Subgrid and masonry (where supported)
Responsive Patterns
- Mobile-first approach
- Breakpoint strategies
- Container queries integration
- Fluid layouts with clamp()
Retry Logic
retry_config:
max_attempts: 3
backoff_type: exponential
initial_delay_ms: 1000
max_delay_ms: 10000
retryable_errors:
- TIMEOUT
- RATE_LIMIT
Logging & Observability
logging:
entry_point: skill_invoked
exit_point: skill_completed
log_parameters: true
metrics:
- invocation_count
- pattern_usage
- layout_type_distribution
Quick Reference
Flexbox Cheatsheet
.container {
display: flex;
flex-direction: row; /* row | column | row-reverse | column-reverse */
flex-wrap: wrap; /* nowrap | wrap | wrap-reverse */
justify-content: center; /* flex-start | flex-end | center | space-between | space-around | space-evenly */
align-items: center; /* flex-start | flex-end | center | stretch | baseline */
gap: 1rem;
}
.item {
flex: 1 1 auto; /* grow shrink basis */
align-self: flex-start;
order: 0;
}
Grid Cheatsheet
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: auto 1fr auto;
grid-template-areas:
"header header header"
"sidebar main aside"
"footer footer footer";
gap: 1rem;
}
.item {
grid-column: 1 / 3; /* start / end */
grid-row: span 2;
grid-area: header;
}
Decision Matrix
Need 2D control?
├─ YES → CSS Grid
└─ NO
├─ Content determines size? → Flexbox
├─ Equal sizing needed? → Grid
└─ Simple row/column → Flexbox
Common Patterns
Center Anything
/* Flexbox centering */
.flex-center {
display: flex;
justify-content: center;
align-items: center;
}
/* Grid centering */
.grid-center {
display: grid;
place-items: center;
}
Responsive Card Grid
.card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1.5rem;
}
Sidebar Layout
.sidebar-layout {
display: grid;
grid-template-columns: minmax(200px, 25%) 1fr;
min-height: 100vh;
}
@media (max-width: 768px) {
.sidebar-layout {
grid-template-columns: 1fr;
}
}
Test Template
describe('CSS Flexbox Grid Skill', () => {
test('validates layout_type parameter', () => {
expect(() => skill({ layout_type: 'invalid' }))
.toThrow('layout_type must be one of: flexbox, grid...');
});
test('returns flexbox properties for flexbox type', () => {
const result = skill({ layout_type: 'flexbox' });
expect(result).toContain('display: flex');
expect(result).toContain('justify-content');
});
test('includes responsive code when flag is true', () => {
const result = skill({
layout_type: 'grid',
pattern: 'card-grid',
include_responsive: true
});
expect(result).toContain('@media');
});
});
Error Handling
| Error Code | Cause | Recovery |
|---|---|---|
| INVALID_LAYOUT_TYPE | Unknown layout type | Show valid options |
| INCOMPATIBLE_PATTERN | Pattern doesn't fit layout type | Suggest alternative |
| MISSING_DEPENDENCY | Fundamentals not understood | Link to css-fundamentals |
Related Skills
- css-fundamentals (prerequisite)
- css-modern (container queries)
- css-architecture (component layout patterns)