Вы можете использовать комбинацию директив и CSS, чтобы воспользоваться преимуществами доступных утилит.
Используйте @apply
, чтобы встроить любые существующие служебные классы в свой блок стиля.
Это полезно, когда вы находите в своем HTML-коде общий служебный шаблон, который хотите извлечь в новый компонент.
xxxxxxxxxx
.btn {
@apply font-bold py-2 px-4 rounded;
}
.btn-blue {
@apply bg-blue-500 hover:bg-blue-700 text-white;
padding-top: 1rem;
}
.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
в конец объявления:
xxxxxxxxxx
.btn {
@apply font-bold py-2 px-4 rounded !important;
}
.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
.
xxxxxxxxxx
@variants focus, hover {
.rotate-0 {
transform: rotate(0deg);
}
.rotate-90 {
transform: rotate(90deg);
}
}
@variants dark {
.bg-color {
background-color: #1c1c1e;
}
}
.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
позволяет вам создавать медиа-запросы, которые ссылаются на ваши контрольные точки по имени, вместо того, чтобы дублировать их значения в вашем собственном CSS.
xxxxxxxxxx
@screen sm {
.custom {
@apply text-lg;
}
}
@media (min-width: 640px) {
.custom {
font-size: 1.125rem;
line-height: 1.75rem;
}
}
Директива @layer
проверяет порядок каждого класса. Допустимые уровни: base
, components
и utilities
.
xxxxxxxxxx
@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 */
}
.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()
позволяет вам получить доступ к вашим значениям конфигурации, используя точечную нотацию.
xxxxxxxxxx
.btn-blue {
background-color: theme("colors.blue.500");
}
.btn-blue {
background-color: #3b82f6;
}