开源项目第192期:shadcn-admin — Vite + shadcn/ui 构建的后台管理界面参考集
弿ºé¡¹ç®ç¬¬192æï¼shadcn-admin â Vite + shadcn/ui æå»ºçåå°ç®¡ççé¢åèé
å¬å¥Lab 2026-08-20 0 é 读6åéå¼è¨
"æ¯æ¬¡å项ç®é½è¦éæ°æåå° UIï¼å¹²èæè¿äºé¡µé¢æ´çæä¸ä¸ªå¯å¤ç¨çåèéã"
è¿æ¯ãæ¯æ¥ä¸ä¸ªå¼æºé¡¹ç®ãç³»åç第 192 ç¯ãä»å¤©çé¡¹ç®æ¯ shadcn-admin ââ satnaing 弿ºçåå°ç®¡ççé¢åèéï¼åºäº shadcn/ui + Vite + TanStack Router æå»ºã
13,900 é¢ Starï¼MIT 许å¯ã
å è¯´æ¸ æ¥å®ä½ï¼README éæç¡®åç"This is not a starter project (template) though."ââè¿ä¸æ¯ä¸ä¸ªå¼ç®±å³ç¨çèææ¶ï¼èæ¯ä¸å¥ UI åèéåï¼å±ç¤ºå¦ä½ç¨ shadcn/ui ç»ååºå¸¸è§çåå°ç®¡ççé¢ãä½ å¯ä»¥ç´æ¥ clone æ¥çææãåé´ç»æãå¤ç¨ç»ä»¶ï¼ä½å®æ²¡æé 好å端æ¥å£ã没æä¸å¡é»è¾ï¼ä¸è½ç´æ¥å½é¡¹ç®æ¨¡æ¿ç¨ã
è¿ä¸ªå®ä½åèè®©å®æ´æä»·å¼ï¼å¹²åã䏿³¨ UIãæ²¡æä¸å¡è¦åã
ä½ ä¼å¦å°ä»ä¹
- 为ä»ä¹é Vite + TanStack Router è䏿¯ Next.js
- shadcn/ui çåºå±é»è¾ï¼ä¸ºä»ä¹å®ä¸æ¯"ç»ä»¶åº"
- 项ç®å å«ç 10+ 页é¢åæ ¸å¿ç»ä»¶
- RTL æ¯æçå®ç°æ¹å¼
- ä¸ Ant Design / MUI åå°æ¨¡æ¿çå·®å¼
åæç¥è¯
- äºè§£ React åºç¡
- ç¨è¿ Tailwind CSS
- ç¥é shadcn/ui æ¯ä»ä¹ï¼ææ¿æäºè§£ï¼
å çè§£ shadcn/ui
shadcn/ui ç»å¸¸è¢«è¯¯è§£ä¸º"ä¸ä¸ªç»ä»¶åº"ï¼å®è£ å import 使ç¨ãå®ä¸æ¯ã
shadcn/ui çæ¨¡å¼æ¯ï¼æç»ä»¶æºç ç´æ¥å¤å¶å°ä½ ç项ç®éã
npx shadcn@latest add button
# æ§è¡åï¼Button ç»ä»¶ç宿´æºç åºç°å¨ä½ ç src/components/ui/button.tsx
# è¿ä¸ªæä»¶å®å
¨å±äºä½ ï¼å¯ä»¥éæä¿®æ¹
åºå±æ¯ Radix UIï¼æä¾æ éç¢äº¤äºé»è¾ï¼+ Tailwind CSSï¼æä¾æ ·å¼ï¼ãä½ æ¿å°çæ¯å¯ä»¥ç´æ¥ç¼è¾çæºä»£ç ï¼ä¸æ¯å°è£ 好çé»çã
è¿ä¸ªæ¨¡å¼çç´æ¥ç»æï¼æ ·å¼å®å ¨å¯æ§ï¼æ éç¢è®¿é®å¼ç®±å³æï¼Bundle éåªæä½ å®é ç¨å°çç»ä»¶ã
shadcn-admin 建ç«å¨è¿ä¸ªåºç¡ä¸ï¼å æ¤æ´ä¸ªé¡¹ç®çç»ä»¶å±é½æ¯éæå¯æ¹çã
为ä»ä¹æ¯ Vite è䏿¯ Next.js
ç»å¤§å¤æ°åå°ç®¡ç模æ¿ç¨ Next.jsãshadcn-admin éæ©äº Vite + TanStack Routerï¼çç±å¾ç´æ¥ï¼
åå°ç®¡çç³»ç»é常ä¸éè¦ SSRã
大夿°å é¨å·¥å ·ã管çåå°é½æ¯éè¦ç»å½æè½è®¿é®ç SPAââæ²¡æ SEO éæ±ï¼æ²¡æé¦å± SSR å éçæ¶çï¼åè带ç Next.js çæå¡ç«¯å¤ææ§ï¼API RoutesãServer Componentsãæå¡å¨é¨ç½²éæ±ï¼ã
Vite æå»ºç纯å端 SPAï¼
- æå»ºé度快ï¼HMR 毫ç§çº§ï¼
- é¨ç½²ç®åï¼éææä»¶ï¼Netlify/Vercel/CDN é½è¡ï¼
- 没æ Node.js æå¡å¨ä¾èµ
- Bundle æ´å°
TanStack Routerï¼åèº«æ¯ React Router v6 çå¢å¼ºçï¼æä¾äºç±»åå®å ¨çè·¯ç±ï¼å¨ TypeScript 项ç®éæ¯ Next.js App Router çæä»¶è·¯ç±æ´ææ§å¶ã
页é¢ç»æ
已认è¯è·¯ç±ï¼ç»å½åå¯è®¿é®ï¼
| é¡µé¢ | å 容 |
|---|---|
| Dashboard | æ°æ®æ¦è§ï¼ç»è®¡å¡çï¼å¾è¡¨ï¼è¿ææ´»å¨ |
| Tasks | ä»»å¡å表ï¼è¿æ»¤ãæåºãç¶æç®¡çï¼DataTable ç»ä»¶å±ç¤º |
| Users | ç¨æ·ç®¡çï¼æç´¢ãå页ãè§è²å表 |
| Chats | 峿¶æ¶æ¯çé¢ï¼å¯¹è¯å表 + èå¤©åº |
| Apps | åºç¨/éæç®¡ç页 |
| Settings | å¤ Tab 设置ï¼è´¦æ·ãéç¥ãå¤è§ãæ¾ç¤ºãå®å ¨ãå¿«æ·é® |
| Help Center | å¸®å©ææ¡£/FAQ 页 |
认è¯é¡µé¢
- ç»å½ï¼Sign Inï¼
- 注åï¼Sign Upï¼
- å¿è®°å¯ç ï¼Forgot Passwordï¼
- OTP éªè¯
- 妿 Clerk 认è¯éæçæ¬ï¼
/clerkè·¯ç±ä¸ï¼
é误页é¢
- 401 æªææ
- 403 ç¦æ¢è®¿é®
- 404 页é¢ä¸åå¨
- 500 æå¡å¨é误
- 503 æå¡ä¸å¯ç¨
æ ¸å¿ç»ä»¶
ä¾§è¾¹æ 导èª
ä½¿ç¨ shadcn/ui å ç½®ç Sidebar ç»ä»¶ï¼å¯æå ï¼æ¯æåµå¥èåï¼é åé¡¶é¨ Header ææå®æ´ç页颿¡æ¶ã
å ¨å±æç´¢ï¼Commandï¼
Cmd+Kï¼macOSï¼/ Ctrl+K å¼åºå
¨å±æç´¢å½ä»¤é¢æ¿ï¼åºäº shadcn/ui ç <Command> ç»ä»¶ï¼æ¯æé®ç导èªãè¿æ¯åå°ç³»ç»éé«é¢ä½ç»å¸¸è¢«å¿½è§çåè½ã
DataTable
åºäº TanStack Tableï¼å身 React Tableï¼å°è£ çæ°æ®è¡¨æ ¼ï¼
- åæåº
- 夿¡ä»¶è¿æ»¤
- å页æ§å¶
- è¡éæ©
- åæ¾ç¤º/éè忢
Tasks å Users 页é¢é½ç¨è¿ä¸ªç»ä»¶ï¼æ¯åå°å¼åæå¸¸ç¨ç夿ç»ä»¶ä¹ä¸ã
主é¢åæ¢
亮è²/æè²æ¨¡å¼åæ¢ï¼ä½¿ç¨ CSS åé驱å¨ï¼shadcn/ui çæ åæ¹æ¡ã
RTL æ¯æ
è¿æ¯ shadcn-admin åºå«äºå¤§å¤æ°å类项ç®çåè½ââå¯¹é¿æä¼¯è¯ãå¸ä¼¯æ¥è¯ãæ³¢æ¯è¯çä»å³å°å·¦ä¹¦åè¯è¨ç宿´æ¯æã
å®ç°æ¹å¼ä¸æ¯ç®åå°å ä¸ä¸ª dir="rtl" 屿§ï¼èæ¯å¯¹å¤ä¸ª shadcn/ui ç»ä»¶è¿è¡äºé对æ§çå®å¶ä¿®æ¹ï¼
ä¸é¡¹ RTL æ¹é çç»ä»¶ï¼
alert-dialogãcalendarãcommandãdialogãdropdown-menuãselectãtableãsheetãsidebarãswitch
è¿äºç»ä»¶å¨ RTL 模å¼ä¸ææ¹åæ§ç UI å ç´ ï¼å¾æ ä½ç½®ã䏿æ¹åãå¨ç»æ¹åçï¼ï¼éè¦åç¬å¤çã
注æï¼å¦æåç»ç¨ npx shadcn add æ´æ°è¿äºç»ä»¶ï¼ä¼è¦ç RTL æ¹å¨ï¼éè¦æå¨åå¹¶ã
å®è£ å使ç¨
git clone https://github.com/satnaing/shadcn-admin.git
cd shadcn-admin
pnpm install
pnpm run dev
Clerk 认è¯éæéè¦é ç½®ç¯å¢åéï¼
cp .env.example .env
# å¡«å
¥ Clerk ç PUBLISHABLE_KEY å SECRET_KEY
ä¸ç¨ Clerk çè¯ï¼é¡¹ç®éæä¸ä¾èµ Clerk ç认è¯é¡µé¢çæ¬ï¼/sign-inã/sign-up çï¼ï¼ç´æ¥ç¨å°±è¡ã
shadcn-admin vs 常è§åå°æ¨¡æ¿
| 维度 | shadcn-admin | Ant Design Pro | AdminLTE |
|---|---|---|---|
| UI åºç¡ | Radix UI + Tailwindï¼æ æ ·å¼ç»ä»¶ï¼ | Ant Designï¼éæ ·å¼ï¼ | Bootstrap |
| æå»ºå·¥å · | Vite | Umi.js | Webpack |
| è·¯ç± | TanStack Router | Umi è·¯ç± | æ ï¼jQuery æ¶ä»£ï¼ |
| RTL | æ·±åº¦æ¯æ | åºç¡æ¯æ | æéæ¯æ |
| æ éç¢ | Radix UI åçä¿è¯ | é¨åæ¯æ | åºç¡ |
| å®å¶èªç±åº¦ | æé«ï¼ç»ä»¶æºç å¨ä½ 项ç®éï¼ | åéï¼import é»çï¼ | åé |
| TypeScript | 宿´æ¯æ | 宿´æ¯æ | æ |
| å®ä½ | UI åèéå | çäº§èææ¶ | çäº§æ¨¡æ¿ |
| Stars | 13.9k | 37k+ | 11k+ |
项ç®å°åä¸èµæº
- GitHub: satnaing/shadcn-admin
- å¨çº¿é¢è§: shadcn-admin.netlify.app
- ä½è : satnaingï¼@satnaingï¼
æ»ç»
shadcn-admin çä»·å¼å¨äºå®çå®ä½éæ©ï¼ä¸åèææ¶ï¼ååèéã
大夿°åå°æ¨¡æ¿è¿½æ±å¼ç®±å³ç¨ï¼ä»£ä»·æ¯è¦åäºå¤§éä½ ä¸éè¦çä¸è¥¿ââè®¤è¯æ¹æ¡ãç¶æç®¡çãAPI å±ãæéç³»ç»â¦â¦ä¸æ¦ä½ ç鿱忍¡æ¿çé¢è®¾ä¸åï¼æ¹é ææ¬æ¯ä»é¶å¼å§è¿é«ã
shadcn-admin åªç»ä½ UI å±ââç²¾å¿å®ç°ççé¢ç»æãç»ä»¶ç»åæ¹å¼ãååºå¼å¸å±ï¼ä»¥å RTL çç»èå¤çãä¸å¡é»è¾èªå·±å³å®æä¹å ã
Vite + TanStack Router çææ¯éåè®©å®æ¯ Next.js æ¨¡æ¿æ´è½»ï¼éååå°ç®¡çè¿ç±» SEO ä¸éè¦ãé¨ç½²ç®åä¼å çåºæ¯ãshadcn/ui ç"æºç å½ä½ "模å¼ä¿è¯äºå®å¶èªç±åº¦ã
13,900 Stars 说æè¿ä¸ªæ¹åæ¯å¯¹çï¼å¼åè è¦ç䏿¯åä¸ä¸ªæç»äºä¸åçåå°æ¡æ¶ï¼èæ¯ä¸å¥å¹²åç UI åèï¼èªå·±å³å®æä¹ç»åã
æ¢ç´¢ PrimeSkills ââ ç²¾é AI Agent 䏿è½çå¸åºï¼æ¯ä¸ä¸ªé½ç»è¿çå®ä¼ä¸å·¥ä½æµéªè¯ï¼å»ææµ®å¤¸ï¼çä¸çæ£æç¨çã
欢è¿è®¿é®æç个人主页ï¼åç°æ´å¤æä»·å¼çè§è§£åæè¶£ç产åã
Aitishiku.com