Config

The Terrazzo CLI needs a terrazzo.config.js file in your project root for most tasks. Here’s an example file, with all defaults:

import { defineConfig } from "@terrazzo/cli";
import css from "@terrazzo/plugin-css";

export default defineConfig({
  tokens: ["./tokens.json"],
  outDir: "./tokens/",

  plugins: [
    css(), // generate .css files
  ],

  lint: {
    rules: {
      // my lint rules
    },
  },
});
tip

Enabling { "type": "module" } in your package.json is recommended, but if that’s not possible, name your config terrazzo.config.mjs instead.

Lint

See Lint docs.

Ignore

You can ignore certain tokens from all parsing and output at a global level. This is useful if you have tokens that are invalid, or you just don’t want to show up in any plugin.

export default defineConfig({
  ignore: {
    tokens: ["legacy-tokens.*"],
    deprecated: true,
  },
});

Tokens

An array of token IDs, or globs to ignore.

Deprecated

Enable to ignore any token with a $deprecated key.

All Options

NameTypeDescription
tokensstring | string[]The path to your tokens. Can be one file (string), or multiple (string[]).
outDirstringThe directory for output (Tip: add this to .gitignore).
pluginsPlugin[]An array of plugins to use.
lintLintOptionsSee Lint docs.
ignoreIgnoreOptionsIgnore