tailwindcss breaking changes
Every breaking API change we have recorded in tailwindcss on npm: 139 breaking changes in 40 versions. Below are its newest 6 versions, removals and renames first, each with its source.
Newest change November 3, 2026

On this page
4.3.4
- Behavior changed
Arbitrary values using units such as dvmin, svi, cap and rex are now treated as lengths, so text-[10dvmin] generates font-size instead of color. github.com - Behavior changed
Classes that contain an empty additional modifier, such as bg-red-500/50/ or group-hover/foo//bar, no longer generate CSS. Remove the empty modifier from those class names. github.com - Behavior changed
Classes whose modifier would be silently ignored, such as rounded-sm/[5], shadow-sm/foo and stroke-2/50, no longer produce any CSS. Update any class names that used these modifiers. github.com - Behavior changed
The tailwindcss canonicalize command writes plugin logs to stderr instead of stdout. Scripts that read logs from stdout must read stderr instead. github.com - Behavior changed
Arbitrary values with unbalanced parentheses or brackets, such as w-[calc(1px] or [--x:a[b], no longer generate CSS. Fix the brackets in those values. github.com
4.3.3
- Behavior changed
The default sans-serif font stack now uses explicit platform fonts instead of system-ui and ui-sans-serif. Text rendering may change for some users, especially CJK text on Windows. github.com
4.3.1
- Behavior changed
Utilities such as m-1 and left-1 now output var(--spacing) rather than calc(var(--spacing) * 1). Code that matches the exact generated CSS may need updating. github.com - Behavior changed
Utilities such as m-0 and left-0 now output 0 rather than calc(var(--spacing) * 0). Code that matches the exact generated CSS may need updating. github.com
4.3.0
- Behavior changed
@utility
Functional @utility definitions without a --value(…) call are no longer accepted. Add --value(…) to any custom functional utility that lacks it. github.com - Behavior changed
end
The legacy end utility without a value no longer generates CSS. Check any use of a bare end class and add a value if it is needed. github.com - Behavior changed
start
The legacy start utility without a value no longer generates CSS. Check any use of a bare start class and add a value if it is needed. github.com - Signature changed
Config
Was type Config = UserConfig; now interface Config extends UserConfig. npmjs.com
4.2.3
- Behavior changed
placeholder-*
placeholder-* utilities now read --placeholder-color instead of --background-color. Check any custom theme variables that set placeholder colors. github.com - Default changed
The .env and .env.* files are now default ignored content files. Files matching these patterns are no longer scanned for class names unless you change the content configuration. github.com
4.2.0
- Signature changed
colors:default
Was const _default: {inherit: string; current: string; transparent: string; black: string; white: string; slate: {'50': string; '100': string; '200': string; '300': string; '400': string; '500': string; '600': string; '700': string; '800'... npmjs.com - Signature changed
defaultTheme:default
Was const _default: {accentColor: ({theme}: PluginUtils) => any; animation: {none: string; spin: string; ping: string; pulse: string; bounce: string;}; aria: {busy: string; checked: string; disabled: string; expanded: string; hidden... npmjs.com
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp