Files
Project_Velocity/app/tailwind.config.js

168 lines
5.5 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
module.exports = {
darkMode: ["class"],
content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'],
theme: {
extend: {
colors: {
border: "hsl(var(--border))",
input: "hsl(var(--input))",
ring: "hsl(var(--ring))",
background: "hsl(var(--background))",
foreground: "hsl(var(--foreground))",
surface: {
DEFAULT: "hsl(var(--surface))",
2: "hsl(var(--surface-2))",
3: "hsl(var(--surface-3))",
},
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) / <alpha-value>)",
foreground: "hsl(var(--destructive-foreground) / <alpha-value>)",
},
muted: {
DEFAULT: "hsl(var(--muted))",
foreground: "hsl(var(--muted-foreground))",
},
accent: {
DEFAULT: "hsl(var(--accent))",
foreground: "hsl(var(--accent-fg))",
dim: "hsl(var(--accent-dim))",
},
popover: {
DEFAULT: "hsl(var(--popover))",
foreground: "hsl(var(--popover-foreground))",
},
card: {
DEFAULT: "hsl(var(--card))",
foreground: "hsl(var(--card-foreground))",
},
sidebar: {
DEFAULT: "hsl(var(--sidebar-background))",
foreground: "hsl(var(--sidebar-foreground))",
primary: "hsl(var(--sidebar-primary))",
"primary-foreground": "hsl(var(--sidebar-primary-foreground))",
accent: "hsl(var(--sidebar-accent))",
"accent-foreground": "hsl(var(--sidebar-accent-foreground))",
border: "hsl(var(--sidebar-border))",
ring: "hsl(var(--sidebar-ring))",
},
// Velocity brand palette
velocity: {
black: '#0c0d10',
dark: '#131418',
panel: '#181b20',
surface: '#22262e',
lime: '#b5f23d',
'lime-dim': '#8bc42b',
blue: '#3b82f6',
cyan: '#06b6d4',
amber: '#f59e0b',
green: '#22c55e',
red: '#ef4444',
},
},
borderRadius: {
xs: '0.375rem',
sm: '0.5rem',
md: '0.75rem',
lg: '0.875rem',
xl: '1rem',
'2xl': '1.25rem',
'3xl': '1.5rem',
'4xl': '2rem',
},
boxShadow: {
xs: '0 1px 3px rgba(0,0,0,0.4)',
sm: '0 4px 16px rgba(0,0,0,0.5)',
md: '0 8px 32px rgba(0,0,0,0.55)',
lg: '0 12px 40px rgba(0,0,0,0.6)',
xl: '0 24px 64px rgba(0,0,0,0.7)',
glass: '0 8px 32px rgba(0,0,0,0.4)',
'glow-lime': '0 0 32px rgba(181,242,61,0.2)',
'glow-blue': '0 0 32px rgba(59,130,246,0.25)',
'glow-amber': '0 0 32px rgba(245,158,11,0.25)',
'glow-green': '0 0 20px rgba(34,197,94,0.3)',
},
backdropBlur: {
'2xs': '2px',
xs: '4px',
},
fontFamily: {
sans: ['Inter', '-apple-system', 'BlinkMacSystemFont', 'SF Pro Display', 'Segoe UI', 'sans-serif'],
},
keyframes: {
"accordion-down": {
from: { height: "0" },
to: { height: "var(--radix-accordion-content-height)" },
},
"accordion-up": {
from: { height: "var(--radix-accordion-content-height)" },
to: { height: "0" },
},
"caret-blink": {
"0%,70%,100%": { opacity: "1" },
"20%,50%": { opacity: "0" },
},
shimmer: {
"0%": { backgroundPosition: "-200% 0" },
"100%": { backgroundPosition: "200% 0" },
},
"pulse-glow": {
"0%, 100%": { opacity: "0.5", transform: "scale(1)" },
"50%": { opacity: "1", transform: "scale(1.05)" },
},
"slide-in": {
"0%": { transform: "translateX(-20px)", opacity: "0" },
"100%": { transform: "translateX(0)", opacity: "1" },
},
"slide-up": {
"0%": { transform: "translateY(20px)", opacity: "0" },
"100%": { transform: "translateY(0)", opacity: "1" },
},
"fade-in": {
"0%": { opacity: "0" },
"100%": { opacity: "1" },
},
"scale-in": {
"0%": { transform: "scale(0.95)", opacity: "0" },
"100%": { transform: "scale(1)", opacity: "1" },
},
float: {
"0%, 100%": { transform: "translateY(0)" },
"50%": { transform: "translateY(-10px)" },
},
scan: {
"0%": { transform: "translateY(-100%)" },
"100%": { transform: "translateY(100%)" },
},
},
animation: {
"accordion-down": "accordion-down 0.2s ease-out",
"accordion-up": "accordion-up 0.2s ease-out",
"caret-blink": "caret-blink 1.25s ease-out infinite",
shimmer: "shimmer 2s infinite linear",
"pulse-glow": "pulse-glow 2s ease-in-out infinite",
"slide-in": "slide-in 0.3s ease-out",
"slide-up": "slide-up 0.3s ease-out",
"fade-in": "fade-in 0.3s ease-out",
"scale-in": "scale-in 0.3s ease-out",
float: "float 3s ease-in-out infinite",
scan: "scan 2s linear infinite",
},
transitionTimingFunction: {
apple: 'cubic-bezier(0.4, 0.0, 0.2, 1)',
'bounce-out': 'cubic-bezier(0.34, 1.56, 0.64, 1)',
},
},
},
plugins: [require("tailwindcss-animate")],
}