shadcn 使用步驟與注意點

目錄

一、shadcn ui

二、使用流程

1.安裝

2.顏色與主題

3.引用blocks

三、使用注意點

四、推薦搭配工具

五、總結


一、shadcn ui

官網:Build your component library - shadcn/ui

為何選擇它?因為它是一個基于 Tailwind CSS + Radix UI 的組件集合,它不像傳統組件庫(比如 AntD 或 MUI)那樣是一個 npm 包,而是 提供組件代碼讓你復制到項目中,你擁有完全的控制權——沒錯,控制權!這樣我就會節省很多時間去開發一套常見又瑣碎的組件,我可以專注與根據設計稿還原界面。而且我確實更喜歡使用工具,我對 react 還不是很熟練,正好可以學習別人的代碼是一套怎樣的規范邏輯。


二、使用流程

react?18或者 19,現在可以 19,但是官網推薦 18。并且要先安裝tailwind css。

tailwind文檔:Installing Tailwind CSS with Vite - Tailwind CSS

shadcn ui 安裝:Installation - shadcn/ui

1.安裝

根據當前的構建工具選擇合適的版本,我是vite,因為推薦Tailwind v4,所以我使用的也是這個。

根據文檔下載到項目里,會出現一個文件夾:src/components和配置文件components.json。

2.顏色與主題

設置樣式文件:默認是 ./app/globals.csssrc/index.css。這個庫也會根據你下載的組件,進行一些主題的設置補充,比如一些顏色--color-sidebar-primary等等。你也可以選擇主題,copy code 到代碼里。

3.引用blocks

因為大多數項目需要一個 header、sidebar、layout倆規劃頁面的整體布局,登錄頁(后面試試)等等,所以可以查看這里來獲取自己想要的布局和頁面效果:

Building Blocks for the Web - shadcn/ui

我喜歡sidebar7,于是:

npx shadcn@latest add sidebar-07

?執行后的下載結果如下:


三、使用注意點

補充這個組件庫的一些知識,來自gpt:

1. 你擁有代碼的所有權

  • 所有組件都是本地文件,可以隨意改造。

  • 更新組件不是通過升級版本,而是 重新 add 一遍組件

2. 依賴 Tailwind CSS & Radix UI

  • 所有交互(如彈窗、popover、switch)是用 Radix UI 實現的。

  • 如果你對無障礙(a11y)有要求,這是加分項。

3. 組件樣式是通過 CSS 變量實現的設計系統?

  • text-primary 實際是:.text-primary { color: var(--primary); }

  • 如果你用的是默認主題,會有這些變量:--primary, --secondary, --muted

  • 你可以在 tailwind.config.tsextend.theme 中改,也可以在 :root 自定義::root { --primary: #6366f1; --primary-foreground: #ffffff; }

4. 按需添加組件即可

  • 沒必要一次性加完所有組件。

  • 想用哪個組件就 npx shadcn-ui@latest add xxx。?

?后面開發的時候如果遇到其他注意點,我會繼續補充進去。


四、推薦搭配工具

工具用法
clsx / classnames處理 className 邏輯
tailwind-variants做組件的變體(variant)管理
lucide-react圖標庫,shadcn 默認使用的
prettier-plugin-tailwindcssTailwind class 排序好看方便


五、總結

使用效果如下:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/77385.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/77385.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/77385.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

STM32CubeMX-H7-12-IIC讀寫MPU6050模塊(中)-MPU6050模塊詳解以及軟件IIC驅動

前言 上一篇我們已經完成對IIC代碼基本框架的編寫,以及獲取MPU6050的ID,接下來我們逐一分析這個模塊的功能,并用IIC驅動 建議看完上一篇再來看這篇 MPU6050寄存器介紹 1.電源管理寄存器(PWR_MGMT_1,地址:0…

量子計算模擬中的GPU加速:從量子門操作到Shor算法實現

一、量子模擬的算力困境與GPU破局 量子計算模擬面臨?指數級增長的資源需求?:n個量子比特的態向量需要2^n個復數存儲空間。當n>30時,單機內存已無法承載(1TB需求)。傳統CPU模擬器(如Qiskit的Aer)在n28…

spring mvc 異常處理中@RestControllerAdvice 和 @ControllerAdvice 對比詳解

RestControllerAdvice 和 ControllerAdvice 對比詳解 1. 基本概念 注解等效組合核心作用ControllerAdviceComponent RequestMapping(隱式)定義全局控制器增強類,處理跨控制器的異常、數據綁定或全局響應邏輯。RestControllerAdviceControll…

JavaScript的回調函數:異步編程的基石

引言 在JavaScript的世界里,回調函數是一種強大而基礎的編程模式,它是異步編程的核心概念之一。隨著Web應用程序變得越來越復雜,理解和掌握回調函數變得尤為重要。本文將深入探討JavaScript回調函數的概念、應用場景以及最佳實踐。 什么是回…

測試用例 [軟件測試 基礎]

目錄 測試用例 1. 概念 1.1 什么是測試用例 1.2 什么是要素 1.3 為什么需要測試用例 2. 設計測試用例的萬能公式 2.1 常規思維 逆向思維 發散性思維 2.2 萬能公式 3. 設計測試用例的方法 3.1 基于需求的設計方法 3.2 具體的設計方法 3.3 更多用例練習 測試用例 …

Jupyter notebook定制字體

一、生成配置文件 運行Anaconda Powershell Prompt終端,輸入下面一行代碼: jupyter notebook --generate-config 將生成文件“C:\Users\XXX\.jupyter\jupyter_notebook_config.py”,XXX為計算機賬戶名字。 二、修改配置文件 c.NotebookAp…

miniconda安裝R語言圖文教程(詳細步驟)

本篇教程介紹,如何在Windows使用miniconda安裝R語言。 一、創建1個conda 虛擬環境 # 創建虛擬環境 conda create -n r_env # 激活虛擬環境 conda activate r_env二、安裝 R 語言 conda install -c r r-ggplot2三、運行測試 檢查安裝: 輸入 R 進入 R 的交互式命令行,檢查是…

【day1】AI軟件測試學習筆記

以下為整理的 AI軟件測試學習筆記,涵蓋性能測試工具鏈、AI大模型應用及開發實踐,分為四大模塊: 一、性能測試工具鏈與數據分析 1. 工具鏈整合效果 JMeter InfluxDB Grafana JMeter壓測數據存儲至云端InfluxDB,實現分布式壓測和…

WPF 資源加載問題:真是 XAML 的鍋嗎?

你的觀察很敏銳!確實,在 WPF 項目中,.cs 文件主要負責邏輯實現,而資源加載的問題通常跟 XAML(以及它背后的 .csproj 配置)關系更大。我會圍繞這個觀點,用 CSDN 博客風格詳細解釋一下 .cs、XAML …

C++17模板編程與if constexpr深度解析

一、原理深化 1.1 模板編程 1.1.1 編譯器如何處理模板(補充) 模板的實例化機制存在兩種模式: 隱式實例化:編譯器在遇到模板具體使用時自動生成代碼,可能導致多翻譯單元重復實例化,增加編譯時間。顯式實…

408 計算機網絡 知識點記憶(6)

前言 本文基于王道考研課程與湖科大計算機網絡課程教學內容,系統梳理核心知識記憶點和框架,既為個人復習沉淀思考,亦希望能與同行者互助共進。(PS:后續將持續迭代優化細節) 往期內容 408 計算機網絡 知識…

MySQL學習筆記十四

第十六章創建高級聯結 16.1使用表別名 輸入: SELECT CONCAT(vend_name,(,RTRIM(vend_country),)) AS vend_title FROM vendors ORDER BY vend_name; 輸出: 輸入: SELECT cust_name, cust_contact FROM customers AS c, orders AS o, or…

Spring MVC 框架 的核心概念、組件關系及流程的詳細說明,并附表格總結

以下是 Spring MVC 框架 的核心概念、組件關系及流程的詳細說明,并附表格總結: 1. 核心理念 Spring MVC 是基于 MVC(Model-View-Controller)設計模式 的 Web 框架,其核心思想是 解耦: Model:數…

Android里藍牙使用流程以及問題詳解

一、基礎流程 請簡述 Android 藍牙開發的基本流程 1. 權限處理:動態申請藍牙和定位權限(注意Android 12新權限) 2. 初始化藍牙適配器:通過BluetoothManager獲取BluetoothAdapter 3. 設備發現:- 注冊BroadcastReceive…

OpenWrt 上安裝Tailscale

在 OpenWrt 上安裝 Tailscale 非常簡單,主要步驟如下: 1. 確保 OpenWrt 設備可聯網 首先,確保你的 OpenWrt 設備已經聯網,可以訪問外網,并且 SSH 進入你的路由器(通常是 192.168.1.1)&#xff…

藍橋杯刷題總結 + 應賽技巧

當各位小伙伴們看到這篇文章的時候想必藍橋杯也快開賽了,那么本篇文章博主就來總結一下一些藍橋杯的應賽技巧,那么依舊先來走個流程 那么接下來我們分成幾個板塊進行總結 首先是一些基本語法 編程語言的基本語法 首先是數組,在存數據的時候…

TCP重傳率高與傳輸延遲問題

目錄標題 排查步驟:TCP重傳率高與傳輸延遲問題v1.0通過 rate(node_netstat_Tcp_RetransSegs[3m]) 排查 TCP 重傳問題的步驟1. **指標含義與初步分析**2. **關聯指標排查**3. **定位具體問題源**4. **解決方案**5. **驗證與監控** v2.0一、基礎檢查二、網絡層分析三、…

【LeetCode 熱題100】73:矩陣置零(詳細解析)(Go語言版)

🚀 力扣熱題 73:矩陣置零(詳解 多種解法) 📌 題目描述 給定一個 m x n 的整數矩陣 matrix,如果一個元素為 0,則將其所在行和列的所有元素都設為 0。請你 原地 使用常量空間解決。 &#x1f3a…

組播網絡構建:IGMP、PIM 原理及應用實踐

IP組播基礎 組播基本架構 組播IP地址 一個組播IP地址并不是表示具體的某臺主機,而是一組主機的集合,主機聲明加入某組播組即標識自己需要接收目的地址為該組播地址的數據IP組播常見模型分為ASM模型和SSM模型ASM:成員接收任意源組播數據&…

Unity UGUI使用手冊

概述 UGUI(Unity Graphical User Interface) :Unity 圖像用戶界面 在游戲開發中,我們經常需要搭建一些圖形用戶界面。Unity內置的UGUI可以幫助開發者可視化地拼接界面,提高開發效率。UGUI提供不同樣式的UI組件,并且封裝了對應功能的API&am…