shadcn-ui ── 可能是改變遊戲規則的 UI Library

前言

只看名字,可能會以為又一個 UI library。但這次不一樣

他是一個 Cli,可以透過指令產出 UI,直接在你專案目錄產生相應的組件原始碼
若有客制化的需求,再自行修改所產生的原始碼

不論是後台系統、需要高度客制化 UI 的對外服務,都很適合使用。而且是 MIT 授權

2023/3/14 釋出,截至發文(2023/07/23)時間,短短 4 個月已有 25K Star!

關於他的特色

  • 底層封裝 Radix UI
  • 使用 tailwind
  • 所有組件原始碼皆存在於你的專案,而非 node_modules。易於客制化
  • 搭配主流開源套件,如form是使用 react-hook-form;table 是 tanstack/table
  • 提供 Figma
  • MIT 授權
  • 支援 React 主流框架,如 Next.Js、Remix

可以想像的使用情境

一些稍複雜但不難卻又很常用的組件如 Dialog、date-range-picker
若專案本身沒使用 UI libaray,為了他導入卻只用其中 1 個組件,相信沒人願意接受
就算接受了,還要調整成現有風格亦不一定好調整
自己全新開發又嫌麻煩,畢竟要寫到像套件能泛用各種情境還真需要不少功夫
就算不考慮泛用性,再怎麼快也要耗費1、2H開發 & 測試

而透過 shadcn-ui 幫你產生
不但保持專案的乾淨,又能快速解決需求
最後再調整 Cli 產出的 tailwind 以符合現有風格。甚至可能也不必調了,因為直接吃專案裡的 tailwind.config

幾乎無痛接入既有專案!

當然唯一的限制就是專案要有使用 tailwind 了

大部份的 UI Library 整合 tailwind,都是把 tailwind 當輔助,調整 tailwind.config 吃 UI Library 的設定
而 shadcn-ui 有點像是 tailwind 為主,UI Library 為輔

難怪才釋出不久,Star 就衝上 25K
可能也有人會懷疑 npm 下載量約1萬初(2023/07/23的數字),真的熱門嗎?

別忘了他只是 Cli,通常在 global 安裝一次後,直到你更新 node 版本或環境重灌,才會再次安裝

也就是所有的 CICD 都不會一直安裝他!
甚至你不安裝 Cli,也可以在官網手動複製所須組件的原始碼
就算未來 Star 數衝破 100K,自然下載量一定仍明顯慘輸給其他 UI library 了

推薦給有使用 tailwind 的專案!