tailwind-merge breaking changes
Every breaking API change we have recorded in tailwind-merge on npm: 11 breaking changes in 1 version. Below are its newest version, removals and renames first, each with its source.
Newest change January 30, 2025

On this page
3.0.0
- Removed
Config.separator
Config.separator was removed in tailwind-merge 3.0.0 npmjs.com - Removed
ConfigExtension.separator
ConfigExtension.separator was removed in tailwind-merge 3.0.0 npmjs.com - Removed
validators.isLength
validators.isLength was removed in tailwind-merge 3.0.0 npmjs.com - Signature changed
Config.experimentalParseClassName
Was experimentalParseClassName?(param: ExperimentalParseClassNameParam): ExperimentalParsedClassName; now experimentalParseClassName?(param: ExperimentalParseClassNameParam): ParsedClassName. npmjs.com - Signature changed
ConfigExtension.experimentalParseClassName
Was experimentalParseClassName?(param: ExperimentalParseClassNameParam): ExperimentalParsedClassName; now experimentalParseClassName?(param: ExperimentalParseClassNameParam): ParsedClassName. npmjs.com - Signature changed
DefaultClassGroupIds
Was type DefaultClassGroupIds = 'accent' | 'align-content' | 'align-items' | 'align-self' | 'animate' | 'appearance' | 'aspect' | 'auto-cols' | 'auto-rows' | 'backdrop-blur' | 'backdrop-brightness' | 'backdrop-contrast' | 'backdrop-filter'... npmjs.com - Signature changed
DefaultThemeGroupIds
Was type DefaultThemeGroupIds = 'blur' | 'borderColor' | 'borderRadius' | 'borderSpacing' | 'borderWidth' | 'brightness' | 'colors' | 'contrast' | 'gap' | 'gradientColorStopPositions' | 'gradientColorStops' | 'grayscale' | 'hueRotate' |... npmjs.com - Signature changed
ExperimentalParseClassNameParam.parseClassName
Was parseClassName(className: string): ExperimentalParsedClassName; now parseClassName(className: string): ParsedClassName. npmjs.com - Signature changed
ExperimentalParsedClassName
Was interface ExperimentalParsedClassName; now interface ParsedClassName. npmjs.com - Signature changed
getDefaultConfig
Was const getDefaultConfig: () => {readonly cacheSize: 500; readonly separator: ":"; readonly theme: {readonly colors: readonly [() => boolean]; readonly spacing: readonly [(value: string) => boolean, (value: string) => boolean]; readonly... npmjs.com
And 1 more in this version.
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