import { fontFamily } from 'tailwindcss/defaultTheme' import plugin from 'tailwindcss/plugin' import type { Config } from 'tailwindcss' const config: Config = { plugins: [ plugin((api) => { api.addVariant('select', ['&:hover', '&:focus-visible', '&:active']) api.addVariant('group-select', [':merge(.group):hover &', ':merge(.group):focus-visible &', ':merge(.group):active &']) api.addVariant('fullscreen', '&:fullscreen') api.addVariant('group-fullscreen', ':merge(.group):fullscreen &') api.matchVariant( 'group-fullscreen', (value, { modifier }) => [ ':merge(.group):fullscreen &', `:merge(.group\\/${modifier}):fullscreen &` ], { values: { DEFAULT: undefined } } ) api.matchVariant( 'group-select', (value, { modifier }) => [ ':merge(.group):hover &', `:merge(.group\\/${modifier}):hover &`, ':merge(.group):focus-visible &', `:merge(.group\\/${modifier}):focus-visible &`, ':merge(.group):active &', `:merge(.group\\/${modifier}):active &` ], { values: { DEFAULT: undefined } } ) api.addVariant('mobile', '@media (pointer: none), (pointer: coarse)') api.matchUtilities( { 'view-transition': (value) => ({ 'view-transition-name': value }) }, { values: { DEFAULT: 'auto' }, type: 'any' } ) }) ], darkMode: ['class'], content: ['./src/**/*.{html,js,svelte,ts}'], safelist: ['dark'], theme: { container: { center: true, padding: '2rem', screens: { '2xl': '1400px', xs: '480px' } }, extend: { colors: { custom: { DEFAULT: 'hsl(from var(--custom) h s l / )', 50: 'hsl(from var(--custom) h s 95% / )', 100: 'hsl(from var(--custom) h s 90% / )', 200: 'hsl(from var(--custom) h s 80% / )', 300: 'hsl(from var(--custom) h s 70% / )', 400: 'hsl(from var(--custom) h s 60% / )', 500: 'hsl(from var(--custom) h s l / )', 600: 'hsl(from var(--custom) h s 40% / )', 700: 'hsl(from var(--custom) h s 30% / )', 800: 'hsl(from var(--custom) h s 20% / )', 900: 'hsl(from var(--custom) h s 10% / )', 950: 'hsl(from var(--custom) h s 5% / )' }, theme: 'hsl(346.6deg 79.12% 51.18% / )', 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) / )' } }, borderRadius: { lg: 'var(--radius)', md: 'calc(var(--radius) - 2px)', sm: 'calc(var(--radius) - 4px)' }, fontFamily: { sans: [...fontFamily.sans] }, screens: { '2xl': '1400px', xs: '480px' } } } } export default config