Package Exports
- flatten-tailwindcss-theme
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (flatten-tailwindcss-theme) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
🔨 flatten-tailwindcss-theme
Flatten TailwindCSS theme objects for plugins to conveniently generate utilities and components.
Install
yarn add flatten-tailwindcss-theme
Or if you use npm
:
npm i --save flatten-tailwindcss-theme
Usage
In a TailwindCSS plugin
const plugin = require("tailwindcss/plugin");
const flatten = require("flatten-tailwindcss-theme");
module.exports = plugin(({ addUtilities, variants, theme, e }) => {
const colors = flatten(theme("colors"));
const utils = Object.entries(colors).reduce(
(res, [key, value]) =>
Object.assign(res, {
[`.${e(`textfill-${key}`)}`]: {
"-webkit-text-fill-color": value,
},
}),
{}
);
addUtilities(utils, variants("textfill"));
});
The above plugin add classes:
textfill-white
,textfill-gray-100
,textfill-gray-200
, ... ,textfill-blue-100
,textfill-blue-200
, ... , etc.
In a generic Node.js task
const flatten = require("flatten-tailwindcss-theme");
const output = flatten({
transparent: "transparent",
current: "currentColor",
black: "#000",
white: "#fff",
gray: {
100: "#f7fafc",
200: "#edf2f7",
300: "#e2e8f0",
400: "#cbd5e0",
500: "#a0aec0",
600: "#718096",
700: "#4a5568",
800: "#2d3748",
900: "#1a202c",
},
red: {
100: "#fff5f5",
200: "#fed7d7",
300: "#feb2b2",
400: "#fc8181",
500: "#f56565",
600: "#e53e3e",
700: "#c53030",
800: "#9b2c2c",
900: "#742a2a",
},
});
console.log(output);
// Output:
{
transparent: 'transparent',
current: 'currentColor',
black: '#000',
white: '#fff',
'gray-100': '#f7fafc',
'gray-200': '#edf2f7',
'gray-300': '#e2e8f0',
'gray-400': '#cbd5e0',
'gray-500': '#a0aec0',
'gray-600': '#718096',
'gray-700': '#4a5568',
'gray-800': '#2d3748',
'gray-900': '#1a202c',
'red-100': '#fff5f5',
'red-200': '#fed7d7',
'red-300': '#feb2b2',
'red-400': '#fc8181',
'red-500': '#f56565',
'red-600': '#e53e3e',
'red-700': '#c53030',
'red-800': '#9b2c2c',
'red-900': '#742a2a'
}
Requirements
Node.js 12+
TailwindCSS 2
Made by @phuctm97.