Вы можете использовать комбинацию директив и 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;
}