diff --git a/src/ui/theme.test.ts b/src/ui/theme.test.ts index 444bb3d..4324c76 100644 --- a/src/ui/theme.test.ts +++ b/src/ui/theme.test.ts @@ -28,6 +28,11 @@ describe("theme system", () => { expect(ids).toContain("gruvbox-dark"); expect(ids).toContain("monokai-pro"); expect(ids).toContain("deep-ocean"); + expect(ids).toContain("cyberpunk-neon"); + expect(ids).toContain("kanagawa-wave"); + expect(ids).toContain("rose-pine"); + expect(ids).toContain("mocha-lavender"); + expect(ids).toContain("solar-flare"); for (const t of THEMES) { expect(t.name).toBeTruthy(); diff --git a/src/ui/theme.ts b/src/ui/theme.ts index b7a50ce..0252898 100644 --- a/src/ui/theme.ts +++ b/src/ui/theme.ts @@ -490,6 +490,151 @@ export const THEMES: readonly Theme[] = [ bittorrented: { color: "#82aaff" }, }, }, + { + id: "cyberpunk-neon", + name: "Cyberpunk Neon", + description: "High-voltage Night City yellow, neon cyan and Arasaka red", + icon: "πŸŒ†", + colors: { + accent: "#fcee0a", + text: "#fefefe", + alt: "#00f0ff", + good: "#00ff9f", + warn: "#ffb800", + bad: "#ff003c", + bright: "#fff975", + rule: "#2b2b38", + paused: "#5f5f73", + base: "#d6c800", + shade: "#14141d", + sprout: "#00f0ff", + sheenPeak: "#ffffff", + }, + sourceStyles: { + subsplease: { color: "#00f0ff" }, + "tpb-movies": { color: "#ff003c" }, + "tpb-tv": { color: "#ff003c" }, + "x1337-movies": { color: "#fcee0a" }, + "x1337-tv": { color: "#fcee0a" }, + bittorrented: { color: "#00ff9f" }, + }, + }, + { + id: "kanagawa-wave", + name: "Kanagawa Wave", + description: "Serene Japanese Katsushika Hokusai ink wash & autumn leaf", + icon: "🌊", + colors: { + accent: "#7e9cd8", + text: "#dcd7ba", + alt: "#957fb8", + good: "#98bb6c", + warn: "#e6c384", + bad: "#e46876", + bright: "#7fb4ca", + rule: "#2a2a37", + paused: "#54546d", + base: "#658594", + shade: "#16161d", + sprout: "#7aa89f", + sheenPeak: "#f2ecdb", + }, + sourceStyles: { + subsplease: { color: "#7fb4ca" }, + "tpb-movies": { color: "#957fb8" }, + "tpb-tv": { color: "#957fb8" }, + "x1337-movies": { color: "#e6c384" }, + "x1337-tv": { color: "#e6c384" }, + bittorrented: { color: "#7e9cd8" }, + }, + }, + { + id: "rose-pine", + name: "RosΓ© Pine", + description: "Cozy Soho mood with warm bougainvillea, rose gold and pine teal", + icon: "🌲", + colors: { + accent: "#ebbcba", + text: "#e0def4", + alt: "#9ccfd8", + good: "#56b49e", + warn: "#f6c177", + bad: "#eb6f92", + bright: "#f4d9d7", + rule: "#26233a", + paused: "#6e6a86", + base: "#c4a7e7", + shade: "#191724", + sprout: "#9ccfd8", + sheenPeak: "#faf4ed", + }, + sourceStyles: { + subsplease: { color: "#9ccfd8" }, + "tpb-movies": { color: "#c4a7e7" }, + "tpb-tv": { color: "#c4a7e7" }, + "x1337-movies": { color: "#f6c177" }, + "x1337-tv": { color: "#f6a55c" }, + bittorrented: { color: "#ebbcba" }, + }, + }, + { + id: "mocha-lavender", + name: "Mocha Lavender", + description: "Rich Catppuccin Mocha velvet with mauve, sapphire and peach", + icon: "β˜•", + colors: { + accent: "#cba6f7", + text: "#cdd6f4", + alt: "#89b4fa", + good: "#a6e3a1", + warn: "#fab387", + bad: "#f38ba8", + bright: "#b4befe", + rule: "#313244", + paused: "#585b70", + base: "#89dceb", + shade: "#181825", + sprout: "#94e2d5", + sheenPeak: "#f5e0dc", + }, + sourceStyles: { + subsplease: { color: "#89b4fa" }, + "tpb-movies": { color: "#cba6f7" }, + "tpb-tv": { color: "#cba6f7" }, + "x1337-movies": { color: "#fab387" }, + "x1337-tv": { color: "#fab387" }, + bittorrented: { color: "#94e2d5" }, + }, + }, + { + id: "solar-flare", + name: "Solar Flare", + description: "Blazing sunburst orange, plasma gold and radiant ember highlights", + icon: "β˜€οΈ", + colors: { + accent: "#ff6b35", + text: "#fff5eb", + alt: "#ffa62b", + good: "#48cae4", + warn: "#ffd166", + bad: "#ef476f", + bright: "#ff9770", + rule: "#3d2314", + paused: "#6d4c3d", + base: "#d9480f", + shade: "#1a0f08", + sprout: "#ffa62b", + sheenPeak: "#ffffff", + }, + sourceStyles: { + subsplease: { color: "#48cae4" }, + "tpb-movies": { color: "#ffa62b" }, + "tpb-tv": { color: "#ffa62b" }, + "x1337-movies": { color: "#ff6b35" }, + "x1337-tv": { color: "#ff6b35" }, + bittorrented: { color: "#ffd166" }, + }, + }, ] as const; export const DEFAULT_THEME: Theme = THEMES[0]!;