const plugin = require('tailwindcss/plugin')

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    "./index.html",
    "./src/**/*.{js,ts,jsx,tsx}",
  ],
  safelist: [
    'grid-cols-1',
    'grid-cols-2',
    'gap-2',
    'gap-4'
  ],
  variants: {
    extend: {
      borderWidth: ['responsive', 'last', 'hover', 'focus'],
    }
  },
  theme: {
    extend: {
      colors: {
        "half-black": "rgba(0, 0, 0, 0.5)",
        "faint-white": "rgba(255, 255, 255, 0.1)",
        "light-text": "rgba(250, 245, 234, 0.5)",
        "m-green": "hsla(163, 70%, 38%, 1)",
        "m-green-dark": "hsla(163, 70%, 28%, 1)",
        "m-blue": "hsla(220, 59%, 52%, 1)",
        "m-blue-dark": "hsla(220, 59%, 42%, 1)",
        "m-red": "hsla(343, 92%, 54%, 1)",
        "m-red-dark": "hsla(343, 92%, 44%, 1)",
        "sidebar-gray": "hsla(222, 15%, 7%, 1)"
      },
      backgroundImage: {
        'fade-to-blue': 'linear-gradient(1.63deg, #0B215B 32.05%, rgba(11, 33, 91, 0) 84.78%)',
        'subtle-fade': 'linear-gradient(180deg, #060A13 0%, #131E39 100%)',
        'richer-fade': 'linear-gradient(180deg, hsla(224, 20%, 8%, 1) 0%, hsla(224, 20%, 15%, 1) 100%)'
      },
      dropShadow: {
        'blue-glow': '0px 0px 32px rgba(11, 33, 91, 0.5)',
      },
      boxShadow: {
        'inner-button': '2px 2px 4px rgba(0, 0, 0, 0.1), inset 2px 2px 4px rgba(255, 255, 255, 0.1), inset -2px -2px 6px rgba(0, 0, 0, 0.2)',
        'fancy-card': '0px 4px 4px rgba(0, 0, 0, 0.1)',
        'above': '0px -4px 10px rgba(0, 0, 0, 0.25)',
      },
      textShadow: {
        'button': '1px 1px 0px rgba(0, 0, 0, 0.4)'
      },
    },
  },
  plugins: [
    // default prefix is "ui"
    require("@kobalte/tailwindcss"),
    plugin(function ({ addUtilities }) {
      const newUtilities = {
        '.safe-top': {
          paddingTop: 'constant(safe-area-inset-top)',
          paddingTop: 'env(safe-area-inset-top)'
        },
        '.safe-left': {
          paddingLeft: 'constant(safe-area-inset-left)',
          paddingLeft: 'env(safe-area-inset-left)'
        },
        '.safe-right': {
          paddingRight: 'constant(safe-area-inset-right)',
          paddingRight: 'env(safe-area-inset-right)'
        },
        '.safe-bottom': {
          paddingBottom: 'constant(safe-area-inset-bottom)',
          paddingBottom: 'env(safe-area-inset-bottom)'
        },
        '.h-screen-safe': {
          height: 'calc(100vh - (env(safe-area-inset-top) + env(safe-area-inset-bottom)))'
        },
        '.min-h-screen-safe': {
          minHeight: 'calc(100vh - (env(safe-area-inset-top) + env(safe-area-inset-bottom)))'
        },
        '.max-h-screen-safe': {
          maxHeight: 'calc(100vh - (env(safe-area-inset-top) + env(safe-area-inset-bottom)))'
        },
        '.disable-scrollbars': {
          scrollbarWidth: 'none',
          '-ms-overflow-style': 'none',
          '&::-webkit-scrollbar': {
            width: '0px',
            background: 'transparent',
            display: 'none'
          },
          '& *::-webkit-scrollbar': {
            width: '0px',
            background: 'transparent',
            display: 'none'
          },
          '& *': {
            scrollbarWidth: 'none',
            '-ms-overflow-style': 'none'
          }
        }
      }
      addUtilities(newUtilities);
    }),
    // Text shadow!
    plugin(function ({ matchUtilities, theme }) {
      matchUtilities(
        {
          'text-shadow': (value) => ({
            textShadow: value,
          }),
        },
        { values: theme('textShadow') }
      )
    }),
  ],
}
