import type { Config } from 'tailwindcss'; export const shades = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900]; export const opacities = [4, 8, 12, 16, 24, 40, 64, 72, 88, 96]; function generateShades(varName: string) { return shades.reduce( (acc, shade) => { acc[shade] = `rgb(var(--${varName}-${shade}) / )`; return acc; }, { DEFAULT: `rgb(var(--${varName}-500) / )` } as Record, ); } function opacity() { return opacities.reduce( (acc, opacity, index) => { acc[index + 1] = `${opacity / 100}`; return acc; }, {} as Record, ); } const config: Config = { darkMode: 'class', content: [ './src/pages/**/*.{js,ts,jsx,tsx,mdx}', './src/components/**/*.{js,ts,jsx,tsx,mdx}', './src/app/**/*.{js,ts,jsx,tsx,mdx}', ], theme: { extend: { colors: { // Dynamic colors matching the customization settings primary: generateShades('primary-color'), dark: 'rgb(var(--dark) / )', light: 'rgb(var(--light) / )', vanta: 'rgb(var(--vanta) / )', metal: 'rgb(var(--metal) / )', yellow: 'rgb(var(--yellow) / )', periwinkle: 'rgb(var(--periwinkle) / )', pomegranate: 'rgb(var(--pomegranate) / )', teal: 'rgb(var(--teal) / )', 'header-background': generateShades('header-background'), 'header-link': generateShades('header-link'), }, }, opacity: opacity(), }, plugins: [], }; export default config;