This is a simple Tailwind plugin to expose all of Tailwind's colors, including any custom ones, as custom css properties on the `:root` element. It lets you keep _all_ of your color customizations within the Tailwind configuration, and access the final values programmatically, which isn't possible if you do it the other way around, referencing CSS variables from your Tailwind config. See the [Tailwind Plugins](https://tailwindcss.com/docs/plugins) for more info on plugins. ```js module.exports = { theme: { extend: { colors: { blue: { '100': '#ebf6ff', '200': '#b7ddff', '300': '#85c2ff', '400': '#51a5ff', '500': '#2487ff', '600': '#006aff', '700': '#0755d4', '800': '#164398', '900': '#223867', }, }, }, }, plugins: [ function({ addBase, theme }) { function extractColorVars(colorObj, colorGroup = '') { return Object.keys(colorObj).reduce((vars, colorKey) => { const value = colorObj[colorKey]; const newVars = typeof value === 'string' ? { [`--color${colorGroup}-${colorKey}`]: value } : extractColorVars(value, `-${colorKey}`); return { ...vars, ...newVars }; }, {}); } addBase({ ':root': extractColorVars(theme('colors')), }); }, ], }; ```