const { fontFamily } = require("tailwindcss/defaultTheme"); /** @type {import('tailwindcss').Config} */ const colors = require("tailwindcss/colors"); // Correctly import colors module.exports = { darkMode: ["class"], content: [ "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", "./src/components/**/*.{js,ts,jsx,tsx,mdx}", "./src/app/**/*.{js,ts,jsx,tsx,mdx}", // Path to Tremor module "./node_modules/@tremor/**/*.{js,ts,jsx,tsx}", ], theme: { transparent: "transparent", current: "currentColor", container: { center: true, padding: "2rem", screens: { "2xl": "1400px", }, }, extend: { backgroundImage: { "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", "gradient-conic": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", }, colors: { // Tremor light mode tremor: { brand: { faint: colors.blue[50], muted: colors.blue[200], subtle: colors.blue[400], DEFAULT: colors.blue[500], emphasis: colors.blue[700], inverted: colors.white, }, background: { muted: colors.gray[50], subtle: colors.gray[100], DEFAULT: colors.white, emphasis: colors.gray[700], }, border: { DEFAULT: colors.gray[200], }, ring: { DEFAULT: colors.gray[200], }, content: { subtle: colors.gray[400], DEFAULT: colors.gray[500], emphasis: colors.gray[700], strong: colors.gray[900], inverted: colors.white, }, }, // Tremor dark mode // dark mode "dark-tremor": { brand: { faint: "#0B1229", muted: colors.blue[950], subtle: colors.blue[800], DEFAULT: colors.blue[500], emphasis: colors.blue[400], inverted: colors.blue[950], }, background: { muted: "#131A2B", subtle: colors.gray[800], DEFAULT: colors.gray[900], emphasis: colors.gray[300], }, border: { DEFAULT: colors.gray[800], }, ring: { DEFAULT: colors.gray[800], }, content: { subtle: colors.gray[600], DEFAULT: colors.gray[500], emphasis: colors.gray[200], strong: colors.gray[50], inverted: colors.gray[950], }, }, epc_a: "#117d58", epc_b: "#2da55c", epc_c: "#8dbd40", epc_d: "#f7cd14", epc_e: "#f3a96a", epc_f: "#ef8026", epc_g: "#e41e3b", brandblue: "#14163d", hoverblue: "#3e4073", brandtan: "#d3b488", hovertan: "#947750", brandgold: "#f1bb06", hovergold: "#c79d12", brandbrown: "#3d1e05", brandmidblue: "#3943b7", brandlightblue: "#00a9f4", border: "hsl(var(--border))", input: "hsl(var(--input))", ring: "hsl(var(--ring))", background: "hsl(var(--background))", foreground: "hsl(var(--foreground))", primary: { DEFAULT: "hsl(var(--primary))", foreground: "hsl(var(--primary-foreground))", }, secondary: { DEFAULT: "hsl(var(--secondary))", foreground: "hsl(var(--secondary-foreground))", }, destructive: { DEFAULT: "hsl(var(--destructive))", foreground: "hsl(var(--destructive-foreground))", }, muted: { DEFAULT: "hsl(var(--muted))", foreground: "hsl(var(--muted-foreground))", }, accent: { DEFAULT: "hsl(var(--accent))", foreground: "hsl(var(--accent-foreground))", }, popover: { DEFAULT: "hsl(var(--popover))", foreground: "hsl(var(--popover-foreground))", }, card: { DEFAULT: "hsl(var(--card))", foreground: "hsl(var(--card-foreground))", }, }, textColor: { brandblue: "#14163d", hoverblue: "#3e4073", brandtan: "#d3b488", hovertan: "#947750", brandbrown: "#3d1e05", brandmidblue: "#3943b7", brandlightblue: "#00a9f4", }, borderRadius: { lg: `var(--radius)`, md: `calc(var(--radius) - 2px)`, sm: "calc(var(--radius) - 4px)", }, fontFamily: { sans: ["var(--font-sans)", ...fontFamily.sans], }, keyframes: { "accordion-down": { from: { height: 0 }, to: { height: "var(--radix-accordion-content-height)" }, }, "accordion-up": { from: { height: "var(--radix-accordion-content-height)" }, to: { height: 0 }, }, }, animation: { "accordion-down": "accordion-down 0.2s ease-out", "accordion-up": "accordion-up 0.2s ease-out", }, maxWidth: { "8xl": "90rem", }, boxShadow: { // light "tremor-input": "0 1px 2px 0 rgb(0 0 0 / 0.05)", "tremor-card": "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)", "tremor-dropdown": "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)", // dark "dark-tremor-input": "0 1px 2px 0 rgb(0 0 0 / 0.05)", "dark-tremor-card": "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)", "dark-tremor-dropdown": "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)", }, borderRadius: { "tremor-small": "0.375rem", "tremor-default": "0.5rem", "tremor-full": "9999px", }, fontSize: { "tremor-label": ["0.75rem", { lineHeight: "1rem" }], "tremor-default": ["0.875rem", { lineHeight: "1.25rem" }], "tremor-title": ["1.125rem", { lineHeight: "1.75rem" }], "tremor-metric": ["1.875rem", { lineHeight: "2.25rem" }], }, }, }, variants: { extend: { visibility: ["group-hover"], }, }, safelist: [ { pattern: /^(bg-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/, variants: ["hover", "ui-selected"], }, { pattern: /^(text-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/, variants: ["hover", "ui-selected"], }, { pattern: /^(border-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/, variants: ["hover", "ui-selected"], }, { pattern: /^(ring-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/, }, { pattern: /^(stroke-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/, }, { pattern: /^(fill-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/, }, // This enables the EPC colours for tremor. They're listed from EPC G -> A ...[ "[#e41e3b]", "[#ef8026]", "[#f3a96a]", "[#f7cd14]", "[#8dbd40]", "[#2da55c]", "[#117d58]", ].flatMap((customColor) => [ `bg-${customColor}`, `border-${customColor}`, `hover:bg-${customColor}`, `hover:border-${customColor}`, `hover:text-${customColor}`, `fill-${customColor}`, `ring-${customColor}`, `stroke-${customColor}`, `text-${customColor}`, `ui-selected:bg-${customColor}`, `ui-selected:border-${customColor}`, `ui-selected:text-${customColor}`, ]), ], plugins: [ function ({ addVariant }) { addVariant("important", ({ container }) => { container.walkRules((rule) => { rule.selector = `.\\!${rule.selector.slice(1)}`; rule.walkDecls((decl) => { decl.important = true; }); }); }); }, require("@headlessui/tailwindcss"), require("@tailwindcss/forms"), ], };