Skip to content

Commit 37cbb4a

Browse files
committed
Add enhanced cyberpunk color palette utilities
Introduces accent and status color constants, Tailwind utility class mappings, status badge variants, gradient backgrounds, and a helper to get a random accent color. These utilities centralize color management for consistent theming and easier usage across the codebase.
1 parent ee95f31 commit 37cbb4a

1 file changed

Lines changed: 91 additions & 0 deletions

File tree

lib/colors.ts

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
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

Comments
 (0)