# What changed in cn

> 32 changes in cn 0.2 to 0.5 from its official release notes, upgrade guides and advisories: 2 breaking, 3 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/cn/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## cn 0.5

### Breaking changes

- The build command drops names declared before a --*: initial reset. (0.5.0) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.5.0)
- Node 20 is no longer supported; Node 22 or later is required. (0.5.0) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.5.0)

### Behavior and default changes

- The build command now follows package @imports. (0.5.0) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.5.0)

### Fixes and other changes

- The build command reads @theme declarations that appear after nested blocks such as @keyframes. (0.5.0) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.5.0)

## cn 0.4

### Behavior and default changes

- cn build and the plugins now register theme scales declared in Tailwind CSS. (0.4.0) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.4.0)

## cn 0.3

### New APIs and options

- Adds a library entry point with build(options), letting build scripts and bundler plugins run scanning, subsetting, compiling, and writing directly. (0.3.0) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.3.0)
- Adds the cn/next entry point. (0.3.0) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.3.0)
- Adds the cn/vite entry point. (0.3.0) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.3.0)

### Performance

- Calls with an interpolated argument no longer thrash the argument cache, improving performance for that call shape; stable arguments are unchanged. (0.3.3) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.3.3)

### Behavior and default changes

- Axis utilities now override the logical sides they cover, matching tailwind-merge 3.7.0. For example, px-2 replaces ps-* and pe-*. (0.3.1) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.3.1)

### Fixes and other changes

- The generated .ts output typechecks with noUncheckedIndexedAccess and the rest of the @tsconfig/strictest flags; the .mjs output is unchanged. (0.3.3) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.3.3)
- Custom animate-* classes are no longer merged, matching tailwind-merge; plugin classes such as animate-in, animate-once, and animate-duration-500 are never dropped. (0.3.2) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.3.2)

## cn 0.2

### Performance

- Object and array arguments resolve in place and use the argument-identity cache, avoiding a full clsx join on every call. (0.2.3) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.3)
- A single array argument uses the argument path, allowing stable element identities to hit the cache. (0.2.3) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.3)
- The argument-cache bucket now holds 256 tuples instead of 8, reducing evictions when many usage sites share a base string. (0.2.3) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.3)
- Freshly joined strings pass through a doorkeeper before the whole-string cache, preventing arbitrary dynamic values from churning both caches. (0.2.3) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.3)
- On JavaScriptCore, the whole-string cache uses a Map and an inlinable hit path, improving cache hits and recurring single-string calls on bun. (0.2.3) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.3)
- Warm calls with four or more arguments now probe predictions in place and allocate nothing, reducing call time from about 44ns to 32ns. (0.2.1) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.1)

### Behavior and default changes

- Config extensions accept readonly arrays, allowing token tuples declared with as const to work without a defensive copy. (0.2.5) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.5)

### Fixes and other changes

- Fixes merging for containment. (0.2.6) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.6)
- Fixes merging for custom animations. (0.2.6) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.6)
- Fixes merging for legacy gradients. (0.2.6) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.6)
- Fixes missing Tailwind v4 utilities in merging. (0.2.6) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.6)
- The generated output file is excluded from content scans when its path matches a content glob. (0.2.5) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.5)
- Extensions accept a single class or theme definition instead of throwing. (0.2.5) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.5)
- Fixes brace globs, dot-directory and symlink scanning, and CLI error reporting for content builds. (0.2.4) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.4)
- Fixes a hang and dropped classes when tracking conflicts with large custom configs and merges. (0.2.4) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.4)
- Matches tailwind-merge on array-like values passed to twJoin. (0.2.4) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.4)
- Matches tailwind-merge on Unicode whitespace. (0.2.4) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.4)
- Fix the published types for cn/config, which pointed at an internal chunk with mangled export names and omitted defaultConfig and mergeConfigs. (0.2.2) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.2)
- Fix the published type for clsx in cn/lite, which incorrectly accepted zero parameters. (0.2.2) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.2)
- Fix conflict detection silently failing after 2^31 cache-missing merges in one process. (0.2.2) — [release notes](https://github.com/shadcn-ui/cn/releases/tag/cn%400.2.2)
