Skip to content

Building a Theme Package ​

Final step in the build phase is to package up your CSS files to publish them on a registry or use your theme in a monorepo.

This guide helps you using the theemo build command:

  • Combine multiple CSS files (eg from style dictionary) into one CSS file
  • Apply necessary CSS selectors
  • Write metadata to package.json

Installation ​

Make sure these packages are installed:

sh
pnpm add -D @theemo/cli @theemo/build

Configuration ​

Create a config file theemo.config.js with the build key:

theemo.config.js
js
import { defineConfig } from '@theemo/cli';

export default defineConfig({
  build: {...}
});

Find available configuration options.

Usage ​

Place a script in your package.json and add your theme name:

package.json
json
{
  "name": "your-theme",
  "keywords": ["theemo-theme"],
  "theemo": {
    "name": "your-theme"
  },
  "scripts": {
    "build:theme": "theemo build"
  },
  "devDependencies": {
    "@theemo/cli": "^1.0.0",
    "@theemo/build": "^1.0.0"
  }
}

Run it with:

sh
pnpm build:theme

Check your file and see the output.

Integrations ​

The output from theemo build is one CSS file ready to include in your application. You can either publish your theme package or have it part of your monorepo. From there you can of course inject it manually into your project. Better is to use one of the provided (vite based) integrations to load and manage themes.