Modern CSS with Grid, Flexbox, and custom properties. Trigger: When writing CSS styles, implementing layouts, or using modern features.
Maintainable CSS with Grid, Flexbox, custom properties, container queries, cascade layers.
Use when:
@layerDon't use for Tailwind (tailwindcss skill) or MUI sx (mui skill).
/* CORRECT */
:root {
--color-primary: #0066cc;
--spacing: 1rem;
}
.button {
background: var(--color-primary);
padding: var(--spacing);
}
/* WRONG: hardcoded values */
.button {
background: #0066cc;
padding: 1rem;
}
/* CORRECT */
.container {
display: flex;
gap: 1rem;
justify-content: space-between;
}
/* WRONG: floats */
.container {
float: left;
clear: both;
}
@media (prefers-reduced-motion: reduce) {
* {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}
/* Fluid typography */
h1 { font-size: clamp(2rem, 5vw, 4rem); }
/* Container queries */
@container (min-width: 400px) {
.card { display: grid; grid-template-columns: 1fr 2fr; }
}
/* Modern aspect ratio (not padding hack) */
.video-container { aspect-ratio: 16 / 9; }
:is(h1, h2, h3) { color: var(--color-heading); }
:where(ul, ol) { padding-left: 1rem; } /* zero specificity */
.card:has(img) { display: grid; } /* parent selection */
@layer reset, base, components, utilities;
@layer reset {
* { margin: 0; padding: 0; box-sizing: border-box; }
}
@layer base {
body { font-family: system-ui, sans-serif; }
}
@layer components {
.button { padding: 0.5rem 1rem; }
}
@layer utilities {
.text-center { text-align: center; }
}
One-dimensional layout?
→ Flexbox
Two-dimensional layout?
→ Grid
Responsive sizing?
→ clamp(), min(), max()
Theme values?
→ :root custom properties + var()
Center element?
→ Flexbox place-content: center or Grid place-items: center
Hide element?
→ display: none (removes), visibility: hidden (keeps space), opacity: 0 (transitions)
Responsive breakpoints?
→ Container queries (component), media queries (viewport)
:root {
--color-primary: #0066cc;
--spacing-unit: 0.5rem;
}
.card {
display: flex;
flex-direction: column;
gap: calc(var(--spacing-unit) * 2);
padding: var(--spacing-unit);
border-radius: 0.5rem;
background-color: var(--color-primary);
}
@media (prefers-reduced-motion: reduce) {
* { animation-duration: 0.01ms !important; }
}
@media printprefers-color-scheme!important except in utility layersprefers-reduced-motion respected@layer for cascade controlmargin-inline, padding-block):is(), :where(), :has())clamp()/min()/max() for fluid sizingaspect-ratio for media containersSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer