From 0d58ddd430f3893bf4101cd14b5c8c06c566322b Mon Sep 17 00:00:00 2001 From: SirBlob Date: Sun, 1 Nov 2026 20:46:34 -0500 Subject: [PATCH] Move themes to JSON --- content/themes.json | 96 +++++++++++++ src/lib/theme/themes.ts | 294 +--------------------------------------- 2 files changed, 99 insertions(+), 291 deletions(-) create mode 100644 content/themes.json diff --git a/content/themes.json b/content/themes.json new file mode 100644 index 0000000..e7dcb83 --- /dev/null +++ b/content/themes.json @@ -0,0 +1,96 @@ +[ + { + "id": "cerberus", + "name": "Cerberus", + "mode": "dark", + "wallpaper": "/wallpapers/astronaut2.jpg", + "activeBorder": ["#818cf8", "#e879f9"], + "colors": { "accent": "#818cf8", "selection": "#404040", "muted": "#a3a3a3", "background": "#171717", "dark_background": "#0f0f0f", "lighter_background": "#262626", "foreground": "#f5f5f5", "red": "#ef4444", "yellow": "#fbbf24", "orange": "#fb923c", "green": "#2dd4bf", "cyan": "#67e8f9", "blue": "#818cf8", "magenta": "#e879f9" } + }, + { + "id": "flats", + "name": "Flats", + "mode": "dark", + "wallpaper": "/wallpapers/pastel-car.jpg", + "colors": { "accent": "#5fa3e8", "selection": "#1e2228", "muted": "#78828c", "background": "#0f1012", "dark_background": "#0a0b0c", "lighter_background": "#191c20", "foreground": "#cbd2d9", "red": "#d53838", "yellow": "#d58638", "orange": "#d56338", "green": "#38d586", "cyan": "#38d4d5", "blue": "#3886d5", "magenta": "#d53886" } + }, + { + "id": "tokyo-night", + "name": "Tokyo Night", + "mode": "dark", + "wallpaper": "/wallpapers/sunset-lake.png", + "colors": { "accent": "#7aa2f7", "selection": "#292e42", "muted": "#565f89", "background": "#1a1b26", "dark_background": "#13141c", "lighter_background": "#24283b", "foreground": "#a9b1d6", "red": "#f7768e", "yellow": "#e0af68", "orange": "#eb927b", "green": "#9ece6a", "cyan": "#449dab", "blue": "#7aa2f7", "magenta": "#ad8ee6" } + }, + { + "id": "night-cat", + "name": "Night Cat", + "mode": "dark", + "wallpaper": "/wallpapers/cat.jpg", + "activeBorder": ["#ebe68f", "#2c5a78"], + "colors": { "accent": "#ebe68f", "selection": "#24495f", "muted": "#557386", "background": "#0a161e", "dark_background": "#060e14", "lighter_background": "#13252f", "foreground": "#c8d6df", "red": "#e06c75", "yellow": "#ebe68f", "orange": "#e5a46e", "green": "#8ccf9e", "cyan": "#6fc3d4", "blue": "#5a9cc4", "magenta": "#b392d4" } + }, + { + "id": "catppuccin", + "name": "Catppuccin", + "mode": "dark", + "wallpaper": "/wallpapers/totoro.png", + "colors": { "accent": "#89b4fa", "selection": "#45475a", "muted": "#6c7086", "background": "#1e1e2e", "dark_background": "#161622", "lighter_background": "#313244", "foreground": "#cdd6f4", "red": "#f38ba8", "yellow": "#f9e2af", "orange": "#fab387", "green": "#a6e3a1", "cyan": "#94e2d5", "blue": "#89b4fa", "magenta": "#cba6f7" } + }, + { + "id": "arch", + "name": "Arch Linux", + "mode": "dark", + "wallpaper": "/wallpapers/pacman-black.png", + "activeBorder": ["#33ccff", "#00ff99"], + "colors": { "accent": "#1793d1", "selection": "#21262d", "muted": "#8b949e", "background": "#0d1117", "dark_background": "#090c10", "lighter_background": "#161b22", "foreground": "#c9d1d9", "red": "#ff7b72", "yellow": "#d29922", "orange": "#ffa657", "green": "#3fb950", "cyan": "#39c5cf", "blue": "#58a6ff", "magenta": "#bc8cff" } + }, + { + "id": "gruvbox", + "name": "Gruvbox", + "mode": "dark", + "wallpaper": "/wallpapers/awesome.png", + "colors": { "accent": "#7daea3", "selection": "#504945", "muted": "#928374", "background": "#282828", "dark_background": "#1e1e1e", "lighter_background": "#3c3836", "foreground": "#d4be98", "red": "#ea6962", "yellow": "#d8a657", "orange": "#e1875c", "green": "#a9b665", "cyan": "#89b482", "blue": "#7daea3", "magenta": "#d3869b" } + }, + { + "id": "nord", + "name": "Nord", + "mode": "dark", + "wallpaper": "/wallpapers/nord_minimal_cat.png", + "colors": { "accent": "#81a1c1", "selection": "#434c5e", "muted": "#7b88a1", "background": "#2e3440", "dark_background": "#222730", "lighter_background": "#3b4252", "foreground": "#d8dee9", "red": "#bf616a", "yellow": "#ebcb8b", "orange": "#d5967a", "green": "#a3be8c", "cyan": "#88c0d0", "blue": "#81a1c1", "magenta": "#b48ead" } + }, + { + "id": "kanagawa", + "name": "Kanagawa", + "mode": "dark", + "wallpaper": "/wallpapers/pixel-earth.png", + "colors": { "accent": "#dcd7ba", "selection": "#363646", "muted": "#727169", "background": "#1f1f28", "dark_background": "#17171e", "lighter_background": "#2a2a37", "foreground": "#dcd7ba", "red": "#c34043", "yellow": "#c0a36e", "orange": "#c17158", "green": "#76946a", "cyan": "#6a9589", "blue": "#7e9cd8", "magenta": "#957fb8" } + }, + { + "id": "wintry", + "name": "Wintry", + "mode": "dark", + "wallpaper": "/wallpapers/perfect-blue.jpg", + "colors": { "accent": "#7dd3fc", "selection": "#334155", "muted": "#94a3b8", "background": "#0f172a", "dark_background": "#0a1020", "lighter_background": "#1e293b", "foreground": "#f1f5f9", "red": "#f43f5e", "yellow": "#fde047", "orange": "#fb923c", "green": "#4ade80", "cyan": "#67e8f9", "blue": "#60a5fa", "magenta": "#c084fc" } + }, + { + "id": "rose", + "name": "Rose", + "mode": "dark", + "wallpaper": "/wallpapers/cherry_blossoms.jpg", + "colors": { "accent": "#fb7185", "selection": "#5f484f", "muted": "#c48b95", "background": "#1f181b", "dark_background": "#171214", "lighter_background": "#2e2327", "foreground": "#ffe4e6", "red": "#f43f5e", "yellow": "#fde047", "orange": "#fb923c", "green": "#34d399", "cyan": "#67e8f9", "blue": "#60a5fa", "magenta": "#e879f9" } + }, + { + "id": "catppuccin-latte", + "name": "Catppuccin Latte", + "mode": "light", + "wallpaper": "/wallpapers/yosemite-color-block.jpg", + "colors": { "accent": "#1e66f5", "selection": "#ccd0da", "muted": "#8c8fa1", "background": "#eff1f5", "dark_background": "#e3e4e8", "lighter_background": "#dce0e8", "foreground": "#4c4f69", "red": "#d20f39", "yellow": "#df8e1d", "orange": "#d84e2b", "green": "#40a02b", "cyan": "#179299", "blue": "#1e66f5", "magenta": "#ea76cb" } + }, + { + "id": "rose-pine", + "name": "Rose Pine Dawn", + "mode": "light", + "wallpaper": "/wallpapers/material-pastel.jpg", + "colors": { "accent": "#56949f", "selection": "#dfdad9", "muted": "#9893a5", "background": "#faf4ed", "dark_background": "#ede7e1", "lighter_background": "#f2e9e1", "foreground": "#575279", "red": "#b4637a", "yellow": "#ea9d34", "orange": "#cf8057", "green": "#286983", "cyan": "#d7827e", "blue": "#56949f", "magenta": "#907aa9" } + } +] diff --git a/src/lib/theme/themes.ts b/src/lib/theme/themes.ts index 5936153..3a34eac 100644 --- a/src/lib/theme/themes.ts +++ b/src/lib/theme/themes.ts @@ -1,3 +1,5 @@ +import themesData from '#content/themes.json'; + export interface ThemePalette { accent: string; selection: string; @@ -24,297 +26,7 @@ export interface Theme { colors: ThemePalette; } -export const themes: Theme[] = [ - { - id: 'cerberus', - name: 'Cerberus', - mode: 'dark', - wallpaper: '/wallpapers/astronaut2.jpg', - activeBorder: ['#818cf8', '#e879f9'], - colors: { - accent: '#818cf8', - selection: '#404040', - muted: '#a3a3a3', - background: '#171717', - dark_background: '#0f0f0f', - lighter_background: '#262626', - foreground: '#f5f5f5', - red: '#ef4444', - yellow: '#fbbf24', - orange: '#fb923c', - green: '#2dd4bf', - cyan: '#67e8f9', - blue: '#818cf8', - magenta: '#e879f9' - } - }, - { - id: 'flats', - name: 'Flats', - mode: 'dark', - wallpaper: '/wallpapers/pastel-car.jpg', - colors: { - accent: '#5fa3e8', - selection: '#1e2228', - muted: '#78828c', - background: '#0f1012', - dark_background: '#0a0b0c', - lighter_background: '#191c20', - foreground: '#cbd2d9', - red: '#d53838', - yellow: '#d58638', - orange: '#d56338', - green: '#38d586', - cyan: '#38d4d5', - blue: '#3886d5', - magenta: '#d53886' - } - }, - { - id: 'tokyo-night', - name: 'Tokyo Night', - mode: 'dark', - wallpaper: '/wallpapers/sunset-lake.png', - colors: { - accent: '#7aa2f7', - selection: '#292e42', - muted: '#565f89', - background: '#1a1b26', - dark_background: '#13141c', - lighter_background: '#24283b', - foreground: '#a9b1d6', - red: '#f7768e', - yellow: '#e0af68', - orange: '#eb927b', - green: '#9ece6a', - cyan: '#449dab', - blue: '#7aa2f7', - magenta: '#ad8ee6' - } - }, - { - id: 'night-cat', - name: 'Night Cat', - mode: 'dark', - wallpaper: '/wallpapers/cat.jpg', - activeBorder: ['#ebe68f', '#2c5a78'], - colors: { - accent: '#ebe68f', - selection: '#24495f', - muted: '#557386', - background: '#0a161e', - dark_background: '#060e14', - lighter_background: '#13252f', - foreground: '#c8d6df', - red: '#e06c75', - yellow: '#ebe68f', - orange: '#e5a46e', - green: '#8ccf9e', - cyan: '#6fc3d4', - blue: '#5a9cc4', - magenta: '#b392d4' - } - }, - { - id: 'catppuccin', - name: 'Catppuccin', - mode: 'dark', - wallpaper: '/wallpapers/totoro.png', - colors: { - accent: '#89b4fa', - selection: '#45475a', - muted: '#6c7086', - background: '#1e1e2e', - dark_background: '#161622', - lighter_background: '#313244', - foreground: '#cdd6f4', - red: '#f38ba8', - yellow: '#f9e2af', - orange: '#fab387', - green: '#a6e3a1', - cyan: '#94e2d5', - blue: '#89b4fa', - magenta: '#cba6f7' - } - }, - { - id: 'arch', - name: 'Arch Linux', - mode: 'dark', - wallpaper: '/wallpapers/pacman-black.png', - activeBorder: ['#33ccff', '#00ff99'], - colors: { - accent: '#1793d1', - selection: '#21262d', - muted: '#8b949e', - background: '#0d1117', - dark_background: '#090c10', - lighter_background: '#161b22', - foreground: '#c9d1d9', - red: '#ff7b72', - yellow: '#d29922', - orange: '#ffa657', - green: '#3fb950', - cyan: '#39c5cf', - blue: '#58a6ff', - magenta: '#bc8cff' - } - }, - { - id: 'gruvbox', - name: 'Gruvbox', - mode: 'dark', - wallpaper: '/wallpapers/awesome.png', - colors: { - accent: '#7daea3', - selection: '#504945', - muted: '#928374', - background: '#282828', - dark_background: '#1e1e1e', - lighter_background: '#3c3836', - foreground: '#d4be98', - red: '#ea6962', - yellow: '#d8a657', - orange: '#e1875c', - green: '#a9b665', - cyan: '#89b482', - blue: '#7daea3', - magenta: '#d3869b' - } - }, - { - id: 'nord', - name: 'Nord', - mode: 'dark', - wallpaper: '/wallpapers/nord_minimal_cat.png', - colors: { - accent: '#81a1c1', - selection: '#434c5e', - muted: '#7b88a1', - background: '#2e3440', - dark_background: '#222730', - lighter_background: '#3b4252', - foreground: '#d8dee9', - red: '#bf616a', - yellow: '#ebcb8b', - orange: '#d5967a', - green: '#a3be8c', - cyan: '#88c0d0', - blue: '#81a1c1', - magenta: '#b48ead' - } - }, - { - id: 'kanagawa', - name: 'Kanagawa', - mode: 'dark', - wallpaper: '/wallpapers/pixel-earth.png', - colors: { - accent: '#dcd7ba', - selection: '#363646', - muted: '#727169', - background: '#1f1f28', - dark_background: '#17171e', - lighter_background: '#2a2a37', - foreground: '#dcd7ba', - red: '#c34043', - yellow: '#c0a36e', - orange: '#c17158', - green: '#76946a', - cyan: '#6a9589', - blue: '#7e9cd8', - magenta: '#957fb8' - } - }, - { - id: 'wintry', - name: 'Wintry', - mode: 'dark', - wallpaper: '/wallpapers/perfect-blue.jpg', - colors: { - accent: '#7dd3fc', - selection: '#334155', - muted: '#94a3b8', - background: '#0f172a', - dark_background: '#0a1020', - lighter_background: '#1e293b', - foreground: '#f1f5f9', - red: '#f43f5e', - yellow: '#fde047', - orange: '#fb923c', - green: '#4ade80', - cyan: '#67e8f9', - blue: '#60a5fa', - magenta: '#c084fc' - } - }, - { - id: 'rose', - name: 'Rose', - mode: 'dark', - wallpaper: '/wallpapers/cherry_blossoms.jpg', - colors: { - accent: '#fb7185', - selection: '#5f484f', - muted: '#c48b95', - background: '#1f181b', - dark_background: '#171214', - lighter_background: '#2e2327', - foreground: '#ffe4e6', - red: '#f43f5e', - yellow: '#fde047', - orange: '#fb923c', - green: '#34d399', - cyan: '#67e8f9', - blue: '#60a5fa', - magenta: '#e879f9' - } - }, - { - id: 'catppuccin-latte', - name: 'Catppuccin Latte', - mode: 'light', - wallpaper: '/wallpapers/yosemite-color-block.jpg', - colors: { - accent: '#1e66f5', - selection: '#ccd0da', - muted: '#8c8fa1', - background: '#eff1f5', - dark_background: '#e3e4e8', - lighter_background: '#dce0e8', - foreground: '#4c4f69', - red: '#d20f39', - yellow: '#df8e1d', - orange: '#d84e2b', - green: '#40a02b', - cyan: '#179299', - blue: '#1e66f5', - magenta: '#ea76cb' - } - }, - { - id: 'rose-pine', - name: 'Rose Pine Dawn', - mode: 'light', - wallpaper: '/wallpapers/material-pastel.jpg', - colors: { - accent: '#56949f', - selection: '#dfdad9', - muted: '#9893a5', - background: '#faf4ed', - dark_background: '#ede7e1', - lighter_background: '#f2e9e1', - foreground: '#575279', - red: '#b4637a', - yellow: '#ea9d34', - orange: '#cf8057', - green: '#286983', - cyan: '#d7827e', - blue: '#56949f', - magenta: '#907aa9' - } - } -]; +export const themes: Theme[] = themesData as Theme[]; export function findTheme(id: string | null | undefined): Theme | undefined { return themes.find((theme) => theme.id === id);