Claude-skill-registry css-workflow
CSS and styling workflow guidelines. Activate when working with CSS files (.css), Tailwind CSS, Stylelint, or styling-related tasks.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/css-workflow" ~/.claude/skills/majiayu000-claude-skill-registry-css-workflow && rm -rf "$T"
manifest:
skills/data/css-workflow/SKILL.mdsource content
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
CSS Workflow
Tool Grid
| Task | Tool | Command |
|---|---|---|
| Lint | Stylelint | |
| Format | Prettier | |
| Dead code | PurgeCSS | |
Tailwind CSS
RECOMMENDED over custom CSS for consistency and maintainability.
- SHOULD use utility classes for most styling needs
- MUST configure
for project design tokenstailwind.config.js - SHOULD use
sparingly - prefer utilities in markup@apply - MUST NOT use arbitrary values (
) when design token exists[123px] - SHOULD extend theme rather than override
Class order: Layout > Sizing > Spacing > Typography > Colors > Effects > Interactivity
Native CSS Features
SHOULD prefer native CSS over Sass/preprocessors.
/* CSS Variables */ :root { --color-primary: #3b82f6; } .component { color: var(--color-primary, #3b82f6); } /* Native Nesting */ .card { & .title { font-weight: bold; } &:hover { box-shadow: 0 4px 6px rgb(0 0 0 / 0.1); } } /* Container Queries */ .card-container { container-type: inline-size; } @container (min-width: 400px) { .card { display: grid; } }
Naming Conventions
SHOULD use BEM for custom CSS:
.card { } /* Block */ .card__title { } /* Element */ .card--featured { } /* Modifier */
- MUST use lowercase
kebab-case - SHOULD use semantic names (
notbtn-primary
)btn-blue - MUST prefix utilities with
, JS hooks withu-js-
Organization
Property order: Positioning > Display/Box Model > Typography > Visual > Misc
Mobile-first: MUST use
min-width media queries.
.component { padding: 1rem; @media (min-width: 768px) { padding: 2rem; } }
Modern Features
/* Grid - 2D layouts */ .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; } /* Flexbox - 1D layouts */ .flex { display: flex; align-items: center; gap: 1rem; } /* Logical properties - i18n support */ .component { margin-inline: auto; padding-block: 1rem; }
Dark Mode
MUST support via
prefers-color-scheme:
:root { --color-bg: #fff; --color-text: #1a1a1a; } @media (prefers-color-scheme: dark) { :root { --color-bg: #1a1a1a; --color-text: #fff; } }
Optional class toggle:
[data-theme="dark"] { --color-bg: #1a1a1a; }
Performance
- SHOULD inline critical above-the-fold CSS
- MUST NOT use
in production (blocks parallel downloads)@import - MUST remove unused CSS (PurgeCSS, Tailwind purge)
- SHOULD limit selector specificity (max 3 levels)
- MUST NOT use
except for utilities!important
Accessibility
Focus States (REQUIRED)
:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
Reduced Motion (REQUIRED)
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }
Color & Visibility
- MUST meet WCAG 2.1 AA contrast (4.5:1 text, 3:1 large text)
- SHOULD NOT rely on color alone to convey information
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }