Communitygithub.com

atelier-ui

自适应的前端与视觉设计编排技能。在品牌/落地页、SaaS/应用UI优化和3D/WebGL视觉构建之间智能路由,支持一轮需求收集、渐进式模块加载、零安装回退和确定性QA检查。触发条件:UI/网页设计、重新设计、落地页、仪表盘或视觉完善请求。

atelier-ui 是什么?

Atelier UI 是一个前端与视觉设计编排技能,旨在根据项目类型智能路由到专门的构建模块,避免一次性加载所有内容。它支持品牌落地页、SaaS 应用 UI 以及 3D/WebGL 视觉构建三大类场景。该技能通过一轮需求收集(Intake)快速形成项目简报,并依赖环境探测脚本确定可用的工具链和 QA 等级。其核心工作流包括:环境探测、需求收集、路由到单一构建模块、执行通用“工艺准则”(如 CSS 自定义属性、布局防陷阱、无障碍动效),最后通过静态 lint 检查、浏览器截图校验和视觉批评家 QA 门控。技能内置了零依赖的脚本(lint-ui.mjs, check-ui.mjs)进行机械检查和 CDP 验证,并支持可选的可视化批评家复盘截图。

兼容平台✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/yashh1323/atelier-ui/tree/HEAD

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Atelier UI — 设计编排器

保持上下文轻量。切勿一次性加载所有模块——在完成需求收集后,路由到一个构建模块,并将机械检查工作委托给脚本。

在以下命令和路径中,<skill> 是包含此 SKILL.md 文件的目录(例如 ~/.gemini/config/skills/atelier-ui,Windows 上为 %USERPROFILE%\.gemini\config\skills\atelier-ui,或工作区本地的 .agents/skills/atelier-ui)。在 shell 命令中始终用引号包裹 "<skill>/...",以确保路径中的空格能被正确处理。

工作流程

1. 探测环境(仅一次)

在项目根目录运行能力扫描器:

node "<skill>/scripts/detect-env.mjs"

不要假定外部工具(impeccable、agent-browser)存在。使用 JSON 输出(project.framework、project.devCommand、tools.impeccableCmd、tools.agentBrowser、tools.browserBinary、tools.cdpSupported)来选择技术栈和 QA 级别。

2. 需求收集(1 轮对话,附带默认值)

仅当存在核心问题时才读取 <skill>/modules/01-intake.md。

  • 在一条带编号的消息中一次性提出所有缺失的问题,并附上默认值(或者如果用户提供了完整细节或说了 "defaults" / "go ahead",则立即开始)。
  • 将确定的计划写入 .atelier/BRIEF.md,以便在上下文压缩时不会丢失需求。

3. 路由到一个构建模块

根据简报中的表面模式选择,并仅读取该文件:

  • 品牌 / 落地页 / 作品集 / 本地企业(说服 或 体验):读取 <skill>/modules/02-brand-site.md。
  • SaaS / 仪表盘 / 文档 / 现有应用(操作 或 阅读):读取 <skill>/modules/03-app-ui.md。
  • 3D 世界 / WebGL / 着色器(3D):读取 <skill>/modules/04-3d-visual.md。

4. 通用工艺准则(始终生效)

  1. 使用 Token 而非原始十六进制颜色: 使用 CSS 自定义属性(:root)或项目现有的 Tailwind/主题 Token。
  2. 避免布局陷阱: overflow-x: clip 应用于 html, body(永远不要用 100vw);图片网格轨道使用 minmax(0, 1fr);显示标题使用 min-width: 0; overflow-wrap: break-word。
  3. 动效与无障碍: 永远不要使用 transition: all;仅对 transform / opacity / clip-path / filter 进行动画;添加 :focus-visible 和 @media (prefers-reduced-motion: reduce)。
  4. 禁止“粗制滥造”清单: 避免无意义的紫蓝渐变、正文/标题上的渐变文字、卡片嵌套卡片、标题上方 01/02/03 式的眉标、用表情符号替代 UI 图标、虚构的推荐语/Logo/指标。
  5. 对比度与状态: 正文文本对比度 >= 4.5:1,大文本 >= 3:1;每个交互控件需覆盖默认、悬停、焦点可见、禁用、加载、空状态和错误状态。
  6. 文案简洁: 按钮文案应为 <动词> <对象>(永远不要使用泛泛的 "Learn more")。切勿保留占位文本(Lorem ipsum、Acme、TODO)。

(机械检查位于 lint-ui.mjs 和 check-ui.mjs 中;结构性布局规则(如卡片嵌套、minmax(0, 1fr))由你和三级批评家负责验证。)

5. 验证与批评家门控

构建完成后,读取 <skill>/modules/05-qa-gate.md 并执行 QA 阶梯:

  1. 静态粗制滥造检查(如果检测到,使用 tools.impeccableCmd,外加 node "<skill>/scripts/lint-ui.mjs" <target-dir>)。
  2. 浏览器检查(agent-browser、你的环境中的浏览器工具,或 node "<skill>/scripts/check-ui.mjs" <target> --out .atelier/shots --full --sheet),分别在桌面(1440x900)和移动端(390x844)进行。
  3. 可选的无上下文视觉批评家审查,使用捕获的截图(当 QA Depth 为 critic 或 deep 时)。

技能文件列表

路径(位于 <skill>/ 下)加载时机
modules/01-intake.md步骤 2:澄清模糊的简报并写入 .atelier/BRIEF.md
modules/02-brand-site.md步骤 3:新建营销、公司、本地企业或作品集页面
modules/03-app-ui.md步骤 3:仪表盘、工具、文档或优化现有应用
modules/04-3d-visual.md步骤 3:Three.js、WebGL 或着色器构建
modules/05-qa-gate.md步骤 5:运行 lint、浏览器检查和无上下文批评家审查
library/themes.json步骤 3(02-brand-site):处理非通用颜色与字体搭配
scripts/detect-env.mjs步骤 1:检测项目技术栈及已安装的 CLI/浏览器工具
scripts/lint-ui.mjs步骤 5:内置的零依赖粗制滥造与工艺准则检查器
scripts/check-ui.mjs步骤 5:内置的零依赖 Chrome DevTools 协议 (CDP) 验证器

相关技能