Caho1/open-claude-ui
基于 REA 深度拆解并高保真还原 Claude 官方桌面端 UI。还原 30 个独立 React 组件与 8 项硬核交互物理算法,附带 3000+ 行逆向分析手册。
概述
open‑claude‑ui 是一个开源 UI 组件库,重现了 Anthropic 的 Claude 桌面客户端的观感。作者使用 REA 逆向工程框架对 Claude 的生产版 Electron 包进行反编译,提取了精确的设计令牌、交互物理和动画参数,然后将其重新实现为一组用 TypeScript 编写并使用 Tailwind CSS 样式的可复用 React 组件。
该仓库包含:
- 30 个即用型组件和钩子(按钮、分段控件、聊天气泡、编辑器、模型切换器、音频播放器等)
- 一个完整的 Tailwind 主题,定义了 Claude 的调色板、表面层级、“黏土”橙色、发丝边框和动效令牌
- 一个轻量、离线的 Storybook 风格 HTML 预览,用于视觉测试
- 详细的逆向工程文档(约 3 000 行),解释了每个 UI 常量在原始应用中的来源
- 用于无障碍、速率限制退避、滚动固定、共享元素过渡等的辅助钩子
所有代码均在标准 React 18 环境中运行;不包含任何专有二进制文件或资源。
主要特性
| 特性 | 提供内容 |
|---|---|
| 高保真 Claude 设计系统 | 与官方桌面客户端匹配的精确颜色令牌、表面层级、0.5 px 发丝边框和 4 步弹簧物理。 |
| 30 个生产级组件 | 按钮、分段控件、状态指示器、对话框、聊天气泡、带 CJK 输入法保护的编辑器、带令牌计量器的模型切换器、音频合成、媒体灯箱、分栏调整器、协作画布等。 |
| 动效引擎 | 预构建的 Framer‑Motion 弹簧预设和自定义关键帧着色器(环境光晕、滚动淡出遮罩、非线性 alpha 遮罩)。 |
| 基于 Web‑Audio 的音效 | 使用原生 Web Audio API 生成的零延迟合成提示音——无需外部 MP3 文件。 |
| 桌面特定集成 | macOS 毛玻璃效果、可拖拽标题栏、隐藏内嵌窗口、通过 BroadcastChannel 实现的多窗口协作。 |
| 无障碍 | 符合 ARIA 的焦点漫游钩子、键盘导航网格、RTL 支持。 |
| 离线 Storybook | 一个单独的 HTML 文件(claude-components-storybook.html),无需开发服务器即可展示所有组件。 |
| 代理友好指南 | AGENTS.md 及相关文件为 AI 编码助手(Copilot、Claude Code、Cursor 等)提供明确指令,以遵循库的设计约束。 |
快速开始
# 安装包
npm i open-claude-ui
import { ChatComposer, CdsButton, ModelSwitcherWithTokenGauge, ScrollFadeContainer } from 'open-claude-ui';
export function App() {
const [model, setModel] = React.useState('sonnet-3.5');
const [thinking, setThinking] = React.useState(true);
return (
<div className="flex h-screen bg-[var(--cds-surface-1)]">
<ScrollFadeContainer className="flex-1 p-6">
<ModelSwitcherWithTokenGauge
currentModel={model}
extendedThinking={thinking}
tokenBudget={{ inputTokens: 12400, outputTokens: 3200, cacheReadTokens: 48000, cacheWriteTokens: 16000, maxContextWindow: 200000 }}
/>
<ChatComposer => console.log(msg)} />
<CdsButton variant="primary">发送</CdsButton>
</ScrollFadeContainer>
</div>
);
}
从包中添加 Tailwind 主题(参见 code-examples/tailwind.config.js)并导入全局 CSS cds-theme.css,以获得精确的 Claude 颜色和动效令牌。
谁可能使用此库?
- 前端工程师,正在构建 Claude 风格的聊天 UI 或任何需要相同精致交互物理的 AI 助手界面。
- 设计系统团队,寻找如何编码表面层级、基于令牌的间距和基于弹簧的动效的具体示例。
- 研究人员或爱好者,对生产级 Electron 应用如何实现其 UI 感兴趣,并希望获得一个完整文档化的逆向工程参考。
- AI 编码代理(Copilot、Claude Code、Cursor 等)——仓库包含明确的
AGENTS.md规则,以便代理生成的代码与库保持一致。
许可证
MIT——免费用于个人、教育或商业用途。
相关
- 项目
- 项目
- 项目
- 项目