Sanitized mirror from private repository - 2026-04-05 10:15:27 UTC
Some checks failed
Documentation / Deploy to GitHub Pages (push) Has been cancelled
Documentation / Build Docusaurus (push) Has been cancelled

This commit is contained in:
Gitea Mirror Bot
2026-04-05 10:15:27 +00:00
commit 3aba68c4c6
1394 changed files with 355656 additions and 0 deletions

455
dashboard/ui/lib/themes.ts Normal file
View File

@@ -0,0 +1,455 @@
export interface Theme {
name: string;
label: string;
isDark: boolean;
bgGradient: string;
bodyBg: string;
// Preview swatch colors for the switcher
swatch: [string, string];
vars: Record<string, string>;
}
export const themes: Theme[] = [
// 1. Midnight (default)
{
name: "midnight",
label: "Midnight",
isDark: true,
swatch: ["#3b82f6", "#8b5cf6"],
bodyBg: "linear-gradient(135deg, #060611 0%, #0d1117 40%, #0a0e1a 100%)",
bgGradient:
"radial-gradient(ellipse 80% 50% at 50% -20%, rgba(56, 100, 220, 0.18), transparent), radial-gradient(ellipse 60% 40% at 80% 50%, rgba(139, 92, 246, 0.1), transparent), radial-gradient(ellipse 50% 50% at 20% 80%, rgba(16, 185, 129, 0.07), transparent)",
vars: {
"--background": "230 25% 4%",
"--foreground": "210 40% 98%",
"--card": "220 30% 8% / 0.4",
"--card-foreground": "210 40% 98%",
"--popover": "220 30% 8% / 0.8",
"--popover-foreground": "210 40% 93%",
"--primary": "217 91% 60%",
"--primary-foreground": "210 40% 93%",
"--secondary": "217 33% 12% / 0.5",
"--secondary-foreground": "210 40% 93%",
"--muted": "217 33% 12% / 0.5",
"--muted-foreground": "215 20% 68%",
"--accent": "217 33% 12% / 0.5",
"--accent-foreground": "210 40% 93%",
"--destructive": "0 84% 60%",
"--border": "0 0% 100% / 0.08",
"--input": "0 0% 100% / 0.06",
"--ring": "217 91% 60%",
"--chart-1": "217 91% 60%",
"--chart-2": "160 60% 45%",
"--chart-3": "30 80% 55%",
"--chart-4": "280 65% 60%",
"--chart-5": "340 75% 55%",
"--sidebar": "220 30% 6%",
"--sidebar-foreground": "210 40% 93%",
"--sidebar-primary": "217 91% 60%",
"--sidebar-primary-foreground": "210 40% 93%",
"--sidebar-accent": "217 33% 12%",
"--sidebar-accent-foreground": "210 40% 93%",
"--sidebar-border": "0 0% 100% / 0.06",
"--sidebar-ring": "217 91% 60%",
"--card-bg": "#0d1120",
"--card-border": "rgba(255, 255, 255, 0.15)",
"--card-hover-bg": "#111528",
"--card-hover-border": "rgba(255, 255, 255, 0.25)",
"--glass-bg": "#0b0f1e",
"--glass-border": "rgba(255, 255, 255, 0.10)",
"--glass-hover": "rgba(255, 255, 255, 0.03)",
"--glass-input-bg": "rgba(255, 255, 255, 0.07)",
"--glass-input-border": "rgba(255, 255, 255, 0.08)",
"--glass-input-focus": "rgba(59, 130, 246, 0.3)",
"--glass-input-focus-bg": "rgba(255, 255, 255, 0.05)",
"--glass-table-header": "rgba(255, 255, 255, 0.08)",
"--glass-bar-track": "rgba(255, 255, 255, 0.10)",
"--nav-bg": "rgba(6, 6, 17, 0.95)",
"--nav-border": "rgba(255, 255, 255, 0.08)",
"--nav-active": "rgba(255, 255, 255, 0.06)",
"--nav-hover": "rgba(255, 255, 255, 0.04)",
"--accent-color": "#3b82f6",
"--accent-glow": "rgba(59, 130, 246, 0.3)",
"--card-lift-shadow": "0 8px 40px rgba(0, 0, 0, 0.3), 0 0 40px rgba(59, 130, 246, 0.04)",
"--stat-glow": "0 0 20px rgba(59, 130, 246, 0.15)",
"--nav-active-glow": "0 2px 10px rgba(59, 130, 246, 0.3)",
},
},
// 2. Light
{
name: "light",
label: "Light",
isDark: false,
swatch: ["#2563eb", "#e2e8f0"],
bodyBg: "linear-gradient(135deg, #fafafa 0%, #f1f5f9 40%, #f8fafc 100%)",
bgGradient:
"radial-gradient(ellipse 80% 50% at 50% -20%, rgba(37, 99, 235, 0.06), transparent), radial-gradient(ellipse 60% 40% at 80% 50%, rgba(99, 102, 241, 0.04), transparent)",
vars: {
"--background": "210 20% 98%",
"--foreground": "215 25% 15%",
"--card": "0 0% 100%",
"--card-foreground": "215 25% 15%",
"--popover": "0 0% 100%",
"--popover-foreground": "215 25% 15%",
"--primary": "217 91% 53%",
"--primary-foreground": "0 0% 100%",
"--secondary": "214 32% 91%",
"--secondary-foreground": "215 25% 15%",
"--muted": "214 32% 91%",
"--muted-foreground": "215 16% 47%",
"--accent": "214 32% 91%",
"--accent-foreground": "215 25% 15%",
"--destructive": "0 84% 60%",
"--border": "214 32% 88%",
"--input": "214 32% 88%",
"--ring": "217 91% 53%",
"--card-bg": "rgba(255, 255, 255, 0.9)",
"--card-border": "rgba(0, 0, 0, 0.12)",
"--card-hover-bg": "rgba(255, 255, 255, 1)",
"--card-hover-border": "rgba(0, 0, 0, 0.12)",
"--glass-bg": "rgba(255, 255, 255, 0.7)",
"--glass-border": "rgba(0, 0, 0, 0.10)",
"--glass-hover": "rgba(0, 0, 0, 0.02)",
"--glass-input-bg": "rgba(255, 255, 255, 0.8)",
"--glass-input-border": "rgba(0, 0, 0, 0.1)",
"--glass-input-focus": "rgba(37, 99, 235, 0.3)",
"--glass-input-focus-bg": "rgba(255, 255, 255, 0.95)",
"--glass-table-header": "rgba(0, 0, 0, 0.03)",
"--glass-bar-track": "rgba(0, 0, 0, 0.10)",
"--nav-bg": "rgba(255, 255, 255, 0.8)",
"--nav-border": "rgba(0, 0, 0, 0.06)",
"--nav-active": "rgba(0, 0, 0, 0.05)",
"--nav-hover": "rgba(0, 0, 0, 0.03)",
"--accent-color": "#2563eb",
"--accent-glow": "rgba(37, 99, 235, 0.2)",
"--card-lift-shadow": "0 8px 40px rgba(0, 0, 0, 0.08), 0 0 40px rgba(37, 99, 235, 0.02)",
"--stat-glow": "0 0 20px rgba(37, 99, 235, 0.08)",
"--nav-active-glow": "0 2px 10px rgba(37, 99, 235, 0.15)",
},
},
// 3. Cyberpunk
{
name: "cyberpunk",
label: "Cyberpunk",
isDark: true,
swatch: ["#ec4899", "#06b6d4"],
bodyBg: "linear-gradient(135deg, #0a0a0f 0%, #0d0515 40%, #05080f 100%)",
bgGradient:
"radial-gradient(ellipse 80% 50% at 50% -20%, rgba(236, 72, 153, 0.15), transparent), radial-gradient(ellipse 60% 40% at 80% 50%, rgba(6, 182, 212, 0.12), transparent), radial-gradient(ellipse 50% 50% at 20% 80%, rgba(236, 72, 153, 0.06), transparent)",
vars: {
"--background": "260 30% 4%",
"--foreground": "185 10% 98%",
"--card": "270 30% 8% / 0.4",
"--card-foreground": "185 10% 98%",
"--popover": "270 30% 8% / 0.8",
"--popover-foreground": "185 20% 92%",
"--primary": "330 80% 60%",
"--primary-foreground": "185 20% 95%",
"--secondary": "270 30% 14% / 0.5",
"--secondary-foreground": "185 20% 92%",
"--muted": "270 30% 14% / 0.5",
"--muted-foreground": "200 15% 68%",
"--accent": "185 80% 45%",
"--accent-foreground": "185 20% 95%",
"--destructive": "330 80% 55%",
"--border": "0 0% 100% / 0.06",
"--input": "0 0% 100% / 0.06",
"--ring": "330 80% 60%",
"--card-bg": "#150c1a",
"--card-border": "rgba(236, 72, 153, 0.1)",
"--card-hover-bg": "#151928",
"--card-hover-border": "rgba(236, 72, 153, 0.2)",
"--glass-bg": "#0b0f1c",
"--glass-border": "rgba(236, 72, 153, 0.10)",
"--glass-hover": "rgba(236, 72, 153, 0.03)",
"--glass-input-bg": "rgba(255, 255, 255, 0.07)",
"--glass-input-border": "rgba(236, 72, 153, 0.1)",
"--glass-input-focus": "rgba(6, 182, 212, 0.3)",
"--glass-input-focus-bg": "rgba(255, 255, 255, 0.05)",
"--glass-table-header": "rgba(236, 72, 153, 0.08)",
"--glass-bar-track": "rgba(255, 255, 255, 0.10)",
"--nav-bg": "rgba(10, 10, 15, 0.95)",
"--nav-border": "rgba(236, 72, 153, 0.08)",
"--nav-active": "rgba(236, 72, 153, 0.08)",
"--nav-hover": "rgba(236, 72, 153, 0.04)",
"--accent-color": "#ec4899",
"--accent-glow": "rgba(236, 72, 153, 0.3)",
"--card-lift-shadow": "0 8px 40px rgba(0, 0, 0, 0.3), 0 0 40px rgba(236, 72, 153, 0.06)",
"--stat-glow": "0 0 20px rgba(6, 182, 212, 0.15)",
"--nav-active-glow": "0 2px 10px rgba(236, 72, 153, 0.3)",
},
},
// 4. Steampunk
{
name: "steampunk",
label: "Steampunk",
isDark: true,
swatch: ["#d4a76a", "#b87333"],
bodyBg: "linear-gradient(135deg, #0f0a07 0%, #12100b 40%, #0e0905 100%)",
bgGradient:
"radial-gradient(ellipse 80% 50% at 50% -20%, rgba(212, 167, 106, 0.12), transparent), radial-gradient(ellipse 60% 40% at 80% 50%, rgba(184, 115, 51, 0.1), transparent), radial-gradient(ellipse 50% 50% at 20% 80%, rgba(245, 158, 11, 0.05), transparent)",
vars: {
"--background": "30 30% 4%",
"--foreground": "40 20% 97%",
"--card": "30 25% 10% / 0.4",
"--card-foreground": "40 20% 97%",
"--popover": "30 25% 10% / 0.8",
"--popover-foreground": "40 30% 88%",
"--primary": "35 55% 62%",
"--primary-foreground": "30 40% 10%",
"--secondary": "30 20% 14% / 0.5",
"--secondary-foreground": "40 30% 88%",
"--muted": "30 20% 14% / 0.5",
"--muted-foreground": "35 15% 68%",
"--accent": "25 60% 46%",
"--accent-foreground": "40 30% 92%",
"--destructive": "15 70% 50%",
"--border": "35 30% 50% / 0.08",
"--input": "35 30% 50% / 0.06",
"--ring": "35 55% 62%",
"--card-bg": "#1a130c",
"--card-border": "rgba(212, 167, 106, 0.12)",
"--card-hover-bg": "#241a10",
"--card-hover-border": "rgba(212, 167, 106, 0.22)",
"--glass-bg": "#16100a",
"--glass-border": "rgba(212, 167, 106, 0.10)",
"--glass-hover": "rgba(212, 167, 106, 0.03)",
"--glass-input-bg": "rgba(212, 167, 106, 0.07)",
"--glass-input-border": "rgba(212, 167, 106, 0.1)",
"--glass-input-focus": "rgba(184, 115, 51, 0.3)",
"--glass-input-focus-bg": "rgba(212, 167, 106, 0.05)",
"--glass-table-header": "rgba(212, 167, 106, 0.08)",
"--glass-bar-track": "rgba(212, 167, 106, 0.10)",
"--nav-bg": "rgba(15, 10, 7, 0.95)",
"--nav-border": "rgba(212, 167, 106, 0.08)",
"--nav-active": "rgba(212, 167, 106, 0.08)",
"--nav-hover": "rgba(212, 167, 106, 0.04)",
"--accent-color": "#d4a76a",
"--accent-glow": "rgba(212, 167, 106, 0.3)",
"--card-lift-shadow": "0 8px 40px rgba(0, 0, 0, 0.3), 0 0 40px rgba(212, 167, 106, 0.04)",
"--stat-glow": "0 0 20px rgba(212, 167, 106, 0.15)",
"--nav-active-glow": "0 2px 10px rgba(212, 167, 106, 0.3)",
},
},
// 5. Portland
{
name: "portland",
label: "Portland",
isDark: true,
swatch: ["#15803d", "#0e7490"],
bodyBg: "linear-gradient(135deg, #060d08 0%, #081210 40%, #050b08 100%)",
bgGradient:
"radial-gradient(ellipse 80% 50% at 50% -20%, rgba(21, 128, 61, 0.14), transparent), radial-gradient(ellipse 60% 40% at 80% 50%, rgba(14, 116, 144, 0.1), transparent), radial-gradient(ellipse 50% 50% at 20% 80%, rgba(34, 197, 94, 0.05), transparent)",
vars: {
"--background": "140 25% 4%",
"--foreground": "140 10% 97%",
"--card": "150 20% 9% / 0.4",
"--card-foreground": "140 10% 97%",
"--popover": "150 20% 9% / 0.8",
"--popover-foreground": "140 15% 88%",
"--primary": "142 64% 36%",
"--primary-foreground": "140 20% 95%",
"--secondary": "150 18% 14% / 0.5",
"--secondary-foreground": "140 15% 88%",
"--muted": "150 18% 14% / 0.5",
"--muted-foreground": "150 10% 68%",
"--accent": "189 80% 32%",
"--accent-foreground": "140 20% 95%",
"--destructive": "25 80% 50%",
"--border": "140 20% 50% / 0.08",
"--input": "140 20% 50% / 0.06",
"--ring": "142 64% 36%",
"--card-bg": "#0c1f14",
"--card-border": "rgba(21, 128, 61, 0.12)",
"--card-hover-bg": "#112a18",
"--card-hover-border": "rgba(21, 128, 61, 0.22)",
"--glass-bg": "#0a1a10",
"--glass-border": "rgba(21, 128, 61, 0.10)",
"--glass-hover": "rgba(21, 128, 61, 0.03)",
"--glass-input-bg": "rgba(21, 128, 61, 0.07)",
"--glass-input-border": "rgba(21, 128, 61, 0.1)",
"--glass-input-focus": "rgba(14, 116, 144, 0.3)",
"--glass-input-focus-bg": "rgba(21, 128, 61, 0.05)",
"--glass-table-header": "rgba(21, 128, 61, 0.08)",
"--glass-bar-track": "rgba(21, 128, 61, 0.10)",
"--nav-bg": "rgba(6, 13, 8, 0.95)",
"--nav-border": "rgba(21, 128, 61, 0.08)",
"--nav-active": "rgba(21, 128, 61, 0.08)",
"--nav-hover": "rgba(21, 128, 61, 0.04)",
"--accent-color": "#15803d",
"--accent-glow": "rgba(21, 128, 61, 0.3)",
"--card-lift-shadow": "0 8px 40px rgba(0, 0, 0, 0.3), 0 0 40px rgba(21, 128, 61, 0.04)",
"--stat-glow": "0 0 20px rgba(21, 128, 61, 0.15)",
"--nav-active-glow": "0 2px 10px rgba(21, 128, 61, 0.3)",
},
},
// 6. Racing
{
name: "racing",
label: "Racing",
isDark: true,
swatch: ["#dc2626", "#a1a1aa"],
bodyBg: "linear-gradient(135deg, #080808 0%, #0c0c0c 40%, #070707 100%)",
bgGradient:
"radial-gradient(ellipse 80% 50% at 50% -20%, rgba(220, 38, 38, 0.12), transparent), radial-gradient(ellipse 60% 40% at 80% 50%, rgba(161, 161, 170, 0.06), transparent), radial-gradient(ellipse 50% 50% at 20% 80%, rgba(220, 38, 38, 0.04), transparent)",
vars: {
"--background": "0 0% 4%",
"--foreground": "0 0% 98%",
"--card": "0 0% 9% / 0.4",
"--card-foreground": "0 0% 98%",
"--popover": "0 0% 9% / 0.8",
"--popover-foreground": "0 0% 93%",
"--primary": "0 72% 51%",
"--primary-foreground": "0 0% 98%",
"--secondary": "0 0% 14% / 0.5",
"--secondary-foreground": "0 0% 93%",
"--muted": "0 0% 14% / 0.5",
"--muted-foreground": "0 0% 68%",
"--accent": "0 0% 63%",
"--accent-foreground": "0 0% 93%",
"--destructive": "0 72% 51%",
"--border": "0 0% 100% / 0.06",
"--input": "0 0% 100% / 0.06",
"--ring": "0 72% 51%",
"--card-bg": "#121214",
"--card-border": "rgba(220, 38, 38, 0.12)",
"--card-hover-bg": "#1a1a1e",
"--card-hover-border": "rgba(220, 38, 38, 0.22)",
"--glass-bg": "#101012",
"--glass-border": "rgba(220, 38, 38, 0.10)",
"--glass-hover": "rgba(220, 38, 38, 0.03)",
"--glass-input-bg": "rgba(255, 255, 255, 0.07)",
"--glass-input-border": "rgba(255, 255, 255, 0.08)",
"--glass-input-focus": "rgba(220, 38, 38, 0.3)",
"--glass-input-focus-bg": "rgba(255, 255, 255, 0.05)",
"--glass-table-header": "rgba(255, 255, 255, 0.08)",
"--glass-bar-track": "rgba(255, 255, 255, 0.10)",
"--nav-bg": "rgba(8, 8, 8, 0.7)",
"--nav-border": "rgba(220, 38, 38, 0.08)",
"--nav-active": "rgba(220, 38, 38, 0.08)",
"--nav-hover": "rgba(220, 38, 38, 0.04)",
"--accent-color": "#dc2626",
"--accent-glow": "rgba(220, 38, 38, 0.3)",
"--card-lift-shadow": "0 8px 40px rgba(0, 0, 0, 0.3), 0 0 40px rgba(220, 38, 38, 0.04)",
"--stat-glow": "0 0 20px rgba(220, 38, 38, 0.15)",
"--nav-active-glow": "0 2px 10px rgba(220, 38, 38, 0.3)",
},
},
// 7. Ocean
{
name: "ocean",
label: "Ocean",
isDark: true,
swatch: ["#0284c7", "#2dd4bf"],
bodyBg: "linear-gradient(135deg, #030712 0%, #0a1628 40%, #041020 100%)",
bgGradient:
"radial-gradient(ellipse 80% 50% at 50% -20%, rgba(2, 132, 199, 0.15), transparent), radial-gradient(ellipse 60% 40% at 80% 50%, rgba(45, 212, 191, 0.08), transparent), radial-gradient(ellipse 50% 50% at 20% 80%, rgba(2, 132, 199, 0.06), transparent)",
vars: {
"--background": "220 50% 4%",
"--foreground": "200 10% 98%",
"--card": "215 40% 9% / 0.4",
"--card-foreground": "200 10% 98%",
"--popover": "215 40% 9% / 0.8",
"--popover-foreground": "200 20% 90%",
"--primary": "200 80% 44%",
"--primary-foreground": "200 20% 95%",
"--secondary": "210 30% 14% / 0.5",
"--secondary-foreground": "200 20% 90%",
"--muted": "210 30% 14% / 0.5",
"--muted-foreground": "200 15% 68%",
"--accent": "170 70% 50%",
"--accent-foreground": "200 20% 95%",
"--destructive": "10 70% 55%",
"--border": "200 30% 50% / 0.08",
"--input": "200 30% 50% / 0.06",
"--ring": "200 80% 44%",
"--card-bg": "#070e1c",
"--card-border": "rgba(2, 132, 199, 0.12)",
"--card-hover-bg": "#0a1425",
"--card-hover-border": "rgba(2, 132, 199, 0.22)",
"--glass-bg": "#060c1a",
"--glass-border": "rgba(2, 132, 199, 0.10)",
"--glass-hover": "rgba(2, 132, 199, 0.03)",
"--glass-input-bg": "rgba(2, 132, 199, 0.07)",
"--glass-input-border": "rgba(2, 132, 199, 0.1)",
"--glass-input-focus": "rgba(45, 212, 191, 0.3)",
"--glass-input-focus-bg": "rgba(2, 132, 199, 0.05)",
"--glass-table-header": "rgba(2, 132, 199, 0.08)",
"--glass-bar-track": "rgba(2, 132, 199, 0.10)",
"--nav-bg": "rgba(3, 7, 18, 0.85)",
"--nav-border": "rgba(2, 132, 199, 0.08)",
"--nav-active": "rgba(2, 132, 199, 0.08)",
"--nav-hover": "rgba(2, 132, 199, 0.04)",
"--accent-color": "#0284c7",
"--accent-glow": "rgba(2, 132, 199, 0.3)",
"--card-lift-shadow": "0 8px 40px rgba(0, 0, 0, 0.3), 0 0 40px rgba(2, 132, 199, 0.04)",
"--stat-glow": "0 0 20px rgba(45, 212, 191, 0.15)",
"--nav-active-glow": "0 2px 10px rgba(2, 132, 199, 0.3)",
},
},
// 8. Aurora
{
name: "aurora",
label: "Aurora",
isDark: true,
swatch: ["#4ade80", "#a78bfa"],
bodyBg: "linear-gradient(135deg, #050510 0%, #080818 40%, #050510 100%)",
bgGradient:
"radial-gradient(ellipse 90% 60% at 30% -10%, rgba(74, 222, 128, 0.12), transparent), radial-gradient(ellipse 70% 50% at 70% 30%, rgba(167, 139, 250, 0.1), transparent), radial-gradient(ellipse 60% 40% at 50% 80%, rgba(56, 189, 248, 0.08), transparent), radial-gradient(ellipse 40% 30% at 80% 60%, rgba(74, 222, 128, 0.05), transparent)",
vars: {
"--background": "240 33% 4%",
"--foreground": "220 15% 88%",
"--card": "240 25% 9% / 0.4",
"--card-foreground": "220 15% 88%",
"--popover": "240 25% 9% / 0.8",
"--popover-foreground": "220 15% 88%",
"--primary": "142 70% 58%",
"--primary-foreground": "240 20% 8%",
"--secondary": "240 20% 14% / 0.5",
"--secondary-foreground": "220 15% 88%",
"--muted": "240 20% 14% / 0.5",
"--muted-foreground": "230 12% 62%",
"--accent": "263 70% 72%",
"--accent-foreground": "220 15% 95%",
"--destructive": "45 90% 55%",
"--border": "260 20% 60% / 0.08",
"--input": "260 20% 60% / 0.06",
"--ring": "142 70% 58%",
"--card-bg": "#0a0c18",
"--card-border": "rgba(167, 139, 250, 0.12)",
"--card-hover-bg": "#0e1120",
"--card-hover-border": "rgba(167, 139, 250, 0.22)",
"--glass-bg": "#080a16",
"--glass-border": "rgba(167, 139, 250, 0.10)",
"--glass-hover": "rgba(74, 222, 128, 0.03)",
"--glass-input-bg": "rgba(167, 139, 250, 0.07)",
"--glass-input-border": "rgba(167, 139, 250, 0.1)",
"--glass-input-focus": "rgba(74, 222, 128, 0.3)",
"--glass-input-focus-bg": "rgba(167, 139, 250, 0.05)",
"--glass-table-header": "rgba(167, 139, 250, 0.08)",
"--glass-bar-track": "rgba(167, 139, 250, 0.10)",
"--nav-bg": "rgba(5, 5, 16, 0.85)",
"--nav-border": "rgba(167, 139, 250, 0.08)",
"--nav-active": "rgba(74, 222, 128, 0.06)",
"--nav-hover": "rgba(167, 139, 250, 0.04)",
"--accent-color": "#4ade80",
"--accent-glow": "rgba(74, 222, 128, 0.3)",
"--card-lift-shadow": "0 8px 40px rgba(0, 0, 0, 0.3), 0 0 40px rgba(167, 139, 250, 0.04)",
"--stat-glow": "0 0 20px rgba(74, 222, 128, 0.15)",
"--nav-active-glow": "0 2px 10px rgba(74, 222, 128, 0.3)",
},
},
];
export const DEFAULT_THEME = "midnight";
export function getTheme(name: string): Theme {
return themes.find((t) => t.name === name) ?? themes[0];
}