更新、想法和资源
本升级指南帮助您轻松将 daisyUI 更新到版本 4,而不会破坏任何内容。
自 2023 年 7 月发布 daisyUI 3 以来,我的重点一直放在突破界限和增强 daisyUI 体验上。 CSS 中的新功能为 daisyUI 开辟了新的可能性,现在随着 daisyUI 4 的发布,我们可以享受所有的新功能和改进。
这个最新版本标志着 daisyUI 在设计、功能、可访问性和效率方面向前迈出了一大步。 有关改进的详细概述,请浏览daisyUI 更新日志页面. 但是,将现有项目升级到新的主要版本,最重要的是破坏性更改。 在本指南中,我们将逐步介绍如何将 daisyUI 从版本 3 更新到版本 4。
首先,您需要将 daisyUI 包更新到最新版本。 您可以通过在终端中运行以下命令来完成此操作
npm i -D daisyui@latest
daisyUI 4 使用新的 OKLCH 颜色系统在底层。 这意味着所有颜色 CSS 变量(例如--p
,--s
等)现在具有 OKLCH 值而不是 HSL 值。 (阅读更多关于 OKLCH 的信息)
bg-primary
),您无需执行任何操作。.myclass{ color: hsl(var(--p)) }
),您现在需要将它们与 oklch 函数一起使用(例如.myclass{ color: oklch(var(--p)) }
)。这是 daisyUI 3 和 4 中亮色主题的主色
/* the values were HSL */
--p: 251.47 100% 56%;
/* the values are OKLCH */
--p: 0.4912 0.3096 275.75;
因此,为了在您的项目中直接使用 daisyUI 颜色 CSS 变量,请将颜色函数从hsl()
更改为oklch()
像这样
/* Using hsl() function */
color: hsl(var(--p));
/* Using oklch() function */
color: oklch(var(--p));
*-focus
颜色均已移除 3. 所有 *-focus
颜色均已移除所有*-focus
颜色,例如primary-focus
daisyUI 3 中的颜色所做的只是使用相同的bg-primary
颜色和更深的阴影。 现在,得益于新的color-mix()
CSS 函数,我们动态地执行相同的操作,并且它使我们能够更好地控制颜色。 例如,看看这个惊人的类名。 它将原色与黑色混合,使其变暗 7%
bg-[color-mix(in_oklab,oklch(var(--p)),black_7%)]
│ │ │
│ │ │
│ │ │
│ │ ╰── black with 7% opacity = 7% darker
│ │
│ ╰── primary color
│
╰── OKLAB gives a better result
因此,如果您使用了*-focus
项目中的颜色,并且您想要完全相同的结果,则可以使用新的color-mix()
函数在任意类名中,如下所示
class="bg-primary-focus"
class="bg-secondary-focus"
class="bg-accent-focus"
class="bg-neutral-focus"
class="bg-[color-mix(in_oklab,oklch(var(--p)),black_7%)]"
class="bg-[color-mix(in_oklab,oklch(var(--s)),black_7%)]"
class="bg-[color-mix(in_oklab,oklch(var(--a)),black_7%)]"
class="bg-[color-mix(in_oklab,oklch(var(--n)),black_7%)]"
在以下文件中,属性名称发生了更改daisyui/src/theming/themes.js
文件。 如果您正在自定义内置的 daisyUI 主题,请更改它
daisyui: {
themes: [
{
light: {
...require("daisyui/src/theming/themes")["[data-theme=light]"],
primary: "blue",
},
},
],
},
daisyui: {
themes: [
{
light: {
...require("daisyui/src/theming/themes")["light"],
primary: "blue",
},
},
],
},
daisyUI 4 组件使用逻辑 CSS 属性而不是方向规则 (mr-*
,pl-*
等)。 现在,所有组件都支持运行时 LTR/RTL,而无需任何配置或插件。 你只需要<html dir=rtl>
运行时一切都将是 RTL。 您可以安全地删除rtl: true
配置和tailwindcss-flip
项目中的插件(如果您正在使用逻辑 Tailwind CSS 实用程序类,并且您自己的方向 Tailwind CSS 类不需要该插件)
module.exports = {
//...
plugins: [require("daisyui"), require("tailwindcss-flip")],
daisyui: {
rtl: true,
},
}
module.exports = {
//...
plugins: [require("daisyui")],
daisyui: {},
}
标签页
已删除 tab-lifted
tab-bordered
tab-lg
tab-md
tab-sm
tab-xs
标签页
类代替 tabs-lifted
tabs-bordered
tabs-lg
tabs-md
tabs-sm
tabs-xs
<div class="tabs">
<a class="tab tab-lg tab-lifted">Tab 1</a>
<a class="tab tab-lg tab-lifted tab-active">Tab 2</a>
<a class="tab tab-lg tab-lifted">Tab 3</a>
<a class="tab tab-lg tab-lifted">Tab 4</a>
</div>
<div class="tabs tabs-lg tabs-lifted">
<a class="tab">Tab 1</a>
<a class="tab tab-active">Tab 2</a>
<a class="tab">Tab 3</a>
<a class="tab">Tab 4</a>
</div>
默认情况下,按钮不再大写。 您可以添加uppercase
类,如果您想将它们大写。
就是这样! 您现在可以享受新的 daisyUI 4功能和改进在您的项目中。 如果您对升级有具体问题,请在以下位置提问这个 GitHub 讨论如果您发现错误,请在以下位置报告daisyUI GitHub 问题
我很高兴看到您将使用 daisyUI 4 构建的所有令人惊叹的东西。
订阅 daisyUI 博客新闻通讯,以获取有关新帖子的更新。
当发布新的博客文章时,您只会收到一封电子邮件。 没有垃圾邮件。 没有广告。