Home

Awesome

unocss-custom-properties

Generate CSS custom properties from your Uno CSS theme.

Install

npm i -D unocss-custom-properties
# pnpm add -D unocss-custom-properties

Usage

import { defineConfig } from 'unocss'
import customProperties from 'unocss-custom-properties'

export default defineConfig({
  theme: {
    // ... theme values
  },
  presets: [
    customProperties({
      /* options */
    }),
  ],
})

Options

By default, the custom properties will be generated in the :root selector and added to the Uno CSS default layer.

nametypedefaultdescription
writeFilebooleanfalseIf the generated CSS should be written to a file
filePathstringundefinedThe absolute path of the file to write to, if writeFile is set to true
injectbooleantrueIf the custom properties should be injected to the Uno CSS default layer
prefixstring''The prefix to use for the custom properties
generateOnlystring[]undefinedIf specified, only the corresponding theme keys will be generated as custom properties. This should be an Array of keys available in the theme
theme'user' | 'default'undefinedUsed to specify which theme object to use, either the user specified theme or the whole theme (default) including the other presets

Supported properties

Anything listed in the Uno CSS theme object can generate custom properties as long as theme[property] is a valid record.

⚠️ If the theme is invalid, custom properties will not be generated.

// uno.config.ts

export default defineConfig({
  theme: {
    spacing: {
      1: '0.25rem'
      2: '0.5rem'
    }, // works, this is a valid object
    colors: {
      gray: {
        100: '#f7fafc',
      }
      blue: 'blue'
    }, // works, this is a valid object
    lineHeight: false // will not work, this needs to be a object
  }
})