Loading...
Loading...
Designs layout systems and responsive interfaces including grid systems, flexbox patterns, sidebar layouts, and responsive breakpoints. Use when structuring app layouts, building responsive designs, or creating complex page structures.
npx skill4agent add ancoleman/ai-design-components designing-layouts.grid-container {
display: grid;
grid-template-columns: repeat(12, 1fr);
gap: var(--grid-gap);
max-width: var(--container-max-width);
margin: 0 auto;
padding: 0 var(--container-padding-x);
}
.col-span-6 { grid-column: span 6; }
.col-span-4 { grid-column: span 4; }
.col-span-3 { grid-column: span 3; }.auto-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
gap: var(--grid-gap);
}references/layout-patterns.md.holy-grail {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.holy-grail__body {
flex: 1;
display: flex;
}
.holy-grail__nav {
width: var(--sidebar-width);
flex-shrink: 0;
}
.holy-grail__main {
flex: 1;
min-width: 0; /* Prevent overflow */
}
.holy-grail__aside {
width: var(--sidebar-width);
flex-shrink: 0;
}references/css-techniques.md.card-container {
container-type: inline-size;
container-name: card;
}
@container card (min-width: 400px) {
.card {
grid-template-columns: auto 1fr;
gap: var(--spacing-lg);
}
}
@container card (min-width: 600px) {
.card {
grid-template-columns: 200px 1fr auto;
}
}references/responsive-strategies.md/* Mobile-first breakpoints using design tokens */
@media (min-width: 640px) { /* sm: Tablet portrait */
.container { max-width: 640px; }
}
@media (min-width: 768px) { /* md: Tablet landscape */
.container { max-width: 768px; }
}
@media (min-width: 1024px) { /* lg: Desktop */
.container { max-width: 1024px; }
}
@media (min-width: 1280px) { /* xl: Wide desktop */
.container { max-width: 1280px; }
}
@media (min-width: 1536px) { /* 2xl: Ultra-wide */
.container { max-width: 1536px; }
}references/responsive-strategies.md/* Base unit: 4px or 8px */
:root {
--spacing-xs: 4px;
--spacing-sm: 8px;
--spacing-md: 16px;
--spacing-lg: 24px;
--spacing-xl: 32px;
--spacing-2xl: 48px;
--spacing-3xl: 64px;
}
/* Apply systematically */
.section { padding: var(--section-spacing) 0; }
.container { padding: 0 var(--container-padding-x); }
.card { padding: var(--spacing-lg); }
.stack > * + * { margin-top: var(--spacing-md); }// tailwind.config.js
module.exports = {
theme: {
extend: {
spacing: {
'xs': 'var(--spacing-xs)',
'sm': 'var(--spacing-sm)',
'md': 'var(--spacing-md)',
'lg': 'var(--spacing-lg)',
'xl': 'var(--spacing-xl)',
},
screens: {
'sm': '640px',
'md': '768px',
'lg': '1024px',
'xl': '1280px',
'2xl': '1536px',
}
}
}
}references/library-guide.mdskills/design-tokens/node scripts/generate_breakpoints.js --approach mobile-firstnode scripts/calculate_fluid_typography.js --min-vw 320 --max-vw 1920node scripts/validate_layout_accessibility.js path/to/component.tsxscripts/generate_breakpoints.jsscripts/calculate_fluid_typography.jsscripts/validate_layout_accessibility.jsreferences/layout-patterns.mdreferences/responsive-strategies.mdreferences/css-techniques.mdreferences/accessibility-layouts.mdreferences/library-guide.mdreferences/performance-optimization.mdexamples/admin-layout.tsxexamples/responsive-grid.tsxexamples/masonry-layout.tsxexamples/split-pane.tsxassets/breakpoint-config.jsonassets/layout-templates.jsonassets/spacing-scale.json