网淘吧来吧,欢迎您!

Web Design技能使用说明

2026-03-29 新闻来源:网淘吧 围观:8
电脑广告
手机广告

网页设计模式

用于生产级界面的CSS实现模式。关于设计基础和决策,请参阅ui-design。本技能侧重于代码。

另请参阅: ui-design以了解排版/色彩/间距理论,frontend-design以了解创意美学。

Web Design

安装

OpenClaw / Moltbot / Clawbot

npx clawhub@latest install web-design

布局原则

二维布局使用CSS Grid,一维流式布局使用Flexbox。根据具体场景选择合适的工具。

布局需求工具原因
页面级结构CSS Grid (grid-template-areas)命名区域,精确的行/列控制
导航栏弹性盒子单轴对齐,使用间隙
卡片网格网格(自动填充/自动适应无需媒体查询的响应式设计
居中网格(place-items: center最简洁、最可靠的居中方式
侧边栏 + 内容网格(grid-template-columns: 250px 1fr固定侧边栏的比例尺寸
重叠堆叠网格 +grid-area: 1/1无需position: absolute 即可层叠元素

空间构成

超越可预测的布局。有意识的不对称、重叠元素以及打破网格的强调手法能创造出视觉趣味。对于重叠元素,使用网格堆叠(grid-area: 1/1)而非position: absolute。为营造奢华/编辑美学,选择充裕的负空间;对于数据密集型界面,则采用受控的密度——选择必须是有意为之。

字体排印

字体排印承载了设计90%的个性。选择与界面用途相匹配的字体。

应用场景标题字体方向正文字体方向配对示例
编辑/杂志风格高对比度衬线体中性人文主义无衬线体Playfair Display + Source Sans 3
SaaS仪表盘几何无衬线体匹配字重的无衬线体DM Sans + DM Mono(数据用)
创意作品集富有表现力的展示字体清晰易读的无衬线字体Syne + Outfit 字体组合
电商奢侈品风格纤细现代衬线字体优雅无衬线字体Cormorant Garamond + Jost 字体组合
开发工具等宽展示字体等宽正文字体JetBrains Mono + IBM Plex Mono 字体组合

字体比例

使用一致的比例。1.25倍(大三度)比例适用于大多数界面:text-xs0.64rem,text-sm0.8rem,text-base1rem,text-lg1.25rem,text-xl1.563rem,text-2xl1.953rem,text-3xl2.441rem,text-4xl3.052rem。将正文字体大小设置为1rem(最小16px),行高1.5用于正文,1.1–1.2用于标题。限制行长至60–75ch

色彩

构建调色板

每个调色板都需要五种功能角色:

角色目的示例用途
主要色品牌标识,主要操作按钮、链接、激活状态
中性色文本、边框、背景正文文本、卡片、分隔线
重音色次要操作,高亮元素标签,徽章,次要按钮
成功 / 警告 / 错误语义反馈提示框,表单验证,状态指示
表面分层背景页面上的卡片,覆盖层上的模态框

对比度与深度

通过表面分层而非仅靠阴影来创造深度:

: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 */
}

使用HSL或OKLCH进行感知均匀的色彩操作。主色搭配鲜明的重音色优于均匀分布的调色板。始终验证WCAG对比度:普通文本需达到4.5:1,大文本需达到3:1。

间距

一致的间距能创造节奏感。使用8px基础单位(或针对密集UI使用4px):

令牌用途
--space-10.25rem (4px)行内图标间隙,紧凑内边距
--space-20.5rem (8px)输入框内边距,紧凑列表
--space-30.75rem (12px)按钮内边距,卡片内部间距
--space-41rem (16px)默认元素间距
--space-61.5rem (24px)区块内边距,卡片间距
--space-82rem (32px)区块分隔
--space-123rem (48px)主要区块分隔
--space-164rem (64px)页面级垂直节奏

一致地应用间距:使用间隙(gap)于 Grid/Flexbox 容器,而非在子元素上使用边距。这能消除边距合并的 bug 并简化响应式调整。

视觉层次

通过有意识地运用大小、粗细、颜色和空间的对比来引导视线。

层次构建技巧

技巧实现方式效果
尺寸对比主标题尺寸为正文的3-4倍形成即时视觉焦点
粗细对比粗体标题 + 常规正文提升可浏览性
色彩对比主要文本与柔和次要文本形成对比实现信息分层
空间分组组内紧凑间距,组间宽松间距格式塔邻近原则
高程阴影 / 表面分层提供交互示能
留白隔离关键元素周围设置空白区域以缺席强调

实用模式——卡片层级

卡片内的层级:眉标(xs,大写,柔和色)→标题(xl,半粗体)→正文(base,次要色,1.6行高)→操作区(通过上边距分隔)。使用表面颜色进行区隔,并采用间距标记保持内边距一致。

响应式设计

断点策略

断点目标设备设计方法
< 640px移动设备单列布局,堆叠导航,触控目标≥44px
640–1024px平板设备可选双栏布局,可折叠侧边栏
1024–1440px桌面设备完整布局,启用悬停交互
> 1440px宽屏设备最大宽度容器(1280px),防止超宽行长

流动技术

在可能的情况下,优先使用流动尺寸而非固定断点:

/* 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); }

当组件的布局应响应其容器而非视口时,使用容器查询(@container)来实现组件级别的响应性。

无障碍性

无障碍性不是可选项。从一开始就应将其构建在内。

要求实施标准
颜色对比度正常文本4.5:1,大文本/UI元素3:1WCAG 2.1 AA
键盘导航所有交互元素均可聚焦和操作WCAG 2.1.1
焦点指示器可见:focus-visible圆环,偏移量2px+WCAG 2.4.7
语义化HTML使用<button><nav><main><article>等标签WCAG 1.3.1标准
替代文本信息性图片需描述性文字alt=""装饰性图片留空WCAG 1.1.1标准
动效安全遵循prefers-reduced-motion偏好设置WCAG 2.3.3标准
触控目标交互区域最小44×44像素WCAG 2.5.8标准
适时使用ARIAaria-labelaria-live属性,角色仅当原生语义不足时使用WCAG 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;
  }
}

组件设计

设计良好组件的剖析

每个UI组件都应具有清晰的状态、一致的间距和可预测的行为:

状态视觉处理示例
默认基础样式静止状态按钮
悬停细微变化——背景、阴影或缩放背景变亮5-10%
激活/按下压缩感——减少阴影,轻微内嵌transform: scale(0.98)
焦点高可见性环,不移除轮廓:focus-visible
禁用降低不透明度光标:不允许不透明度:0.5
加载中加载指示器或骨架屏,禁用交互内联加载指示器替换标签

设计令牌架构

为保持可维护性,将令牌结构分为三层:

/* 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);

这种三层架构允许通过重新映射第二层来切换主题,而无需修改组件。

交互模式

动效与动画

使用动效来传达状态变化,而非装饰。关注高影响力时刻:

交互持续时间缓动目的
按钮悬停150毫秒缓出确认交互
模态框打开250毫秒缓出吸引注意力
模态框关闭200毫秒缓入快速关闭
页面过渡300毫秒缓入缓出保持空间上下文
交错显示每个项目延迟50-80毫秒缓出顺序内容加载
微反馈100毫秒缓出切换、复选框、开关
/* 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; }
}

滚动驱动效果

使用原生animation-timeline: scroll()(置于@supports内)用于无需JavaScript的视差和显示效果。通过功能检测进行封装以实现优雅降级。

设计质量检查清单

发布前,请对照以下标准进行验证:

  • 排版: 有意识的字体搭配,一致的尺寸比例,可读的行宽
  • 色彩: 协调统一的调色板,符合WCAG对比度标准,定义了语义化的反馈颜色
  • 间距: 使用间距标记确保一致的节奏感,避免临时性的像素值
  • 层级: 清晰的视觉流——视线路径符合预期的阅读顺序
  • 响应式设计: 在移动端、平板、桌面端测试;无水平溢出
  • 无障碍性: 支持键盘导航,焦点可见,经过屏幕阅读器测试,运动安全
  • 状态: 所有交互元素均定义了悬停、激活、聚焦、禁用和加载状态
  • 个性: 设计具有明确的观点——而非通用的模板美学
  • 性能图像已优化,字体已子集化,动画启用GPU加速(变换透明度
  • 深色模式:若支持,界面采用分层明度设计,而非颜色反转

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第329357名访客 今日有302篇新文章/评论