关于 ux-designer
面向 UI 设计与实现任务的 UX 设计技能,提供从明确目标、建立视觉层级到定义状态和响应式规则的流程。它以设计系统和可验证的质量检查为基础,涵盖无障碍及高风险操作确认。
主要功能
- 01明确用户目标与主要操作
- 02使用一致的间距和排版规则
- 03定义加载、错误和空状态
- 04制定响应式布局与断点
- 05检查溢出、对齐和触控目标
- 06为破坏性操作添加确认
适用场景
- 01规划页面信息架构与组件
- 02为仪表盘设计数据密集布局
- 03定义移动端与平板适配规则
- 04检查界面状态和无障碍要求
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ gabeosx/ agent-skills --skill ux-designer安装后在 Claude Code 中输入/ux-designer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdassets/design-system-core.csstailwind.config.template.jsreferences/design-standards.mdtactical-moves.mdtemplates.md详细介绍
UX 设计师
1) 使命与不可妥协事项
使命
运用基于逻辑的设计规则,而非直觉,打造专业的 UI。
- 易于浏览(层次清晰、分组明确、操作优先级合理)
- 保持一致(间距、字体、颜色和层级均有系统规范)
- 便于实现(组件模型清晰、状态处理完善、响应式布局)
不可妥协事项
- 层次就是产品。 控制注意力:主要内容应占主导地位;次要和第三层内容应有意弱化。参见 战术手法。
- 优先使用系统规范,而非临时方案。 不使用任意数值。参见 设计标准。
- 设计所有状态。 空状态、加载状态、错误状态和边界情况都必须认真对待。
- 响应式设计不等于按比例缩放。 大元素应比小元素缩小得更快。
- 停止条件(不要猜测): 如果请求没有明确的主要操作、用户目标或成功指标,立即停止并询问。不要为未定义的问题制作精致的 UI。如果决定继续,必须清楚说明假设。
- 不使用浏览器原生 UI: 切勿使用原生
alert()或confirm()。使用设计系统中的非阻塞通知(Toast)和样式化模态对话框,保持专业的应用体验。 - 安全处理破坏性操作: 高风险操作(例如删除、归档或最终提交)必须通过样式化对话框明确要求用户确认。使用高对比度的“危险”样式(例如红色按钮),直观地向用户提示风险等级。
2) 工作流与决策流程
制作任何 UI 时,都要执行以下流程:
- 定义目标: 确定主要目标和主要操作(即“唯一要务”)。
- 建立层次: 确定第 1、第 2 和第 3 优先级。运用战术手法(例如弱化竞争元素)明确页面重点。
- 应用系统规范(确定性算法):
- 容器宽度: 从以下选一项:
640px(阅读)、768px(平板)、1024px(笔记本)、1280px(桌面)。 - 间距: 只能从令牌列表中选择(
2, 4, 8, 12, 16, 24, 32...)。 - 字体排版: 只能从令牌列表中选择(
text-xs到text-4xl)。 - 层级: 只能从阴影令牌中选择(
shadow-sm到shadow-xl)。 - 如果某个值不在系统规范中,必须先扩展系统规范,再使用该值。绝不使用任意的内联值。
- 容器宽度: 从以下选一项:
- 定义状态: 明确定义加载、错误和空状态。
- 像素级精准验证流程:
- 视觉检查: 在浏览器中打开构建结果。
- 溢出检查: 确保元素不会超出其容器(检查
box-sizing和固定宽度)。 - 对齐检查: 验证文本和图标是否对齐(使用
flex+align-items: center)。 - 响应式压力测试:
- 移动端(<480px): 验证堆叠方式和触控目标。
- 平板(768px): 验证网格密度(例如,四列网格在此宽度下通常会出问题)和 Flex 换行效果。
- 状态检查: 手动切换错误和加载状态,确认它们不会导致布局偏移。
3) 响应式设计与稳健性
布局必须能够适应不同屏幕尺寸。不要认为只有“移动端”和“桌面端”两种状态。
1. Flex 换行(“操作组”规则)
任何水平排列的操作、按钮或标签组都必须使用 flex-wrap。
- 问题: 元素在移动端溢出或被截断。
- 解决方法: 使用
flex flex-wrap gap-2。这样视口变窄时,元素会换到第二行,而不会破坏布局。
2. 中间断点(网格密度)
避免直接从一列(移动端)跳到四列或更多列(桌面端)。
- 双列规则: 为网格设置中间断点。
- 模式:
grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4。 - 原因: 平板屏幕上的网格密度过高,会导致列宽不足,无法承载有意义的内容(例如 KPI 卡片或图表)。
3. 防御性内容处理
- 避免强制不换行:在卡片等紧凑组件中,不要对补充数据(如描述或次要标签)使用
whitespace-nowrap。 - 安全触控区域:确保移动设备上的交互元素至少具有
44x44px的触控区域。
4)高数据密度界面原则
对于涉及复杂数据的应用(表格、多行表单、仪表板):
- 流式宽度与固定宽度:
- 对于文本密集的“阅读”页面,使用固定宽度(例如
max-w-4xl),以保证行长易读。 - 对于数据密集的“管理”页面,使用全宽(流式布局),为表格和网格尽可能多地提供水平空间。
- 对于文本密集的“阅读”页面,使用固定宽度(例如
- 数字易于浏览:
- 对齐方式:表格中的数值始终右对齐,以便轻松纵向比较大小。
- 排版:尽可能使用等宽数字,确保小数点纵向对齐。
- 输入精度:确保数值输入使用适当的语义类型(
type="number")和精细的步进值(例如,货币使用step="0.01")。
5)组件标准
- **控件高度:**按钮和输入框始终使用固定高度,以确保对齐。
- 小:
32px(高密度界面) - 中:
40px(默认/标准) - 大:
48px(触控/主视觉操作)
- 小:
- **禁用状态(优先保证易读性):**避免仅使用
opacity表示禁用状态。- **规则:**使用纯色、高对比度颜色(例如,浅灰色背景搭配中灰色文本),确保标签仍清晰易读,同时呈现非激活状态。
- **对齐:**控件与文本(如标题)相邻时,使用
display: flex; align-items: center;。 - **防御性布局:**切勿假设内容一定能容纳。
- **Flex 容器:**对操作组、标签列表或 KPI 指标使用
flex-wrap。 - **数据密度:**如果网格列数超过 3 列,则定义规则,使其在平板(md)断点降为 2 列。对于 KPI 卡片等紧凑组件中的补充数据(如趋势/描述),避免使用
whitespace-nowrap。 - **覆盖层:**抽屉和模态框必须在导航事件(路由变化)时明确关闭。
- **Flex 容器:**对操作组、标签列表或 KPI 指标使用
原生控件样式(无障碍优先)
当设计需要设置样式的下拉菜单、复选框或单选框时:
- **保留语义:**使用原生
<select>或<input>元素作为交互基础。 - **重置外观:**应用
appearance: none;,移除浏览器特定的 UI。 - **叠加视觉元素:**使用
position: relative的包装元素,将自定义图标(如箭头)放置在控件上方。对这些覆盖层应用pointer-events: none;。 - 符合标准:直接对原生元素应用控件高度标准(32/40/48px),确保布局对齐。
原型设计策略
构建快速原型(HTML/CSS)时:
- **链接核心资源:**引入
assets/目录中的design-system-core.css。- *注意:*其中包含全局
box-sizing: border-box重置。不要添加自己的重置规则。
- *注意:*其中包含全局
- **创建本地样式表:**创建
style.css,将 CSS 变量(例如var(--space-4))映射到组件类。 - **避免内联样式:**将逻辑保留在 CSS 类中,以维持“系统化”的方法。
3. 必需输入
如果未提供,请谨慎推断并说明假设。
- **产品背景:**用户、任务、数据模型。
- **限制条件:**品牌、技术栈、平台。
4)输出格式
必须使用标准模板生成输出。
- 完整规范:使用 Templates 中的响应模板。
- **具体视觉规则:**参阅 Design Standards。
- **实现:**提供
assets/目录中的 Tailwind 配置模板或 CSS 令牌。
标准章节
- 设计简报
- 信息架构
- 组件清单
- 视觉系统规范
- 屏幕/流程规范
- 状态矩阵
- 无障碍与 QA 检查清单
5)质量门槛(自我纠正)
定稿前,请确保:
- 不使用任意像素值(必须符合比例)。
- 主要操作明确无歧义。
- 避免「边框堆叠」(改用间距/背景)。
- 明确响应式规则(例如「在移动端堆叠」)。
- **留出足够空间:**经过变换/提升的元素,其容器内边距应足够,避免被裁切。
特异性与系统完整性
- **「重置」陷阱:**全局样式(例如
h3 { color: ... })可能会悄无声息地破坏实用工具类。 - **解决方案:**不要简单地替换标签(这会违反语义)。
- **检查计算样式:**确认覆盖样式的来源。
- **强化实用工具类:**使用
!修饰符(例如!text-white)强制应用实用工具类样式。 - **修复系统:**理想情况下,调整全局重置样式,使其特异性更低(例如使用
:where()),这样实用工具类就始终优先。
评论
支持 Markdown