Communitygithub.com

kimjusnu/miseui

React UIコンポーネントを、shadcnスタイルとAI時代の状態(思考中、検索中、ストリーミング中、ツール呼び出し、音声)で構築する際に使用します。Mise UIレジストリからインストールし、各コンポーネントの心理的根拠に従ってください。

miseui とは?

Mise UIは、AIと連携するアプリケーションのためのReact + Tailwind CSS v4 UIキットです。shadcnスタイルの`components.json`に基づいており、AIの処理状態(思考、ストリーミング、ツール呼び出し、音声入力など)を表現するコンポーネントを提供します。すべてのコンポーネントはUI/UXの心理的原則に基づいて設計されており、各コンポーネントの形状の背後にある原則と、使用すべきでない場合のルールが明確に文書化されています。インストールは`npx shadcn@latest add`コマンドを使用してMise UIレジストリから直接行い、一度テーマを設定すれば各コンポーネントを個別に追加できます。`prefers-reduced-motion`の尊重、各画面での単一の`mise`アクセントカラー使用、ダークパターンの禁止などのルールがあり、人間工学に基づいたクリーンなUI構築を支援します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kimjusnu/miseui/tree/main/skills/miseui

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Mise UI

自己説明型UI。すべてのコンポーネントは、その形状の背後にある原則と、使用すべきでない場合のルールを備えています。コンポーネントをインストールまたは適応する際は、両方を保持してください。

使用するタイミング

  • プロジェクトがReact + Tailwind CSS v4で、shadcnスタイルのcomponents.jsonを使用している場合
  • 画面にAIのステップ(モデルの待機、ストリームテキスト、ツール呼び出し、思考、音声入力)がある場合
  • デザインレビューで根拠を引用できるベースキット(ボタン、ダイアログ、セレクトなど)が必要な場合

インストール

  1. テーマ(プロジェクトごとに一度): npx shadcn@latest add https://miseui.junsu4621.workers.dev/r/theme.json
  2. 各コンポーネント: npx shadcn@latest add https://miseui.junsu4621.workers.dev/r/<name>.json(依存関係は自動的にインストールされます)
  3. コンポーネントを初めて使用する前に references/<name>.md を読んでください

ルール

  1. prefers-reduced-motion を尊重してください。すべてのMiseコンポーネントはすでに対応しています。編集時もそれを維持してください。
  2. 画面ごとに1つの mise アクセントのみ使用します。これは主要なアクションまたはアクティブなAIアクティビティを示し、装飾には使用しません。
  3. 待機に名前を付けます。約1秒を超えるモデル呼び出しには、何が起こっているかを示すラベルを持つ thinking-indicator を使用します。
  4. ダークパターン禁止: 偽のカウントダウン、隠れたキャンセル、事前チェックされた同意は使用しません。各リファレンスの Don't 行は拘束力があります。
  5. data-slot 属性を保持してください。テストとスタイリングフックがこれに依存しています。

症状 → コンポーネント

このような状況で使用するコンポーネント
ユーザーが約1秒を超えるモデル呼び出しを待つthinking-indicator
トークンが1つずつ到着し、凍結したブロックではなくタイピングとして読まれるべき場合streaming-text
エージェントがツールを実行し、ユーザーが結果を信頼できるようにする必要がある場合tool-call-card
ユーザーが確認したいかもしれないが、読むことを強制されるべきではないマルチステップ計画reasoning-steps
マイクがオンラインで、ユーザーがそれを認識する必要がある場合voice-wave
コンテンツが読み込み中で、最終的なレイアウトがわかっている場合skeleton
1つのアクションが画面の他の部分よりも重要な場合button
1か所にオプションが多すぎる場合select
1つのトリガーの背後にある短いアクションリストdropdown-menu
ユーザーが他のことをする前に決定する必要がある場合dialog
一部のユーザーだけが必要とする追加の詳細tooltip
関連するコントロールが一緒に属する場合card

AI状態

  • Reasoning Steps (reasoning-steps): モデルのステップの折りたたまれたタイムライン。ヘッダーが現在のステップを、本文がすべてのステップを表示します。 — プログレッシブディスクロージャー · リファレンス
  • Streaming Text (streaming-text): 到着するテキストを読む速度で1文字ずつ表示し、次の単語が着地する場所を示すキャレットがあります。 — 知覚されるレイテンシ · リファレンス
  • Thinking Indicator (thinking-indicator): 3つの呼吸するドットと、モデルが何に取り組んでいるかをユーザーに伝えるライブラベル。 — システム状態の可視性 · 労働錯覚 · リファレンス
  • Tool Call Card (tool-call-card): 1つのツール呼び出しの折りたたみ可能な記録: 名前、ステータス、期間、必要に応じて正確な入力と出力。 — 透明性が信頼を築く · リファレンス
  • Voice Wave (voice-wave): マイクのレベルに応じて上昇するバー。ユーザーは自分が聞かれていること、そして聞かれていないことを確認できます。 — システム状態の可視性 · リファレンス

コアコンポーネント

  • Badge (badge): 5つのバリアントを持つ小さなステータスチップ。暖色系のmiseバリアントは、目立たせる必要がある1つのアイテムのために予約されています。 — フォン・レストルフ効果 · リファレンス
  • Button (button): 150ミリ秒の沈み込みと2%のプレスダウン効果を持つ押下ターゲット。クリックが認識されたように感じられます。 — ドハティ閾値 · リファレンス
  • Card (card): ヘッダー、コンテンツ、フッターのスロットを持つ枠線付きの面。誰かがテキストを読む前に、1つの領域として認識されます。 — 共通領域の法則 · リファレンス
  • Checkbox (checkbox): 押下から150ミリ秒以内に塗りつぶされチェックマークを描画し、aria-checkedを通じて変更を通知する正方形のトグル。 — 即時フィードバック · リファレンス
  • Dialog (dialog): 他のすべてを暗くし、ユーザーが1つの質問に答えるまでフォーカスを保持するモーダル面。 — 注意の漏斗 · リファレンス
  • Dropdown Menu (dropdown-menu): ボタンから開き、選択時に閉じるアクションのコンパクトメニュー。矢印キーナビゲーションと破壊的バリアントを備えています。 — ヒックの法則 · リファレンス
  • Input (input): ボタンに合わせて高さ36pxの単一行テキストフィールド。無効状態を境界線とリングに移動します。 — フィッツの法則 · リファレンス
  • Label (label): コントロールにバインドされたキャプション。クリックするとフィールドにフォーカスし、フィールドが無効のときは薄暗くなります。 — 近接の法則 · リファレンス
  • Popover (popover): 開いたコントロールに固定された小さなフローティングパネル。フルダイアログを必要としないフォームや詳細に使用します。 — 空間記憶 · リファレンス
  • Select (select): リストから1つを選択するためのドロップダウン。プレースホルダー、グループ、選択行のチェック、完全なキーボードサポートを備えています。 — デフォルト効果 · リファレンス
  • Skeleton (skeleton): 読み込み中のコンテンツの形をしたパルス発光プレースホルダー。スピナーよりも待ち時間が短く感じられます。 — 知覚されるパフォーマンス · リファレンス
  • Switch (switch): サムトラベルが16px、150ミリ秒でスライドするオン/オフコントロール。模倣する物理的なトグルを反映しています。 — アフォーダンス · リファレンス
  • Tabs (tabs): 1つのパネルを別のパネルにその場で切り替えるセグメント化コントロール。関連するビューが画面上の1つのスポットを共有します。 — チャンキング · リファレンス
  • Textarea (textarea): 高さ64pxから始まり、コンテンツに応じて成長する複数行テキストフィールド。回答がスクロールバーの後ろに隠れることはありません。 — チャンキング · リファレンス
  • Tooltip (tooltip): ホバーまたはフォーカス時に遅延なく表示され、ポインターと共に消える1行のヒント。画面スペースを必要としない詳細に使用します。 — プログレッシブディスクロージャー · リファレンス

ソースと課題: https://github.com/kimjusnu/miseui

関連スキル