网站首页 > 技术文章 正文
前端一直都是开源项目的热门领域,太多耳熟能详的名字:react、vue、bootstrap。对于前端领域每年都有新人来,今年同样不例外。
今天我们推荐的就是2023年最火的前端开源项目,目前在GitHub已超过44K Star,它就是:shadcn-ui。
shadcn-ui是什么?
在JavaScript Rising Stars 公布的2023 年 JavaScript 明星项目榜单中,shadcn-ui 获得了整体推荐的总冠军。
shadcn-ui 是用 React 编写的 UI 组件的集合,允许通过 TailwindCSS 进行自定义样式。shadcn-ui构建于Radix之上,这是一组无头组件,为可访问性和键盘交互等问题提供原语,shadcn-ui 与其他流行库(例如 MUI、ChakraUI、React Spectrum)的区别在于它不是可下载的 NPM 包。相反,您可以通过终端命令集成 shadcn-ui 组件,该命令安装底层依赖项并将组件源代码直接复制到代码库中以进行进一步修改。
列几个shadcn-ui 的核心能力:
- 主题和主题编辑器:可以使用图形界面来创建自定义主题。编辑器会生成包含自定义样式定义的代码片段,只需将其复制粘贴到程序中即可使用。
- 深色模式:支持 Next.js 和 Vite 应用的暗黑模式
- cli工具:自动配置项目,与框架集成、生成配置文件及添加组件等。
- 组件库:包含40+的基础组件库。
下面是它的GitHub star历史,shadcn-ui 于今年1月份创建,不到1年的时间,shadcn-ui 就获得了超过40Kstar,这是多少项目都难以企及的。
为什么用 shadcn-ui
从前面的介绍能看出shadcn-ui和传统组件库有明显的差异, 我们也来看看它带来的显著优势:
- 开箱即用:任何具备 HTML、CSS、JavaScript 和一两个框架基础知识的人都可以快速开始使用 Shadcn UI。使用复制粘贴或 CLI 安装方法可以轻松访问其组件。同时它还具备良好的文档,可以查询组件说明。
- 可访问性:Shadcn UI 的组件完全可访问,并遵守 Web 内容可访问性指南 (WCAG) 标准。它支持屏幕阅读器、键盘导航和其他辅助功能。
- 细粒度控制和可扩展性:Shadcn UI 提供对每个组件源代码的直接访问,因此您可以轻松调整代码以适应独特的用例和应用程序需求。这种易于定制的特性有助于 Shadcn UI 在其他 UI 解决方案中脱颖而出,并使其使用起来很愉快。轻松访问组件代码还提高了灵活性,并使应用程序的扩展和维护变得更加容易
当然任何事情都是一把双刃剑,在看到这个优势的同时,我们也冷静的来看到一些问题:
- 额外的工作量:与其他组件库不同使用方式,会给开发者带来额外的手动操作工作量,虽然看似不多,但是在整个团队来说,积少也会成多。
- 代码膨胀:虽然直接访问组件的代码在模块化和可扩展性方面是有益的,但它也会导致更大的代码库和更多的代码行。
- 维护性:本身shadcn-ui就使用了tailwind,所以也会面对和tailwind类似的问题,在大规模项目中,维护开支必然会有所增加。
使用 shadcn-ui
shadcn-ui支持和各种框架集成使用,如下:
这也是比较方便快捷方式,你也可以手动来配置,需要一步步将shadcn-ui所需的各种组件安装进项目,比较麻烦,我们还是看下在nextjs中使用的例子。
- 首先创建一个nextjs的项目,我们就使用create-next-app来创建:
npx create-next-app@latest my-app --typescript --tailwind --eslint
- 使用shadcn-ui的cli来初始化项目
npx shadcn-ui@latest init
- 配置components.json,在执行初始化的时候,会有一些问题来配置项目
完成后的项目结构如下:
接下来就是添加shadcn-ui的组件了,直接使用cli来添加组件:
npx shadcn-ui@latest add button
添加后在component中可以直接看到button的代码:
接下来就可以直接使用这个组件了:
import { Button } from "@/components/ui/button"
export default function Home() {
return (
<div>
<Button>Click me</Button>
</div>
)
}
Shadcn UI 组件的通用架构如下:
shadcn-ui基于核心原则构建,即组件的设计应与其实现分开。因此,shadcn-ui中的每个组件都具有两层架构。即:
- 结构和行为层
- 样式层
与现有的组件库相比,shadcn-ui 在用户体验和开发速度方面都非常出色,同时还使开发人员能够对他们使用的组件进行细粒度的控制。但是事情没有完美的,收益和风险总是相伴而行,希望在未来shadcn-ui可以发展得更加优秀。
项目信息
- 项目名称:shadcn-ui
- GitHub 链接:https://github.com/shadcn-ui/ui
- Star 数:44K+
- 上一篇: 12个又简单又实用的开源项目及组件
- 下一篇: 仅含一个源文件:这5个开源项目值得一看
猜你喜欢
- 2025-06-15 盘点25个高质量CSS开源项目!有需要的兄弟拿走!
- 2025-06-15 年末将至,Java 开发者必须了解的 15 个Java 顶级开源项目
- 2024-10-04 就算你不会 Web 开发,也能让数据“动”起来的开源项目
- 2024-10-04 2018 年最好的 45 个 Vue 开源项目汇总
- 2024-10-04 换掉 Postman + Swagger + JMeter,这 5 个 Java 项目绝了
- 2024-10-04 前端程序猿,这个Chart开源项目,看完你一定会喜欢
- 2024-10-04 SCUI Admin - 免费开源,基于 Vue3、Element Plus 开发的 admin 前端框架
- 2024-10-04 谷歌最新开源前端框架了解一下?前端小白都能看懂的8本书
- 2024-10-04 超万人下载,12月份最火的10个GitHub开源项目(附源码)
- 2024-10-04 2018年最值得关注学习的25个JavaScript开源项目
你 发表评论:
欢迎- 527℃Oracle分析函数之Lag和Lead()使用
- 524℃几个Oracle空值处理函数 oracle处理null值的函数
- 521℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 508℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 506℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 497℃【数据统计分析】详解Oracle分组函数之CUBE
- 475℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 474℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端排序 (47)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)