Multi-layer theming

Pinceau supports loading multiple tokens.config.ts files from multiple sources.

That allows multiple usages, like creating a preset for your themes and sharing it accross different projects.

Loading another tokens.config file

Layers configuration lives under configLayers key in options.

import { defineConfig } from 'vite'
import Pinceau from 'pinceau/vite'
export default defineConfig({
plugins: [
configLayers: [
// Layer cwd
cwd: resolve(__dirname, './theme'),
// Custom configFileName at layer level
configFileName: 'tokens.config',

Nuxt extends feature support

When using extends key in nuxt.config file, every layer will be pushed into configLayers by default.

That can be disabled using extends option.

export default defineNuxtConfig({
modules: ['pinceau/nuxt'],
pinceau: {
extends: false