Loading lessons...
Adding Custom Styles
Adding Custom Styles
Beyond utilities, Tailwind lets you add your own base styles, component classes, and custom utilities - all using its design tokens.
Base styles with @layer base
Add default element styles to the base layer:
@layer base {
h1 {
font-size: var(--text-2xl);
}
a {
color: var(--color-blue-600);
text-decoration-line: underline;
}
}
Component classes with @layer components
Group reusable styles into a component class that utilities can still override:
@layer components {
.card {
border-radius: var(--radius-lg);
background-color: var(--color-white);
padding-inline: --spacing(6);
padding-block: --spacing(4);
}
}
Because it lives in the components layer, class="card rounded-none" still works.
Using variants in CSS
Apply a variant inside your own CSS with @variant:
.btn-primary {
background-color: var(--color-violet-500);
@variant hover {
background-color: var(--color-violet-700);
}
}
@utility for custom utilities
Simple utility that works with every variant:
@utility content-auto {
content-visibility: auto;
}
<div class="hover:content-auto">...</div>
Arbitrary values recap
bg-[#316ff6]- one-off value.[mask-type:luminance]- arbitrary property.[&>*]:underline- arbitrary variant.bg-(--my-brand-color)- CSS variable shorthand.
When to use custom CSS vs components
Use template partials/components for anything more complex than a single element. Write custom CSS when a partial feels heavy-handed - but it's recommended to build components instead.
TL;DR
@layer basefor element styles.@layer componentsfor reusable classes utilities can override.@utilityregisters new utilities.@variantapplies variants in CSS.