mcpField
O
oxfords

oxfords

github.com/arhamhi设计与 UI2317 次安装3 周前更新
代码仓库

关于 oxfords

Oxfords 是面向界面构建与评审的设计技能,帮助设计者和开发者制作简洁、可用且完整的屏幕。它以明确的构建顺序、完成检查表和反生成式界面规则为特色。

主要功能

  1. 01按意图和内容规划界面
  2. 02按数据选择组件与布局
  3. 03提供状态与可访问性检查表
  4. 04涵盖配色、字体和动效规则
  5. 05运行脚本检查界面问题

适用场景

  1. 01构建仪表盘或设置页面
  2. 02设计移动端原生界面
  3. 03检查表单、错误与空状态
  4. 04审查已完成的界面

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/arhamhi/oxfords --skill oxfords

安装后在 Claude Code 中输入/oxfords确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
app-ui.md
landing.md
mobile.md
motion.md
palettes.md
review.md
slop-floor.md
states-forms-copy.md
scripts/
check.mjs
check.test.mjs

详细介绍

牛津鞋

牛津鞋,不是布洛克鞋。牛津鞋是朴素的鞋款。布洛克鞋则是在同款鞋上打孔装饰的鞋款。这项技能用于打造精致、简洁、完善的界面,并去除那些让屏幕看起来像机器生成的装饰。

它不会让产品看起来引人注目,也不会为产品塑造品牌。它会决定屏幕上显示什么、显示在哪里、显眼程度如何、如何响应,以及哪些内容不应出现。

**每条规则背后的检验标准:**没人会逐字阅读屏幕。用户带着一个问题来到页面,然后寻找答案。一个选择要么能让他们更快找到答案,要么就只是装饰。

**简洁不等于千篇一律,也不等于毫无色彩。**去掉粗糙的设计后就此打住,只会得到一个白底灰字、带一个蓝色按钮的页面。这同样是一种默认样式。简洁关乎结构:每个元素的存在都有理由,并且都经过完善。产品的个性体现在色彩上。以中性色(白色、黑色、灰色)为基础,再叠加真正的配色方案。

使用方法

任务操作
构建按照构建顺序操作,阅读适用于当前界面的参考资料,并完成完成度检查。
审查运行检查器,然后阅读 references/review.md。按“症状 -> 修复 -> 原因”的格式报告。
修复只修改检查结果中指出的内容。保留现有文案、名称和标识。

项目自身的设计系统、设计令牌或品牌规则优先于这项技能。遵循它们,并将 Oxfords 用于所有未作规定的部分。

界面类型优先阅读
仪表板、管理后台、表格、图表、设置(包括手机浏览器中的界面)references/app-ui.md
原生移动应用界面references/mobile.md
落地页、营销网站references/landing.md
状态、表单、错误、UX 文案references/states-forms-copy.md
色彩:选择和应用配色方案references/palettes.md(每次构建都要阅读)
字体、图标、完整禁用清单references/slop-floor.md
动效、手势、减少动态效果references/motion.md
审查已完成的界面references/review.md

构建顺序

  1. 意图。 明确用户来这里要做什么。从实现该功能的控件开始。每添加一样东西,都要问问它是否实现了朴素版本做不到的事。只有当意图扩展时,才增加功能。
  2. 先写内容。 在开始布局前,写好每个标签、数字和名称。使用不均匀、可信的数据:看起来真实的名称、奇怪的总数、一个很长的值。只展示人们会扫一眼查看的信息;详情放在下一层。一个界面只做一件事。
  3. 让数据决定组件。 一组固定的值用标签。数字右对齐,并使用等宽数字。基于时间的数据用时间线或汇总图表,而不是按时间排序的表格。非活跃项留在原位,并置灰。不要下意识地选择表格或一排卡片。
  4. 沿边缘布局。 标签左对齐,值右对齐,只将不需要阅读的内容居中。每个元素都贴齐一个边缘,并为下一个元素形成边缘。通过将内容移到边缘来填补空白,而不是添加内容。先采用人们熟悉的布局(从上到下、从左到右,导航置顶或置左),再考虑独特设计。
  5. 颜色。 从中性色开始:白色、黑色或灰色页面,中性表面,近黑或近白文字。然后,除非项目有自己的颜色,否则从 references/palettes.md 中选择一套配色,并将其中三种颜色分别用作主色、辅色和点缀色。写一句说明为什么适合。绝不使用骨白色或奶油色页面;绝不用中性色搭配一个蓝色按钮。
  6. 层级。 先看尺寸,再看位置、字重,最后看颜色。最重要的内容放在左上方,并且尺寸最大。分组、排序、堆叠,然后删除布局已经表达出的所有标签。强调是相对的:弱化周边元素,而不是给主视觉上色。
  7. 披露。 主要操作始终可见,并带有标签。次要操作放在菜单中,或在悬停时显示,同时在触屏上提供明确可见的等效操作。罕见操作放在弹出框中。绝不把主要项目藏在点击之后。
  8. 容器。 先尝试内嵌,前提是放得下。然后:简单且不阻断操作的内容用弹出框;复杂但仍属于同一页面的内容用模态框,之后再确认;大型或永久性的内容用新页面,并提供返回方式;在移动设备上,选择内容时不离开当前页面,则用底部抽屉。
  9. 不可见层。 状态、反馈、焦点、空内容和损坏内容。这部分最容易被跳过。“完成”检查清单会列出这些内容。

完成检查

检查你为该屏幕构建的每一项。“无”需要说明理由。

项目必须具备
按钮默认、悬停、焦点可见、按下、禁用状态;禁用原因须用旁边的文字说明;仅在用户需要等待时显示加载状态
输入框上方有持久标签;有焦点状态;字段下方显示错误及修复方法;出错后保留输入内容
每项操作在 100ms 内于用户视线所在处给出响应:控件原地变化,或显示可撤销的 toast
破坏性操作尽可能提供撤销;否则显示确认信息,明确指出对象,并让按钮标签写明操作
仅图标控件提供无障碍名称和工具提示;不为所有人普遍熟知的内容须改用文字标签
空状态首次运行(用一句话说明,并提供能填充内容的那个操作)和无结果(引用查询内容,并提供清除查询的选项)
加载和失败约 300ms 后显示形状与结果相符的骨架屏;错误须说明失败原因及恢复方法;处理离线和无权限情况
混乱内容长名称截断时仍可查看完整值;0、1、10,000 行均可正常工作;处理缺失图片
表格支持搜索、筛选或排序;数字右对齐;每行仅有一个主要操作;选择行后,在现有工具栏中显示批量操作
图表使用简单折线图或柱状图;显示坐标轴数值、网格线、标签、范围或指标控件,以及悬停或聚焦时显示的数值
导航显示当前位置;项目名称反映其内容;进行分组;不常用项目放在最后;顶层项目约五个
键盘和对比度所有内容均可通过 Tab 键访问,并显示焦点;Esc 关闭浮层;正文文本对比度为 4.5:1,大号文本和图标为 3:1;状态不能只靠颜色区分
触控点击目标为 44px;不能有只能通过悬停使用的内容;输入框为 16px;遵循安全区域要求
动效反馈动效不超过 250ms,绝不阻塞输入;提供保留反馈效果的减少动态版本
颜色以中性色为基础(白、黑、灰),覆盖屏幕大部分区域;使用有名称且有理由的配色;三种颜色都要使用,且各自承担一种作用;页面不能使用骨白色或奶油色
一致性使用一种字体、一套配色、一套统一笔画粗细的图标、一种对应每个层级的圆角;相同事物在所有位置的外观和行为都一致
低质量设计底线检查器通过,或为每条警告写明一行理由

低质量设计底线

生成式界面的常见痕迹。请移除这些痕迹,不要重新设计它们。完整列表及替代方案见 references/slop-floor.md。

  • 结构: 当前导航项或卡片侧边有彩色条;所有内容都装进卡片;卡片套卡片;每个标题上方都有小号大写标签;编号的章节标签;问候语标题栏;图标加数字的平铺行;多个页面重复显示相同数据;不起作用的控件。
  • 字体和图标: 无人选择的默认字体(Inter、Geist、Roboto、Poppins、Montserrat、 DM Sans、Space Grotesk、Instrument Serif、Playfair Display、Fraunces);在无衬线标题中插入衬线字体文字;用 emoji 充当图标;默认描边的常见图标集;每个标题上方都有色调方框中的图标。
  • 颜色: 骨白色或奶油色页面搭配橙色或红色点缀;中性页面上唯一的颜色是一个蓝色按钮;整个界面都被配色中的颜色染色,没有中性色;紫色或靛蓝渐变;渐变文字;光晕和模糊色块;每种状态都使用色调胶囊标签。
  • 动效: 弹跳效果;所有内容在滚动时向上淡入;脉动圆点;跑马灯;脚本显示内容前将其隐藏。
  • 文案: 天衣无缝、轻而易举、解锁、提升、增强;“Get started”和“Submit”;Acme 和 Jane Doe;随意编造的整数;感叹号和长破折号。

对你构建的内容运行检查器:

node scripts/check.mjs path/to/build

检查器会指出机械化痕迹,并对需要判断的项目发出警告。修复每条发现的问题,或用一行说明这是有意为之。

数值

项目数值
间距以 4 为倍数;根据用途采用不同间距:组内为 4-12,组间为 24-40;标题上方的留白应大于下方
圆角每个层级各用一种(控件、卡片);嵌套内层圆角 = 外层圆角减去间距
按钮内边距水平方向约为垂直方向的两倍
图标尺寸与文本行高一致;描边粗细与文本字重匹配
字体比例约分为六档,比例之外最多再用一个主视觉数字或标题。Web 应用正文为 13-14px,极少超过 24px。原生应用正文为 17pt,最小为 15。营销内容正文为 16px 或更大。不得小于 11px
行长与行距45-75 个字符;正文行距约为 1.5,展示文字为 1.05-1.2
标题字距仅大型展示字体使用 -2% 至 -4%;正文为 0
交互目标触控为 44px;桌面端绝对下限为 24px
反馈时长按下反馈为 100-150ms;常规过渡为 150-250ms;覆盖层最长为 400ms;退出速度应快于进入
缓动使用 ease-out,不要有过冲
阴影柔和、低对比度,并与背景色调相衬;如果你注意到了阴影,那它就不对
深色模式层次不使用阴影:每向上一层,颜色都比下层稍亮、饱和度稍低
手机背景纯黑 #000 或纯白 #FFF;导航层使用 Liquid Glass
对比度文本为 4.5:1,大号文本、图标、输入框边框和焦点环为 3:1

完成前的四项检查

  • 眯眼看。 模糊视线。应当有一个元素最先映入眼帘,而且应该是正确的元素。
  • 删减。 移除一个元素。如果没有任何东西变差,就不要加回来。
  • 替换。 放上竞争对手的 logo。如果依然合适,说明内容太过泛化。
  • 说明理由。 指出任意一个数值。你应该能说清为什么选它,而不是默认值。

致谢

Oxfords 建立在他人的成果之上。请参阅仓库中的 CREDITS.md。

评论

支持 Markdown