Caho1/open-claude-ui

基于 REA 深度拆解并高保真还原 Claude 官方桌面端 UI。还原 30 个独立 React 组件与 8 项硬核交互物理算法,附带 3000+ 行逆向分析手册。

概要

open‑claude‑ui は、Anthropic の Claude デスクトップクライアントの外観と操作感を再現するオープンソースの UI コンポーネントライブラリです。著者らは REA リバースエンジニアリングフレームワークを使用して Claude の本番 Electron バンドルを逆コンパイルし、正確なデザイントークン、インタラクション物理、アニメーションパラメータを抽出し、TypeScript で記述され Tailwind CSS でスタイルされた再利用可能な React コンポーネントとして再実装しました。

このリポジトリには以下が含まれます:

  • 30 のすぐ使えるコンポーネントとフック(ボタン、セグメントコントロール、チャットバブル、コンポーザー、モデルスイッチャー、オーディオプレーヤーなど)
  • Claude のカラーパレット、サーフェスレベル、「クレイ」オレンジ、ヘアライン境界線、モーショントークンを定義する完全な Tailwind テーマ
  • 視覚テスト用の軽量でオフラインの Storybook スタイル HTML プレビュー
  • 各 UI 定数が元のアプリのどこから取得されたかを説明する詳細なリバースエンジニアリングドキュメント(約 3 000 行)
  • アクセシビリティ、レート制限バックオフ、スクロール固定、共有要素トランジションなどのためのヘルパーフック

すべてのコードは標準の React 18 環境で実行されます。独自のバイナリやアセットは含まれていません。


主な機能

機能 提供内容
高忠実度 Claude デザインシステム 公式デスクトップクライアントと一致する正確なカラートークン、サーフェスレベル、0.5 px ヘアライン境界線、4 ステップスプリング物理。
30 のプロダクショングレードコンポーネント ボタン、セグメントコントロール、ステータスインジケーター、ダイアログ、チャットバブル、CJK IME ガード付きコンポーザー、トークンゲージ付きモデルスイッチャー、オーディオ合成、メディアライトボックス、分割ペインリサイザー、コラボレーションキャンバスなど。
モーションエンジン プリビルドの Framer‑Motion スプリングプリセットとカスタムキーフレームシェーダー(アンビエントグロー、スクロールフェードマスク、非線形アルファマスク)。
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 — 個人、教育、商用利用は無料です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト