moonshine
/
tailwind.config.js
182 строки · 5.0 Кб
1const plugin = require('tailwindcss/plugin')2
3const vendorSafeList = [4{5// usage: column.blade.php6pattern: /col-span-\d/,7variants: isDevelopment() ? ['xl'] : ['xs', 'sm', 'md', 'lg', 'xl', '2xl'],8},9{10// usage: icons11pattern: /text-(pink|purple)/,12variants: isDevelopment() ? [] : ['xs', 'sm', 'md', 'lg', 'xl', '2xl'],13},14{15// usage: flex align items16pattern: /items-(start|end|center|baseline|stretch)/,17},18{19// usage: flex justify content20pattern: /justify-(normal|start|end|center|between|around|evenly|stretch)/,21},22{23// usage: icons24pattern: /(w-|h-)[1-9]/,25},26]
27const clientSafeList = [28'visible',29'pointer-events-auto',30'opacity-0',31'opacity-100',32{33pattern: /text-dark-\d/,34variants: ['xs', 'sm', 'md', 'lg', 'xl', '2xl'],35},36{37pattern: /gap(-x|-y)-\d/,38variants: ['xs', 'sm', 'md', 'lg', 'xl', '2xl'],39},40{41pattern: /space(-x|-y)-\d/,42variants: ['xs', 'sm', 'md', 'lg', 'xl', '2xl'],43},44]
45
46/** @type {import('tailwindcss').Config} */
47export default {48content: ['./resources/js/**/*.js', './resources/views/**/*.blade.php'],49safelist: isDevelopment() ? vendorSafeList : [...vendorSafeList, ...clientSafeList],50darkMode: 'class',51theme: {52screens: {53xs: '375px',54sm: '640px',55md: '768px',56lg: '1024px',57xl: '1280px',58'2xl': '1536px',59'mobile': {'max': '1023px'},60},61container: {62center: true,63padding: '20px',64},65fontFamily: {66sans: ['Gilroy', 'sans-serif'],67},68fontSize: {69'3xs': ['0.875rem', '1.5em'],70'2xs': ['0.9375rem', '1.5em'],71xs: ['1rem', '1.5em'],72sm: ['1.125rem', '1.5em'],73md: ['1.25rem', '1.5em'],74lg: ['1.625rem', '1.5em'],75xl: ['2rem', '1.25em'],76'2xl': ['3rem', '1.175em'],77'3xl': ['4rem', '1.175em'],78},79extend: {80colors: {81primary: {82DEFAULT: 'rgba(var(--primary), <alpha-value>)',83},84secondary: {85DEFAULT: 'rgba(var(--secondary), <alpha-value>)',86},87body: 'rgba(var(--body), <alpha-value>)',88dark: {89DEFAULT: 'rgba(var(--dark-DEFAULT), <alpha-value>)',9050: 'rgba(var(--dark-50), <alpha-value>)',91100: 'rgba(var(--dark-100), <alpha-value>)',92200: 'rgba(var(--dark-200), <alpha-value>)',93300: 'rgba(var(--dark-300), <alpha-value>)',94400: 'rgba(var(--dark-400), <alpha-value>)',95500: 'rgba(var(--dark-500), <alpha-value>)',96600: 'rgba(var(--dark-600), <alpha-value>)',97700: 'rgba(var(--dark-700), <alpha-value>)',98800: 'rgba(var(--dark-800), <alpha-value>)',99900: 'rgba(var(--dark-900), <alpha-value>)',100},101info: {102bg: 'rgba(var(--info-bg), <alpha-value>)',103text: 'rgba(var(--info-text), <alpha-value>)',104},105success: {106bg: 'rgba(var(--success-bg), <alpha-value>)',107text: 'rgba(var(--success-text), <alpha-value>)',108},109warning: {110bg: 'rgba(var(--warning-bg), <alpha-value>)',111text: 'rgba(var(--warning-text), <alpha-value>)',112},113error: {114bg: 'rgba(var(--error-bg), <alpha-value>)',115text: 'rgba(var(--error-text), <alpha-value>)',116},117menu: {118link: 'rgba(var(--menu-link-color, 255, 255, 255), <alpha-value>)',119hover: 'rgba(var(--menu-hover-color, var(--secondary)), <alpha-value>)',120active: {121bg: 'rgba(var(--menu-active-bg, var(--primary)), <alpha-value>)',122color: 'rgba(var(--menu-active-color, 255, 255, 255), <alpha-value>)',123},124current: {125bg: 'rgba(var(--menu-current-bg, 248, 250, 252), <alpha-value>)',126color: 'rgba(var(--menu-current-color, 0, 0, 0), <alpha-value>)',127},128dropdown: {129bg: 'rgba(var(--menu-dropdown-bg, var(--dark-600)), <alpha-value>)',130},131},132},133borderWidth: {134'3': '3px',135},136transitionProperty: {137colors:138'color, background-color, border-color, text-decoration-color, box-shadow, fill, stroke',139},140transitionDuration: {141DEFAULT: '350ms',142},143zIndex: {144'1': '1',145'2': '2',146'3': '3',147'4': '4',148'5': '5',149modal: '1070',150offcanvas: '1050',151toast: '1500',152},153opacity: {154'15': '.15',155},156keyframes: {157wiggle: {158'0%, 100%': {transform: 'rotate(-15deg)'},159'50%': {transform: 'rotate(15deg)'},160},161},162animation: {163wiggle: 'wiggle 2.5s ease-in-out infinite',164},165},166},167variants: {168extend: {},169},170plugins: [171require('@tailwindcss/forms'),172require('@tailwindcss/typography'),173require('@tailwindcss/aspect-ratio'),174plugin(function ({addVariant}) {175addVariant('current', '&._is-active')176}),177],178}
179
180function isDevelopment() {181return process.env.NODE_ENV === 'development'182}
183