v2 generated responsive stubs; v3 filled them.

How the engine does it#

v2's media queries existed but were empty for many utilities — classes parsed but did nothing at breakpoints. v3 generates real declarations for every utility × screen.

Example#

css
@media (min-width: 768px) { /* v2: empty */ }
@media (min-width: 768px) { .md\:p-4 { padding: 1rem } /* v3 */ }

From v2 to v3#

Everything in this article survives the upgrade — the v2 → v3 migration guide keeps the generator API stable while fixing spacing and responsive bugs.

Utilities · Themes · Configuration