var colors = require('tailwindcss/colors'); var plugin = require('tailwindcss/plugin'); var types = ['primary', 'secondary', 'neutral', 'warning', 'success', 'error']; function generateSafeList(types) { var safelist = []; types.forEach(type => { safelist.push( ...[ `text-on-${type}`, `dark:text-on-${type}-dark`, `text-${type}`, `dark:text-${type}-dark`, `hover:text-${type}-variant`, `dark:hover:text-${type}-variant-dark`, `bg-${type}`, `bg-${type}/25`, `from-${type}-variant`, `to-${type}`, `dark:bg-${type}-dark`, `dark:bg-${type}-dark/25`, `hover:bg-${type}-variant`, `hover:bg-${type}-variant/25`, `hover:dark:bg-${type}-variant-dark`, `border-${type}`, `dark:border-${type}-dark`, `hover:border-${type}-variant`, `dark:hover:border-${type}-variant-dark`, ] ); }); return safelist; } /** @type {import('tailwindcss').Config} */ module.exports = { darkMode: 'selector', content: ['./src/**/*.{html,js,ts}'], safelist: generateSafeList(types), theme: { extend: { aspectRatio: { '16/9': '16 / 9', '4/5': '4 / 5', '1/1': '1 / 1', }, fontFamily: { primary: 'var(--font-primary)', title: 'var(--font-title)', logo: 'var(--font-logo)', }, fontWeight: { thin: '100', extralight: '200', light: '300', normal: '400', medium: '500', semibold: '600', bold: '700', extrabold: '800', black: '900', }, colors: { ...colors, primary: { "50": 'rgb(var(--primary-50) / )', "100": 'rgb(var(--primary-100) / )', "200": 'rgb(var(--primary-200) / )', "300": 'rgb(var(--primary-300) / )', "400": 'rgb(var(--primary-400) / )', "500": 'rgb(var(--primary-500) / )', "600": 'rgb(var(--primary-600) / )', "700": 'rgb(var(--primary-700) / )', "800": 'rgb(var(--primary-800) / )', "900": 'rgb(var(--primary-900) / )', "950": 'rgb(var(--primary-950) / )', DEFAULT: 'rgb(var(--primary-400) / )', dark: 'rgb(var(--primary-800) / )', container: { DEFAULT: 'rgb(var(--primary-200) / )', dark: 'rgb(var(--primary-800) / )', }, variant: { DEFAULT: 'rgb(var(--primary-600) / )', dark: 'rgb(var(--primary-700) / )', }, }, secondary: { "50": 'rgb(var(--primary-50) / )', "100": 'rgb(var(--secondary-100) / )', "200": 'rgb(var(--secondary-200) / )', "300": 'rgb(var(--secondary-300) / )', "400": 'rgb(var(--secondary-400) / )', "500": 'rgb(var(--secondary-500) / )', "600": 'rgb(var(--secondary-600) / )', "700": 'rgb(var(--secondary-700) / )', "800": 'rgb(var(--secondary-800) / )', "900": 'rgb(var(--secondary-900) / )', "950": 'rgb(var(--secondary-950) / )', DEFAULT: 'rgb(var(--secondary-300) / )', dark: 'rgb(var(--secondary-800) / )', container: { DEFAULT: 'rgb(var(--secondary-100) / )', dark: 'rgb(var(--secondary-800) / )', }, variant: { DEFAULT: 'rgb(var(--secondary-500) / )', dark: 'rgb(var(--secondary-700) / )', }, }, neutral: { "50": 'rgb(var(--monochrome-50) / )', "100": 'rgb(var(--monochrome-100) / )', "200": 'rgb(var(--monochrome-200) / )', "300": 'rgb(var(--monochrome-300) / )', "400": 'rgb(var(--monochrome-400) / )', "500": 'rgb(var(--monochrome-500) / )', "600": 'rgb(var(--monochrome-600) / )', "700": 'rgb(var(--monochrome-700) / )', "800": 'rgb(var(--monochrome-800) / )', "900": 'rgb(var(--monochrome-900) / )', "950": 'rgb(var(--monochrome-950) / )', DEFAULT: 'rgb(var(--monochrome-400) / )', dark: 'rgb(var(--monochrome-700) / )', variant: { DEFAULT: 'rgb(var(--monochrome-500) / )', dark: 'rgb(var(--monochrome-500) / )', }, }, background: { DEFAULT: 'rgb(var(--primary-50) / )', dark: 'rgb(var(--primary-950) / )', }, surface: { DEFAULT: 'rgb(var(--primary-100) / )', dark: 'rgb(var(--primary-900) / )', variant: { DEFAULT: 'rgb(var(--primary-400) / )', dark: 'rgb(var(--primary-700) / )', }, }, success: { DEFAULT: colors.green[400], dark: colors.green[600], variant: { DEFAULT: colors.green[500], dark: colors.green[500], }, }, warning: { DEFAULT: colors.amber[400], dark: colors.amber[600], variant: { DEFAULT: colors.amber[500], dark: colors.amber[500], }, }, error: { DEFAULT: colors.red[400], dark: colors.red[600], variant: { DEFAULT: colors.red[500], dark: colors.red[500], }, }, on: { primary: { DEFAULT: 'rgb(var(--primary-950) / )', dark: 'rgb(var(--primary-50) / )', container: { DEFAULT: 'rgb(var(--primary-900) / )', dark: 'rgb(var(--primary-50) / )', }, }, secondary: { DEFAULT: 'rgb(var(--secondary-950) / )', dark: 'rgb(var(--secondary-50) / )', container: { DEFAULT: 'rgb(var(--secondary-900) / )', dark: 'rgb(var(--secondary-50) / )', }, }, neutral: { DEFAULT: 'rgb(var(--monochrome-950) / )', dark: 'rgb(var(--monochrome-10) / )', variant: { DEFAULT: 'rgb(var(--monochrome-800) / )', dark: 'rgb(var(--monochrome-50) / )', }, }, background: { DEFAULT: 'rgb(var(--monochrome-950) / )', dark: 'rgb(var(--monochrome-10) / )', }, surface: { DEFAULT: 'rgb(var(--monochrome-950) / )', dark: 'rgb(var(--monochrome-100) / )', variant: { DEFAULT: 'rgb(var(--monochrome-700) / )', dark: 'rgb(var(--monochrome-200) / )', }, }, success: { DEFAULT: colors.green[950], dark: colors.green[50], variant: { DEFAULT: colors.green[400], dark: colors.green[600], }, }, warning: { DEFAULT: colors.amber[950], dark: colors.amber[50], variant: { DEFAULT: colors.amber[400], dark: colors.amber[600], }, }, error: { DEFAULT: colors.red[950], dark: colors.red[50], variant: { DEFAULT: colors.red[400], dark: colors.red[600], }, }, }, }, }, }, plugins: [ plugin(function ({ addBase, theme }) { addBase({ h1: { fontSize: theme('fontSize.3xl'), fontWeight: theme('fontWeight.bold') }, h2: { fontSize: theme('fontSize.2xl'), fontWeight: theme('fontWeight.bold') }, h3: { fontSize: theme('fontSize.xl'), fontWeight: theme('fontWeight.semibold') }, h4: { fontSize: theme('fontSize.lg'), fontWeight: theme('fontWeight.semibold') }, }); }), ], };