AI SDK 的 message parts:對話介面的資料骨架
AI SDK v5 把一則 AI 訊息拆成 parts 陣列——text、reasoning、source-url、tool-* 各自是獨立片段。這個資料結構決定了現代 AI 對話介面怎麼寫:render 時 switch part.type,每種片段交給對應元件。這篇拆解 parts 模型的設計邏輯、useChat 的串流機制,以及它如何成為 AI Elements 這類元件庫的地基。
AI SDK v5 把一則 AI 訊息拆成 parts 陣列——text、reasoning、source-url、tool-* 各自是獨立片段。這個資料結構決定了現代 AI 對話介面怎麼寫:render 時 switch part.type,每種片段交給對應元件。這篇拆解 parts 模型的設計邏輯、useChat 的串流機制,以及它如何成為 AI Elements 這類元件庫的地基。
AI Elements 是 Vercel 為 AI SDK 生態出的 React 元件庫,registry 現有 48 個元件,涵蓋 Conversation、Reasoning、Sources、Tool 等 AI 介面積木。走 shadcn 模式:npx ai-elements@latest 把原始碼直接複製進專案,完全可改,跟 useChat 的 message parts 一一對應。
整理 7 個主流 design system(Tailwind、Radix、Material 3、Carbon、Ant Design、Primer、Apple HIG)的配色架構:色階怎麼切、neutral 怎麼選、dark mode 三種流派,以及為什麼新專案該用 OKLCH 而不是 HSL。
shadcn/ui 不是 npm 套件,它把元件原始碼複製到你的專案,你完全擁有這些程式碼。島島用它建立 packages/ui 元件庫,讓三個 Next.js app 共用同一套 UI。
Tamagui 是針對 React Native 設計的 UI framework,有完整的 design token 系統和 theme 支援,編譯時期優化讓樣式計算移到 build time。NobodyClimb 選它而不是 NativeWind,主要是因為跨平台的 token 系統更完整。