<p>Now <a href="/daily/2025/02/28/preprocessors">CSS supports variables</a> (aka custom properties) and <a href="/daily/2024/07/16/tailwind-css-v4--with-even-more-css">Tailwind CSS v4 is configured using CSS</a> instead of JavaScript, I've been making heavy use of CSS variables in my front-end code.</p>
<p>I still use Tailwind to do the heavy lifting, but I can use CSS variables to extract themeable classes with variables like <code>--color-primary</code> that can change value based on a data attribute or by something else.</p>
<p>These variables can still use Tailwind's core variables by doing <code>--color-primary:var(--color-red-500)</code>, rather than having to recreate all its colors, spacing or whatever variables I need to use.</p>
<p>Tailwind has a arbitrary syntax to easily use CSS variables - e.g. <code>bg-(--color-primary)</code> - and you can define one-off variables with <code>[--box-spacing:30px]</code> or <code>[--box-spacing:--spacing(3)]</code> and using the standard arbitrary class syntax.</p>
<p>CSS variables aren't specific to Tailwind CSS, so if I wasn't using Tailwind in a codebase, I'd use the new native CSS features <a href="/daily/2024/05/26/is-it-time-to-stop-writing-sass">instead of a preprocessor like Sass</a>.</p>
<p>Now <a href="/daily/2025/02/28/preprocessors">CSS supports variables</a> (aka custom properties) and <a href="/daily/2024/07/16/tailwind-css-v4--with-even-more-css">Tailwind CSS v4 is configured using CSS</a> instead of JavaScript, I've been making heavy use of CSS variables in my front-end code.</p>
<p>I still use Tailwind to do the heavy lifting, but I can use CSS variables to extract themeable classes with variables like <code>--color-primary</code> that can change value based on a data attribute or by something else.</p>
<p>These variables can still use Tailwind's core variables by doing <code>--color-primary:var(--color-red-500)</code>, rather than having to recreate all its colors, spacing or whatever variables I need to use.</p>
<p>Tailwind has a arbitrary syntax to easily use CSS variables - e.g. <code>bg-(--color-primary)</code> - and you can define one-off variables with <code>[--box-spacing:30px]</code> or <code>[--box-spacing:--spacing(3)]</code> and using the standard arbitrary class syntax.</p>
<p>CSS variables aren't specific to Tailwind CSS, so if I wasn't using Tailwind in a codebase, I'd use the new native CSS features <a href="/daily/2024/05/26/is-it-time-to-stop-writing-sass">instead of a preprocessor like Sass</a>.</p>