Repository Wiki
Brandon030722/ark-ui-skill

项目概览

Ark UI 是一套基于公开设计证据、采用 clean-room(净室)方法实现的界面设计与前端工作流技能(Codex Skill)。它以 风格族 × 应用深度 两条互相独立的正交选择轴,为网页与游戏邻接界面提供可复现的视觉语言与实施流程,同时严格规避对任何受保护素材的复制。

目的与范围

本页面是 ark-ui-skill 仓库的入口概览,覆盖以下内容:

  • 项目的定位、clean-room 证据方法与法律边界
  • 仓库整体结构:SKILL.md 工作流、references/ 规范、assets/ 可运行产物、scripts/ 工具链
  • 核心概念:五种风格族与四档应用深度的正交双轴模型
  • 从"锁定设计契约 → 实施 → 证据锁定迭代 → 验证"的完整工作流
  • ark-ui.tokens.json 中的主题、深度、排版、几何与动效令牌体系
  • 安装方式与调用示例

以下主题由兄弟页面深入展开,本页仅做导向:

  • 共享视觉语法与设计语言细节 → 见「设计语言」页(对应 references/design-language.md)
  • 四档深度的完整评分规范与验收卡 → 见「应用深度规范」页(对应 references/depth-levels.md)
  • 各风格族的具体配方 → 见「风格族配方」页(对应 references/recipes.md)
  • 风格族 × 深度的交叉规则 → 见「风格族深度矩阵」页(对应 references/family-depth-matrix.md)
  • 前端实现证据与代码审查 → 见「前端实现证据」页(对应 references/frontend-evidence.md)
  • 来源账本与法律合规 → 见「来源账本」页(对应 references/source-ledger.md 与 references/legal.md)

概述

Ark UI 解决的核心问题是:把"想要类似 Hypergryph(鹰角)系产品的界面气质"这种模糊提示,转化为可执行、可验收、可追溯的设计决策。其方法不是凭空想象"赛博朋克"风格,而是:

  1. 从公开页面归纳证据:颜色、字体、几何、动效、构图规律被记录在来源账本中;
  2. 用双轴模型锁定契约:先选一个风格族(ark / endfield / exa / popucom / corporate),再独立选一档应用深度(minimal / moderate / complex / maximal);
  3. 以原创几何与令牌实现:优先使用 CSS/SVG 几何、渐变、蒙版与共享令牌,而不是复制游戏美术;
  4. 以证据锁定迭代与审计脚本验证:每次改动对照引用的证据模式,最终通过无障碍、响应式与反俗套审计。

关键理念是:风格族决定界面的视觉性格,应用深度决定这种性格覆盖到什么程度。例如 endfield + minimal 与 endfield + maximal 使用同一种设计语言,但前者只调整基础识别层,后者会重构整套舞台、状态和动效系统。

本项目不是相关游戏或厂商的官方项目,不包含受保护的标志、角色立绘、宣传图或生产环境代码;仓库内所有代码与样例均为原创或已做许可检查。

架构

仓库是一个自包含的 Codex 技能包:SKILL.md 是触发与工作流入口,references/ 提供规范文档,assets/ 提供可运行的起始代码、React 组件、令牌与展示样例,scripts/ 提供脚手架、审计、证据分析与截图工具。agents/openai.yaml 为代理配置。

Loading diagram...

分层设计意图说明:

  • 入口层:SKILL.md 用 YAML frontmatter 声明技能名 ark-ui 与长描述(决定何时触发),正文则是完整工作流。代理只需读它即可获得所有指针。
  • 规范层:把"怎么选"与"怎么判"从工作流中剥离,按需加载——例如实现深度 3 时才读取 depth-levels.md 作为标尺,多风格对比时才读取 family-depth-matrix.md,避免上下文膨胀。
  • 资产层:提供可直接复用的落地物——无依赖原生起始模板、可移植 React 壳层、五族令牌 JSON、五个可检查的复杂档样例。
  • 工具层:脚手架负责"从零开始",审计脚本负责"完成后把关",证据分析脚本负责"研究新官方页面",截图脚本负责"渲染验证与宣传图再生成"。

核心概念:正交双轴模型

五种风格族

键名风格定位视觉特征适合场景
ark工业信息系统近黑与白为主体,青色信号,直线导轨、方形控件和斜向切口战术面板、运营控制台、媒体门户、游戏菜单
endfield现场工程系统米白与炭黑为主体,信号黄强调,分区舞台、长引导线、校准刻度和大型编号建设、物流、数据工具、工业产品和高对比技术界面
exa宇宙档案系统午夜蓝黑、白色与水青色,衬线标题、圆形仪表、轨道细线和星图节点叙事档案、文化编辑、天文工具、角色资料和沉浸式产品页
popucom明快协作系统蓝、黄、橙与暖白,圆角胶囊、粗描边、错位阴影和轻快反馈协作工具、趣味引导、家庭向游戏、活动页和启动流程
corporate克制的工作室系统黑白灰为主体,酸性黄绿色点缀,干净矩形、单色媒体和安静过渡作品集、招聘页、工作室介绍和媒体展示

选择规则来自 SKILL.md:优先根据产品任务选择风格族,而不是只按喜欢的颜色选择。默认只使用一个主风格族;确需混合时最多组合两个,由主风格控制壳层、排版和主要色彩,次风格只提供一种受控的仪表、强调色或插画行为——"不要把所有产品平均成一个风格"。

四档应用深度

等级键名中文舞台层数组件覆盖动效响应式
1minimal极简0-1critical(关键组件)direct-only(仅直接反馈)safe-stack(安全堆叠)
2moderate中等1-2shared-major(共享主组件)reveal-and-direct(揭示+直接)shell-adaptation(壳层适配)
3complex复杂2-4full-shared-system(完整共享系统)coordinated-families(协调动效族)full-recomposition(完全重构)
4maximal极繁4-6state-specific(状态特定)section-choreography(逐段编排)mode-specific-composition(按模式重导演)

深度规范的核心约束:深度衡量的是实现覆盖与编排程度,不是内容密度。提高深度可以增加有意义的层、响应式重构与状态感知动效,但绝不允许假遥测、重复文案、额外颜色、更小的必要文字或更弱的可访问性。若用户未指定深度,默认规则是:生产力/产品界面用 moderate,游戏邻接或展示型界面用 complex,并在动手前说明假设。

核心工作流

SKILL.md 定义了从接到任务到交付的完整流程。下图展示实际控制流与关键决策点:

Loading diagram...

1. 入口检查

SKILL.md 的"Start here"步骤要求先检查目标项目的框架、视口、既有令牌与用户内容,再选择风格族——这一顺序保证了设计与项目现状(而非凭空偏好)对齐。

2. 锁定设计契约

在改代码之前,必须先声明一个紧凑契约:family、depth、证据模式(来自来源账本的确切公开模式),以及主屏幕必须让用户完成什么。契约将两条轴视为正交:endfield + minimal 与 endfield + maximal 共享身份但视觉饱和度完全不同。当用户要求代选时,展示四个编号级别并按产品类型推荐一个,而不是展示庞大的交叉矩阵。

3. 实施要点

  • 从语义内容和任务层级出发,用视觉语法暴露状态、导航与优先级;
  • 优先复用项目已有组件与令牌;否则复制 assets/starter-vanilla/ 或使用 assets/react/ArkUI.jsx + assets/react/ark-ui.css;
  • 重命名起始模板的类名、ID、data 属性或 ARIA 目标时,必须在同一轮更新所有 JavaScript 选择器——"一个样式完好但 DOM 接线断裂的页面不算完成";
  • 以 assets/tokens/ark-ui.tokens.json 为参考,然后将令牌重命名以匹配目标项目;
  • 实际落地时用根属性表示契约:data-ark-theme="endfield" 与 data-ark-depth="complex",并保持组件选择器语义化,使任一轴都能独立改变;
  • 优先使用 CSS/SVG 几何、渐变、规则线、蒙版与原创抽象,而不是复制的游戏美术;
  • 保持一个主导强调色,次强调只作为状态或产品族信号;
  • 方形或极小圆角几何、1px 规则线、裁切边缘、强负空间与有意不对称;
  • 动效用于揭示层级(蒙版滑入、裁切擦除、克制脉冲、方向漂移),并尊重 prefers-reduced-motion;
  • 响应式布局有意构建:竖屏时把侧导轨转为紧凑的顶部/底部导航,而不是简单缩放桌面构图;
  • 保留键盘可达、可见焦点、可读对比度、语义控件与有意义的替代文本。

4. 证据锁定迭代

当用户要求反复打磨,或说界面"丑、太暗、文字太多"时,使用六步循环(节选自 SKILL.md):

  1. 在改代码前,先指明主风格族、应用深度与来源账本中的确切公开模式;若第二族有用,只借一种受约束的特征,不合并其完整调色板或装饰系统;
  2. 把持久文案归类为"决策 / 变化状态 / 解释",保持决策数据可见、压缩重复状态、把可选解释放到显式的可访问折叠件后面——每个持久数据只有一个视觉所有者;
  3. 每轮只改一个共享令牌族、一个深度行为、一个代表性屏幕;当纯黑显得扁平,先在所选证据族内提升中性令牌或舞台光照,而不是发明渐变、辉光或新强调色;
  4. 保住回收的空间,交给主要内容或负空间,而不是用装饰性遥测填满;
  5. 在相同视口下捕获前后对比,若结果未明显接近引用证据、降低可读性、引入碰撞或让真实机制更难找到,则回滚或修改;
  6. 只有编译、交互、对比度与截图检查通过后才重复。

一个有代表性的细节约束(来自第 2 步):在 36–42 px 的状态芯片里,倾向一行可读的 label + value,而不是两行过小的文字层级;过渡横幅只拥有其主题/状态与一个即时动作或结果,持久 HUD 数值留在 HUD——不得为了"显得技术"而制造协议名、系统代码、信道标签、负载表或装饰性遥测。

令牌体系与数据模型

assets/tokens/ark-ui.tokens.json 是五个风格族与四档深度的配置参考,采用 design tokens 社区格式。其顶层结构为 themes(按风格族分组)、depths(按深度分组)、typography、geometry、motion。

每个主题共享同一组键,保证任一轴可独立替换:

json
1{ 2 "endfield": { 3 "ink": "#191919", 4 "paper": "#f2f2f0", 5 "signal": "#fffa00", 6 "state": "#00ffa2", 7 "accentAlt": "#00ffa2", 8 "muted": "#888888", 9 "panel": "rgba(25, 25, 25, 0.84)", 10 "shell": "pale-rail-charcoal-dock", 11 "stage": "calibration-route-matrix", 12 "radius": "2px" 13 } 14}

Source: ark-ui.tokens.json

设计意图解析:

  • ink / paper 是双色主体(深墨与纸色),signal 是该族的主信号色,state 表达状态,accentAlt 是受控的备选强调,muted 用于弱化信息;
  • panel 使用带透明度的半透明面板色(如 rgba(25, 25, 25, 0.84)),使分层舞台可以叠加而不完全遮挡;
  • shell 与 stage 是命名构图原语而非颜色——例如 endfield 的 pale-rail-charcoal-dock(米白导轨+炭黑坞)与 calibration-route-matrix(校准路线矩阵),它们把"这一族如何组织壳层与舞台"编码为可引用的标识符;
  • radius 直接体现各族的几何性格:ark / corporate 为 0px(硬直角),endfield 为 2px(极小圆角),exa / popucom 为 999px(胶囊)。

共享排版、几何与动效令牌对所有族生效:

json
1{ 2 "geometry": { 3 "rule": "1px", 4 "radiusTechnical": "2px", 5 "radiusFunctional": "4px", 6 "railDesktop": "72px", 7 "topbarDesktop": "72px" 8 }, 9 "motion": { 10 "direct": "240ms", 11 "reveal": "650ms", 12 "attention": "1800ms", 13 "ease": "cubic-bezier(.22,.8,.2,1)" 14 } 15}

Source: ark-ui.tokens.json

这些共享令牌解释了视觉语法中"1px 规则线、72px 桌面导轨/顶栏、240ms 直接反馈、650ms 揭示动效"等具体数值的来源。字体栈使用安全回退("Noto Sans SC", "Source Han Sans SC", "PingFang SC", sans-serif 等),因为仓库明确不复现官方站点上授权不明的专有字体。

五族与四档深度可用下面的实体关系图概括(令牌结构即数据模型):

Loading diagram...

使用示例

安装技能

bash
git clone https://github.com/Brandon030722/ark-ui-skill.git "$CODEX_HOME/skills/ark-ui"

Source: README.md

已经存在旧版本时,先备份自己的改动,再在该目录执行 git pull。安装后可直接在任务中写 $ark-ui 调用。

调用示例

text
使用 $ark-ui,以 endfield 风格、2 级中等深度重构这个后台。

Source: README.md

text
使用 $ark-ui,把这个游戏启动器做成 ark + complex;保留现有信息架构。

Source: README.md

text
使用 $ark-ui,做 exa + maximal 的展示页,但正文阅读区最多保持 moderate。

Source: README.md

第三条示例展示了一个重要用法:深度可以在同一页面内按区域分级——展示页整体取 maximal,但正文阅读区最多 moderate,防止阅读可用性被展示级编排牺牲。

代码约定:静态页面

html
<html data-ark-theme="endfield" data-ark-depth="complex">

Source: README.md

代码约定:React

jsx
<ArkShell theme="endfield" depth="complex" />

Source: README.md

两种约定的共同意图:把契约放在根属性 / 组件属性上,而不是散落在各组件的类名里,从而让"族"与"深度"两条轴可以独立切换。起始模板与 React 资产都在既有族选择器之外额外暴露 data-ark-depth / depth。

技能触发的 YAML frontmatter

yaml
1--- 2name: ark-ui 3description: "Design, implement, audit, or refactor web and game-adjacent interfaces using an evidence-based Hypergryph visual language with two independent choices: product family and application depth (1 minimal, 2 moderate, 3 complex, 4 maximal). ..." 4---

Source: SKILL.md

frontmatter 的 description 决定技能何时被自动触发:覆盖 Hypergryph/Arknights/Endfield/Rhodes Island、工业科幻、双语技术界面等请求词,以及落地页、仪表盘、菜单、类 HUD 面板、设计系统、HTML/CSS/JS/React 组件与视觉 QA 等任务类型。

配置与工具链

脚本工具一览

脚本用途用法
scripts/scaffold-ark-ui.py把起始模板复制到新的或空的目标目录实现前先脚手架化
scripts/audit-ark-ui.mjs启发式审计:标记缺失的无障碍/响应式问题与常见模仿俗套node .../audit-ark-ui.mjs <html-or-css-path>
scripts/analyze-css-evidence.py从公开 CSS 提取颜色、字体、动效与几何证据python3 .../analyze-css-evidence.py <css-url-or-file>
scripts/capture-showcases.mjs以精确桌面(1440×900)与可选移动(390×844)CDP 视口渲染五个样例,横向溢出时失败node .../capture-showcases.mjs --mobile
scripts/capture-promos.mjs从原始展示截图再生成整套社交宣传图(八张横竖版 PNG)node .../capture-promos.mjs

验证命令

bash
node "$CODEX_HOME/skills/ark-ui/scripts/audit-ark-ui.mjs" <html-or-css-path> node "$CODEX_HOME/skills/ark-ui/scripts/capture-showcases.mjs" --mobile python3 "$CODEX_HOME/skills/.system/skill-creator/scripts/quick_validate.py" "$CODEX_HOME/skills/ark-ui"

Source: README.md

完整验证清单(来自 SKILL.md 的 Validate 节)

  1. 运行目标项目的测试、lint 与构建;
  2. 运行自带启发式审计脚本;
  3. 在桌面与竖屏宽度渲染,检查裁切、文字碰撞、焦点顺序、激活态与减弱动效行为;
  4. 在浏览器中实际操作主要控件并检查运行时错误,不要仅从静态标记推断行为;
  5. 确认每个装饰元素都支撑分组、方向、状态或世界观构建之一;
  6. 确认来源:官方生产证据已被引用、第三方代码已做许可检查、输出代码为原创或正确署名;
  7. 对文字密度轮次,确认被删除的文案是冗余的,或仍可通过可见、可键盘访问的折叠控件获取;
  8. 确认每个仅图标控件是熟悉的次级操作或有可访问名称;购买、提交、破坏性与状态对比操作即便在紧凑布局中也保留可见动词与数值;
  9. 将代表性屏幕对照所选深度评判:壳层转换、舞台层数、组件覆盖、状态仪表、动效与响应式重构——不是原始元素计数;
  10. 确认最密的屏幕不超过所选深度一个局部等级,主屏幕不低于所选深度;记录有意的局部例外。

研究新的官方页面

当任务需要新页面或账本未覆盖的产品时,检查公开页面及其加载的 CSS/JS,用分析器处理 URL 或已下载的 CSS,然后把页面 URL、资产 URL、获取日期、观察到的框架、颜色、字体与可复用模式记录进 references/source-ledger.md,并区分直接观察与推断。

失败模式、边界与禁止事项

SKILL.md 的 Avoid 节定义了整个技能的边界红线:

  • 不得将 Hypergryph、Arknights、Endfield、Rhodes Island、Monster Siren 或其他受保护的标志、角色美术、主视觉、UI 截图或 CDN 资产复制进交付物,除非用户拥有权利并显式提供;
  • 不得再分发生产包或官方站点上观察到的专有/许可不明字体;
  • 不得声称重构代码是 Hypergryph 源码;
  • 不得在无信息角色的情况下添加随机六边形、终端噪声、扫描线、故障、霓虹渐变或密集 HUD 装饰;
  • 不得仅因为这些颜色出现在不同产品中,就把青、信号黄、水青、品红、橙和柠黄组合进同一界面;
  • 不得把主内容藏在启动屏、自动播放音频或仅悬停可达的控件后面;
  • 不得把 maximal 解释为随机 HUD 噪声、假系统代码、永久动效或每个组件都加装饰的许可;
  • 不得通过删除标签、状态、焦点提示、前置条件或必要解释来实现 minimal。

深度边界的量化验收规则(Validate 第 10 条)提供了"偏离契约"的可判定判据:最密屏幕超出所选深度不超过一个局部等级、主屏幕不低于所选深度。

运维与扩展点

  • 再生成宣传素材:assets/promo/ 保存可编辑源文件,assets/promo/output/ 是八张(4 横版 1600×900 + 4 竖版 1080×1350)成品 PNG;运行 capture-promos.mjs 可从真实样例截图重新生成。
  • 扩展新风格族:路径是"研究新官方页面 → analyze-css-evidence.py 提取证据 → 记录进 source-ledger.md → 在 ark-ui.tokens.json 增加同构主题键 → 在 recipes.md 增加配方",而不是凭印象调色。
  • 适配目标项目令牌命名:规范明确要求把 ark-ui.tokens.json 作为参考后重命名令牌以匹配目标项目,避免把技能内部命名强加给宿主项目。
  • QA 入口约定:当代表性状态难以触达时,添加确定性、非持久的 QA 入口——"非持久"指测试装置显式抑制存档写入与存档删除,而不仅是创建内存对象;对于自动隐藏的过渡,QA 入口可在禁用自动隐藏的情况下重启正常动画,但不得改变生产时序。

相关链接

Sources

(3 files)