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.mzph.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…