跳到正文
cccskills
免费在 GitHub 公开

css-pro

Professional CSS: cascade mastery, modern layout, custom properties, and maintainable architecture. Use when writing, reviewing, or debugging CSS.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md5.9 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

CSS Pro

Overview

Modern CSS — cascade layers, container queries, :has(), subgrid, custom properties, and logical properties — has retired most of the hacks and half the frameworks. Professional CSS means understanding the cascade instead of fighting it with specificity wars, choosing layout tools deliberately (grid vs flex vs flow), architecting with layers and tokens, and writing CSS that survives the next developer.

The through-line: the cascade is a feature — architect for it, don't carpet-bomb it with !important.

When to use

  • Writing or reviewing CSS for idiom and maintainability.
  • Debugging specificity, layout, or cascade issues.
  • Architecting stylesheets (layers, tokens, naming).
  • Choosing layout approaches (Grid, Flexbox, multicol).
  • Building responsive, accessible, themeable interfaces.

Core concepts

  • The cascade, controlled. Specificity (inline > ID > class > element), source order, and now cascade layers (@layer base, components, utilities) — layers let you declare precedence explicitly instead of winning specificity arms races. Put resets in low layers, utilities high.
  • Custom properties as the design API. --color-primary, --space-4, --radius-lg — theming (dark mode = redefining tokens), runtime changes via JS, and scoped overrides. Properties inherit and cascade; use that instead of preprocessor variables for anything dynamic.
  • Layout: the right tool. Grid for two-dimensional layout (page structure, cards, dashboards); Flexbox for one-dimensional distribution (nav bars, button rows, centering); normal flow for documents. subgrid for aligning nested grids; container queries (@container) for components that respond to their container, not the viewport.
  • Modern selectors. :has() (parent-aware styling), :is()/:where() (:where() has zero specificity — perfect for resets), logical properties (margin-inline-start for RTL correctness), clamp()/min()/max() for fluid type and spacing without breakpoints.
  • Architecture that scales. Layers + a naming convention (BEM-ish or utility-hybrid) + tokens; colocate component styles or centralize deliberately — but one system per codebase. CSS Modules or scoped styles for component isolation where the stack supports it.
  • Accessibility is styling too. prefers-reduced-motion (disable non-essential animation), prefers-color-scheme, focus-visible styles (never remove outlines without replacing them), sufficient contrast as a token-level concern, not a per-component hope.

Practical workflow

  1. Set up the foundation. Reset (modern: *, *::before, *::after { box-sizing: border-box; margin: 0 } + sensible defaults), @layer order declared, tokens defined on :root.
  2. Define tokens first. Colors (semantic: --surface, --text, --accent), spacing scale, type scale, radii, shadows, motion durations. Components consume tokens, never raw values.
  3. Write layout top-down. Page grid → section layout → component internals. Choose grid/flex per axis deliberately; verify at 320px and 200% zoom, not just your monitor.
  4. Style states accessibly. :hover, :focus-visible, :disabled, [aria-*] — every interactive element has visible focus and disabled states; motion respects reduced-motion.
  5. Debug systematically. DevTools: which rule won and why (the cascade panel shows it); reduce to a minimal case; check inheritance vs specificity vs layer order before adding weight.
  6. Review CSS for: specificity creep, raw values instead of tokens, magic numbers, !important (each needs justification), untested responsive behavior, and missing reduced-motion handling.

Modern CSS sketch:

@layer reset, tokens, base, components, utilities;

@layer tokens {
  :root {
    --color-surface: #ffffff;
    --color-text: #1a1a1a;
    --space-4: 1rem;
    --radius-lg: 0.75rem;
  }
  @media (prefers-color-scheme: dark) {
    :root { --color-surface: #161616; --color-text: #f0f0f0; }
  }
}

@layer components {
  .card {
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    padding: var(--space-4);
    /* container-aware: adapts to its wrapper, not the viewport */
    container-type: inline-size;
  }
  @container (min-width: 40rem) {
    .card { display: grid; grid-template-columns: 1fr 2fr; }
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

Common pitfalls

  • Specificity wars. #app .container div.item span to override a library — then the library updates and everything breaks. Layers, :where(), and lower-specificity source order instead.
  • !important as a habit. Occasionally justified (utility overrides, reduced-motion reset); systemically it's a sign the layering/architecture failed.
  • Pixel-perfect at one viewport. Fixed widths and magic breakpoints that shatter on real devices. Fluid type/spacing (clamp()), container queries, and testing at extremes.
  • Removing focus outlines. outline: none without a replacement — keyboard users are now lost. :focus-visible with a strong, on-brand indicator.
  • Animating layout properties. width/top/margin animations jank (layout thrash). Animate transform and opacity (compositor-friendly); use the Web Animations API or CSS transitions deliberately.
  • Global namespace collisions. Generic class names (.title, .container) colliding across features. Scoping (modules, layers, naming convention) per the project's system.
  • Ignoring logical properties. margin-left in an RTL language breaks layout. Use margin-inline-start/padding-block for direction-aware styling from the start.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Master 1Password: vaults, Watchtower, passkeys, SSH agent, CLI, and family/team administration. Use when getting full value from 1Password personally or administering it for others.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills242026年10月10日 更新

Create 3D visuals with modeling, texturing, lighting, rendering, and optimization for web and product.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills242026年10月10日 更新

Create 3D web experiences: scene setup, models, materials, lighting, animation, scroll-driven scenes, and performance budgets. Use when adding 3D to websites beyond basic demos.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills242026年10月10日 更新

Writing abstracts that get papers read — structured content, the 5-sentence core, and journal-specific constraints.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills242026年10月10日 更新

Learn effectively from courses and academies: choosing programs, studying actively, and converting courses into skills. Use when investing time/money in structured learning.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills242026年10月10日 更新

Audit designs for accessibility with WCAG checklists covering color, type, focus, motion, and content.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills242026年10月10日 更新

查看 aicodedecode 的全部技能

报告此技能的问题