Skip to content

Releases: dcastil/tailwind-merge

v1.0.0

10 Dec 20:19
bee0d91
Compare
Choose a tag to compare

v1! 🎉

Overview

After being 5 months on v0 I think it's time to release a stable version of tailwind-merge. Tailwind v3 was released yesterday and it's no coincidence that I'm releasing tailwind-merge v1 today. I added full support for Tailwind v3 so you can update both at once.

There are no breaking changes in the tailwind-merge types and some breaking changes for a small number of users in the return values, so you should get through smoothly.

By the way, you can now sponsor this project. 😊

Breaking Changes

  • twMerge, extendTailwindMerge

    • Outline utilities from Tailwind v2 don't get merged anymore since they were replaced by outline width, outline style, outline offset and outline color in Tailwind v3 (55ab167, #63)
    • The classes overflow-ellipsis and overflow-clip will not get merged with class truncate anymore, but the new Tailwind v3 classes text-ellipsis and text-clip will. (65b03e4, #63)
    • The classes decoration-slice and decoration-clone won't get merged anymore and box-decoration-slide nad box-decoration-clone will (bfe2cc9, #63)
  • getDefaultConfig

    • Removed class group outline since it was removed in Tailwind v3 (55ab167, #63)
    • Renamed class group vertival-alignment (yes, the typo was in the code) to vertical-align (1269ce6, #63)
    • Renamed class groups flex-basis, flex-grow and flex-shrink to basis, grow and shrink to stay consistent with Tailwind v3 (e6d8912, #63)
  • validators

    • isCustomLength and isCustomValue were renamed to isArbitraryLength and isArbitraryValue to be consistent with naming in Tailwind v3 documentation (adc3c02, #63)

New Features

  • Add support for Tailwind v3 by @dcastil in #63
    • Support for all the new utility classes and variants in Tailwind v3.0.0
    • Support for arbitrary properties like [--my-var:20px]
    • Support for important modifiers in arbitrary properties like ![--my-very-important-var: 21px]
    • Support for new labels for classes with arbitrary value: size, position, url, weight and family
    • New validators isTshirtSize, isArbitrarySize, isArbitraryPosition, isArbitraryUrl and isArbitraryWeight, check them out in the documentation! (fec2b18, f8acd7c, #63)

Full Changelog: v0.9.0...v1.0.0

v0.9.0

24 Nov 09:45
b8e47c8
Compare
Choose a tag to compare

New Features

  • Mimic theme from Tailwind config in tailwind-merge config by @dcastil in #55
    • Adds support for some theme properties like spacing, borderRadius, etc. More on that in the theme docs.

Full Changelog: v0.8.2...v0.9.0

v0.8.2

02 Nov 13:34
fb8c043
Compare
Choose a tag to compare

Bug Fixes

  • Fix custom values for list-style-type missing in default config by @dcastil in #53

Full Changelog: v0.8.1...v0.8.2

v0.8.1

25 Oct 15:36
fe206e7
Compare
Choose a tag to compare

Bug Fixes

  • Fix missing support for custom values in some class groups in default config by @dcastil in #52
    • Adds missing support for custom values in following class groups: Grid Auto Columns, Grid Auto Rows, Max-Width, Transition Property, Transition Timing Function, Animation, Fill, Stroke

Full Changelog: v0.8.0...v0.8.1

v0.8.0

21 Oct 20:22
42f0fad
Compare
Choose a tag to compare

Summary

This is a big release with breaking changes. These were necessary to improve the API before the coming v1.0.0 release and to add better plugin support. If you feel like writing a plugin, check out the plugins section in the docs!

Breaking Changes

  • Previously there was a list of prefixes in the tailwind-merge config which was used to match Tailwind prefixes. I removed those and match all prefixes as valid Tailwind prefixes. This is only a breaking change if you use non-Tailwind classes with : in them which look like Tailwind classes after the prefix. tailwind-merge will treat those as Tailwind classes and resolve conflicts incorrectly. (#50)
  • createTailwindMerge
    • If you added custom prefixes to your tailwind-merge config, you can remove them now. If you use TypeScript, you need to remove them. (#50)
    • Doesn't get passed the getDefaultConfig callback anymore. You need to call the exported function getDefaultConfig instead to get the default config. (#42)
    • You probably don't need createTailwindMerge anyway. Use the new and much simpler to use extendTailwindMerge instead. (#49)

New Features

  • Add plugin documentation by @dcastil in #51
  • (Breaking change) Consider all prefixes as valid Tailwind prefixes by @dcastil in #50
  • Add extendTailwindMerge function by @dcastil in #49
  • Add mergeConfigs function by @dcastil in #45
  • (Breaking change) Code-split default config out by @dcastil in #42
  • Enable multiple createConfig functions by @dcastil in #40
  • Add validators to package exports by @dcastil in #38

Bug Fixes

  • Remove unwated side effects when mutating default config by @dcastil in #43
    • Also added the Config type to the package exports

Full Changelog: v0.7.1...v0.8.0

v0.7.1

18 Oct 19:15
f061a6e
Compare
Choose a tag to compare

Bug Fixes

Full Changelog: v0.7.0...v0.7.1

v0.7.0

17 Sep 09:09
0946561
Compare
Choose a tag to compare

New Features

Full Changelog: v0.6.0...v0.7.0

v0.6.0

28 Aug 17:54
aa167ff
Compare
Choose a tag to compare

New Features

  • Allow passing null as argument to twMerge #20 by @dcastil

Bug Fixes

  • Fix merges with important modifier not working when using prefixed classes by @dcastil in #22

Full Changelog: v0.5.2...v0.6.0

v0.5.2

23 Aug 19:32
a95c589
Compare
Choose a tag to compare

Bug Fixes

  • Add support for custom classes like cursor-[grab] by @dcastil in #19
  • Fix incorrect conflicts in Font Variant Numeric classes by @dcastil in #18

Full Changelog: v0.5.1...v0.5.2

v0.5.1

17 Aug 19:28
16a5008
Compare
Choose a tag to compare

Bug Fixes

  • Fix incorrect conflict between ring and shadow by @dcastil in #15
  • Fix not all JIT-enabled pseudo variants working by @dcastil in #14

Other

  • Add CodeQL security analysis to repo by @dcastil in #10

Full Changelog: v0.5.0...v0.5.1