name: best-practices-css
description: Produce idiomatic, browser-aware modern CSS with progressive-enhancement fallbacks for vanilla CSS and Svelte styling tasks. Use for layout, spacing, typography, color/theming, responsive/container-query work, selector/specificity cleanup, and interactive UI styling, plus feature-compatibility lookups (tier, bcd_id, @supports fallbacks) for individual motion features. For motion design — easing systems, transform strategy, View Transitions choreography, Disney principles — defer to css-motion-systems. Do not use for non-styling business logic, or design critique without code edits.
CSS Best Practices
Replace outdated styling patterns with idiomatic, accessible, performance-aware CSS.
Defaults
- Compatibility: Baseline (Tier A only) unless user requests Progressive or Experimental.
- Recommendations: one primary solution per problem — no competing options.
Workflow
- Classify — name the styling domain (layout, motion, theme, selectors, interactive, typography, workflow/architecture) and constraints (browser support, a11y, framework).
- Load context — read
preferences/index.mdfirst (token-driven, scope-local, cascade-first defaults). Thenreferences/index.mdto find the matching profile and only the relevant rule files inreferences/rules/. Cap rule files at 5 per task. - Match tier — confirm each rule's
tiermatches the active compatibility mode. Usebcd_idandmdn_urlfrom rule frontmatter for any user-facing support claims. - Implement — provide a patch-level code change. For B/C features, include an
@supportsfallback that preserves a usable Tier A baseline. - Quality check:
- No a11y regressions
- No unnecessary specificity escalation
- No avoidable JS workaround when native CSS works
- Motion respects
prefers-reduced-motion
Compatibility Modes
| Mode | Tiers | When |
|---|---|---|
| Baseline (default) | A (>=90%) |
Production-safe, unknown browser matrix |
| Progressive | A + B (80–89%) |
User accepts fallbacks |
| Experimental | A + B + C (<80%) |
User explicitly asks for cutting-edge |
For B/C features: keep a robust Tier A baseline and layer enhancements with @supports.
Core Principles
Topical map of the rules in preferences/index.md. The preferences file (and individual rule files) are authoritative on conflicts.
- Cascade —
@layerordering,:where()/class selectors, avoid!important. - Tokens — every color, size, shadow, space is a
var(--*); centralize at:root, override per component. - Variants — override the custom property downstream properties already read; don't restyle the surface.
- Layout — intrinsic first (
gap,aspect-ratio, Grid/Flex,auto-fit,minmax,clamp); container queries when component size is the constraint, media queries when the viewport is. - Logical properties —
margin-inline,padding-block,inset-inlineover physical directions. - Animation — transform/opacity-based motion,
prefers-reduced-motion, no JS-driven style hacks. For motion design, easing systems, and View Transitions choreography, use thecss-motion-systemsskill; theanimation-*rule files here remain authoritative for per-feature tier and compatibility data. - Accessibility — preserve
:focus-visible, keyboard semantics; never trade a11y for visuals. - Architecture —
@scope, nesting,@propertywithinherits: falsefor component-local primitives. - Readability — limit deep selector chains, avoid unnecessary nesting.
Framework Output
When user requests Svelte: use <style> blocks (scoped by default), reach for :global() only when necessary. Follow the project's existing Svelte styling conventions.
Output Format
- Recommendation — one concise modern replacement
- Why — maintainability/perf/a11y benefit in 1–2 lines
- Compatibility — mode + tier
- Fallback — required for B/C, optional for A
- Code patch — copy-paste ready
References
preferences/index.md— author preferences (token-driven, scope-local, cascade-first); load firstreferences/index.md— rule map and quick search commandsreferences/profiles/—stable.md(A),progressive.md(B),experimental.md(C)references/css-techniques-guide.md— full catalog with before/after examplesreferences/rules/— per-technique files withtier,bcd_id,mdn_url, and caveatscss-motion-systemsskill — companion skill for motion design, easing systems, View Transitions choreography, and Disney animation principles
Anti-Patterns
- Recommending B/C features without a Tier A fallback
- Using snapshot
%support values as sole evidence for production readiness - Introducing
!importantor deep specificity chains without necessity - Returning style advice without concrete patch-level code
- Outputting framework-specific syntax when user asked for plain CSS
- Loading more rule files than needed — stay within 5 per task