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;
}


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号