
Security News
OWASP 2025 Top 10 Adds Software Supply Chain Failures, Ranked Top Community Concern
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.
palette-webpack-plugin
Advanced tools
Generate a JSON file containing your color palette from existing Sass maps and/or Tailwind.
Automatic Color Palette Generation
Built with ❤️
Palette Webpack Plugin is an open source project and completely free to use.
However, the amount of effort needed to maintain and develop new features and products within the Roots ecosystem is not sustainable without proper financial backing. If you have the capability, please consider donating using the links below:
Palette Webpack Plugin allows you to generate a JSON file during the build process containing your color palette from existing Sass maps and/or Tailwind.
While we hope someone may find this useful for other purposes, this plugin and it's output format were specifically built for handling WordPress' Gutenberg editor-color-palette theme support feature.
To begin, you'll need to install palette-webpack-plugin:
$ yarn add palette-webpack-plugin -D
Then add the plugin to your webpack config. Here is an example containing the default values:
webpack.config.js
const PalettePlugin = require('palette-webpack-plugin');
module.exports = {
plugins: [
new PalettePlugin({
output: 'palette.json',
blacklist: ['transparent', 'inherit'],
priority: 'tailwind',
pretty: false,
tailwind: {
config: './tailwind.config.js',
shades: false,
path: 'colors',
},
sass: {
path: 'resources/assets/styles/config',
files: ['variables.scss'],
variables: ['colors'],
},
}),
],
};
If you are using Laravel Mix, you may use the Mix helper like so:
webpack.mix.js
const mix = require('laravel-mix');
require('palette-webpack-plugin/src/mix');
mix.palette({ ... });
The plugin's signature:
webpack.config.js
module.exports = {
plugins: [new PalettePlugin(options)],
};
webpack.mix.js
mix.palette(options);
| Name | Type | Default | Description |
|---|---|---|---|
output | {String} | 'palette.json' | The filename and path relative to the public path. |
blacklist | {Array} | ['transparent, 'inherit'] | Globs to ignore colors. |
priority | {String} | 'tailwind' | Priority when merging non-unique colors while using both Tailwind and Sass. |
pretty | {Boolean} | false | Use pretty formatting when writing the JSON file. |
tailwind | {Object} | { ... } | Set Tailwind options. (See below) |
tailwind.config | {String} | './tailwind.config.js' | Path to the Tailwind configuration file relative to the project root path. |
tailwind.shades | {Object|Array|Boolean} | false | While set to true, every color shade (100-900) will be generated. When set to false, only 500 will be used. Optionally, you may define either an array of shades as strings ['50', '100', '500'] or an object containing shade labels {50: 'Lightest', 100: 'Lighter', 500: ''}. |
tailwind.path | {String} | 'colors' | Path to Tailwind config values for palette colors in dot notation. Uses Tailwind's color palette theme('colors') per default. |
sass | {Object} | { ... } | Set Sass options. (See below) |
sass.path | {String} | 'resources/assets/styles/config' | Path to Sass variable files relative to the project root path. |
sass.files | {Array} | ['variables.scss'] | An array of files to search for the defined Sass variables. |
sass.variables | {Array} | ['colors'] | An array of Sass variables (with or without $) to use for the color palette. |
The general idea is to file_get_contents() and json_decode() the palette and pass it to add_theme_support('editor-color-palette', $palette).
Here is an example of doing that:
/**
* Register the initial theme setup.
*
* @return void
*/
add_action('after_setup_theme', function () {
/**
* Enable theme color palette support
* @link https://developer.wordpress.org/block-editor/developers/themes/theme-support/#block-color-palettes
*/
add_theme_support('editor-color-palette', json_decode(file_get_contents('path/to/palette.json'), true));
}, 20);
When using Sage 10, you can take advantage of the asset() helper to fetch the palette. A good place for doing this would be in setup.php with the other add_theme_support() options.
/**
* Enable theme color palette support
* @link https://developer.wordpress.org/block-editor/developers/themes/theme-support/#block-color-palettes
*/
add_theme_support('editor-color-palette', json_decode(asset('palette.json')->contents(), true));
$black: '#111';
$colors: (
'red': '#f54242',
'black': $black,
'not-actually-black': '#42f596',
'random-gray': '#858c89',
'white': '#fff',
'blue': '#4287f5',
'orange': '#f5b342',
);
would be transformed to:
[
{ "name": "Blue", "slug": "blue", "color": "#4287f5" },
{
"name": "Not Actually Black",
"slug": "not-actually-black",
"color": "#42f596"
},
{ "name": "Orange", "slug": "orange", "color": "#f5b342" },
{ "name": "Red", "slug": "red", "color": "#f54242" },
{ "name": "Black", "slug": "black", "color": "#111" },
{ "name": "Random Gray", "slug": "random-gray", "color": "#858c89" },
{ "name": "White", "slug": "white", "color": "#fff" }
]
Contributions are welcome from everyone. We have contributing guidelines to help you get started.
Keep track of development and community news.
Palette Webpack Plugin is provided under the MIT License.
FAQs
Generate a JSON file containing your color palette from existing Sass maps and/or Tailwind.
The npm package palette-webpack-plugin receives a total of 47 weekly downloads. As such, palette-webpack-plugin popularity was classified as not popular.
We found that palette-webpack-plugin demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.