/** @type {import('tailwindcss').Config} */ const plugin = require("tailwindcss/plugin"); module.exports = { darkMode: 'class', content: [ './templates/**/*.html', './assets/css/src/**/*.css', ], theme: { extend: { colors: { primary: '#4f46e5', // Vibrant indigo secondary: '#e11d48', // Vibrant rose accent: '#8b5cf6' }, fontFamily: { 'sans': ['Poppins', 'sans-serif'], }, }, }, plugins: [ require("@tailwindcss/typography"), require("@tailwindcss/forms"), require("@tailwindcss/aspect-ratio"), require("@tailwindcss/container-queries"), plugin(function ({ addComponents }) { addComponents({ '.auth-card': { '@apply w-full max-w-md p-8 mx-auto border shadow-xl bg-white/90 dark:bg-gray-800/90 rounded-2xl backdrop-blur-sm border-gray-200/50 dark:border-gray-700/50': {}, }, '.auth-title': { '@apply mb-8 text-2xl font-bold text-center text-transparent bg-gradient-to-r from-primary to-secondary bg-clip-text': {}, }, '.auth-divider': { '@apply relative my-6 text-center': {}, '&::before, &::after': { '@apply absolute top-1/2 w-1/3 border-t border-gray-200 dark:border-gray-700 content-[\'\']': {}, }, '&::before': { '@apply left-0': {}, }, '&::after': { '@apply right-0': {}, }, 'span': { '@apply px-4 text-sm text-gray-500 dark:text-gray-400 bg-white/90 dark:bg-gray-800/90': {}, }, }, '.btn-social': { '@apply w-full flex items-center justify-center px-6 py-3 border border-gray-200 dark:border-gray-700 rounded-lg shadow-sm text-sm font-medium text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary/50 transform hover:scale-[1.02] transition-all mb-3': {}, }, '.btn-discord': { '@apply bg-[#5865F2] hover:bg-[#4752C4] text-white border-transparent shadow-[#5865F2]/20': {}, }, '.btn-google': { '@apply text-gray-700 bg-white border-gray-200 hover:bg-gray-50 shadow-gray-200/50 dark:shadow-gray-900/50': {}, }, '.password-requirements': { '@apply p-4 rounded-lg bg-gray-50/80 dark:bg-gray-800/80 border border-gray-200/50 dark:border-gray-700/50': {}, 'ul': { '@apply space-y-2': {}, }, 'li': { '@apply flex items-center space-x-2 text-sm transition-colors duration-200': {}, 'i': { '@apply text-xs transition-all duration-200': {}, }, '&.invalid': { '@apply text-gray-500 dark:text-gray-400': {}, 'i': { '@apply text-gray-400 dark:text-gray-500': {}, }, }, '&.valid': { '@apply text-green-600 dark:text-green-400': {}, 'i': { '@apply text-green-500 dark:text-green-400': {}, }, }, }, }, '.form-input': { '@apply w-full px-4 py-3 text-gray-900 transition-all border border-gray-200 rounded-lg shadow-sm dark:border-gray-700 bg-white/70 dark:bg-gray-800/70 backdrop-blur-sm dark:text-white focus:ring-2 focus:ring-primary/50 focus:border-primary': {}, }, '.form-label': { '@apply block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1.5': {}, }, '.form-error': { '@apply mt-2 text-sm text-red-600 dark:text-red-400': {}, }, '.alert': { '@apply p-4 mb-4 shadow-lg rounded-xl backdrop-blur-sm': {}, }, '.alert-error': { '@apply text-red-800 border border-red-200 bg-red-100/90 dark:bg-red-800/30 dark:text-red-100 dark:border-red-700': {}, }, }); }), plugin(function ({ addVariant }) { addVariant("htmx-settling", ["&.htmx-settling", ".htmx-settling &"]); addVariant("htmx-request", ["&.htmx-request", ".htmx-request &"]); addVariant("htmx-swapping", ["&.htmx-swapping", ".htmx-swapping &"]); addVariant("htmx-added", ["&.htmx-added", ".htmx-added &"]); }), ], }