← 返回
数据分析 中文

UI Design

Comprehensive UI design skill covering fundamentals, patterns, and anti-patterns. Layout, typography, color, spacing, accessibility, motion, and component design. Use when building any web interface, reviewing design quality, or creating distinctive UIs.
{"answer":"涵盖基础、模式与反模式的全面UI设计技能。包括布局、排版、色彩、间距、无障碍、动效及组件设计。适用于构建Web界面、审查设计质量或打造独特UI。"}
wpank
数据分析 clawhub v1.0.0 1 版本 99536.8 Key: 无需
★ 0
Stars
📥 3,438
下载
💾 213
安装
1
版本
#latest

概述

UI Design Fundamentals

The definitive guide for building production-grade web interfaces. Covers the full stack of design decisions from layout to motion.

WHEN To Use

  • Designing new UI components or pages
  • Building landing pages, dashboards, or applications
  • Reviewing code for design quality
  • Creating distinctive interfaces that avoid generic aesthetics
  • Implementing accessibility requirements

KEYWORDS

ui design, web design, layout, typography, color palette, spacing, visual hierarchy, responsive design, accessibility, motion design, component design, design tokens, frontend, css, tailwind


Design Philosophy

The 80/20 of Design Quality

FactorImpactTime Investment
---------------------------------
Typography40%Choose 1-2 fonts well
Spacing25%Use consistent scale
Color20%Limit palette, ensure contrast
Everything else15%Shadows, borders, motion

Focus on typography and spacing first. They're 65% of perceived quality.

Commit to a Direction

Mediocrity is forgettable. Pick an extreme:

DirectionCharacteristicsUse When
--------------------------------------
Brutally MinimalStark, essential, nothing extraDeveloper tools, productivity
Luxury/RefinedPremium, subtle eleganceHigh-end products, fashion
PlayfulFun, bright, approachableConsumer apps, games
EditorialType-forward, grid-basedContent sites, magazines
IndustrialFunction-forward, robustB2B, enterprise

Layout

Grid vs Flexbox Decision

Layout NeedToolWhy
------------------------
Page-level structureCSS Grid (grid-template-areas)Named regions, explicit control
Navigation barsFlexboxSingle-axis, gap spacing
Card gridsGrid (auto-fill/auto-fit)Responsive without media queries
CenteringGrid (place-items: center)Shortest, most reliable
Sidebar + contentGrid (250px 1fr)Fixed + fluid
Stacking/overlapsGrid + grid-area: 1/1No position: absolute needed

Container Strategy

/* Standard content width */
.container {
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 5vw, 3rem);
}

/* Full-bleed with contained content */
.full-bleed {
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

Common Layout Mistakes

MistakeProblemFix
-----------------------
Mixing container widthsInconsistent alignmentUse single max-w-* value
Content behind fixed navbarHidden contentAdd pt-[navbar-height]
No mobile paddingEdge-to-edge textAdd px-4 minimum
Centered everythingWeak hierarchyLeft-align body text

Typography

Typography carries 90% of a design's personality.

Font Pairing by Context

ContextDisplay FontBody FontExample
-------------------------------------------
EditorialHigh-contrast serifNeutral humanistPlayfair + Source Sans
SaaSGeometric sansMatching sansDM Sans + DM Mono
LuxuryThin modern serifElegant sansCormorant + Jost
DeveloperMonospace displayMonospace bodyJetBrains Mono + IBM Plex
PlayfulRounded/quirkyClean readableNunito + Outfit

Type Scale (1.25 ratio)

--text-xs: 0.64rem;   /* 10px - captions */
--text-sm: 0.8rem;    /* 13px - secondary */
--text-base: 1rem;    /* 16px - body */
--text-lg: 1.25rem;   /* 20px - lead */
--text-xl: 1.563rem;  /* 25px - h4 */
--text-2xl: 1.953rem; /* 31px - h3 */
--text-3xl: 2.441rem; /* 39px - h2 */
--text-4xl: 3.052rem; /* 49px - h1 */

Typography Rules

RuleValueWhy
------------------
Minimum body size16pxBelow is hard to read
Body line-height1.5-1.75Improves readability
Heading line-height1.1-1.2Tighter for large text
Line length60-75 charactersOptimal reading
Paragraph spacing1.5emClear separation

Typography Mistakes

MistakeProblemFix
-----------------------
System fonts onlyGeneric lookUse Google Fonts or variable fonts
Too many fontsVisual chaosMax 2 families
Weak weight contrastPoor hierarchyBold headings (600+), regular body
Long linesHard to readAdd max-w-prose (65ch)

Color

Building a Palette

Every palette needs five functional roles:

RolePurposeUsage
----------------------
PrimaryBrand identityButtons, links, active states
NeutralText, backgroundsBody text, cards, dividers
AccentSecondary actionsTags, badges, highlights
SemanticFeedbackSuccess/warning/error states
SurfaceLayered backgroundsCards, modals, overlays

Surface Layering (Dark Mode)

Create depth through lightness, not 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 */
}

Contrast Requirements (WCAG)

Text SizeMinimum RatioEnhanced (AAA)
------------------------------------------
Normal text (<18px)4.5:17:1
Large text (≥18px bold, ≥24px)3:14.5:1
UI components3:1

Color Mistakes

MistakeProblemFix
-----------------------
Purple gradient on white"AI aesthetic" clichéUse intentional brand colors
Low contrast textAccessibility failTest with contrast checker
Color-only indicatorsColorblind users excludedAdd icons/text
Too many colorsVisual noise3-5 colors maximum
Light gray text on whiteUnreadableslate-600 minimum

Spacing

8px Base Unit Scale

--space-1: 0.25rem;  /* 4px - tight gaps */
--space-2: 0.5rem;   /* 8px - input padding */
--space-3: 0.75rem;  /* 12px - button padding */
--space-4: 1rem;     /* 16px - default spacing */
--space-6: 1.5rem;   /* 24px - section padding */
--space-8: 2rem;     /* 32px - section gaps */
--space-12: 3rem;    /* 48px - major breaks */
--space-16: 4rem;    /* 64px - page rhythm */

Spacing Rules

RuleImplementation
----------------------
Use gap not marginsdisplay: flex; gap: var(--space-4)
Consistent paddingSame values on all cards/sections
More space between groupsLess space within groups (Gestalt)
No arbitrary valuesOnly use scale tokens

Spacing Mistakes

MistakeProblemFix
-----------------------
Arbitrary pixel valuesInconsistent rhythmUse spacing scale only
Margin on childrenMargin collapse bugsUse gap on parent
Equal spacing everywhereNo visual groupingMore between, less within
Tight mobile paddingCramped feelingMinimum p-4 on mobile

Visual Hierarchy

Guide the eye through deliberate contrast.

Hierarchy Techniques

TechniqueHowImpact
------------------------
SizeHero 3-4x bodyImmediate focal point
WeightBold headings, regular bodyScannability
ColorPrimary vs mutedInformation layers
SpaceIsolation creates emphasisDraws attention
PositionTop-left anchors readingNatural flow

Card Hierarchy Pattern

Eyebrow  ← xs, uppercase, muted color
Title    ← xl, semibold, primary color
Body     ← base, secondary color, 1.6 line-height
Action   ← spaced apart, mt-4 minimum

Responsive Design

Breakpoint Strategy

BreakpointTargetKey Changes
---------------------------------
< 640pxMobileSingle column, stacked nav, 44px touch targets
640-1024pxTabletTwo columns, collapsible sidebars
1024-1440pxDesktopFull layout, hover enabled
> 1440pxWideMax-width container, prevent ultra-wide lines

Fluid Techniques

/* Fluid typography */
h1 { font-size: clamp(2rem, 1.5rem + 2.5vw, 3.5rem); }

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

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

Responsive Mistakes

MistakeProblemFix
-----------------------
No viewport metaBroken mobileAdd width=device-width
Fixed widthsOverflow on mobileUse max-w-* and %
Tiny touch targetsFrustrating tapsMinimum 44x44px
Hidden horizontal scrollBroken layoutTest at 375px width

Accessibility

Accessibility is not optional.

Critical Requirements

RequirementImplementationStandard
---------------------------------------
Color contrast4.5:1 normal, 3:1 largeWCAG 2.1 AA
Keyboard navigationTab order matches visualWCAG 2.1.1
Focus indicatorsVisible :focus-visible ringWCAG 2.4.7
Semantic HTMLWCAG 1.3.1
Alt textDescriptive for imagesWCAG 1.1.1
Motion safetyprefers-reduced-motionWCAG 2.3.3
Touch targets44×44px minimumWCAG 2.5.8

Focus Styles

:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* Remove default only if custom exists */
:focus:not(:focus-visible) {
  outline: none;
}

Motion Safety

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

Motion & Animation

Use motion to communicate, not decorate.

Timing Guidelines

InteractionDurationEasing
-------------------------------
Button hover150msease-out
Modal open250msease-out
Modal close200msease-in
Page transition300msease-in-out
Stagger delay50-80ms per item
Micro-feedback100msease-out

Staggered Entrance

.item {
  opacity: 0;
  translate: 0 1rem;
  animation: reveal 0.5s ease-out forwards;
}
.item:nth-child(1) { animation-delay: 0ms; }
.item:nth-child(2) { animation-delay: 60ms; }
.item:nth-child(3) { animation-delay: 120ms; }

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

Motion Mistakes

MistakeProblemFix
-----------------------
Animating width/heightPerformance hitUse transform only
> 500ms durationFeels sluggish150-300ms for most
Motion everywhereOverwhelmingFocus on entrances/exits
No reduced-motionAccessibility failAlways check preference

Component States

Every interactive element needs clear states.

StateVisual Treatment
-------------------------
DefaultBase styling
HoverSubtle background/shadow shift
Active/PressedSlight inset, reduced shadow
FocusHigh-visibility ring
Disabled50% opacity, not-allowed cursor
LoadingSpinner or skeleton

Button Example

.btn {
  transition: all 150ms ease-out;
}
.btn:hover {
  background: var(--color-primary-600);
}
.btn:active {
  transform: scale(0.98);
}
.btn:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}
.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

Design Tokens Architecture

Structure tokens in three layers:

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

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

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

This allows theme switching by remapping Layer 2 only.


Pre-Delivery Checklist

Typography

  • [ ] Intentional font pairing (not system defaults)
  • [ ] Consistent type scale
  • [ ] Line length ≤ 75 characters
  • [ ] 16px minimum body text

Color

  • [ ] Cohesive palette (3-5 colors)
  • [ ] WCAG contrast met (4.5:1 normal, 3:1 large)
  • [ ] Semantic colors defined
  • [ ] Dark mode tested (if applicable)

Spacing

  • [ ] Consistent rhythm using scale
  • [ ] No arbitrary pixel values
  • [ ] Proper mobile padding

Hierarchy

  • [ ] Clear visual flow
  • [ ] Primary action obvious
  • [ ] Information layered by importance

Responsive

  • [ ] Mobile tested (375px)
  • [ ] No horizontal overflow
  • [ ] Touch targets ≥ 44px

Accessibility

  • [ ] Keyboard navigable
  • [ ] Focus visible
  • [ ] Screen reader tested
  • [ ] Motion-safe

States

  • [ ] Hover on all interactive elements
  • [ ] Focus-visible on all focusable
  • [ ] Loading states for async
  • [ ] Error states for forms

Performance

  • [ ] Images optimized (WebP, srcset)
  • [ ] Fonts subset
  • [ ] Animations use transform/opacity

NEVER Do

  1. NEVER skip contrast checking — Test every text/background combination
  2. NEVER use color alone — Always pair with icons/text for meaning
  3. NEVER remove focus outlines — Unless replacing with visible alternative
  4. NEVER use arbitrary spacing — Stick to the scale
  5. NEVER animate layout properties — Only transform and opacity
  6. NEVER ignore reduced-motion — Always check the preference
  7. NEVER center everything — Left-align body text
  8. NEVER use tiny touch targets — 44px minimum
  9. NEVER use low-contrast textslate-600 minimum on white
  10. NEVER use generic system fonts — Choose intentional typography

Related Skills

  • ui-ux-pro-max — Searchable design databases with CLI
  • frontend-design — Creative aesthetics, avoiding "AI slop"
  • theme-factory — Applying themes to artifacts
  • design-system-patterns — Token architecture and theming

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-03-29 01:28 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

data-analysis

Data Analysis

ivangdavila
{"answer":"数据分析与可视化。查询数据库、生成报告、自动化电子表格,将原始数据转化为清晰可行的见解。适用于:(1) 您……"}
★ 198 📥 64,859
data-analysis

Excel / XLSX

ivangdavila
创建、检查和编辑 Microsoft Excel 工作簿及 XLSX 文件,支持可靠的公式、日期、类型、格式、重算及模板保留功能。
★ 366 📥 139,963
developer-tools

Code Review

wpank
涵盖安全、性能、可维护性、正确性和测试的系统化代码审查模式,包含严重等级、结构化反馈指南、审查流程及需避免的反模式。适用于审查 PR、建立审查标准或提升审查质量。
★ 31 📥 17,068