UI Sift
SkillSearchDesign, implement, review, or polish clean, finely interactive frontend pages and components. Provides project profiling, visual judgment, curated component search, official skills/MCP and source discovery, multi-library integration, and evidence-based acceptance. Use for new pages, admin panels, AI
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the UI Sift skill
What this skill tells your AI
The instructions your AI receives, as published by ciao1019/ui-sift in SKILL.md and read by ahel’s review.
让界面安静、清楚、顺手,在关键操作上有恰到好处的反馈。精选资源是候选素材库;最终交付应具有统一的产品语言。
面向不同开发者与工程使用,不预设目录结构、包管理器、路由、图标或 UI 基座。新项目按产品需要建立体系,已有项目优先适配其实际约束。
按任务展开,而不是一次读完
先判断工作范围,选择下面的路径。沿用用户已有授权,常规设计与选型不添加审批节点。用户只要评审时不自动改代码。
| 任务 | 工作路径 | 按需读取 |
|---|---|---|
| 局部修饰、单个组件 / 状态 | 找到原实现 → 保留约束 → 修改 → 定向验证 | 本文件;必要时读交互配方 |
| 新页面、明显重构 | 简报 → 视觉方向 → 选型 → 真实主流程 → 打磨 → 验证 | 工作流、视觉语言 |
| 多页面、多库工作台 | 上述路径 + 共享能力归属 + 页面间状态连续性 | 组件契约、集成模式 |
| 参考还原 | 拆结构 / 排版 / 密度 → 实现 → 同视口比较 → 修正差异 | 视觉语言、布局与内容 |
| UI 评审 | 实际主流程 → 记录影响最大的具体问题 → 在请求范围内交付 | 质量评审 |
阶段完成凭可观察结果判断:约束可解释、主流程能完成、状态反馈真实、相关验证有证据。跨轮次任务可保存 设计简报;小任务不必生成文档。用户改变方向时更新受影响判断,保留仍适用的接线与验证。
先理解正在做什么
阅读项目约定、依赖、路由、主题 tokens 和目标页面的调用链。确认框架、版本、包管理器、基础组件、图标、动效运行时,以及需要保留的交互和数据接口。存在 components.json 时,检查 aliases、style、base library 和 registries。
先搜索本地已有组件与实际调用;“目录里有文件”“已接入业务”“只有演示”是不同证据。不要为视觉调整迁移框架、替换整套设计系统或顺手重构业务。
工程较大时可运行只读 scripts/profile_project.py。先选目标 package,monorepo 合并结果不能代替目标框架判断。扫描输出只是线索,继续读目标文件与调用链。
用几句话确定本次设计:谁在使用 → 最重要的任务 → 信息层级 → 一个值得打磨的交互。从上下文能判断的细节直接决定;只询问会改变实现方向的缺失信息,同时继续独立工作。
用户已有品牌、布局或参考图时,以它们为准。没有视觉基线时,选择符合产品内容的中性色层次、清晰排版和少量强调色;简洁可以温暖,也可以严谨,不绑定某套字体或黑白模板。
新页面先决定工作方式、信息密度、表现强度、动效强度。选一个能改善任务的细节:保留滚动位置、错误后恢复、触摸可达、工具结果可追溯等。具体判断读 视觉语言,不要把“简洁”简化为删掉必要信息。
按任务挑组件
先选择一个主方案,再补足确实缺失的专项能力。小改动可以完全使用现有组件;新页面通常只需检查一至三个相关来源,无须遍历整个清单。
| 当前需要 | 优先查看 | 选择边界 |
|---|---|---|
| AI 工具结果、选择与确认 | Tool UI | 数据 schema 与用户操作回执要接通 |
| 完整 AI 对话、流式消息、高亮 | assistant-ui;轻量界面可看 prompt-kit | 沿用已有 runtime 和 Markdown 管线 |
| 只读 Markdown、数学、引用 | Lobe UI Markdown | 不为只读文本引入编辑器 |
| 富文本编辑、批注、块操作 | Plate | 只加载需要的插件 |
| 文档预览、抽取校验、审核 | Extend UI | 普通上传不需要整套工作台 |
| 文件树、复杂应用组件 | Kibo UI、UI TripleD、Astryx | 比较能力、键盘交互和主题集成成本 |
| 思维导图 | mindmapcn | 静态层级图可沿用已有图表能力 |
| 选日期或日期范围 | 现有 Calendar / shadcn/ui | 真正日程管理才考虑 DayFlow |
| 多视图日程、拖拽排程 | DayFlow | 确认框架适配及 Core / Pro 边界 |
| 手写签名 | Cuicui Signature;文档流程可看 Extend | 需要触摸输入、清除与确认状态 |
| 克制的微交互 | moumenlab、GodUI、UI TripleD | 选能解释状态变化的效果 |
| 局部等待或活动强调 | Libraries.dev Beam / Orbs | 按真实任务状态启停 |
| 营销区块与应用布局 | Ruixen、Shadcn Studio;Variant 找方向 | 只取符合页面叙事的区块 |
| Vue / Nuxt 动效 | nxui | 不把 Vue 源码当成 React 组件 |
| Go templ 界面 | shadcn-templ | 它不是 React 的 shadcn/ui |
| 动态图标 | 现有图标体系;Heroicons Animated | 项目已有其他体系时保持一致 |
候选组件、来源与取舍见 资源目录。只有对应场景才读取相关条目。目录列出的“值得探索”是编辑建议,不等于已在用户项目验证。
用工具缩小候选范围
包内有 22 个来源、69 组组件候选、30 类需求意图。检索脚本先过滤框架和动效,再根据需求与已声明依赖排序。候选名称不是 npm export / registry ID,排序值不是审美评分。最终采用前按 组件契约 核对版本、基础库、业务能力、许可与范围。
在当前 skill 目录执行(Python 3.9+,标准库,无额外运行依赖):
python3 scripts/profile_project.py /path/to/frontend-package > /tmp/frontend-profile.json
python3 scripts/recommend.py "文档审核,定位原文" --framework auto --profile /tmp/frontend-profile.json
python3 scripts/recommend.py "分享权限弹层" --framework react --no-new-dependencies
读取返回的理由、排除项和限制,选择一个主方案。复杂自然语言可用 --intent 明确意图;无命中时继续查现有能力和官方资料,不编造候选或硬套资源。脚本不理解完整业务,不代替设计判断。
具体参数、下载与验收命令见 工具手册。没有 Python 或现成工具时,手工完成同等判断即可。
获取官方知识,再获取代码
选定来源后读取 官方接入与下载 中对应条目,核对最新组件页、安装文档、兼容版本及授权。
采用两条互补路径,不把 MCP、skill 和组件依赖混为一谈:
- 知识路径:已可用的官方 skill / MCP → 官网链接的 skill、MCP、
llms.txt或 Markdown 文档 → 官方网页与仓库。Skill 负责用法,MCP 负责检索或获取;二者均不能代替组件本身。 - 代码路径:项目已有实现 → 官方 registry / CLI / npm 包 → 官方仓库中的目标源码。没有 MCP 或 skill 时,主动获取所需源码和依赖,完成集成;不要停在“你可以自己下载”。
只读取、下载当前任务所需的官方 skill 及其实际引用文件。先检查内容,再按当前工具支持的方式使用;下载文件不代表当前会话已经动态注册该 skill。长期安装遵循用户已有授权和工具约定,不批量安装清单内所有 skills 或 MCP。
核对下载响应的内容类型和实际内容:返回首页 HTML、登录页或 404 的 llms.txt 不能当成知识索引。没找到官方入口应写“未确认”,而不是断言不支持,更不能猜包名、MCP 地址或 registry ID。
可用 scripts/fetch_reference.py 将已核实官方域名下的单份文本 / registry item 下载到任务缓存,取得 URL 与 hash。它不安装、不执行内容;源码检查、依赖处理、业务接线和验证仍由你完成。文档记录有 MCP 不等于当前已连接;下载了 skill 不等于宿主已加载。
网络或付费访问不可用时,使用本地可验证实现、已授权公开源码或更合适的替代;标明这一限制。不要绕过付费限制,也不要把截图称作可复制源码。
把素材变成产品的一部分
编码前简短说明选中的组件、用途和一项主要取舍,然后继续实现。不要把常规选型变成审批流程,也不必向用户列出所有候选。
- 视觉归一:组件颜色、字号、圆角、边框、间距、阴影和焦点样式使用项目 tokens。沿用既有图标与动效运行时;静态小元素优先用现有原语或 CSS。
- 结构优先:先改善内容顺序、对齐、行宽和密度,再增加装饰。列表不必全变成卡片,普通内容不必都有渐变、标题眉标和大面积空白。
- 真实交互:用 props / 类型替换演示数据,连接真实事件、路由和 API。提交、取消、重试、复制、展开和筛选必须产生对应结果;演示数据只用于明确的原型或测试。
- 状态可解释:空状态给下一步,失败保留用户输入,异步操作阻止重复提交。进度取自真实任务;不知道比例时呈现阶段或不定进度,不编造百分比。
- 动效有语义:优先反馈按下、展开、切换、成功与内容到达。动画不应拖慢完成操作,不让多个持续特效争抢注意力;尊重 reduced motion,触摸和键盘不依赖 hover。
- 集成边界:检查主题 Provider、全局 reset、portal、z-index、SSR / hydration、CSS 版本和基础组件 API。下载或 CLI 添加后检查 diff,保护用户现有改动,保留必要署名与许可。
- 成本可控:编辑器、文档引擎、可视化和语法高亮按需加载;避免重复 Markdown 管线、日期库、图标库和动效运行时。
需要具体交互参数与场景组合时,读 交互配方。遇到多库集成和主题冲突时,读 集成模式,按使用者的工程决定具体组合。
长内容、异步反馈、双栏转窄屏、输入法与焦点问题,按 布局与内容 检查。先让主要操作成功一次,再打磨动效,避免所有按钮只有外观和空回调。
在实际页面上验收
运行与变更相关的项目现有 typecheck、lint、测试或构建,遵循仓库要求。能运行时,在桌面与窄屏实际操作主流程,并用截图检查层级、间距、溢出与遮挡;只看代码不能宣称视觉验收通过。
检查本次涉及的 loading、empty、error、disabled、hover、focus 状态,键盘操作、触摸、可访问名称和 reduced motion;项目支持明暗主题时都检查。长标题、中英文混排、无数据与较大数据量不能破坏布局。查看控制台错误,区分新增问题与已有问题。
最后做一次减法:去掉没有说明状态、支持任务或体现品牌的装饰。若关键操作难找、反馈失真或主题互相覆盖,先解决这些问题,再评价“好看”。
交付简述:改好了什么、采用什么来源及原因、实际完成的验证、仍存在的限制。未运行的检查如实说明,不以截图代替功能验证,也不以构建通过代替视觉检查。
多页面或复杂交付可以填写 验收记录,用 scripts/check_delivery.py 检查要求覆盖和证据文件引用。这个工具不执行测试或理解截图;evidence_record_complete 只表示记录齐全。具体评审方式见 质量评审。
调用示例
- “用 $ui-sift 打磨这个后台列表,保留现有 shadcn,交互简洁,不新增大依赖。”
- “用 $ui-sift 做文档审核页:预览、字段校验、定位原文,窄屏也能操作。”
- “用 $ui-sift 改善 AI 对话中的工具结果,先查项目已有能力,再选合适的官方组件。”
资料核验日期、Vibe-Skills 等来源的借鉴方式与实际验证范围见 资料依据。维护 skill 时运行包内脚本测试;设计效果另用 真实任务场景 评价,不能用测试数量替代。
本 skill 不依赖指定浏览器、付费服务或额外 skill;使用当前环境可用的读取、浏览和开发工具。源码、注册信息和文档会变化,入选组件以当前官方资料为准。
Advanced
- Item type
- skill
- Key
ui-sift- Source
- github.com/ciao1019/ui-sift