|
| 1 | +/** |
| 2 | + * Enhanced Cyberpunk Color Palette |
| 3 | + * Utility classes and helpers for using accent colors |
| 4 | + */ |
| 5 | + |
| 6 | +export const accentColors = { |
| 7 | + cyan: 'var(--accent-cyan)', |
| 8 | + purple: 'var(--accent-purple)', |
| 9 | + pink: 'var(--accent-pink)', |
| 10 | + green: 'var(--primary)', |
| 11 | + yellow: 'var(--warning)', |
| 12 | + red: 'var(--destructive)', |
| 13 | +} as const; |
| 14 | + |
| 15 | +export const statusColors = { |
| 16 | + success: 'var(--success)', |
| 17 | + warning: 'var(--warning)', |
| 18 | + error: 'var(--destructive)', |
| 19 | + info: 'var(--info)', |
| 20 | +} as const; |
| 21 | + |
| 22 | +/** |
| 23 | + * Tailwind utility classes for accent colors |
| 24 | + * Use these in className props |
| 25 | + */ |
| 26 | +export const accentClasses = { |
| 27 | + cyan: { |
| 28 | + bg: 'bg-[var(--accent-cyan)]', |
| 29 | + text: 'text-[var(--accent-cyan)]', |
| 30 | + border: 'border-[var(--accent-cyan)]', |
| 31 | + glow: 'shadow-[0_0_20px_var(--accent-cyan)]', |
| 32 | + }, |
| 33 | + purple: { |
| 34 | + bg: 'bg-[var(--accent-purple)]', |
| 35 | + text: 'text-[var(--accent-purple)]', |
| 36 | + border: 'border-[var(--accent-purple)]', |
| 37 | + glow: 'shadow-[0_0_20px_var(--accent-purple)]', |
| 38 | + }, |
| 39 | + pink: { |
| 40 | + bg: 'bg-[var(--accent-pink)]', |
| 41 | + text: 'text-[var(--accent-pink)]', |
| 42 | + border: 'border-[var(--accent-pink)]', |
| 43 | + glow: 'shadow-[0_0_20px_var(--accent-pink)]', |
| 44 | + }, |
| 45 | + green: { |
| 46 | + bg: 'bg-primary', |
| 47 | + text: 'text-primary', |
| 48 | + border: 'border-primary', |
| 49 | + glow: 'shadow-[0_0_20px_var(--primary)]', |
| 50 | + }, |
| 51 | + yellow: { |
| 52 | + bg: 'bg-[var(--warning)]', |
| 53 | + text: 'text-[var(--warning)]', |
| 54 | + border: 'border-[var(--warning)]', |
| 55 | + glow: 'shadow-[0_0_20px_var(--warning)]', |
| 56 | + }, |
| 57 | + red: { |
| 58 | + bg: 'bg-destructive', |
| 59 | + text: 'text-destructive', |
| 60 | + border: 'border-destructive', |
| 61 | + glow: 'shadow-[0_0_20px_var(--destructive)]', |
| 62 | + }, |
| 63 | +} as const; |
| 64 | + |
| 65 | +/** |
| 66 | + * Status badge variants |
| 67 | + */ |
| 68 | +export const statusBadgeClasses = { |
| 69 | + success: 'bg-[var(--success)] text-[var(--success-foreground)]', |
| 70 | + warning: 'bg-[var(--warning)] text-[var(--warning-foreground)]', |
| 71 | + error: 'bg-destructive text-destructive-foreground', |
| 72 | + info: 'bg-[var(--info)] text-[var(--info-foreground)]', |
| 73 | +} as const; |
| 74 | + |
| 75 | +/** |
| 76 | + * Get a random accent color for variety |
| 77 | + */ |
| 78 | +export function getRandomAccentColor(): keyof typeof accentColors { |
| 79 | + const colors = Object.keys(accentColors) as Array<keyof typeof accentColors>; |
| 80 | + return colors[Math.floor(Math.random() * colors.length)]; |
| 81 | +} |
| 82 | + |
| 83 | +/** |
| 84 | + * Gradient backgrounds using accent colors |
| 85 | + */ |
| 86 | +export const gradientClasses = { |
| 87 | + cyanPurple: 'bg-gradient-to-br from-[var(--accent-cyan)] to-[var(--accent-purple)]', |
| 88 | + greenCyan: 'bg-gradient-to-br from-[var(--primary)] to-[var(--accent-cyan)]', |
| 89 | + pinkPurple: 'bg-gradient-to-br from-[var(--accent-pink)] to-[var(--accent-purple)]', |
| 90 | + rainbow: 'bg-gradient-to-r from-[var(--primary)] via-[var(--accent-cyan)] via-[var(--accent-purple)] to-[var(--accent-pink)]', |
| 91 | +} as const; |
0 commit comments