Windi CSS 指令
2023-02-16 17:58 更新
您可以结合使用指令和 CSS 来利用可用的实用程序。
@apply
使用 @apply 将任何现有实用程序类内联到您的样式块中。
当您在 HTML 中找到您想要提取到新组件的通用实用程序模式时,这很有用。
.btn {
@apply font-bold py-2 px-4 rounded;
}
.btn-blue {
@apply bg-blue-500 hover:bg-blue-700 text-white;
padding-top: 1rem;
}
生成的 CSS
.btn {
border-radius: 0.25rem;
font-weight: 700;
padding-top: 0.5rem;
padding-bottom: 0.5rem;
padding-left: 1rem;
padding-right: 1rem;
}
.btn-blue {
--tw-bg-opacity: 1;
background-color: rgba(59, 130, 246, var(--tw-bg-opacity));
--tw-text-opacity: 1;
color: rgba(255, 255, 255, var(--tw-text-opacity));
padding-top: 1rem;
}
.btn-blue:hover {
--tw-bg-opacity: 1;
background-color: rgba(29, 78, 216, var(--tw-bg-opacity));
}
如果你想@apply一个现有的类并使其成为!important,只需在声明的末尾添加!important:
.btn {
@apply font-bold py-2 px-4 rounded !important;
}
生成的 CSS
.btn {
border-radius: 0.25rem !important;
font-weight: 700 !important;
padding-top: 0.5rem !important;
padding-bottom: 0.5rem !important;
padding-left: 1rem !important;
padding-right: 1rem !important;
}
@variants
您可以通过将它们的定义包装在 @variants 指令中来生成您自己的实用程序的屏幕变体、状态变体、主题变体。
@variants focus, hover {
.rotate-0 {
transform: rotate(0deg);
}
.rotate-90 {
transform: rotate(90deg);
}
}
@variants dark {
.bg-color {
background-color: #1c1c1e;
}
}
生成的 CSS
.rotate-0:focus {
transform: rotate(0deg);
}
.rotate-90:focus {
transform: rotate(90deg);
}
.rotate-0:hover {
transform: rotate(0deg);
}
.rotate-90:hover {
transform: rotate(90deg);
}
.dark .bg-color {
background-color: #1c1c1e;
}
@screen
@screen 指令允许您创建按名称引用断点的媒体查询,而不是在您自己的 CSS 中复制它们的值。
@screen sm {
.custom {
@apply text-lg;
}
}
生成的 CSS
@media (min-width: 640px) {
.custom {
font-size: 1.125rem;
line-height: 1.75rem;
}
}
@layer
@layer 指令设置每个类的应用顺序。有效层是基础层、组件层和实用程序层。
@layer components {
.components {
@apply bg-red-500;
}
}
@layer utilities {
.utilities {
max-width: 768px;
}
}
@layer base {
base {
margin-left: auto;
}
}
.normal {
margin-right: auto; /* components by default */
}
生成的 CSS
.components {
--tw-bg-opacity: 1;
background-color: rgba(239, 68, 68, var(--tw-bg-opacity));
}
.utilities {
max-width: 768px;
}
base {
margin-left: auto;
}
.normal {
margin-right: auto;
}
theme()
theme() 函数允许您使用点表示法访问您的配置值。
.btn-blue {
background-color: theme("colors.blue.500");
}
生成的 CSS
.btn-blue {
background-color: #3b82f6;
}
以上内容是否对您有帮助:
更多建议: