unocss-merge
Version:
simple utility to merge unocss class names
66 lines (44 loc) • 2.54 kB
Markdown
# unocss-merge
> simple utility to merge unocss class names
[](https://github.com/magicdawn/unocss-merge/actions/workflows/ci.yml)
[](https://codecov.io/gh/magicdawn/unocss-merge)
[](https://www.npmjs.com/package/unocss-merge)
[](https://www.npmjs.com/package/unocss-merge)
[](http://magicdawn.mit-license.org)
## Install
```sh
$ pnpm add unocss-merge
```
## API
```ts
import { unoMerge } from 'unocss-merge'
expect(unoMerge('hidden', 'block')).toBe('block')
expect(unoMerge('hidden', 'block', 'flex')).toBe('flex')
expect(unoMerge('mr-1', 'mr-2')).toBe('mr-2')
expect(unoMerge('mr-1', 'mr-4px')).toBe('mr-4px')
expect(unoMerge('mr-1', 'mr-[-4px]')).toBe('mr-[-4px]')
expect(unoMerge('mr-1', 'mr--4px')).toBe('mr--4px')
expect(unoMerge('cursor-pointer', 'cursor-not-allowed')).toBe('cursor-not-allowed')
```
## Why
- `twMerge` don't support [arbitrary value without brackets](https://github.com/dcastil/tailwind-merge/blob/v3.2.0/src/lib/validators.ts#L1)
```ts
import { twMerge } from 'tailwind-merge' // "tailwind-merge": "^3.2.0",
// size-16px ml-4px cursor-not-allowed size-18px ml-10px
console.log(twMerge('cursor-pointer size-16px ml-4px', 'cursor-not-allowed size-18px ml-10px'))
console.log(twMerge('cursor-pointer', 'cursor-not-allowed')) // `cursor-not-allowed` ✅
console.log(twMerge('size-[16px]', 'size-[18px]')) // `size-[18px]` ✅
console.log(twMerge('ml-[4px]', 'ml-[10px]')) // `ml-[10px]` ✅
// twMerge don't support arbitrary value without brackets
console.log(twMerge('size-16px', 'size-18px')) // `size-16px size-18px` ❌
console.log(twMerge('ml-4px', 'ml-10px')) // `ml-4px ml-10px` ❌
```
## Status: What is **NOT** Supported
- complex features are not supported !!!
- ❌ [variants](https://unocss.dev/config/variants) like `dark:` / `hover:`
- ❌ [Variant group](https://unocss.dev/transformers/variant-group)
- shorthand: for example merge `mx` with `ml / mr` are not supported
## Changelog
See https://github.com/magicdawn/unocss-merge/releases
## License
the MIT License http://magicdawn.mit-license.org