Skip to content

Commit 56dff2a

Browse files
committed
Chroma Glow theme
1 parent 1a337e5 commit 56dff2a

4 files changed

Lines changed: 125 additions & 0 deletions

File tree

src/app/hooks/useTheme.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
gruvdarkTheme,
1515
accordTheme,
1616
theArgoTheme,
17+
chromaGlowTheme,
1718
} from '../../colors.css';
1819

1920
export enum ThemeKind {
@@ -88,6 +89,12 @@ export const TheArgoTheme: Theme = {
8889
classNames: ['the-argo-theme', theArgoTheme, onDarkFontWeight, 'prism-dark'],
8990
};
9091

92+
export const ChromaGlowTheme: Theme = {
93+
id: 'chroma-glow-theme',
94+
kind: ThemeKind.Dark,
95+
classNames: ['chroma-glow-theme', chromaGlowTheme, onDarkFontWeight, 'prism-dark'],
96+
};
97+
9198
export const useThemes = (): Theme[] => {
9299
const themes: Theme[] = useMemo(
93100
() => [
@@ -102,6 +109,7 @@ export const useThemes = (): Theme[] => {
102109
GruvdarkTheme,
103110
AccordTheme,
104111
TheArgoTheme,
112+
ChromaGlowTheme,
105113
],
106114
[]
107115
);
@@ -123,6 +131,7 @@ export const useThemeNames = (): Record<string, string> =>
123131
[GruvdarkTheme.id]: 'GruvDark',
124132
[AccordTheme.id]: 'Accord',
125133
[TheArgoTheme.id]: 'The Argo',
134+
[ChromaGlowTheme.id]: 'Chroma Glow',
126135
}),
127136
[]
128137
);

src/app/styles/themes.css

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -977,3 +977,92 @@
977977
--sable-shadow: rgba(0, 0, 0, 0.6);
978978
--sable-overlay: rgba(12, 8, 10, 0.85);
979979
}
980+
981+
/* --- Chroma Glow (Discord-inspired) --- */
982+
.chroma-glow-theme {
983+
/* Background */
984+
--sable-bg-container: rgba(14, 10, 26, 0.05);
985+
--sable-bg-container-hover: rgba(255, 255, 255, 0.05);
986+
--sable-bg-container-active: rgba(255, 255, 255, 0.05);
987+
--sable-bg-container-line: rgba(60, 35, 100, 0.3);
988+
--sable-bg-on-container: #e0def0;
989+
990+
/* Surface */
991+
--sable-surface-container: rgba(18, 14, 36, 0.95);
992+
--sable-surface-container-hover: rgba(26, 22, 48, 0.65);
993+
--sable-surface-container-active: rgba(34, 28, 58, 0.7);
994+
--sable-surface-container-line: rgba(55, 40, 90, 0.4);
995+
--sable-surface-on-container: #e6e4f5;
996+
997+
/* Surface Variant */
998+
--sable-surface-var-container: rgba(10, 8, 20, 0.72);
999+
--sable-surface-var-container-hover: rgba(16, 12, 30, 0.76);
1000+
--sable-surface-var-container-active: rgba(22, 18, 40, 0.8);
1001+
--sable-surface-var-container-line: rgba(50, 35, 85, 0.45);
1002+
--sable-surface-var-on-container: #c5c2d8;
1003+
1004+
/* Primary (Vivid Purple) */
1005+
--sable-primary-main: #bf00ff;
1006+
--sable-primary-main-hover: #cc33ff;
1007+
--sable-primary-main-active: #d94dff;
1008+
--sable-primary-main-line: #e066ff;
1009+
--sable-primary-on-main: #ffffff;
1010+
--sable-primary-container: #2a0a42;
1011+
--sable-primary-container-hover: #35104f;
1012+
--sable-primary-container-active: #40185c;
1013+
--sable-primary-container-line: #4c2069;
1014+
--sable-primary-on-container: #e4ccff;
1015+
1016+
/* Secondary (Electric Blue) */
1017+
--sable-sec-main: #5b8fff;
1018+
--sable-sec-main-hover: #74a2ff;
1019+
--sable-sec-main-active: #8db5ff;
1020+
--sable-sec-main-line: #a6c8ff;
1021+
--sable-sec-on-main: #080e22;
1022+
--sable-sec-container: #0f1a3a;
1023+
--sable-sec-container-hover: #162248;
1024+
--sable-sec-container-active: #1d2a56;
1025+
--sable-sec-container-line: #243264;
1026+
--sable-sec-on-container: #c4d6ff;
1027+
1028+
/* Success (Neon Cyan) */
1029+
--sable-success-main: #00d492;
1030+
--sable-success-main-hover: #15e0a2;
1031+
--sable-success-main-active: #30ecb2;
1032+
--sable-success-main-line: #50f5c2;
1033+
--sable-success-on-main: #002818;
1034+
--sable-success-container: #0a2e20;
1035+
--sable-success-container-hover: #10382a;
1036+
--sable-success-container-active: #164234;
1037+
--sable-success-container-line: #1c4c3e;
1038+
--sable-success-on-container: #a8f0d5;
1039+
1040+
/* Warning (Golden Amber) */
1041+
--sable-warn-main: #f0a820;
1042+
--sable-warn-main-hover: #f5b840;
1043+
--sable-warn-main-active: #f8c860;
1044+
--sable-warn-main-line: #fad880;
1045+
--sable-warn-on-main: #281c00;
1046+
--sable-warn-container: #2e2408;
1047+
--sable-warn-container-hover: #3a2e10;
1048+
--sable-warn-container-active: #463818;
1049+
--sable-warn-container-line: #524220;
1050+
--sable-warn-on-container: #fae4a8;
1051+
1052+
/* Critical (Hot Pink) */
1053+
--sable-crit-main: #ff2868;
1054+
--sable-crit-main-hover: #ff4580;
1055+
--sable-crit-main-active: #ff6298;
1056+
--sable-crit-main-line: #ff80b0;
1057+
--sable-crit-on-main: #ffffff;
1058+
--sable-crit-container: #3a0820;
1059+
--sable-crit-container-hover: #480e2a;
1060+
--sable-crit-container-active: #561434;
1061+
--sable-crit-container-line: #641a3e;
1062+
--sable-crit-on-container: #ffc0d8;
1063+
1064+
/* Other */
1065+
--sable-focus-ring: rgba(191, 0, 255, 0.55);
1066+
--sable-shadow: rgba(0, 0, 0, 0.7);
1067+
--sable-overlay: rgba(8, 4, 18, 0.9);
1068+
}

src/colors.css.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,4 @@ export const rosePineTheme = createTheme(color, sableThemeMapping);
102102
export const cinnyDarkTheme = createTheme(color, sableThemeMapping);
103103
export const accordTheme = createTheme(color, sableThemeMapping);
104104
export const theArgoTheme = createTheme(color, sableThemeMapping);
105+
export const chromaGlowTheme = createTheme(color, sableThemeMapping);

src/index.css

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,22 @@
9090
--font-monospace: 'Maple Mono', 'Space Mono', monospace;
9191
}
9292

93+
.chroma-glow-theme {
94+
--tc-link: #a080ff;
95+
96+
--mx-uc-1: #bf80ff;
97+
--mx-uc-2: #ff66b2;
98+
--mx-uc-3: #00e5c0;
99+
--mx-uc-4: #5b8fff;
100+
--mx-uc-5: #ff9040;
101+
--mx-uc-6: #66ffcc;
102+
--mx-uc-7: #ffcc33;
103+
--mx-uc-8: #ff5580;
104+
105+
--font-secondary: 'Nunito Variable', var(--font-emoji), sans-serif;
106+
--font-monospace: 'Maple Mono', 'Space Mono', monospace;
107+
}
108+
93109
html {
94110
height: 100%;
95111
overflow: hidden;
@@ -251,3 +267,13 @@ body.reduced-motion button[class*='styles_MessageAvatar']:hover * {
251267
animation: none !important;
252268
margin: 0 !important;
253269
}
270+
271+
/* --- Chroma Glow gradient & glass effects --- */
272+
body.chroma-glow-theme {
273+
background:
274+
radial-gradient(ellipse at 15% 85%, rgba(120, 0, 255, 0.15) 0%, #0000001c 50%),
275+
radial-gradient(ellipse at 85% 15%, rgba(255, 0, 128, 0.17) 0%, #0000001c 50%),
276+
radial-gradient(ellipse at 50% 50%, rgba(44, 117, 255, 0.04) 0%, #00000021 60%),
277+
linear-gradient(135deg, #0d0015, #0a0a2e 30%, #150a30, #0d1538 80%, #120820);
278+
background-attachment: fixed;
279+
}

0 commit comments

Comments
 (0)