文档说在 v4 中基础层和组件层仍然用 和 定义@layer base
,@layer components
同样在 v3 中这样定义的类也可以用@apply
。问题是它们在 v4 中失败了。
https://tailwindcss.com/docs/adding-custom-styles#adding-base-styles
实际上,这意味着我必须定义所有基础、组件和实用程序层@utility
才能使用这些类,而这@apply
当然会造成很大的混乱。
我可以用定义所有层@utility
,然后在@import
语句中设置层,但这看起来也不太好。
@import "tailwindcss/theme.css" layer(theme);
@import "tailwindcss/base.css" layer(base);
@import "tailwindcss/components.css" layer(components);
@import "tailwindcss/utilities.css" layer(utilities);
那么最后如何在 v4 中做到这一点?我已经有很多代码使用@apply
在基础层和组件层中定义的自定义类,现在在 v4 中它们生成Cannot apply unknown utility class
。另一方面,我不想将基础层和组件定义为实用程序。
我见过类似的 Github 问题,但没有明显的解决方案。如果我使用,@reference
我会得到@custom-variant cannot be nested.
和@utility cannot be nested.
。
https://github.com/tailwindlabs/tailwindcss/discussions/16429
https://github.com/tailwindlabs/tailwindcss/discussions/13336
您可以在这里看到我的样式代码:
https://github.com/nemanjam/nemanjam.github.io/tree/feat/tailwind4-v2/src/styles