字节笔记本
2026年2月22日
daisyUI:最受欢迎的 Tailwind CSS 组件库
daisyUI 是一个广受欢迎的 Tailwind CSS 插件,为开发者提供语义化的组件类名,帮助减少代码量并加速开发流程。它在 GitHub 上拥有 41,000+ stars,每周 NPM 下载量超过 611,000 次,被广泛应用于 430,000+ 个开源项目中。
核心特性
1. 语义化类名
传统的 Tailwind CSS 开发需要为每个元素编写大量的 utility class,例如一个简单的按钮可能需要十几个类名。而 daisyUI 提供语义化的类名如 btn、card、toggle 等,让代码更易读、更易维护。
对比示例:
纯 Tailwind CSS(114 个类名):
<div class="w-80 rounded-lg bg-zinc-50 text-zinc-800">
<div class="flex flex-col gap-3 p-8">
<input placeholder="Email" class="w-full rounded-sm border border-zinc-300 bg-white px-3 py-2 text-sm focus:ring-2 focus:ring-zinc-700 focus:ring-offset-2 focus:ring-offset-zinc-100 focus:outline-none focus-visible:border-zinc-900"/>
<label class="flex cursor-pointer items-center text-sm gap-1.5 text-zinc-500">
<!-- 复杂的 checkbox 样式 -->
</label>
<button class="inline-block cursor-pointer rounded-sm bg-zinc-900 px-4 py-2.5 text-center text-sm font-semibold text-white shadow-[0_.2rem_0.3rem_-.25rem_black] active:shadow-none transition duration-200 ease-in-out focus-visible:ring-2 focus-visible:ring-zinc-700 focus-visible:ring-offset-2 focus-visible:outline-none active:translate-y-[1px]">
Save
</button>
</div>
</div>Tailwind + daisyUI(仅 14 个类名):
<div class="card w-80">
<div class="card-body">
<input type="text" placeholder="Email" class="input input-bordered"/>
<label class="label cursor-pointer">
<input type="checkbox" class="toggle"/>
<span class="label-text">Submit to newsletter</span>
</label>
<button class="btn btn-primary">Save</button>
</div>
</div>使用 daisyUI 后,类名数量减少 88%,HTML 文件大小减少约 79%。
2. 丰富的组件库
daisyUI 提供了 50+ 个常用 UI 组件:
- 基础组件:Button、Card、Badge、Avatar、Alert
- 表单元素:Input、Textarea、Select、Checkbox、Radio、Toggle
- 导航组件:Navbar、Menu、Breadcrumbs、Pagination、Tabs
- 数据展示:Table、List、Timeline、Stat、Progress
- 反馈组件:Modal、Toast、Tooltip、Popover、Drawer
- 布局组件:Hero、Stack、Divider、Skeleton
3. 无限主题支持
daisyUI 内置了 30+ 款精美主题,包括:
- 默认主题:light、dark、cupcake、bumblebee、emerald
- 流行主题:corporate、synthwave、retro、cyberpunk、valentine
- 专业主题:business、acid、lemonade、night、coffee
主题切换无需修改类名,只需更改配置即可全局生效。同时支持暗黑模式自动切换。
4. 语义化颜色系统
daisyUI 扩展了 Tailwind 的颜色系统,添加了语义化颜色名:
primary / primary-content
secondary / secondary-content
accent / accent-content
neutral / neutral-content
base-100 / base-200 / base-300 / base-content
info / success / warning / error这些颜色使用 CSS 变量,主题切换时自动更新。
5. 框架无关
daisyUI 是纯 CSS 解决方案,无需 JavaScript,支持所有主流框架:
- React / Next.js
- Vue / Nuxt.js
- Svelte / SvelteKit
- Angular
- Solid.js / Qwik / Preact
- Laravel / Rails / Phoenix
- Astro / Vite
安装指南
使用 npm/yarn/pnpm 安装
# npm
npm i -D daisyui@latest
# yarn
yarn add -D daisyui@latest
# pnpm
pnpm add -D daisyui@latest配置 Tailwind CSS
在 tailwind.config.js 中添加 daisyUI 插件:
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ['./src/**/*.{html,js}'],
theme: {
extend: {},
},
plugins: [require('daisyui')],
}启用主题(可选)
module.exports = {
// ...
daisyui: {
themes: ["light", "dark", "cupcake"],
},
}快速开始
安装完成后,直接在 HTML 中使用 daisyUI 类名:
<!DOCTYPE html>
<html data-theme="light">
<head>
<link href="./output.css" rel="stylesheet">
</head>
<body>
<!-- 按钮组件 -->
<button class="btn btn-primary">Primary Button</button>
<button class="btn btn-secondary">Secondary Button</button>
<button class="btn btn-accent">Accent Button</button>
<!-- 卡片组件 -->
<div class="card w-96 bg-base-100 shadow-xl">
<figure>
<img src="https://picsum.photos/400/200" alt="Shoes" />
</figure>
<div class="card-body">
<h2 class="card-title">Card Title</h2>
<p>If a dog chews shoes whose shoes does he choose?</p>
<div class="card-actions justify-end">
<button class="btn btn-primary">Buy Now</button>
</div>
</div>
</div>
</body>
</html>企业用户
daisyUI 已被众多知名企业采用:
- Meta Research - 用于 Chameleon 和 SAM 2 项目
- Alibaba - 用于 Arthas 项目
- Amazon - 用于 Amazon IVS 和 aws-samples
- Adobe - 用于 Nala 站点
- Pepsico - 内部项目
- Google Cloud - 用于 RAD Lab
相关资源
- 官方网站:https://daisyui.com/
- 组件文档:https://daisyui.com/components/
- 主题预览:https://daisyui.com/docs/themes/
- GitHub 仓库:https://github.com/saadeghi/daisyui
- Figma 设计库:https://daisyui.com/store/daisyui-figma-library/
总结
daisyUI 通过提供语义化的组件类名,解决了 Tailwind CSS 开发中代码冗长、难以维护的问题。它不仅让 HTML 更简洁,还提供了丰富的主题系统和组件库,是提升 Tailwind CSS 开发效率的绝佳选择。无论是个人项目还是企业级应用,daisyUI 都能帮助你更快构建美观的用户界面。