Communitygithub.com

kimjusnu/miseui

用於構建 shadcn 風格 React UI 並支援 AI 時代狀態(思考、搜尋、串流、工具呼叫、語音)時使用。從 Mise UI 註冊表安裝,並遵循每個元件的心理學原理。

miseui 是什麼?

Mise UI 是一套為 AI 時代設計的 React UI 元件庫,採用 shadcn 風格並基於 Tailwind CSS v4。它不僅僅提供視覺元件,每個元件都附帶其設計原理、使用規則及何時不應使用的提示(Do not line)。這使得設計團隊能在審查中引用其設計原理。該庫專為處理 AI 互動狀態而設計,包括模型等待(thinking-indicator)、串流文字(streaming-text)、工具呼叫(tool-call-card)、推理步驟(reasoning-steps)和語音輸入(voice-wave)。這些元件內建進步性揭露(progressive disclosure)和系統狀態可見性(visibility of system status)等心理學原則,能提升使用者的信任感和舒適度。Mise UI 提供了按需安裝的組件和主題(透過 npx shadcn@latest),並且嚴格遵守 prefers-reduced-motion 及不設計黑暗模式(dark patterns)的規範。此技能適用於 Claude Code、Cursor 等支援 shadcn 註冊表的開發環境。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kimjusnu/miseui/tree/main/skills/miseui

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Mise 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. 每個畫面只使用一個 mise 強調色。它用於標記主要動作或即時 AI 活動,絕非裝飾。
  3. 為等待命名。任何超過約一秒的模型呼叫都應使用 thinking-indicator,其標籤需說明正在發生的事。
  4. 無黑暗模式:禁止虛假倒數、隱藏取消、預先勾選的同意。每個參考文件中的**「禁止」**(Don't)行具有約束力。
  5. 保留 data-slot 屬性;測試和樣式鉤子依賴它們。

症狀與對應元件

當您遇到請使用
使用者等待模型呼叫超過約一秒thinking-indicator
Token 一個接一個到達,應像打字般顯示,而非凍結的區塊streaming-text
代理執行了一個工具,使用者應能信任結果tool-call-card
多步驟計劃,使用者可能想檢查但不必強制閱讀reasoning-steps
麥克風處於啟用狀態,使用者必須知道voice-wave
內容正在載入,且最終佈局已知skeleton
一個動作比畫面其他部分更重要button
一個地方有太多選項select
一個觸發器後有多個動作的簡短清單dropdown-menu
使用者必須在執行其他操作前做出決定dialog
僅部分使用者需要的額外細節tooltip
應歸為一組的相關控制項card

AI 狀態

  • 推理步驟(reasoning-steps):合併的模型步驟時間軸;標題命名當前步驟,主體顯示所有步驟。— 進步性揭露 · 參考文件
  • 串流文字(streaming-text):以閱讀速度逐字揭示到達的文字,並帶有游標標記下一個單詞的位置。— 感知延遲 · 參考文件
  • 思考指示器(thinking-indicator):三個呼吸點和一個即時標籤,告知使用者模型正在工作以及工作內容。— 系統狀態可見性 · 勞動幻覺 · 參考文件
  • 工具呼叫卡片(tool-call-card):一個工具呼叫的可折疊記錄:名稱、狀態、持續時間,以及按需顯示的確切輸入和輸出。— 透明度建立信任 · 參考文件
  • 語音波形(voice-wave:隨著麥克風音量起伏的條形圖,讓使用者看到自己被聽見,以及何時未被聽見。— 系統狀態可見性 · 參考文件

核心元件

  • 徽章(badge):五種變體的小型狀態標籤;暖色 mise 變體保留給必須突出的單一項目。— 馮·雷斯托夫效應 · 參考文件
  • 按鈕(button):按壓目標,具有 150 毫秒的穩定時間和 2% 的按壓下沉,讓點擊感覺得到確認。— Doherty 閾值 · 參考文件
  • 卡片(card):帶有邊框的表面,包含標題、內容和頁尾插槽,在任何人閱讀文字之前就形成一個區域。— 共同區域法則 · 參考文件
  • 核取方塊(checkbox):方形切換開關,在按壓後 150 毫秒內填滿並繪製勾選記號,並透過 aria-checked 宣佈變更。— 即時反饋 · 參考文件
  • 對話框(dialog):模態表面,使其他內容變暗並保持焦點,直到使用者回答一個問題。— 注意力漏斗 · 參考文件
  • 下拉式選單(dropdown-menu):緊湊的動作選單,從按鈕開啟,選擇後關閉,支援方向鍵導航和破壞性變體。— 希克定律 · 參考文件
  • 輸入框(input):單行文字欄位,高度 36 px 以匹配按鈕,將無效狀態移至其邊框和環上。— 費茨定律 · 參考文件
  • 標籤(label):綁定到控制項的說明文字:點擊它會聚焦該欄位,並在欄位禁用時變暗。— 接近法則 · 參考文件
  • 彈出框(popover):錨定於開啟它的控制項的小型浮動面板,用於不需要完整對話框的表單或細節。— 空間記憶 · 參考文件
  • 選擇框(select):從清單中選擇一個項目的下拉選單,包含佔位文字、分組、所選行上的勾選記號以及完整的鍵盤支援。— 預設效果 · 參考文件
  • 骨架屏(skeleton):脈衝式佔位符,形狀類似正在載入的內容,讓等待感覺比旋轉器更短。— 感知性能 · 參考文件
  • 開關(switch):滑動開/關控制,其滑塊在 150 毫秒內移動 16 px,模仿其模擬的實體開關。— 功能可見性 · 參考文件
  • 分頁(tabs):分段控制,在原地切換一個面板為另一個,使相關檢視共享畫面上的同一位置。— 分塊 · 參考文件
  • 文字區域(textarea):多行文字欄位,從 64 px 開始,隨著內容增長而擴展,確保答案永遠不會隱藏在滾動條後面。— 分塊 · 參考文件
  • 工具提示(tooltip):一行提示,在懸停或焦點時立即顯示,並在指標離開時消失,用於不值得佔用螢幕空間的細節。— 進步性揭露 · 參考文件

原始碼與問題追蹤:https://github.com/kimjusnu/miseui

相關技能