From e02fdf59f408c53a1e5d705d895ffe5c2c6037f4 Mon Sep 17 00:00:00 2001 From: Sir Blob Date: Sat, 29 Nov 2025 08:20:13 +0000 Subject: [PATCH] More Themes --- src/lib/assets/themes/arch.theme.json | 176 +++++++++---------- src/lib/assets/themes/catppuccin.theme.json | 178 ++++++++++---------- src/lib/assets/themes/cerberus.theme.json | 90 ++++++++++ src/lib/assets/themes/rose.theme.json | 90 ++++++++++ src/lib/assets/themes/wintry.theme.json | 90 ++++++++++ src/lib/pages/home.ts | 5 - src/lib/stores/theme.ts | 10 +- 7 files changed, 455 insertions(+), 184 deletions(-) create mode 100644 src/lib/assets/themes/cerberus.theme.json create mode 100644 src/lib/assets/themes/rose.theme.json create mode 100644 src/lib/assets/themes/wintry.theme.json diff --git a/src/lib/assets/themes/arch.theme.json b/src/lib/assets/themes/arch.theme.json index a8db146..c68f048 100644 --- a/src/lib/assets/themes/arch.theme.json +++ b/src/lib/assets/themes/arch.theme.json @@ -1,90 +1,90 @@ { - "name": "Arch Linux", - "icon": "🐧", - "dark": { - "colors": { - "primary": "#1793d1", - "secondary": "#333333", - "accent": "#23d18b", - "background": "#0d1117", - "backgroundLight": "#161b22", - "text": "#c9d1d9", - "textMuted": "#8b949e", - "border": "#30363d", - "terminal": "#0d1117", - "terminalPrompt": "#1793d1", - "terminalUser": "#23d18b", - "terminalPath": "#1793d1" - }, - "colorMap": { - "red": "#fa7970", - "green": "#23d18b", - "yellow": "#faa356", - "blue": "#1793d1", - "magenta": "#cea5fb", - "cyan": "#89dceb", - "white": "#c9d1d9", - "gray": "#6e7681", - "orange": "#ff9500", - "pink": "#ff79c6", - "black": "#0d1117", - "surface": "#161b22", - "teal": "#77dfd8", - "sky": "#00bfff", - "sapphire": "#0099cc", - "lavender": "#b4a7d6", - "peach": "#ff9966", - "maroon": "#fa7970", - "mauve": "#cea5fb", - "flamingo": "#e06c75", - "rosewater": "#e8b4b8", - "error": "#fa7970", - "success": "#23d18b", - "warning": "#faa356", - "info": "#1793d1" - } - }, - "light": { - "colors": { - "primary": "#1793d1", - "secondary": "#e0e0e0", - "accent": "#005a2b", - "background": "#f6f8fa", - "backgroundLight": "#ffffff", - "text": "#111111", - "textMuted": "#57606a", - "border": "#d0d7de", - "terminal": "#ffffff", - "terminalPrompt": "#005a87", - "terminalUser": "#005a2b", - "terminalPath": "#005a87" - }, - "colorMap": { - "red": "#a6101d", - "green": "#005a2b", - "yellow": "#945b00", - "blue": "#0a5696", - "magenta": "#7820a0", - "cyan": "#006060", - "white": "#111111", - "gray": "#57606a", - "orange": "#c04500", - "pink": "#a01b58", - "black": "#ffffff", - "surface": "#eaeef2", - "teal": "#006060", - "sky": "#005a87", - "sapphire": "#004870", - "lavender": "#4a4ec0", - "peach": "#b05010", - "maroon": "#802020", - "mauve": "#602090", - "flamingo": "#901040", - "rosewater": "#a05040", - "error": "#a6101d", - "success": "#005a2b", - "warning": "#945b00", - "info": "#0a5696" - } - } + "name": "Arch Linux", + "icon": "🐧", + "dark": { + "colors": { + "primary": "#1793d1", + "secondary": "#21262d", + "accent": "#23d18b", + "background": "#0d1117", + "backgroundLight": "#161b22", + "text": "#c9d1d9", + "textMuted": "#8b949e", + "border": "#484f58", + "terminal": "#0d1117", + "terminalPrompt": "#1793d1", + "terminalUser": "#23d18b", + "terminalPath": "#1793d1" + }, + "colorMap": { + "red": "#ff7b72", + "green": "#3fb950", + "yellow": "#d29922", + "blue": "#58a6ff", + "magenta": "#bc8cff", + "cyan": "#39c5cf", + "white": "#f0f6fc", + "gray": "#6e7681", + "orange": "#ffa657", + "pink": "#ff79c6", + "black": "#484f58", + "surface": "#21262d", + "teal": "#39c5cf", + "sky": "#58a6ff", + "sapphire": "#1793d1", + "lavender": "#bc8cff", + "peach": "#ffa657", + "maroon": "#ff7b72", + "mauve": "#bc8cff", + "flamingo": "#e06c75", + "rosewater": "#e8b4b8", + "error": "#ff7b72", + "success": "#3fb950", + "warning": "#d29922", + "info": "#1793d1" + } + }, + "light": { + "colors": { + "primary": "#1793d1", + "secondary": "#ddf4ff", + "accent": "#0969da", + "background": "#ffffff", + "backgroundLight": "#f6f8fa", + "text": "#24292f", + "textMuted": "#57606a", + "border": "#d0d7de", + "terminal": "#ffffff", + "terminalPrompt": "#1793d1", + "terminalUser": "#0969da", + "terminalPath": "#1793d1" + }, + "colorMap": { + "red": "#cf222e", + "green": "#1a7f37", + "yellow": "#9a6700", + "blue": "#0969da", + "magenta": "#8250df", + "cyan": "#1b7c83", + "white": "#24292f", + "gray": "#6e7781", + "orange": "#bc4c00", + "pink": "#bf3989", + "black": "#24292f", + "surface": "#f6f8fa", + "teal": "#1b7c83", + "sky": "#0969da", + "sapphire": "#1793d1", + "lavender": "#8250df", + "peach": "#bc4c00", + "maroon": "#cf222e", + "mauve": "#8250df", + "flamingo": "#bf3989", + "rosewater": "#d0d7de", + "error": "#cf222e", + "success": "#1a7f37", + "warning": "#9a6700", + "info": "#0969da" + } + } } \ No newline at end of file diff --git a/src/lib/assets/themes/catppuccin.theme.json b/src/lib/assets/themes/catppuccin.theme.json index 68b59ad..949e94c 100644 --- a/src/lib/assets/themes/catppuccin.theme.json +++ b/src/lib/assets/themes/catppuccin.theme.json @@ -1,90 +1,90 @@ { - "name": "Catppuccin", - "icon": "🐱", - "dark": { - "colors": { - "primary": "#89b4fa", - "secondary": "#313244", - "accent": "#a6e3a1", - "background": "#1e1e2e", - "backgroundLight": "#313244", - "text": "#cdd6f4", - "textMuted": "#a6adc8", - "border": "#45475a", - "terminal": "#1e1e2e", - "terminalPrompt": "#cba6f7", - "terminalUser": "#a6e3a1", - "terminalPath": "#89b4fa" - }, - "colorMap": { - "red": "#f38ba8", - "green": "#a6e3a1", - "yellow": "#f9e2af", - "blue": "#89b4fa", - "magenta": "#cba6f7", - "cyan": "#94e2d5", - "white": "#cdd6f4", - "gray": "#6c7086", - "orange": "#fab387", - "pink": "#f5c2e7", - "black": "#1e1e2e", - "surface": "#313244", - "teal": "#94e2d5", - "sky": "#89dceb", - "sapphire": "#74c7ec", - "lavender": "#b4befe", - "peach": "#fab387", - "maroon": "#eba0ac", - "mauve": "#cba6f7", - "flamingo": "#f2cdcd", - "rosewater": "#f5e0dc", - "error": "#f38ba8", - "success": "#a6e3a1", - "warning": "#f9e2af", - "info": "#89b4fa" - } - }, - "light": { - "colors": { - "primary": "#1e66f5", - "secondary": "#ccd0da", - "accent": "#40a02b", - "background": "#eff1f5", - "backgroundLight": "#dce0e8", - "text": "#4c4f69", - "textMuted": "#6c6f85", - "border": "#bcc0cc", - "terminal": "#eff1f5", - "terminalPrompt": "#8839ef", - "terminalUser": "#40a02b", - "terminalPath": "#1e66f5" - }, - "colorMap": { - "red": "#d20f39", - "green": "#40a02b", - "yellow": "#df8e1d", - "blue": "#1e66f5", - "magenta": "#8839ef", - "cyan": "#179299", - "white": "#4c4f69", - "gray": "#9ca0b0", - "orange": "#fe640b", - "pink": "#ea76cb", - "black": "#eff1f5", - "surface": "#ccd0da", - "teal": "#179299", - "sky": "#04a5e5", - "sapphire": "#209fb5", - "lavender": "#7287fd", - "peach": "#fe640b", - "maroon": "#e64553", - "mauve": "#8839ef", - "flamingo": "#dd7878", - "rosewater": "#dc8a78", - "error": "#d20f39", - "success": "#40a02b", - "warning": "#df8e1d", - "info": "#1e66f5" - } - } -} + "name": "Catppuccin", + "icon": "🐱", + "dark": { + "colors": { + "primary": "#89b4fa", + "secondary": "#585b70", + "accent": "#a6e3a1", + "background": "#1e1e2e", + "backgroundLight": "#313244", + "text": "#cdd6f4", + "textMuted": "#a6adc8", + "border": "#6c7086", + "terminal": "#1e1e2e", + "terminalPrompt": "#cba6f7", + "terminalUser": "#a6e3a1", + "terminalPath": "#89b4fa" + }, + "colorMap": { + "red": "#f38ba8", + "green": "#a6e3a1", + "yellow": "#f9e2af", + "blue": "#89b4fa", + "magenta": "#cba6f7", + "cyan": "#94e2d5", + "white": "#cdd6f4", + "gray": "#6c7086", + "orange": "#fab387", + "pink": "#f5c2e7", + "black": "#45475a", + "surface": "#313244", + "teal": "#94e2d5", + "sky": "#89dceb", + "sapphire": "#74c7ec", + "lavender": "#b4befe", + "peach": "#fab387", + "maroon": "#eba0ac", + "mauve": "#cba6f7", + "flamingo": "#f2cdcd", + "rosewater": "#f5e0dc", + "error": "#f38ba8", + "success": "#a6e3a1", + "warning": "#f9e2af", + "info": "#89b4fa" + } + }, + "light": { + "colors": { + "primary": "#1e66f5", + "secondary": "#acb0be", + "accent": "#40a02b", + "background": "#eff1f5", + "backgroundLight": "#e6e9ef", + "text": "#4c4f69", + "textMuted": "#6c6f85", + "border": "#9ca0b0", + "terminal": "#eff1f5", + "terminalPrompt": "#8839ef", + "terminalUser": "#40a02b", + "terminalPath": "#1e66f5" + }, + "colorMap": { + "red": "#d20f39", + "green": "#40a02b", + "yellow": "#df8e1d", + "blue": "#1e66f5", + "magenta": "#8839ef", + "cyan": "#179299", + "white": "#4c4f69", + "gray": "#9ca0b0", + "orange": "#fe640b", + "pink": "#ea76cb", + "black": "#bcc0cc", + "surface": "#ccd0da", + "teal": "#179299", + "sky": "#04a5e5", + "sapphire": "#209fb5", + "lavender": "#7287fd", + "peach": "#fe640b", + "maroon": "#e64553", + "mauve": "#8839ef", + "flamingo": "#dd7878", + "rosewater": "#dc8a78", + "error": "#d20f39", + "success": "#40a02b", + "warning": "#df8e1d", + "info": "#1e66f5" + } + } +} \ No newline at end of file diff --git a/src/lib/assets/themes/cerberus.theme.json b/src/lib/assets/themes/cerberus.theme.json new file mode 100644 index 0000000..6525410 --- /dev/null +++ b/src/lib/assets/themes/cerberus.theme.json @@ -0,0 +1,90 @@ +{ + "name": "Cerberus", + "icon": "🐕", + "dark": { + "colors": { + "primary": "#818cf8", + "secondary": "#e879f9", + "accent": "#2dd4bf", + "background": "#171717", + "backgroundLight": "#262626", + "text": "#f5f5f5", + "textMuted": "#a3a3a3", + "border": "#404040", + "terminal": "#171717", + "terminalPrompt": "#818cf8", + "terminalUser": "#2dd4bf", + "terminalPath": "#e879f9" + }, + "colorMap": { + "red": "#ef4444", + "green": "#2dd4bf", + "yellow": "#fbbf24", + "blue": "#818cf8", + "magenta": "#e879f9", + "cyan": "#67e8f9", + "white": "#f5f5f5", + "gray": "#737373", + "orange": "#fb923c", + "pink": "#f472b6", + "black": "#404040", + "surface": "#262626", + "teal": "#2dd4bf", + "sky": "#38bdf8", + "sapphire": "#3b82f6", + "lavender": "#a78bfa", + "peach": "#fdba74", + "maroon": "#f43f5e", + "mauve": "#c084fc", + "flamingo": "#f472b6", + "rosewater": "#fb7185", + "error": "#ef4444", + "success": "#2dd4bf", + "warning": "#fbbf24", + "info": "#818cf8" + } + }, + "light": { + "colors": { + "primary": "#4f46e5", + "secondary": "#c026d3", + "accent": "#0d9488", + "background": "#ffffff", + "backgroundLight": "#f5f5f5", + "text": "#171717", + "textMuted": "#525252", + "border": "#d4d4d4", + "terminal": "#ffffff", + "terminalPrompt": "#4f46e5", + "terminalUser": "#0d9488", + "terminalPath": "#c026d3" + }, + "colorMap": { + "red": "#dc2626", + "green": "#0f766e", + "yellow": "#d97706", + "blue": "#4f46e5", + "magenta": "#c026d3", + "cyan": "#0891b2", + "white": "#171717", + "gray": "#525252", + "orange": "#ea580c", + "pink": "#db2777", + "black": "#262626", + "surface": "#f5f5f5", + "teal": "#0f766e", + "sky": "#0284c7", + "sapphire": "#1d4ed8", + "lavender": "#7e22ce", + "peach": "#f97316", + "maroon": "#e11d48", + "mauve": "#9333ea", + "flamingo": "#be185d", + "rosewater": "#e11d48", + "error": "#dc2626", + "success": "#0f766e", + "warning": "#d97706", + "info": "#4f46e5" + } + } +} \ No newline at end of file diff --git a/src/lib/assets/themes/rose.theme.json b/src/lib/assets/themes/rose.theme.json new file mode 100644 index 0000000..2cb3a08 --- /dev/null +++ b/src/lib/assets/themes/rose.theme.json @@ -0,0 +1,90 @@ +{ + "name": "Rose", + "icon": "🌹", + "dark": { + "colors": { + "primary": "#fb7185", + "secondary": "#c084fc", + "accent": "#2dd4bf", + "background": "#1f181b", + "backgroundLight": "#2e2327", + "text": "#ffe4e6", + "textMuted": "#fda4af", + "border": "#5f484f", + "terminal": "#1f181b", + "terminalPrompt": "#fb7185", + "terminalUser": "#2dd4bf", + "terminalPath": "#c084fc" + }, + "colorMap": { + "red": "#f43f5e", + "green": "#34d399", + "yellow": "#fde047", + "blue": "#60a5fa", + "magenta": "#e879f9", + "cyan": "#67e8f9", + "white": "#ffe4e6", + "gray": "#886e75", + "orange": "#fb923c", + "pink": "#fb7185", + "black": "#5f484f", + "surface": "#2e2327", + "teal": "#2dd4bf", + "sky": "#7dd3fc", + "sapphire": "#3b82f6", + "lavender": "#c084fc", + "peach": "#fdba74", + "maroon": "#be123c", + "mauve": "#d8b4fe", + "flamingo": "#f472b6", + "rosewater": "#fecdd3", + "error": "#f43f5e", + "success": "#34d399", + "warning": "#fde047", + "info": "#60a5fa" + } + }, + "light": { + "colors": { + "primary": "#be123c", + "secondary": "#7e22ce", + "accent": "#0f766e", + "background": "#fff1f2", + "backgroundLight": "#ffe4e6", + "text": "#4c0519", + "textMuted": "#9f1239", + "border": "#fecdd3", + "terminal": "#fff1f2", + "terminalPrompt": "#be123c", + "terminalUser": "#0f766e", + "terminalPath": "#7e22ce" + }, + "colorMap": { + "red": "#e11d48", + "green": "#059669", + "yellow": "#d97706", + "blue": "#2563eb", + "magenta": "#9333ea", + "cyan": "#0891b2", + "white": "#4c0519", + "gray": "#9f1239", + "orange": "#ea580c", + "pink": "#db2777", + "black": "#881337", + "surface": "#ffe4e6", + "teal": "#0f766e", + "sky": "#0284c7", + "sapphire": "#1d4ed8", + "lavender": "#7e22ce", + "peach": "#f97316", + "maroon": "#881337", + "mauve": "#a855f7", + "flamingo": "#be185d", + "rosewater": "#e11d48", + "error": "#e11d48", + "success": "#059669", + "warning": "#d97706", + "info": "#2563eb" + } + } +} \ No newline at end of file diff --git a/src/lib/assets/themes/wintry.theme.json b/src/lib/assets/themes/wintry.theme.json new file mode 100644 index 0000000..2be039b --- /dev/null +++ b/src/lib/assets/themes/wintry.theme.json @@ -0,0 +1,90 @@ +{ + "name": "Wintry", + "icon": "❄️", + "dark": { + "colors": { + "primary": "#7dd3fc", + "secondary": "#334155", + "accent": "#2dd4bf", + "background": "#0f172a", + "backgroundLight": "#1e293b", + "text": "#f1f5f9", + "textMuted": "#94a3b8", + "border": "#475569", + "terminal": "#0f172a", + "terminalPrompt": "#7dd3fc", + "terminalUser": "#2dd4bf", + "terminalPath": "#818cf8" + }, + "colorMap": { + "red": "#f43f5e", + "green": "#4ade80", + "yellow": "#fde047", + "blue": "#60a5fa", + "magenta": "#c084fc", + "cyan": "#67e8f9", + "white": "#f1f5f9", + "gray": "#64748b", + "orange": "#fb923c", + "pink": "#f472b6", + "black": "#334155", + "surface": "#1e293b", + "teal": "#2dd4bf", + "sky": "#7dd3fc", + "sapphire": "#3b82f6", + "lavender": "#a78bfa", + "peach": "#fdba74", + "maroon": "#fda4af", + "mauve": "#d8b4fe", + "flamingo": "#f9a8d4", + "rosewater": "#fecdd3", + "error": "#f43f5e", + "success": "#4ade80", + "warning": "#fde047", + "info": "#60a5fa" + } + }, + "light": { + "colors": { + "primary": "#0284c7", + "secondary": "#e2e8f0", + "accent": "#0d9488", + "background": "#f8fafc", + "backgroundLight": "#ffffff", + "text": "#0f172a", + "textMuted": "#64748b", + "border": "#cbd5e1", + "terminal": "#ffffff", + "terminalPrompt": "#0284c7", + "terminalUser": "#0d9488", + "terminalPath": "#4f46e5" + }, + "colorMap": { + "red": "#e11d48", + "green": "#16a34a", + "yellow": "#d97706", + "blue": "#2563eb", + "magenta": "#9333ea", + "cyan": "#0891b2", + "white": "#0f172a", + "gray": "#64748b", + "orange": "#ea580c", + "pink": "#db2777", + "black": "#1e293b", + "surface": "#e2e8f0", + "teal": "#0d9488", + "sky": "#0284c7", + "sapphire": "#1d4ed8", + "lavender": "#7c3aed", + "peach": "#f97316", + "maroon": "#be123c", + "mauve": "#a855f7", + "flamingo": "#be185d", + "rosewater": "#e11d48", + "error": "#e11d48", + "success": "#16a34a", + "warning": "#d97706", + "info": "#2563eb" + } + } +} \ No newline at end of file diff --git a/src/lib/pages/home.ts b/src/lib/pages/home.ts index e887964..6834cfd 100644 --- a/src/lib/pages/home.ts +++ b/src/lib/pages/home.ts @@ -14,13 +14,10 @@ export const lines: TerminalLine[] = [ { type: 'blank', content: '' }, { type: 'header', content: `Welcome to ${user.displayname}'s Portfolio` }, - { type: 'blank', content: '' }, { type: 'image', content: '', image: user.avatar, imageAlt: user.name, imageWidth: 120, inline: true }, { type: 'output', content: `(&muted)${user.bio}(&)`, inline: true }, - { type: 'blank', content: '' }, { type: 'divider', content: 'NAVIGATION' }, - { type: 'blank', content: '' }, // Interactive navigation buttons ...navigation.map(nav => ({ @@ -31,9 +28,7 @@ export const lines: TerminalLine[] = [ href: nav.path, inline: true })), - { type: 'blank', content: '' }, { type: 'divider', content: 'Website Keybinds' }, - { type: 'blank', content: '' }, { type: 'output', content: '(&orange)Toggle Light/Dark Mode(&) (&text, bold)(Alt/Option+B)(&)' , inline: true }, { type: 'output', content: '(&muted)•(&)' , inline: true }, { type: 'output', content: '(&orange)Select Theme(&) (&text, bold)(Alt/Option+T + [#])(&)' , inline: true }, diff --git a/src/lib/stores/theme.ts b/src/lib/stores/theme.ts index c02ca83..1e77c73 100644 --- a/src/lib/stores/theme.ts +++ b/src/lib/stores/theme.ts @@ -5,8 +5,11 @@ import { type ThemeColorMap, defaultColorMap } from '$lib/components/tui/utils'; // Import theme JSON files import archTheme from '$lib/assets/themes/arch.theme.json'; import catppuccinTheme from '$lib/assets/themes/catppuccin.theme.json'; +import wintryTheme from '$lib/assets/themes/wintry.theme.json'; +import roseTheme from '$lib/assets/themes/rose.theme.json'; +import cerberusTheme from '$lib/assets/themes/cerberus.theme.json'; -export type ColorTheme = 'arch' | 'catppuccin'; +export type ColorTheme = 'arch' | 'catppuccin' | 'wintry' | 'rose' | 'cerberus'; export type Mode = 'dark' | 'light'; // Theme JSON structure @@ -42,7 +45,10 @@ export interface ThemeColors { // Load themes from JSON files const themes: Record = { arch: archTheme as ThemeJson, - catppuccin: catppuccinTheme as ThemeJson + catppuccin: catppuccinTheme as ThemeJson, + wintry: wintryTheme as ThemeJson, + rose: roseTheme as ThemeJson, + cerberus: cerberusTheme as ThemeJson }; // Export themes for external access