var colors = require('tailwindcss/colors'); var plugin = require('tailwindcss/plugin'); var types = ['primary', 'secondary', 'tertiary', 'warning', 'success', 'error']; function generateSafeList(types) { var safelist = []; types.forEach(type => { safelist.push( ...[ `text-on-${type}`, `dark:text-on-${type}-dark`, `hover:text-${type}-dark`, `dark:hover:text-${type}`, `bg-${type}`, `from-${type}-variant`, `to-${type}`, `dark:bg-${type}-dark`, `hover:bg-${type}-variant`, `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)', }, colors: { ...colors, primary: { DEFAULT: 'rgb(var(--primary-400) / )', dark: 'rgb(var(--primary-700) / )', container: { DEFAULT: 'rgb(var(--primary-200) / )', dark: 'rgb(var(--primary-800) / )', }, variant: { DEFAULT: 'rgb(var(--primary-600) / )', dark: 'rgb(var(--primary-500) / )', }, 50: 'rgb(var(--primary-50) / )', 100: 'rgb(var(--primary-100) / )', 150: 'rgb(var(--primary-150) / )', 200: 'rgb(var(--primary-200) / )', 250: 'rgb(var(--primary-250) / )', 300: 'rgb(var(--primary-300) / )', 350: 'rgb(var(--primary-350) / )', 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) / )', }, secondary: { DEFAULT: 'rgb(var(--secondary-400) / )', dark: 'rgb(var(--secondary-700) / )', container: { DEFAULT: 'rgb(var(--secondary-200) / )', dark: 'rgb(var(--secondary-800) / )', }, variant: { DEFAULT: 'rgb(var(--secondary-600) / )', dark: 'rgb(var(--secondary-500) / )', }, 50: 'rgb(var(--secondary-50) / )', 100: 'rgb(var(--secondary-100) / )', 150: 'rgb(var(--secondary-150) / )', 200: 'rgb(var(--secondary-200) / )', 250: 'rgb(var(--secondary-250) / )', 300: 'rgb(var(--secondary-300) / )', 350: 'rgb(var(--secondary-350) / )', 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) / )', }, tertiary: { DEFAULT: 'rgb(var(--tertiary-400) / )', dark: 'rgb(var(--tertiary-700) / )', container: { DEFAULT: 'rgb(var(--tertiary-200) / )', dark: 'rgb(var(--tertiary-800) / )', }, variant: { DEFAULT: 'rgb(var(--tertiary-600) / )', dark: 'rgb(var(--tertiary-500) / )', }, 50: 'rgb(var(--tertiary-50) / )', 100: 'rgb(var(--tertiary-100) / )', 150: 'rgb(var(--tertiary-150) / )', 200: 'rgb(var(--tertiary-200) / )', 250: 'rgb(var(--tertiary-250) / )', 300: 'rgb(var(--tertiary-300) / )', 350: 'rgb(var(--tertiary-350) / )', 400: 'rgb(var(--tertiary-400) / )', 500: 'rgb(var(--tertiary-500) / )', 600: 'rgb(var(--tertiary-600) / )', 700: 'rgb(var(--tertiary-700) / )', 800: 'rgb(var(--tertiary-800) / )', 900: 'rgb(var(--tertiary-900) / )', 950: 'rgb(var(--tertiary-950) / )', }, neutral: { 50: 'rgb(var(--neutral-50) / )', 100: 'rgb(var(--neutral-100) / )', 150: 'rgb(var(--neutral-150) / )', 200: 'rgb(var(--neutral-200) / )', 250: 'rgb(var(--neutral-250) / )', 300: 'rgb(var(--neutral-300) / )', 350: 'rgb(var(--neutral-350) / )', 400: 'rgb(var(--neutral-400) / )', 500: 'rgb(var(--neutral-500) / )', 600: 'rgb(var(--neutral-600) / )', 700: 'rgb(var(--neutral-700) / )', 800: 'rgb(var(--neutral-800) / )', 900: 'rgb(var(--neutral-900) / )', 950: 'rgb(var(--neutral-950) / )', }, 'neutral-variant': { 50: 'rgb(var(--neutral-variant-50) / )', 100: 'rgb(var(--neutral-variant-100) / )', 150: 'rgb(var(--neutral-variant-150) / )', 200: 'rgb(var(--neutral-variant-200) / )', 250: 'rgb(var(--neutral-variant-250) / )', 300: 'rgb(var(--neutral-variant-300) / )', 350: 'rgb(var(--neutral-variant-350) / )', 400: 'rgb(var(--neutral-variant-400) / )', 500: 'rgb(var(--neutral-variant-500) / )', 600: 'rgb(var(--neutral-variant-600) / )', 700: 'rgb(var(--neutral-variant-700) / )', 800: 'rgb(var(--neutral-variant-800) / )', 900: 'rgb(var(--neutral-variant-900) / )', 950: 'rgb(var(--neutral-variant-950) / )', }, background: { DEFAULT: 'rgb(var(--neutral-50) / )', dark: 'rgb(var(--neutral-variant-950) / )', }, surface: { DEFAULT: 'rgb(var(--primary-50) / )', dark: 'rgb(var(--primary-950) / )', variant: { DEFAULT: 'rgb(var(--neutral-variant-50) / )', dark: 'rgb(var(--neutral-variant-800) / )', }, }, outline: { DEFAULT: 'rgb(var(--neutral-variant-600) / )', dark: 'rgb(var(--neutral-variant-500) / )', variant: { DEFAULT: 'rgb(var(--neutral-variant-300) / )', dark: 'rgb(var(--neutral-variant-800) / )', }, }, success: { DEFAULT: colors.green[400], dark: colors.green[700], variant: { DEFAULT: colors.green[500], dark: colors.green[600], }, }, warning: { DEFAULT: colors.amber[400], dark: colors.amber[700], variant: { DEFAULT: colors.amber[500], dark: colors.amber[600], }, }, error: { DEFAULT: colors.red[400], dark: colors.red[700], variant: { DEFAULT: colors.red[500], dark: colors.red[600], }, }, on: { primary: { DEFAULT: 'rgb(var(--neutral-variant-950) / )', dark: 'rgb(var(--neutral-variant-50) / )', container: { DEFAULT: 'rgb(var(--neutral-variant-900) / )', dark: 'rgb(var(--neutral-variant-50) / )', }, variant: { DEFAULT: 'rgb(var(--neutral-variant-200) / )', dark: 'rgb(var(--neutral-variant-100) / )', }, }, secondary: { DEFAULT: 'rgb(var(--neutral-variant-950) / )', dark: 'rgb(var(--neutral-variant-50) / )', container: { DEFAULT: 'rgb(var(--secondary-900) / )', dark: 'rgb(var(--secondary-50) / )', }, variant: { DEFAULT: 'rgb(var(--secondary-200) / )', dark: 'rgb(var(--secondary-100) / )', }, }, tertiary: { DEFAULT: 'rgb(var(--neutral-variant-950) / )', dark: 'rgb(var(--neutral-variant-50) / )', container: { DEFAULT: 'rgb(var(--tertiary-900) / )', dark: 'rgb(var(--tertiary-50) / )', }, variant: { DEFAULT: 'rgb(var(--tertiary-200) / )', dark: 'rgb(var(--tertiary-100) / )', }, }, background: { DEFAULT: 'rgb(var(--neutral-900) / )', dark: 'rgb(var(--neutral-variant-100) / )', }, surface: { DEFAULT: 'rgb(var(--neutral-900) / )', dark: 'rgb(var(--neutral-variant-100) / )', variant: { DEFAULT: 'rgb(var(--neutral-variant-800) / )', dark: 'rgb(var(--neutral-variant-300) / )', }, }, success: { DEFAULT: colors.green[950], dark: colors.green[50], variant: { DEFAULT: colors.green[800], dark: colors.green[300], }, }, warning: { DEFAULT: colors.amber[950], dark: colors.amber[50], variant: { DEFAULT: colors.amber[300], dark: colors.amber[800], }, }, error: { DEFAULT: colors.red[950], dark: colors.red[50], variant: { DEFAULT: colors.red[300], dark: colors.red[800], }, }, }, }, }, }, 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') }, }); }), ], };