Skip to content

Commit 44659a4

Browse files
Bikram GoleBikram Gole
authored andcommitted
Add Material 3 theme
1 parent 3ab1cba commit 44659a4

5 files changed

Lines changed: 147 additions & 3 deletions

File tree

about.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<script>
1818
(() => {
1919
try {
20-
const validThemes = new Set(["neo", "mint", "sunset", "midnight", "ember", "arctic", "grape", "toxic", "ocean", "bloodmoon", "liquidglass", "paper", "blackflag"]);
20+
const validThemes = new Set(["neo", "mint", "sunset", "midnight", "ember", "arctic", "grape", "toxic", "ocean", "bloodmoon", "liquidglass", "material3", "paper", "blackflag"]);
2121
const themeKey = "neoThemeVariant.v1";
2222
const params = new URLSearchParams(window.location.search);
2323
const urlTheme = params.get("theme");
@@ -59,6 +59,7 @@
5959
<option value="ocean">Ocean Drift</option>
6060
<option value="bloodmoon">Blood Moon</option>
6161
<option value="liquidglass">Liquid Glass</option>
62+
<option value="material3">Material 3</option>
6263
<option value="paper">Paper Link</option>
6364
<option value="blackflag">Black Flag Uprising</option>
6465
</select>

contact.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<script>
1818
(() => {
1919
try {
20-
const validThemes = new Set(["neo", "mint", "sunset", "midnight", "ember", "arctic", "grape", "toxic", "ocean", "bloodmoon", "liquidglass", "paper", "blackflag"]);
20+
const validThemes = new Set(["neo", "mint", "sunset", "midnight", "ember", "arctic", "grape", "toxic", "ocean", "bloodmoon", "liquidglass", "material3", "paper", "blackflag"]);
2121
const themeKey = "neoThemeVariant.v1";
2222
const params = new URLSearchParams(window.location.search);
2323
const urlTheme = params.get("theme");
@@ -59,6 +59,7 @@
5959
<option value="ocean">Ocean Drift</option>
6060
<option value="bloodmoon">Blood Moon</option>
6161
<option value="liquidglass">Liquid Glass</option>
62+
<option value="material3">Material 3</option>
6263
<option value="paper">Paper Link</option>
6364
<option value="blackflag">Black Flag Uprising</option>
6465
</select>

index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<script>
1818
(() => {
1919
try {
20-
const validThemes = new Set(["neo", "mint", "sunset", "midnight", "ember", "arctic", "grape", "toxic", "ocean", "bloodmoon", "liquidglass", "paper", "blackflag"]);
20+
const validThemes = new Set(["neo", "mint", "sunset", "midnight", "ember", "arctic", "grape", "toxic", "ocean", "bloodmoon", "liquidglass", "material3", "paper", "blackflag"]);
2121
const themeKey = "neoThemeVariant.v1";
2222
const params = new URLSearchParams(window.location.search);
2323
const urlTheme = params.get("theme");
@@ -59,6 +59,7 @@
5959
<option value="ocean">Ocean Drift</option>
6060
<option value="bloodmoon">Blood Moon</option>
6161
<option value="liquidglass">Liquid Glass</option>
62+
<option value="material3">Material 3</option>
6263
<option value="paper">Paper Link</option>
6364
<option value="blackflag">Black Flag Uprising</option>
6465
</select>

script.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ const THEME_OPTIONS = [
164164
"ocean",
165165
"bloodmoon",
166166
"liquidglass",
167+
"material3",
167168
"paper",
168169
"blackflag",
169170
];
@@ -1434,6 +1435,7 @@ function initCommandPalette() {
14341435
{ label: "Theme: Mint Matrix", keywords: "theme mint green", run: () => applyTheme("mint", true) },
14351436
{ label: "Theme: Sunset Warp", keywords: "theme sunset orange", run: () => applyTheme("sunset", true) },
14361437
{ label: "Theme: Liquid Glass", keywords: "theme liquid glass apple", run: () => applyTheme("liquidglass", true) },
1438+
{ label: "Theme: Material 3", keywords: "theme material3 google", run: () => applyTheme("material3", true) },
14371439
{ label: "Theme: Paper Link", keywords: "theme paper", run: () => applyTheme("paper", true) },
14381440
{ label: "Theme: Black Flag Uprising", keywords: "theme blackflag anarchy", run: () => applyTheme("blackflag", true) },
14391441
{ label: "Mode: Toggle Matrix Rain", keywords: "matrix rain mode", run: () => toggleMatrixMode() },

styles.css

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,25 @@ body[data-theme="liquidglass"] {
204204
--header: rgba(16, 28, 48, 0.58);
205205
}
206206

207+
:root[data-theme="material3"],
208+
body[data-theme="material3"] {
209+
--bg-0: #0d131f;
210+
--bg-1: #141c2b;
211+
--bg-2: #1e2737;
212+
--ink: #e5ebfb;
213+
--muted: #afb9ce;
214+
--blue: #b9c6ff;
215+
--blue-2: #dde5ff;
216+
--orange: #8adbd1;
217+
--orange-2: #b5efe8;
218+
--card: rgba(28, 36, 52, 0.88);
219+
--border: rgba(169, 183, 215, 0.28);
220+
--header: rgba(23, 30, 46, 0.94);
221+
--clean-glow-cyan: rgba(185, 198, 255, 0.2);
222+
--clean-glow-orange: rgba(138, 219, 209, 0.18);
223+
--clean-shadow: 0 12px 28px rgba(4, 8, 16, 0.34);
224+
}
225+
207226
* {
208227
box-sizing: border-box;
209228
}
@@ -235,6 +254,13 @@ body[data-theme="liquidglass"] {
235254
linear-gradient(160deg, var(--bg-0), var(--bg-1) 45%, var(--bg-2));
236255
}
237256

257+
body[data-theme="material3"] {
258+
background:
259+
radial-gradient(740px 260px at 12% -16%, rgba(164, 184, 255, 0.2), transparent 66%),
260+
radial-gradient(620px 220px at 90% 2%, rgba(133, 215, 205, 0.18), transparent 68%),
261+
linear-gradient(160deg, var(--bg-0), var(--bg-1) 45%, var(--bg-2));
262+
}
263+
238264
#starfield {
239265
position: fixed;
240266
inset: 0;
@@ -265,6 +291,15 @@ body[data-theme="paper"] #starfield {
265291
opacity: 0;
266292
}
267293

294+
body[data-theme="material3"] .noise {
295+
opacity: 0.09;
296+
background-size: 3px 3px;
297+
}
298+
299+
body[data-theme="material3"] #starfield {
300+
opacity: 0.44;
301+
}
302+
268303
body[data-theme="paper"] .hero,
269304
body[data-theme="paper"] .panel {
270305
backdrop-filter: none;
@@ -2136,6 +2171,110 @@ body.browser-vivaldi .penguin-glasses {
21362171
transition: opacity 200ms ease, transform 200ms ease;
21372172
}
21382173

2174+
body[data-theme="material3"] .site-header {
2175+
border-color: rgba(174, 188, 220, 0.34);
2176+
border-radius: 22px;
2177+
background:
2178+
linear-gradient(180deg, rgba(46, 57, 79, 0.34), rgba(29, 37, 54, 0.38)),
2179+
var(--header);
2180+
backdrop-filter: none;
2181+
box-shadow: inset 0 1px 0 rgba(232, 239, 255, 0.09), 0 12px 28px rgba(5, 10, 20, 0.35);
2182+
}
2183+
2184+
body[data-theme="material3"] .brand-name {
2185+
text-transform: none;
2186+
letter-spacing: 0.01em;
2187+
text-shadow: none;
2188+
}
2189+
2190+
body[data-theme="material3"] nav a {
2191+
border-radius: 999px;
2192+
padding: 0.3rem 0.72rem;
2193+
}
2194+
2195+
body[data-theme="material3"] nav a:hover,
2196+
body[data-theme="material3"] nav a.active {
2197+
background: rgba(189, 201, 255, 0.16);
2198+
border-color: rgba(176, 192, 225, 0.44);
2199+
box-shadow: inset 0 1px 0 rgba(232, 239, 255, 0.1);
2200+
}
2201+
2202+
body[data-theme="material3"] .theme-top-select,
2203+
body[data-theme="material3"] .theme-cycle-btn {
2204+
border-radius: 999px;
2205+
border-color: rgba(176, 192, 225, 0.4);
2206+
background: rgba(36, 46, 65, 0.96);
2207+
}
2208+
2209+
body[data-theme="material3"] .hero,
2210+
body[data-theme="material3"] .panel {
2211+
border-radius: 24px;
2212+
border-color: rgba(170, 184, 215, 0.26);
2213+
background:
2214+
linear-gradient(180deg, rgba(42, 52, 72, 0.84), rgba(29, 37, 53, 0.92)),
2215+
var(--card);
2216+
backdrop-filter: none;
2217+
box-shadow: inset 0 1px 0 rgba(232, 239, 255, 0.08), 0 10px 24px rgba(5, 10, 20, 0.32);
2218+
}
2219+
2220+
body[data-theme="material3"] .hero {
2221+
background:
2222+
radial-gradient(460px 180px at 0% 0%, rgba(185, 198, 255, 0.18), transparent 72%),
2223+
radial-gradient(340px 150px at 95% 100%, rgba(138, 219, 209, 0.14), transparent 74%),
2224+
linear-gradient(180deg, rgba(42, 52, 72, 0.84), rgba(29, 37, 53, 0.92));
2225+
}
2226+
2227+
body[data-theme="material3"] .chaos-card,
2228+
body[data-theme="material3"] .favorite-card,
2229+
body[data-theme="material3"] .fact-card,
2230+
body[data-theme="material3"] .glass-card,
2231+
body[data-theme="material3"] .repo-card,
2232+
body[data-theme="material3"] .contact-item,
2233+
body[data-theme="material3"] .terminal,
2234+
body[data-theme="material3"] .mini-terminal,
2235+
body[data-theme="material3"] .mini-terminal-screen,
2236+
body[data-theme="material3"] .quiz-board,
2237+
body[data-theme="material3"] .command-shell {
2238+
border-radius: 18px;
2239+
border-color: rgba(164, 178, 208, 0.28);
2240+
background: rgba(34, 44, 63, 0.9);
2241+
backdrop-filter: none;
2242+
box-shadow: inset 0 1px 0 rgba(232, 239, 255, 0.07), 0 8px 20px rgba(4, 9, 18, 0.3);
2243+
}
2244+
2245+
body[data-theme="material3"] .chips span {
2246+
border-radius: 999px;
2247+
border-color: rgba(171, 186, 219, 0.33);
2248+
background: rgba(43, 54, 76, 0.92);
2249+
}
2250+
2251+
body[data-theme="material3"] .btn,
2252+
body[data-theme="material3"] .egg-btn {
2253+
border-radius: 999px;
2254+
}
2255+
2256+
body[data-theme="material3"] .btn.primary {
2257+
color: #131a2a;
2258+
background: linear-gradient(118deg, var(--blue), var(--orange-2));
2259+
}
2260+
2261+
body[data-theme="material3"] .btn.ghost,
2262+
body[data-theme="material3"] .egg-btn {
2263+
border-color: rgba(172, 187, 218, 0.36);
2264+
background: rgba(38, 49, 70, 0.9);
2265+
}
2266+
2267+
body[data-theme="material3"] .status-line {
2268+
color: #cad7f3;
2269+
}
2270+
2271+
body[data-theme="material3"] .site-footer {
2272+
border: 1px solid rgba(170, 184, 216, 0.26);
2273+
border-radius: 999px;
2274+
background: rgba(27, 35, 52, 0.78);
2275+
padding: 0.5rem 0.86rem;
2276+
}
2277+
21392278
body[data-theme="liquidglass"] .site-header {
21402279
border-color: rgba(214, 231, 255, 0.34);
21412280
border-radius: 18px;

0 commit comments

Comments
 (0)