设计与多媒体

Web Design

试用

CSS implementation patterns for layout, typography, color, spacing, and responsive design. Complements ui-design (fundamentals) with code-focused examples.

它能做什么

CSS implementation patterns for production-grade interfaces. For design fundamentals and decision-making, see . This skill focuses on code.

技能文档

Web Design Patterns

CSS implementation patterns for production-grade interfaces. For design fundamentals and decision-making, see ui-design. This skill focuses on code.

See also: ui-design for typography/color/spacing theory, frontend-design for creative aesthetics.

Installation

OpenClaw / Moltbot / Clawbot

npx clawhub@latest install web-design

Layout Principles

Use CSS Grid for two-dimensional layouts and Flexbox for one-dimensional flow. Choose the right tool for each context.

Layout NeedToolWhy
Page-level structureCSS Grid (grid-template-areas)Named regions, explicit row/column control
Navigation barsFlexboxSingle-axis alignment, spacing with gap
Card gridsGrid (auto-fill / auto-fit)Responsive without media queries
CenteringGrid (place-items: center)Shortest, most reliable centering
Sidebar + contentGrid (grid-template-columns: 250px 1fr)Proportional sizing with fixed sidebar
Stacking overlapsGrid + grid-area: 1/1Layer elements without position: absolute

Spatial Composition

Go beyond predictable layouts. Intentional asymmetry, overlapping elements, and grid-breaking accents create visual interest. Use grid stacking (grid-area: 1/1) instead of position: absolute for overlapping elements. Choose generous negative space for luxury/editorial aesthetics, or controlled density for data-rich interfaces — the choice must be intentional.

Typography

Typography carries 90% of a design's personality. Choose fonts that match the interface's purpose.

ContextDisplay Font DirectionBody Font DirectionExample Pairing
Editorial / magazineHigh-contrast serifNeutral humanist sansPlayfair Display + Source Sans 3
SaaS dashboardGeometric sansMatching weight sansDM Sans + DM Mono (data)
Creative portfolioExpressive displayClean readable sansSyne + Outfit
E-commerce luxuryThin modern serifElegant sansCormorant Garamond + Jost
Developer toolingMonospace displayMonospace bodyJetBrains Mono + IBM Plex Mono

Type Scale

Use a consistent ratio. A 1.25 (major third) scale works for most interfaces: text-xs 0.64rem, text-sm 0.8rem, text-base 1rem, text-lg 1.25rem, text-xl 1.563rem, text-2xl 1.953rem, text-3xl 2.441rem, text-4xl 3.052rem. Set body text to 1rem (16px minimum), line-height 1.5 for body, 1.1–1.2 for headings. Limit line length to 60–75ch.

Color

Building a Palette

Every palette needs five functional roles:

RolePurposeExample Usage
PrimaryBrand identity, primary actionsButtons, links, active states
NeutralText, borders, backgroundsBody text, cards, dividers
AccentSecondary actions, highlightsTags, badges, secondary buttons
Success / Warning / ErrorSemantic feedbackToasts, form validation, status
SurfaceLayered backgroundsCards on page, modals on overlay

Contrast and Depth

Create depth through surface layering, not just shadows:

:root {
  --surface-0: hsl(220 15% 8%);    /* page background */
  --surface-1: hsl(220 15% 12%);   /* card */
  --surface-2: hsl(220 15% 16%);   /* raised element */
  --surface-3: hsl(220 15% 20%);   /* popover / modal */
}

Use HSL or OKLCH for perceptually uniform color manipulation. Dominant color with sharp accents outperforms evenly-distributed palettes. Always verify WCAG contrast: 4.5:1 for normal text, 3:1 for large text.

Spacing

Consistent spacing creates rhythm. Use an 8px base unit (or 4px for dense UIs):

TokenValueUse
--space-10.25rem (4px)Inline icon gaps, tight padding
--space-20.5rem (8px)Input padding, compact lists
--space-30.75rem (12px)Button padding, card inner spacing
--space-41rem (16px)Default element spacing
--space-61.5rem (24px)Section padding, card gaps
--space-82rem (32px)Section separation
--space-123rem (48px)Major section breaks
--space-164rem (64px)Page-level vertical rhythm

Apply spacing consistently: use gap on Grid/Flexbox containers instead of margins on children. This eliminates margin-collapse bugs and simplifies responsive adjustments.

Visual Hierarchy

Guide the eye through deliberate contrast in size, weight, color, and space.

Hierarchy Techniques

TechniqueHowImpact
Size contrastHero heading 3–4x body sizeImmediate focal point
Weight contrastBold headings + regular bodyScannability
Color contrastPrimary text vs muted secondaryInformation layering
Spatial groupingTight spacing within groups, wide betweenGestalt proximity
ElevationShadows / surface layersInteractive affordance
Whitespace isolationEmpty space around key elementEmphasis through absence

Practical Pattern — Card Hierarchy

Layer hierarchy within cards: eyebrow (xs, uppercase, muted) → title (xl, semibold) → body (base, secondary color, 1.6 line-height) → action (spaced apart with margin-top). Use surface color for separation and consistent padding from spacing tokens.

Responsive Design

Breakpoint Strategy

BreakpointTargetApproach
< 640pxMobileSingle column, stacked navigation, touch targets ≥ 44px
640–1024pxTabletTwo-column options, collapsible sidebars
1024–1440pxDesktopFull layout, hover interactions enabled
> 1440pxWideMax-width container (1280px), prevent ultra-wide line lengths

Fluid Techniques

Prefer fluid sizing over rigid breakpoints where possible:

/* Fluid typography — scales between 640px and 1440px viewport */
h1 { font-size: clamp(2rem, 1.5rem + 2.5vw, 3.5rem); }

/* Fluid spacing */
section { padding-block: clamp(2rem, 1rem + 4vw, 6rem); }

/* Intrinsic grid — no media queries needed */
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: var(--space-6); }

Use container queries (@container) for component-level responsiveness when a component's layout should respond to its container, not the viewport.

Accessibility

Accessibility is not optional. Build it in from the start.

RequirementImplementationStandard
Color contrast4.5:1 normal text, 3:1 large text / UIWCAG 2.1 AA
Keyboard navigationAll interactive elements focusable and operableWCAG 2.1.1
Focus indicatorsVisible :focus-visible ring, 2px+ offsetWCAG 2.4.7
Semantic HTMLUse , , , etc.WCAG 1.3.1
Alt textDescriptive for informational images, alt="" for decorativeWCAG 1.1.1
Motion safetyRespect prefers-reduced-motionWCAG 2.3.3
Touch targetsMinimum 44×44px interactive areasWCAG 2.5.8
ARIA when neededaria-label, aria-live, role only when native semantics insufficientWCAG 4.1.2
/* Robust focus indicator */
:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

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

Component Design

Anatomy of a Well-Designed Component

Every UI component should have clear states, consistent spacing, and predictable behavior:

StateVisual TreatmentExample
DefaultBase stylingButton at rest
HoverSubtle shift — background, shadow, or scalebackground lightens 5-10%
Active / PressedCompressed feel — reduced shadow, slight insettransform: scale(0.98)
FocusHigh-visibility ring, no outline removal:focus-visible ring
DisabledReduced opacity, cursor: not-allowedopacity: 0.5
LoadingSpinner or skeleton, disabled interactionInline spinner replacing label

Design Token Architecture

Structure tokens in three layers for maintainability:

/* Layer 1: Primitive values */
--blue-500: oklch(0.55 0.2 250);
--gray-100: oklch(0.95 0.005 250);
--radius-md: 0.5rem;

/* Layer 2: Semantic aliases */
--color-primary: var(--blue-500);
--color-surface: var(--gray-100);
--radius-button: var(--radius-md);

/* Layer 3: Component-specific */
--btn-bg: var(--color-primary);
--btn-radius: var(--radius-button);
--btn-padding: var(--space-2) var(--space-4);

This three-layer approach allows theme switching by remapping Layer 2 without touching components.

Interaction Patterns

Motion and Animation

Use motion to communicate state changes, not to decorate. Focus on high-impact moments:

InteractionDurationEasingPurpose
Button hover150msease-outAcknowledge interaction
Modal open250msease-outDraw attention
Modal close200msease-inQuick dismissal
Page transition300msease-in-outMaintain spatial context
Stagger reveal50–80ms delay per itemease-outSequential content loading
Micro-feedback100msease-outToggle, checkbox, switch
/* Staggered entrance animation */
.stagger-item {
  opacity: 0;
  translate: 0 1rem;
  animation: reveal 0.5s ease-out forwards;
}
.stagger-item:nth-child(1) { animation-delay: 0ms; }
.stagger-item:nth-child(2) { animation-delay: 60ms; }
.stagger-item:nth-child(3) { animation-delay: 120ms; }

@keyframes reveal {
  to { opacity: 1; translate: 0 0; }
}

Scroll-Driven Effects

Use native animation-timeline: scroll() (behind @supports) for parallax and reveal effects without JavaScript. Wrap in feature detection to gracefully degrade.

Design Quality Checklist

Before shipping, verify against these criteria:

  • Typography: Intentional font pairing, consistent scale, readable line lengths
  • Color: Cohesive palette, WCAG contrast met, semantic feedback colors defined
  • Spacing: Consistent rhythm using spacing tokens, no ad-hoc pixel values
  • Hierarchy: Clear visual flow — eye path follows intended reading order
  • Responsiveness: Tested at mobile, tablet, desktop; no horizontal overflow
  • Accessibility: Keyboard navigable, focus visible, screen-reader tested, motion-safe
  • States: All interactive elements have hover, active, focus, disabled, and loading states
  • Personality: Design has a clear point-of-view — not generic template aesthetic
  • Performance: Images optimized, fonts subset, animations GPU-accelerated (transform, opacity)
  • Dark mode: If supported, surfaces use layered lightness, not inverted colors

相关技能

诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。

作者 Iván854 次安装69 星标

从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。

作者 fly0pants4.3k 次安装296 星标

把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。

作者 nssa.io1.0k 次安装47 星标

以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。

作者 johnpatternai21 次安装8 星标

在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。

作者 Iván555 次安装18 星标

wpank 的更多技能

浏览全部技能

Systematic code review patterns covering security, performance, maintainability, correctness, and testing — with severity levels, structured feedback guidance, review process, and anti-patterns to avoid. Use when reviewing PRs, establishing review standards, or improving review quality.

作者 wpank553 次安装20 星标

Pragmatic coding standards for writing clean, maintainable code — naming, functions, structure, anti-patterns, and pre-edit safety checks. Use when writing new code, refactoring existing code, reviewing code quality, or establishing coding standards.

作者 wpank198 次安装6 星标

Build reliable, fast E2E test suites with Playwright and Cypress. Critical user journey coverage, flaky test elimination, CI/CD integration.

作者 wpank336 次安装6 星标

Build scalable, themable Tailwind CSS component libraries using CVA for variants, compound components, design tokens, dark mode, and responsive grids.

作者 wpank217 次安装9 星标

Create software diagrams using Mermaid syntax. Use when users need to create, visualize, or document software through diagrams including class diagrams, sequence diagrams, flowcharts, ERDs, C4 architecture diagrams, state diagrams, git graphs, and other diagram types. Triggers include requests to diagram, visualize, model, map out, or show the flow of a system.

作者 wpank251 次安装5 星标

Provides backend architecture patterns (Clean Architecture, Hexagonal, DDD) for building maintainable, testable, and scalable systems with clear layering and...

作者 wpank152 次安装7 星标