
Css
作者 mindrally97184105b5da無授權條款269 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫5 週前更新
Best practices for CSS development including modern layout techniques, naming conventions, theming, and maintainable stylesheet architecture
撰寫可維護 CSS 的規範:版面配置、命名、主題、響應式、效能與無障礙。
- 功能
- 提供一套 CSS 開發最佳實務參考,涵蓋 Flexbox 與 Grid 版面配置、單位與排版、用於主題化的自訂屬性、BEM 命名、優先級管理、響應式設計、效能、現代 CSS 功能、樣式表組織、瀏覽器相容性與無障礙。它是純說明文件,不含指令碼,也不產出檔案;代理在撰寫或審查樣式表時套用這些指引。
- 適用情境
- 適用於撰寫、重構或審查 CSS 與樣式表架構時。也適合制定命名慣例、設計權杖或主題方案,以及檢查響應式與無障礙實務。
- 執行需求
- 除代理本身外無需其他條件;僅為說明文件,無指令碼、套件或憑證。
CSS Development Guidelines
Core Principles
- Write semantic HTML to improve accessibility and SEO
- Use CSS for styling, avoiding inline styles
- Ensure responsive design using media queries and flexible layouts
- Prioritize external stylesheets over inline or embedded styles
Layout Techniques
Flexbox
- Use Flexbox for one-dimensional layouts (rows or columns)
- Leverage
justify-content and align-items for alignment
- Use
flex-wrap for responsive wrapping behavior
- Prefer
gap property over margins for consistent spacing
Grid
- Use CSS Grid for two-dimensional layouts
- Define grid templates with
grid-template-columns and grid-template-rows
- Use
grid-area for named template areas
- Leverage
auto-fit and auto-fill for responsive grids
Units and Typography
- Use
rem units for typography to respect user preferences
- Use
em units for component-relative sizing
- Avoid
px for font sizes; reserve for borders and fixed elements
- Implement fluid typography with
clamp() when appropriate
- Use viewport units (
vw, vh) thoughtfully for full-screen layouts
CSS Variables (Custom Properties)
- Define design tokens as CSS variables on
:root
- Use variables for colors, spacing, typography, and shadows
- Implement theming by overriding variables in different contexts
- Name variables semantically (e.g.,
--color-primary, --spacing-md)
Naming Conventions
BEM Methodology
- Block: Standalone component (e.g.,
.card)
- Element: Part of a block (e.g.,
.card__title)
- Modifier: Variation of block or element (e.g.,
.card--featured)
Best Practices
- Use lowercase with hyphens for class names
- Avoid IDs for styling; reserve for JavaScript hooks
- Keep specificity low by using single class selectors
- Scope styles to components to prevent conflicts
Specificity Management
- Maintain specificity at 0-1-0 (single class) when possible
- Avoid
!important declarations
- Use cascading intentionally, not accidentally
- Consider CSS Layers (
@layer) for specificity control
Responsive Design
- Implement mobile-first media queries
- Use relative units for flexible layouts
- Test across multiple viewport sizes
- Consider container queries for component-level responsiveness
Performance
- Minimize selector complexity
- Avoid deeply nested selectors
- Use efficient selectors (class over element)
- Leverage CSS containment for isolated components
- Consider critical CSS for above-the-fold content
Modern CSS Features
- Use
aspect-ratio for maintaining proportions
- Leverage
gap in Flexbox and Grid
- Use logical properties (
margin-inline, padding-block)
- Implement smooth transitions with
transition property
- Use
@supports for feature detection
Organization
- Structure stylesheets logically (base, layout, components, utilities)
- Keep files modular and focused
- Document complex styles with comments
- Use a consistent property order within declarations
Browser Compatibility
- Use vendor prefixes when necessary (consider Autoprefixer)
- Test across target browsers
- Provide fallbacks for newer features
- Use progressive enhancement approach
Accessibility
- Ensure sufficient color contrast (WCAG AA minimum)
- Provide visible focus styles for keyboard navigation
- Avoid hiding content in ways that affect screen readers
- Use
prefers-reduced-motion media query for animations