Skip to content

unocss-community/unocss-transformer-alias

Folders and files

NameName
Last commit message
Last commit date

Latest commit

efc877f Â· Jul 4, 2024

History

42 Commits
Jul 4, 2024
Dec 20, 2023
Jul 4, 2024
Jul 4, 2024
Jul 4, 2024
Jul 4, 2024
Apr 29, 2023
Dec 20, 2023
Apr 29, 2023
Jul 4, 2024
Apr 29, 2023
Jul 4, 2024
Jul 4, 2024
Jul 4, 2024
May 2, 2023
Dec 20, 2023

Repository files navigation

unocss-transformer-alias

🌈 Transform alias for UnoCSS shortcuts.

npm version npm downloads License

Install

pnpm i -D unocss-transformer-alias
// uno.config.ts
import { defineConfig } from 'unocss'
import transformerAlias from 'unocss-transformer-alias'

export default defineConfig({
  // ...
  shortcuts: [
    ['btn', 'px-2 py-3 bg-blue-500 text-white rounded'],
    [/^btn-(.*)$/, ([, c]) => `btn bg-${c}4:10 text-${c}5 rounded`],
  ],
  transformers: [
    transformerAlias(),
  ],
})

Usage

<div *btn />
<div class="*btn-red" />
<div class="+btn-blue" />

Will be transformed to:

<div px-2 py-3 bg-blue-500 text-white rounded>
<div class="px-2 py-3 bg-blue-500 text-white rounded bg-red4:10 text-red5 rounded" />
<div class="btn-blue px-2 py-3 bg-blue-500 text-white rounded bg-blue4:10 text-blue5 rounded" />

Options

I suggest you to use special prefixes to avoid UnoCSS incorrectly transforming your code.

transformerAlias({
  /**
   * Prefix for your alias.
   *
   * @default "*"
   */
  prefix?: string

  /**
   * Prefix for your alias and keep the original class.
   *
   * @default '+'
   */
  keep?: string | KeepOption
})

interface KeepOption {
  /**
   * keep prefix for your alias.
   *
   * @default '+'
   */
  prefix: string
  /**
   * Decedide whether to put it in `blocklist`.
   *
   * @default true
   */
  block: boolean
}

About

License

MIT License © 2023-PRESENT Chris