Tailwind
dta build writes Tailwind files next to the CSS:
| File | For |
|---|---|
output/tailwind/tailwind.css |
Tailwind v4: an @theme block of the primitives (as var() references) |
output/tailwind/<brand>/tailwind.css |
Tailwind v4: one brand’s tokens, with resolved values |
output/tailwind/tailwind.tokens.ts |
Tailwind v3: a theme.extend object |
output/tailwind/<brand>/tailwind.tokens.ts |
Tailwind v3: one brand, resolved |
Tailwind v4
Section titled “Tailwind v4”Import the token CSS and the @theme file into your stylesheet. The @theme entries point at the custom properties, so variables.css must be loaded too:
@import 'tailwindcss';@import '../output/css/variables.css';@import '../output/css/themes/branda.css';@import '../output/css/themes/brandb.css';@import '../output/tailwind/tailwind.css';
/* Brand tokens switch with [data-brand]: map them as theme variables that stay references. */@theme inline { --color-brand-primary: var(--colors-brand-primary); --color-brand-accent: var(--colors-brand-accent);}Then use the utilities:
<html data-brand="branda"> <button class="bg-brand-primary text-foundation-white p-4 rounded-dimensions-radius-md"> Save </button></html>Compiled with Tailwind 4.3.3 against the brand-ab fixture, these utilities come out as:
.rounded-dimensions-radius-md { border-radius: var(--radius-dimensions-radius-md);}.bg-brand-primary { background-color: var(--colors-brand-primary);}.p-4 { padding: var(--spacing-4);}.text-foundation-white { color: var(--color-foundation-white);}Two things to know:
- Spacing replaces Tailwind’s scale. The fixture’s
Dimensions.spacing.4becomes--spacing-4(16px), sop-4uses your token instead of Tailwind’s default calculation. - Breakpoint tokens switch too. With
breakpointsin the config,tailwind.cssends with an@theme inlineblock for the breakpoint collection:p-spacing-gapcompiles topadding: var(--spacing-gap), whichvariables.csssets per media query. Loadvariables.css, as above. - Brand files are resolved.
output/tailwind/<brand>/tailwind.cssholds one brand’s final values: use it when a build ships one brand only. For switching brands at runtime, map the brand tokens with@theme inlineas above, so the utilities keep reading the custom properties.
Tailwind v3
Section titled “Tailwind v3”Spread the generated object into your config:
import type { Config } from 'tailwindcss'import { tokens } from './output/tailwind/tailwind.tokens'
export default { content: ['./src/**/*.{html,tsx}'], ...tokens,} satisfies ConfigIts values are var() references too ('foundation-blue-500': 'var(--colors-foundation-blue-500)'), so load output/css/variables.css in your app.