ui-picks · git:20261011.d2acec4 · 2026-10-11 · sha256 acf8ed5871129a31

ui-picks git:20261011.d2acec4A

Immutable. This exact content never changes and is served at /api/v1/blob/acf8ed5871129a31.

---
name: ui-picks
description: UI 库选型表:做界面时按场景从表里取组件移植进项目,覆盖装饰特效、卡片编排、状态转场、微交互小件、产品控件、营销/仪表盘块、技术图解与主视觉、AI 聊天界面、界面音效
---

# UI Picks

个人品味的 UI 库选型表。组件清单和 API 以各库的 llms.txt / registry / 文档为准,构建时现取;下文只记查不到的获取方式、坑和红线。

## 使用规则

1. 按任务场景选库,不按用户提到的库名:"要个粒子背景"即特效场景。
2. 先查 `package.json`:项目已用表内库直接用;已用竞品时提示本表推荐,保留现有依赖。
3. 装饰性动效不限场景,产品 UI 也可按需用。内容层独立于特效层:文字可选中、链接可点击、核心信息不依赖特效。
4. WebGL / shader 特效(Canvas UI、Paper Shaders)只在用户明确要求时启用,读 [references/shaders.md](references/shaders.md)。

## 移植流程

复制分发的库(源码落进项目)都按这一步走,完成标准是每个 import 已对账、每个 token 已映射:

1. 取源码进项目,剥掉示例里的 mock 数据、定时状态流、站点专属 CSS 变量和共享 atoms。
2. 依赖对账:逐个看组件带来的依赖(motion、Radix、vaul、three 等),项目已有的复用,没有的先评估 CSS 或原生替代,确实需要再引入并说明。
3. 颜色、圆角、字体、间距映射到项目设计系统;库自带的 token 体系和项目 token 二选一,不并存。
4. 按 ui-craft 核对「标签与页眉」「其他模板痕迹」、性能和 reduced-motion。

## 路由表

| 场景 | 库 |
| --- | --- |
| 流光边框、液态 morph、液态金属、思考态 loader、图片生成态 | Libraries.dev |
| 卡片空间编排(cover-flow、扇形、arc) | Amicro |
| 既有元素的 CSS 状态转场(resize、数字翻转、开合、抖动) | transitions.dev |
| 图标 morph(menu→X) | morphicons |
| 带动效的 Apple 味小件(Folder、OTP、Gooey Nav、原地确认) | Rare UI |
| 扁平无动效的实用小件(表单、日历、票据/名片 mockup、社交卡、Dock) | Opensource UI |
| 产品控件,shadcn / 复制源码风格 | Fluid Functionalism |
| 产品控件整包,React 19 + Tailwind v4 | Appica UI |
| 复杂交互控件(签名、快捷键录制、@提及、滑动操作、长按确认、主题切换转场) | Arc |
| 营销页与仪表盘的动效块(hero、卡片块、定价块、图表) | Spectrum UI |
| 把一个技术概念画成会动的机器(文档配图、落地页或官网主视觉) | Anatomy |
| AI 界面视觉件(思考态、流式、审批、工具调用) | Beautiful UI / Fluid Functionalism |
| AI 聊天 runtime(线程、流式、工具调用) | assistant-ui |
| 界面音效 | UI SFX |

## 库

### Libraries.dev — 五个零依赖效果包(React)

- `border-beam` 流光边框、`liquid-gooey` 液态 morph/move、`metal-fx` 液态金属(环、按钮、金属字,内置 Paper Shaders liquidMetal 引擎)、`thinking-orbs` 点阵思考球、`img-fx` WebGL 图片生成/加载态(peer `three`);站点 [libraries.dev](https://libraries.dev),各包子站有 demo,MIT。
- 安装:`npm i <包名>`,只 peer React;不走复制分发。

### Amicro — 卡片编排微交互(React)

- 站点 [amicro.vercel.app](https://amicro.vercel.app),无 llms.txt,纯客户端渲染,选组件靠站点浏览。
- 获取:从站点组件页复制源码(依赖 Motion)。官方 `npx @subhanhq/amicro@latest add` 不可用(npm 包 1.0.1 无可执行入口,2026-10 验证)。

### transitions.dev — CSS 状态转场片段(框架无关)

- 站点 [transitions.dev](https://transitions.dev)。获取:`npx transitions-dev add <name>`(免费款无需账号,`list` 看全量;Pro 需浏览器登录)或站点卡片复制。片段自含 `:root` 语义变量、`t-*` 命名空间类和 reduced-motion guard。
- 红线:多款默认带 blur,与 ui-craft 动效参考「blur 只在视觉语言需要且实测流畅时加入」冲突,实测流畅且视觉语言支持才保留。

### morphicons — SVG 图标 morph(React / Vue / Svelte / RN / vanilla)

- 零依赖 ~6-8KB;机读 <https://www.morphicons.com/llms.txt>(完整 API 在 llms-full.txt)。SSR 干净、默认 `aria-hidden`、自动尊重 reduced-motion。
- 安装:`npm i morphicons`,按框架取 `morphicons/react|vue|svelte|react-native|dom` 入口;图标以数据形式导入(装 `lucide` 包,不是 `lucide-react` 组件)。
- 红线:只支持 stroke 图标(Lucide/Tabler/Heroicons outline/Iconoir);非 24×24 网格的包先用 `fitIcon` 重排。

### Rare UI — Apple 味动效小件(React / shadcn registry)

- 机读 <https://www.rareui.com/llms.txt>,MIT。获取:`npx shadcn@latest add swamimalode07/rare-ui/<组件>`。
- 红线:Duration Picker 拉 flubber/figma-squircle,Emoji Reaction 拉 react-apple-emojis(Apple emoji 资产授权自担)。

### Opensource UI — 自包含扁平小件(React / Next.js / Tailwind v4)

- 单文件组件,只靠 Tailwind + clsx/tailwind-merge,图标是仓库内 SVG;机读 <https://opensourceui.in/llms.txt>,组件页 `/components/<slug>` 带源码,仓库 `skills/opensource-ui/references/catalog.md` 是全量目录,MIT。
- 获取:组件页复制;`cn()` 用项目已有的,图标从仓库 `icons/` 取或换项目图标库。
- 红线:它的视觉语言(Instrument Serif + Geist、纯扁平、无渐变发光)很强势,移植时按项目 token 重映射,不把它的设计体系带进项目。

### Fluid Functionalism — 成品感产品控件(React / shadcn registry)

- 文档 [fluidfunctionalism.com/docs](https://www.fluidfunctionalism.com/docs),机读 <https://www.fluidfunctionalism.com/r/registry.json>。
- 获取:`npx shadcn@latest add https://www.fluidfunctionalism.com/r/<组件>.json`;`/r/base/` 路径只有部分组件,用 `/r/`。

### Appica UI — 产品控件整包(React 19 / Tailwind v4 / Base UI)

- 机读 <https://appica.dev/ui/react/llms.txt>,文档页加 `.md` 取纯文本,MIT。
- 安装:`pnpm add @appica/ui-react`,全局样式里 `@import '@appica/ui-react/styles.css'` 并加 `@source '../node_modules/@appica/ui-react/dist'`(相对该 CSS 文件的真实路径,写裸包名会静默失效、整体无样式);按子路径逐个导入 `@appica/ui-react/button`。
- 红线:React 19 与 Tailwind v4 是硬门槛,不降级适配;它按角色命名的 token(`bg-background-muted`)和项目已有 shadcn token 二选一。

### Arc — 复杂交互控件(React / shadcn registry / Motion)

- 只用免费项(MIT,源码 [kuratlielia/arc-library](https://github.com/kuratlielia/arc-library));机读 <https://uiarc.dev/llms.txt>,组件页加 `/markdown` 取何时用、props、键盘与无障碍说明。
- 获取:`npx shadcn@latest add https://uiarc.dev/r/<组件>.json`。
- 红线:样式是 CSS modules + CSS 变量而非 Tailwind,变量映射到项目 token,不引入它的 `arc-foundation`,文件落进项目既有组件目录;它的规则去掉了 focus ring,按 ui-craft 补回 `:focus-visible`;不装它的 skill 与规则文件;Pro 项不照着重建。

### Spectrum UI — 营销页 / 仪表盘动效块(React / shadcn registry / Motion)

- 建立在 shadcn + Radix + Motion 上,机读 <https://ui.spectrumhq.in/llms.txt>,Apache-2.0。
- 获取:`npx shadcn@latest add @spectrumui/<组件>`,或 `claude mcp add spectrum-ui -- npx -y @spectrumui/mcp` 后直接让 MCP 装;每个组件页有已验证命令。
- 红线:每个组件按 registry 拉自己的依赖(motion、vaul、react-use-measure 等),移植流程第 2 步逐个对账。

### Anatomy — 可交互的等轴测机器图(框架无关 TS→SVG/HTML / React / 自定义元素)

- 把概念做成一台由几十到上百个立体零件组成、会动的机器,零件运动和读数出自同一份模型;只有一种画风:线稿等轴测、四档明暗、一个强调色。站点 [skills.wheresryan.sh/anatomy](https://skills.wheresryan.sh/anatomy),源码 [wheresryan22/anatomy](https://github.com/wheresryan22/anatomy),MIT,零依赖,Node ≥ 20.10。
- 现做一张:在目标项目里 `npx skills add wheresryan22/anatomy`(默认装进当前项目,`-g` 才装到全局),按它的流程做。用现成的 33 张图:`npm i anatomy-figures`,React 组件或 `<anatomy-*>` 自定义元素,颜色走 26 个 `--anatomy-*` 变量,映射到项目 token。
- 红线:小图 30–90 分钟、主视觉级 2–4 小时,开工前跟用户说清;画风和项目视觉语言不搭时不用;原生 APP 只能 WebView 嵌入或导出静态 SVG。

### Beautiful UI — AI-native 界面原语(React / TypeScript)

- 思考态、流式回答、人工审批、工具调用、AI 编辑器;站点 [beautifului.dev](https://www.beautifului.dev/),shadcn registry 目录 <https://www.beautifului.dev/r/registry.json>,无 llms.txt。MIT。
- 获取:`npx shadcn@latest add https://www.beautifului.dev/r/<组件>.json`;部分另需 `glimm`、`liveline`、`iconoir-react`。

### assistant-ui — AI 聊天 runtime(React / TS)

- 机读 <https://www.assistant-ui.com/llms.txt>。
- 安装:已有项目 `npx assistant-ui@latest init`,新项目 `npx assistant-ui@latest create`;或 `@assistant-ui/react` + 对应 runtime 包(如 `@assistant-ui/react-ai-sdk`)。样式与密度对齐项目设计系统。

### UI SFX — 语义化界面音效(Web Audio / 跨端音频文件)

- 按交互语义(success、drop、processing、level-up)调用 cue,换音色 pack 不改交互代码;机读 <https://uisfx.com/docs/agent-guide.md>,接线提示词 `/agent-prompt.txt`。代码 MIT、音频 CC0。
- 安装 `npm i uisfx`:`createUISFX({ pack, preferences: {} })` + 首次可信交互里 `await ui.unlock()`;运行时 12KB 零依赖、本地合成。React Native / 原生 / 引擎侧用包内 `uisfx/sounds/{pack}/{cue}.mp3|ogg` 与 `uisfx/manifest`。
- 红线:音效只强化已有的可见反馈;提供持久静音开关(`setEnabled`),loop cue 随可见状态结束即 `stop()`,密集界面里 hover 音保持安静或关闭。