关于全新 daisyUI 5 发行版本的一切
欢迎! 🎉
daisyUI,Tailwind CSS 的必备组件库,现在已被用于360,000 个开源项目,拥有 1900 万次 npm 安装(每周 35 万次安装)。daisyUI 的增长速度比以往更快,如今它正在帮助许多人、初创公司和企业改善他们的开发体验。
💚 daisyUI 的诞生归功于您们令人难以置信的贡献、有益的反馈和惊人的支持。 谢谢您们!
自 2023 年 daisyUI 4 发布以来,我们收到了大量的反馈、功能请求和错误报告。 我们投入了巨大的努力来为 daisyUI 的这个主要版本做准备,使用了最新的 Web 标准和新的 CSS/HTML 功能,以及所有令人惊叹的全新 Tailwind CSS 4 功能。
现在 daisyUI 5 来了,它带来了许多新功能、改进和错误修复。 这是一个巨大的更新,我在每个部分都添加了 TLDR,使其更易于阅读。
让我们开始吧!
TLDR – daisyUI 5 兼容 Tailwind CSS 4,零依赖,更小的包大小,更小的 CSS 大小,并且更可定制。 CSS 变量现在更具可读性和灵活性。
跳到下一节
Tailwind CSS 4 非常棒! 添加了许多新功能和改进,插件 API 也进行了许多更改。
daisyUI 5 与 Tailwind CSS 4 协同工作,并充分利用所有新功能。
使用 Tailwind CSS 4,您现在可以在 CSS 文件中将 daisyUI 作为插件导入。
// tailwind.config.{js,ts,mjs,cjs}
module.exports = {
content: ["./src/**/*.{html,js}"],
plugins: [
require('daisyui');
],
}
/* app.css */
@import "tailwindcss";
@plugin "daisyui";
查看Tailwind CSS 升级指南以获取更多信息。
减少项目中的依赖数量在很多方面都很重要。 它可以缩短构建时间并提高工作流程中的性能。 较少的依赖项还可以通过减少维护较少的软件包中潜在漏洞的可能性,从而提高应用程序的安全性。 此外,管理较小的依赖树可以简化维护,并减少长期出现弃用问题或版本冲突的可能性。
去年,我减少了 daisyUI 中的依赖数量,从大约 100 个(依赖项 + 子依赖项总数)减少到 7 个!
这次我们去掉了所有剩余的依赖!
daisyUI 5 没有依赖项。 希望这有助于清理您的 node_modules。
Dependencies - Total 1.8 MB on disk (250 files)
├╴ culori
├╴ picocolors
├╴ postcss-js
│ ╰╴ camelcase-css
╰╴ css-selector-tokenizer
├╴ cssesc
╰╴ fastparse
No dependencies - 0 kB
将 daisyUI 作为 Tailwind CSS 插件使用时,最终 CSS 文件中仅包含所需的样式。 除此之外,我们还进行了许多优化,以缩小包大小和 CSS 文件大小。
daisyUI 5 NPM 包的尺寸缩小了 61%。
daisyUI 5 CDN 文件(包括所有可能的类名)的尺寸缩小了 75%。
现在在生产环境中使用 CDN 文件是安全高效的。 压缩后的 CSS 文件现在仅为 34 kB,这要归功于原生 CSS 嵌套和 daisyUI 5 中的大量优化。 这是 daisyUI CDN 文件有史以来最小的尺寸,包括所有可能的 daisyUI 组件和颜色,适用于所有 Tailwind CSS 响应式前缀。 这是一个 CSS 文件,经过了缩小、压缩并缓存在 CDN 上。
使用 Tailwind CSS 3 和 daisyUI 4,我们必须将每种颜色的颜色值提取到 CSS 变量中,并将其与一个特殊的<alpha-value>
变量一起传递给 Tailwind CSS,以便 Tailwind CSS 可以为每个颜色实用程序类生成不透明度变量。
Tailwind CSS 4 没有此限制,因为它使用 CSScolor-mix()
来控制不透明度。
使用 daisyUI 5,我们终于可以将整个颜色放入 CSS 变量中。 支持所有颜色格式,无需转换,无需 JS 对象。
我们还更新了变量名称,使其在输出 CSS 中更具可读性,这意味着您甚至可以使用浏览器开发工具颜色选择器自定义颜色值。
/* hard to read variable names, hard to customize values */
{
--b1: 100% 0 0;
--b2: 96.1151% 0 0;
--b3: 92.4169% .00108 197.137559;
--bc: 27.8078% .029596 256.847952;
--p: 49.12% .3096 275.75;
--pc: 89.824% .06192 275.75;
--s: 69.71% .329 342.55;
--sc: 98.71% .0106 342.55;
--a: 76.76% .184 183.61;
--ac: 15.352% .0368 183.61;
--n: 32.1785% .02476 255.701624;
--nc: 89.4994% .011585 252.096176;
--in: 72.06% .191 231.6;
--inc: 0% 0 0;
--su: 64.8% .15 160;
--suc: 0% 0 0;
--wa: 84.71% .199 83.87;
--wac: 0% 0 0;
--er: 71.76% .221 22.18;
--erc: 0% 0 0;
}
/* standard color format, easy to customize in browser */
{
--color-base-100: oklch(100% 0 0);
--color-base-200: oklch(96.115% 0 0);
--color-base-300: oklch(92.416% 0.001 197.137);
--color-base-content: oklch(27.807% 0.029 256.847);
--color-primary: oklch(49.12% 0.309 275.75);
--color-primary-content: oklch(89.824% 0.061 275.75);
--color-secondary: oklch(69.71% 0.329 342.55);
--color-secondary-content: oklch(98.71% 0.01 342.55);
--color-accent: oklch(76.76% 0.184 183.61);
--color-accent-content: oklch(15.352% 0.036 183.61);
--color-neutral: oklch(20% 0.024 255.701);
--color-neutral-content: oklch(89.499% 0.011 252.096);
--color-info: oklch(72.06% 0.191 231.6);
--color-info-content: oklch(0% 0 0);
--color-success: oklch(64.8% 0.15 160);
--color-success-content: oklch(0% 0 0);
--color-warning: oklch(84.71% 0.199 83.87);
--color-warning-content: oklch(0% 0 0);
--color-error: oklch(71.76% 0.221 22.18);
--color-error-content: oklch(0% 0 0);
}
TLDR – 仅导入您需要的部分。
微型 CSS 文件现在可用于无构建项目。
原生 CSS 嵌套减少了 CSS 大小。
它与 ESM 兼容,并具有无依赖的类名添加前缀功能。
跳到下一节
现在所有浏览器都支持 CSS 嵌套。 daisyUI 5 使用 CSS 嵌套,这可以防止 CSS 规则重复,并在您的浏览器中产生更小的 CSS 大小!
daisyUI 5 现在与 ESM (ECMAScript Module) 兼容。 这意味着如果需要,您可以在 JS 中导入和使用库的特定部分。
daisyUI 5 现在可以为类名添加前缀,而无需依赖项。
对于服务器端渲染的项目(Rails、Django、PHP 等)或没有 JS 构建步骤的项目(HTMX、Alpine.js、WordPress 等),现在可以使用 daisyUI 的特定部分,而无需包含整个库,甚至无需 Tailwind CSS。
例如,如果您只想使用 daisyUI toggle 组件,请包含一个仅包含 toggle 组件样式的微型 CSS 文件
Not possible
https://cdn.jsdelivr.net.cn/npm/daisyui@5/components/toggle.css
所有组件、所有主题以及 daisyUI 库的基本上每个部分现在都可以在 CDN 上以压缩的、缩小的 CSS 文件形式提供.
此外,由于 daisyui.css (以前的 full.css) CDN 文件缩小了 75%,因此现在在生产环境中使用 CDN 文件是安全高效的。 压缩后的 CSS 文件现在仅为 34 kB,这要归功于原生 CSS 嵌套和 daisyUI 5 中的大量优化。
查看CDN 文档以自定义您想从 CDN 包含在项目中的库部分。
现在,首次可以包含/排除 daisyUI 库的特定部分。 例如,如果您只想使用“Toggle”组件,则可以仅包含“Toggle”组件并排除其他所有内容!
Not possible
@plugin "daisyui" {
include: toggle;
}
Not possible
@plugin "daisyui" {
exclude: scrollbar;
}
TLDR – 全新 “Effect” CSS 变量。
尺寸改进 + 全新xl
尺寸修饰符。
新组件样式修饰符*-soft
和*-dash
.
颜色格式灵活性。
跳到下一节
daisyUI 5 引入了一组新的效果,可以全局或按主题启用或禁用。 这些效果改变了相关组件的外观和感觉,例如按钮、复选框、toggle 等。
目前,以下效果可用
--depth
: 为组件添加干净、微妙的深度效果,使其外观更具视觉吸引力--noise
: 为组件添加轻微的噪点效果,使其外观更具纹理感可以使用 CSS 变量启用或禁用这些效果。 查看新的主题生成器页面,了解其工作原理。
之前具有以下尺寸的所有组件xs
,sm
,md
,和lg
尺寸修饰符现在也支持新的xl
尺寸修饰符。 这使您可以更好地控制组件的尺寸,并允许您创建更灵活和响应式的设计。
随着新功能的添加xl
尺寸修饰符,组件的尺寸比例已调整为一致。 新的尺寸比例更加和谐且更具视觉吸引力。
在 daisyUI 4 中,尺寸之间的尺寸差异未遵循一致的比例。
新的默认尺寸比例是一致的,更具视觉吸引力......而且它是可定制的!
按钮高度比例 | 之前 | 之后 |
---|---|---|
xs | 6 × 4 = 24px | 6× 4 = 24px |
sm | 8 × 4 = 32px | 8× 4 = 32px |
md | 12× 4 = 48px | 10× 4 = 40px |
lg | 16× 4 = 64px | 12× 4 = 48px |
xl | - | 14× 4 = 56px |
复选框高度比例 | 之前 | 之后 |
---|---|---|
xs | 4 × 4 = 16px | 4× 4 = 16px |
sm | 5 × 4 = 20px | 5× 4 = 20px |
md | 6 × 4 = 24px | 6× 4 = 24px |
lg | 8× 4 = 32px | 7× 4 = 28px |
xl | - | 8× 4 = 32px |
组件尺寸比例现在是可自定义的。 以前,自定义组件尺寸需要大量手动工作。
现在一切都通过 CSS 变量进行标记化,您可以根据设计需求,全局或按主题定义组件的尺寸比例,使其更短或更高。
--size-field
变量用于定义字段(如输入框、按钮、选项卡等)的基本尺寸。--size-selector
变量用于定义选择器(如复选框、单选按钮、toggle、徽章等)的基本尺寸。查看其在新功能中的工作原理主题生成器页面。
按钮、输入框、选项卡等的边框尺寸现在可以全局或按主题自定义。
--border
变量用于定义组件(如按钮、输入框、选项卡等)的边框尺寸。查看其在新功能中的工作原理主题生成器页面。
soft
新组件样式:,dash
诸如按钮
,徽章
,警告框
现在有了soft
和dash
样式。
soft
样式使组件看起来更柔和,而dash
样式为组件添加虚线边框。
daisyUI 5 默认使所有修饰符都是响应式的。 这意味着您可以将响应式修饰符(如md
,lg
等)与所有组件修饰符类一起使用,而不仅仅是选定的少数几个。
daisyUI 5 支持所有颜色格式,并且不会将您的颜色转换为特定格式。
在 Tailwind CSS 4 之前,实用程序类的颜色值必须在构建时生成,因此拥有颜色 CSS 变量并能够使用 Tailwind CSS 不透明度修饰符的唯一方法是使用特定的颜色格式并将其传递给 tailwind 以生成不透明度变量。
Tailwind CSS 4 现在对颜色使用 CSS 变量,并使用color-mix()
来控制不透明度。 这意味着我们可以使用任何我们想要的颜色格式,并且不需要转换。
daisyUI 内置主题仍然使用 OKLCH 颜色格式,我也建议自定义主题也使用 OKLCH,但您可以使用任何您想要的颜色格式,并且 daisyUI 和 Tailwind CSS 都不会在构建时将其转换为另一种格式。
主题和颜色使您的网站独一无二。 我们在 daisyUI 5 中对主题和颜色进行了重大改进,包括新主题、改进的现有主题以及新的主题生成器,以帮助您创建自己的自定义主题。
TLDR – 新主题 + 改进的现有主题。
用于创建自定义主题的新主题生成器。
跳到下一节
daisyUI 5 包含 3 个新主题
caramellatte
– 温暖、舒适、浅色主题,以棕色和米色为主abyss
– 深邃的深绿色、蓝绿色和磷光色调色板silk
– 明亮、干净且大胆的主题,带有荧光文本颜色大多数 daisyUI 主题都经过调整,使其外观更好且更一致。 颜色对比度和可访问性变得更好,颜色也更加和谐。 这些更改使颜色在视觉上更具吸引力,更易于阅读。
查看新的主题生成器页面,创建您自己的自定义主题。 创建、自定义或扩展主题,或使用新的 daisyUI 调色板生成器算法生成令人惊艳的新主题。
daisyUI 5 引入了新的组件,以帮助您更快地构建网站。
概括 - 新组件
列表
,状态
,Fieldset(字段集)
,标签
,过滤器
,日历
,验证器
,Dock(停靠栏)
.
跳到下一节
列表组件适用于垂直布局,以行显示信息。想象一下产品列表、人员列表、文章列表等等。
查看列表组件文档
状态组件是一个非常小的图标,用于直观地显示元素的当前状态,例如在线、离线、错误等。
提供 5 种尺寸xs
,sm
,md
,lg
,和xl
.
查看状态组件文档
Fieldset(字段集)是用于分组相关表单元素的容器。它包括 fieldset-legend 作为标题,fieldset-label 作为描述。
标签为输入字段提供名称或标题。标签可以放置在字段之前或之后。floating-label 是一种浮动标签,当字段获得焦点时,它会浮动在字段上方。
查看标签组件文档
过滤器是一组单选按钮。选择其中一个选项将隐藏其他选项,并在所选选项旁边显示一个重置按钮。
查看过滤器组件文档
daisyUI 5 为 3 个流行的日历/日期选择器库提供了所有必要的样式:Cally、Pikaday 和 React Day Picker。
这意味着您可以使用这些库中的任何一个,样式都将与 daisyUI 的颜色和样式兼容。
查看日历组件文档
验证器类会更改表单元素的颜色为错误
或成功
基于输入的验证规则。如果输入无效,它还可以在输入下方显示提示文本。
查看验证器组件文档
重新设计的 “底部导航” 组件的替代品。Dock(停靠栏)是一个水平导航栏,它固定在屏幕底部,采用全新设计、全新外观且更可定制。
提供 5 种尺寸xs
,sm
,md
,lg
,和xl
.
与移动设备上的 safe-area-inset-bottom 兼容。
这些组件在 daisyUI 5 中得到了显著改进,包括新的修饰符、新功能和更好的自定义选项。
概括 - 一些组件得到了显著改进,包括新的修饰符、新功能和更好的自定义选项。
一些组件在视觉吸引力方面得到了提升。
跳到下一节
概括 - 多个组件在视觉上得到增强,以提高美观性。
跳到下一节
这些组件已经过改进,在视觉上更具吸引力
概括 - 尺寸比例改进,以实现更好的统一性和灵活性。
跳到下一节
这些组件现在支持新的xl
尺寸修饰符
这些组件的尺寸比例已得到改进,以使其更加一致
概括 - 这是一个很长的更改列表。其中大多数不会影响您,因此我在此处总结了最重要的更改,您可以阅读每个组件的详细更新日志在更新日志页面中.
跳到下一节
更改摘要
概括 - 一些类名被重命名,一些未使用的类被删除。
跳到下一节
md:footer-horizontal
到footer(页脚)
组件,使其在中等屏幕上水平显示。btn-group
使用join(连接)
(btn-group
已在 2023 年弃用,现在已删除)input-group
使用join(连接)
(input-group
已在 2023 年弃用,现在已删除)card-compact
到card-sm
disabled(禁用)
类为menu(菜单)
条目为menu-disabled
.active(激活)
类为menu(菜单)
条目为menu-active
.focus(焦点)
类为menu(菜单)
条目为menu-focus
.form-control
类。使用新的新的 fieldset
组件代替。label(标签)
语法,使用新的新的 label
语法.btm-nav
到dock(停靠栏)
.btm-nav-label
到dock-label
.btm-nav-xs
到dock-xs
.btm-nav-sm
到dock-sm
.btm-nav-md
到dock-md
.btm-nav-lg
到dock-lg
.artboard(画板)
类,使用 Tailwind CSS 宽度/高度实用程序。artboard-demo
,artboard-horizontal
,phone-*
类。请改用 Tailwind CSS 宽度和高度实用程序。online(在线)
类为avatar(头像)
到avatar-online
.offline(离线)
类为avatar(头像)
到avatar-offline
.placeholder(占位符)
类为avatar(头像)
到avatar-placeholder
.mask-parallelogram
。不再存在。mask-parallelogram-2
。不再存在。mask-parallelogram-3
。不再存在。mask-parallelogram-4
。不再存在。stack(堆叠)
中项目的宽度/高度,对stack(堆叠)
自身使用宽度/高度。一些 UI 元素的默认尺寸已调整,以提高一致性。它们现在也是可自定义的。
跳到下一节
btn(按钮)
,input(输入框)
,select(选择框)
现在默认具有较小的高度请参阅尺寸比例改进checkbox(复选框)
,radio(单选按钮)
,toggle(切换)
,range(范围)
,rating(评分)
现在默认具有较小的高度请参阅尺寸比例改进您可以使用新的--size-field
和--size-selector
CSS 变量在您的主题中自定义默认尺寸比例。
查看新的主题生成器页面以查看实际效果。
概括 - 在 CSS 文件中使用新的配置格式。不再需要
tailwind.config.js
了。
新的配置格式更易于使用,更灵活,并且更强大。
跳到下一节
tailwind.config.js
您需要将 daisyUI 配置放在 CSS 文件中。查看新的配置格式.themes(主题)
config(配置)是一个逗号分隔的主题名称列表。阅读更多关于daisyUI 配置和daisyUI 主题.darkTheme
配置已删除。相反,您可以使用--prefersdark
标志直接在themes(主题)
列表中。themeRoot
配置已重命名为root(根目录)
.styled: false
配置已被删除,取而代之的是提供微型 CSS 文件以及包含/排除库的某些部分的功能。禁用主题将删除所有颜色,但组件不再分成两个未样式化的样式化块。您现在可以单独包含/排除每个组件。base: false
配置已被删除,取而代之的是包含/排除配置,您可以在其中单独包含/排除每个组件。utils: false
配置已被删除,取而代之的是包含/排除配置,您可以在其中单独包含/排除每个组件。阅读更多关于daisyUI 配置.
概括 - 自动
*-content
颜色计算已删除。主题变量名称已更改,以提高一致性和可读性。以前的主题可用于轻松迁移。
跳到下一节
自动*-content
基于背景颜色的颜色计算已被删除。现在 Tailwind CSS 支持颜色的 CSS 变量,我们不再在构建时处理和转换颜色值。您可以使用任何您想要的颜色格式,daisyUI 和 Tailwind CSS 都不会在构建时将其转换为另一种格式。
大多数主题都经过调整,以使其外观更好且更一致。颜色对比度和可访问性变得更好,颜色更加和谐。这些更改使颜色在视觉上更具吸引力且更易于阅读。
如果您喜欢使用以前的颜色,我准备了一个仓库,包括所有 daisyUI 4 主题颜色易于在 daisyUI 5 中复制/粘贴。
所有颜色变量名称都已更改为与新的 Tailwind CSS 4 语法对齐。并且更具可读性,更易于自定义查看新的颜色格式
之前 | 之后 |
---|---|
--p | --color-primary |
--pc | --color-primary-content |
--s | --color-secondary |
--sc | --color-secondary-content |
--a | --color-accent |
--ac | --color-accent-content |
--n | --color-neutral |
--nc | --color-neutral-content |
--b1 | --color-base-100 |
--b2 | --color-base-200 |
--b3 | --color-base-300 |
--bc | --color-base-content |
--in | --color-info |
--inc | --color-info-content |
--su | --color-success |
--suc | --color-success-content |
--wa | --color-warning |
--wac | --color-warning-content |
--er | --color-error |
--erc | --color-error-content |
--rounded-box | --radius-box |
--rounded-btn 和--tab-radius | --radius-field |
--rounded-badge | --radius-selector |
--border-btn 和--tab-border | --border |
--animation-btn
已被删除(不再需要)--animation-input
已被删除(不再需要)--btn-focus-scale
已被删除(不再需要)Cyberpunk 和 Wireframe 主题默认不再具有自定义字体。如果您想要与 v4 相同的字体,请像这样自定义这些主题
@plugin "daisyui";
@plugin "daisyui/theme" {
name: cyberpunk;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;
}
@plugin "daisyui/theme" {
name: wireframe;
font-family: Chalkboard, comic sans ms, "sans-serif";
}
概括 - 此版本中已修复 daisyUI 4 中 95% 以上的未解决问题。
跳到下一节
其中一些错误已通过核心库、设计系统、主题和组件的新更改自动修复。其中一些错误通过 Tailwind CSS 4 的新功能成为可能。
还有一些错误与组件的特定结构/样式/行为有关,在补丁版本中更改它们可能会对所有现有项目造成破坏性更改。我们不得不等待主要版本发布才能应用这些更改。
如果您一直在等待特定的错误修复,以下是此版本中已修复的错误。如果您遗漏了任何错误,或者错误地关闭了某个错误,请告诉我 💚
<svg>
className 错误<input>
元素不会缩小 <input>
元素<code>
元素的 @tailwindcss/typography 样式,导致文本不可读。<th>
标签被固定<dialog>
元素已关闭,<dialog>
元素中的项目仍然可以被聚焦请将您发现的任何新缺陷报告至GitHub 议题🙏
1 -Tailwind CSS 4 升级指南
2 -daisyUI 5 升级指南
如果您发现任何问题,请在GitHub 议题页面以便我们能够修复它们。
加入我们的daisyUI Discord 服务器以获取关于最终版本的消息和更新,或与其他开发者讨论 daisyUI。