You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
225 lines
5.8 KiB
225 lines
5.8 KiB
import type { Config } from 'tailwindcss'
|
|
|
|
export default {
|
|
content: [
|
|
'./components/**/*.{js,vue,ts}',
|
|
'./layouts/**/*.vue',
|
|
'./pages/**/*.vue',
|
|
'./plugins/**/*.{js,ts}',
|
|
'./app.vue',
|
|
'./error.vue',
|
|
],
|
|
theme: {
|
|
extend: {
|
|
// experimenta Color Palette
|
|
colors: {
|
|
// shadcn-ui color variables
|
|
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))',
|
|
},
|
|
|
|
// experimenta Brand Colors (kept separate for custom use)
|
|
'experimenta-primary': {
|
|
DEFAULT: '#e6007e',
|
|
hover: '#c2006a',
|
|
light: '#ff4081',
|
|
},
|
|
'experimenta-secondary': {
|
|
DEFAULT: '#e91e63',
|
|
dark: '#c2185b',
|
|
},
|
|
'experimenta-accent': {
|
|
DEFAULT: '#f59d24',
|
|
hover: '#ffb347',
|
|
},
|
|
'experimenta-red': '#E40521',
|
|
|
|
// Purple Variants (Background)
|
|
'experimenta-purple': '#2e1065',
|
|
purple: {
|
|
50: '#f5f3ff',
|
|
100: '#ede9fe',
|
|
200: '#ddd6fe',
|
|
300: '#c4b5fd',
|
|
400: '#a78bfa',
|
|
500: '#8b5cf6',
|
|
600: '#7c3aed',
|
|
700: '#6d28d9',
|
|
800: '#5b21b6',
|
|
900: '#4c1d95',
|
|
950: '#2e1065',
|
|
dark: '#2e1065',
|
|
deeper: '#1a0a3a',
|
|
darkest: '#0f051d',
|
|
},
|
|
|
|
// Semantic Colors
|
|
success: {
|
|
DEFAULT: '#46c74a',
|
|
dark: '#3ba83e',
|
|
},
|
|
error: {
|
|
DEFAULT: '#e53e3e',
|
|
dark: '#c53030',
|
|
},
|
|
warning: {
|
|
DEFAULT: '#f59d24',
|
|
dark: '#dd8a1e',
|
|
},
|
|
info: {
|
|
DEFAULT: '#4299e1',
|
|
dark: '#3182ce',
|
|
},
|
|
},
|
|
|
|
// Font Family
|
|
fontFamily: {
|
|
sans: [
|
|
'Roboto',
|
|
'system-ui',
|
|
'-apple-system',
|
|
'BlinkMacSystemFont',
|
|
'sans-serif',
|
|
],
|
|
},
|
|
|
|
// Font Sizes (Mobile-First with responsive variants)
|
|
fontSize: {
|
|
// H1
|
|
'4xl': ['36px', { lineHeight: '1.2', letterSpacing: '-1px' }],
|
|
// H2
|
|
'3xl': ['30px', { lineHeight: '1.3', letterSpacing: '-0.5px' }],
|
|
// H3
|
|
'2xl': ['24px', { lineHeight: '1.4' }],
|
|
// H4
|
|
xl: ['20px', { lineHeight: '1.4' }],
|
|
// H5
|
|
lg: ['18px', { lineHeight: '1.5', letterSpacing: '0.5px' }],
|
|
// Body
|
|
base: ['16px', { lineHeight: '1.6' }],
|
|
// Small
|
|
sm: ['14px', { lineHeight: '1.6' }],
|
|
// Tiny
|
|
xs: ['12px', { lineHeight: '1.5' }],
|
|
},
|
|
|
|
// Spacing System (8px Grid)
|
|
spacing: {
|
|
'1': '4px',
|
|
'2': '8px',
|
|
'3': '12px',
|
|
'4': '16px',
|
|
'5': '20px',
|
|
'6': '24px',
|
|
'8': '30px',
|
|
'10': '40px',
|
|
'15': '60px',
|
|
'20': '80px',
|
|
'25': '100px', // For status icons
|
|
},
|
|
|
|
// Border Radius
|
|
borderRadius: {
|
|
lg: 'var(--radius)',
|
|
md: 'calc(var(--radius) - 2px)',
|
|
sm: 'calc(var(--radius) - 4px)',
|
|
xl: '20px',
|
|
'2xl': '25px',
|
|
full: '100%',
|
|
},
|
|
|
|
// Max Widths (Containers)
|
|
maxWidth: {
|
|
'container-main': '800px',
|
|
'container-wide': '1200px',
|
|
'container-full': '1760px',
|
|
},
|
|
|
|
// Background Gradients
|
|
backgroundImage: {
|
|
'gradient-primary': 'linear-gradient(135deg, #2e1065 0%, #1a0a3a 50%, #0f051d 100%)',
|
|
'gradient-footer': 'linear-gradient(135deg, #1a0a3a 0%, #0f051d 100%)',
|
|
'gradient-glass':
|
|
'linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05))',
|
|
'gradient-button': 'linear-gradient(to left, #e6007e, #e6007e, #E40521, #e6007e)',
|
|
'gradient-success': 'linear-gradient(90deg, #46c74a 0%, #66d96a 50%, #46c74a 100%)',
|
|
},
|
|
|
|
// Background Sizes
|
|
backgroundSize: {
|
|
'size-300': '300%',
|
|
'size-200': '200%',
|
|
},
|
|
|
|
// Background Positions
|
|
backgroundPosition: {
|
|
left: 'left',
|
|
right: 'right',
|
|
},
|
|
|
|
// Box Shadows
|
|
boxShadow: {
|
|
glass: '0 20px 40px rgba(0, 0, 0, 0.3)',
|
|
'inner-light': 'inset 0 2px 4px rgba(0, 0, 0, 0.2)',
|
|
},
|
|
|
|
// Backdrop Blur
|
|
backdropBlur: {
|
|
xl: '15px',
|
|
},
|
|
|
|
// Animations
|
|
keyframes: {
|
|
pulse: {
|
|
'0%, 100%': { transform: 'scale(1)' },
|
|
'50%': { transform: 'scale(1.1)' },
|
|
},
|
|
shimmer: {
|
|
'0%': { backgroundPosition: '-200% 0' },
|
|
'100%': { backgroundPosition: '200% 0' },
|
|
},
|
|
},
|
|
animation: {
|
|
pulse: 'pulse 2s ease-in-out infinite',
|
|
shimmer: 'shimmer 3s ease-in-out infinite',
|
|
},
|
|
|
|
// Transitions
|
|
transitionDuration: {
|
|
'300': '300ms',
|
|
'1000': '1000ms',
|
|
},
|
|
},
|
|
},
|
|
plugins: [],
|
|
} satisfies Config
|
|
|