/** @type {import('tailwindcss').Config} */
const plugin = require('tailwindcss/plugin');
const defaultTheme = require('tailwindcss/defaultTheme');

module.exports = {
    content: ['./resources/**/*.{edge,js,ts,jsx,tsx,vue}'],
    darkMode: 'class', // or 'media' or 'class'
    theme: {
        asideScrollbars: {
            light: 'light',
            gray: 'gray',
        },
        extend: {
            colors: {
                'primary': '#22C55E',
                'primary-dark': '#DCFCE7',
            },
            fontFamily: {
                sans: ['Inter', ...defaultTheme.fontFamily.sans],
                logo: ['Archivo Black', ...defaultTheme.fontFamily.sans],
            },
            zIndex: {
                '-1': '-1',
            },
            flexGrow: {
                5: '5',
            },
            maxHeight: {
                'screen-menu': 'calc(100vh - 3.5rem)',
                'modal': 'calc(100vh - 160px)',
            },
            transitionProperty: {
                position: 'right, left, top, bottom, margin, padding',
                textColor: 'color',
            },
            keyframes: {
                'fade-out': {
                    from: { opacity: 1 },
                    to: { opacity: 0 },
                },
                'fade-in': {
                    from: { opacity: 0 },
                    to: { opacity: 1 },
                },
            },
            animation: {
                'fade-out': 'fade-out 250ms ease-in-out',
                'fade-in': 'fade-in 250ms ease-in-out',
            },
        }, //extend
    }, // theme
    plugins: [
        require('@tailwindcss/forms'),
        plugin(function ({ matchUtilities, theme }) {
            matchUtilities(
                {
                    'aside-scrollbars': (value) => {
                        const track = value === 'light' ? '100' : '900';
                        const thumb = value === 'light' ? '300' : '600';
                        const color = value === 'light' ? 'gray' : value;

                        return {
                            'scrollbarWidth': 'thin',
                            'scrollbarColor': `${theme(`colors.${color}.${thumb}`)} ${theme(
                                `colors.${color}.${track}`,
                            )}`,
                            '&::-webkit-scrollbar': {
                                width: '8px',
                                height: '8px',
                            },
                            '&::-webkit-scrollbar-track': {
                                backgroundColor: theme(`colors.${color}.${track}`),
                            },
                            '&::-webkit-scrollbar-thumb': {
                                borderRadius: '0.25rem',
                                backgroundColor: theme(`colors.${color}.${thumb}`),
                            },
                        };
                    },
                },
                { values: theme('asideScrollbars') },
            );
        }),
        // As of Tailwind CSS v3.3, the `@tailwindcss/line-clamp` plugin is now included by default
        // require('@tailwindcss/line-clamp'),
    ],
};
