diff --git a/bun.lock b/bun.lock index 07019238..c9d35859 100644 --- a/bun.lock +++ b/bun.lock @@ -62,7 +62,7 @@ }, "apps/opencode-plugin": { "name": "@plannotator/opencode", - "version": "0.17.2", + "version": "0.17.3", "dependencies": { "@opencode-ai/plugin": "^1.1.10", }, @@ -84,7 +84,7 @@ }, "apps/pi-extension": { "name": "@plannotator/pi-extension", - "version": "0.17.2", + "version": "0.17.3", "peerDependencies": { "@mariozechner/pi-coding-agent": ">=0.53.0", }, @@ -170,7 +170,7 @@ }, "packages/server": { "name": "@plannotator/server", - "version": "0.17.2", + "version": "0.17.3", "dependencies": { "@plannotator/ai": "workspace:*", "@plannotator/shared": "workspace:*", diff --git a/packages/ui/theme.css b/packages/ui/theme.css index e26e177d..6d4e4772 100644 --- a/packages/ui/theme.css +++ b/packages/ui/theme.css @@ -13,6 +13,9 @@ @import "./themes/doom-64.css"; @import "./themes/dracula.css"; @import "./themes/gruvbox.css"; +@import "./themes/kanagawa-dragon.css"; +@import "./themes/kanagawa-lotus.css"; +@import "./themes/kanagawa-wave.css"; @import "./themes/paulmillr.css"; @import "./themes/quantum-rose.css"; @import "./themes/solar-dusk.css"; diff --git a/packages/ui/themes/adwaita.css b/packages/ui/themes/adwaita.css index 4ab5f4ae..6fea0f72 100644 --- a/packages/ui/themes/adwaita.css +++ b/packages/ui/themes/adwaita.css @@ -26,7 +26,7 @@ --font-sans: 'Inter', system-ui, sans-serif; --font-mono: 'Source Code Pro', ui-monospace, monospace; - --radius: 0.75rem; + --radius: 0.625rem; --code-bg: #2a2a2a; --focus-highlight: #3584E4; diff --git a/packages/ui/themes/caffeine.css b/packages/ui/themes/caffeine.css index 9d90fc37..71b3bd8d 100644 --- a/packages/ui/themes/caffeine.css +++ b/packages/ui/themes/caffeine.css @@ -36,7 +36,7 @@ --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - --radius: 0.5rem; + --radius: 0.625rem; --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1); @@ -93,7 +93,7 @@ --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - --radius: 0.5rem; + --radius: 0.625rem; --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1); diff --git a/packages/ui/themes/catppuccin.css b/packages/ui/themes/catppuccin.css index 2871963b..012f868a 100644 --- a/packages/ui/themes/catppuccin.css +++ b/packages/ui/themes/catppuccin.css @@ -26,7 +26,7 @@ --font-sans: system-ui, sans-serif; --font-mono: 'Fira Code', ui-monospace, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --code-bg: #181825; --focus-highlight: #94e2d5; diff --git a/packages/ui/themes/claude-plus.css b/packages/ui/themes/claude-plus.css index 78a61546..d1069896 100644 --- a/packages/ui/themes/claude-plus.css +++ b/packages/ui/themes/claude-plus.css @@ -25,7 +25,7 @@ --font-sans: 'Outfit', sans-serif; --font-mono: 'Geist Mono', ui-monospace, monospace; - --radius: 1rem; + --radius: 0.625rem; --code-bg: oklch(0.22 0.003 106.6); --focus-highlight: oklch(0.70 0.20 200); diff --git a/packages/ui/themes/cursor-hc.css b/packages/ui/themes/cursor-hc.css index 32abb0bc..a01145c1 100644 --- a/packages/ui/themes/cursor-hc.css +++ b/packages/ui/themes/cursor-hc.css @@ -27,7 +27,7 @@ --font-sans: system-ui, sans-serif; --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --code-bg: #1a1a1a; --focus-highlight: #88C0D0; diff --git a/packages/ui/themes/cursor-midnight.css b/packages/ui/themes/cursor-midnight.css index 131b78e0..68398d5c 100644 --- a/packages/ui/themes/cursor-midnight.css +++ b/packages/ui/themes/cursor-midnight.css @@ -27,7 +27,7 @@ --font-sans: system-ui, sans-serif; --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --code-bg: #191c22; --focus-highlight: #8FBCBB; diff --git a/packages/ui/themes/cursor.css b/packages/ui/themes/cursor.css index 9b33fba7..170fcb91 100644 --- a/packages/ui/themes/cursor.css +++ b/packages/ui/themes/cursor.css @@ -26,7 +26,7 @@ --font-sans: system-ui, sans-serif; --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --code-bg: #141414; --focus-highlight: #88C0D0; diff --git a/packages/ui/themes/dracula.css b/packages/ui/themes/dracula.css index 138958ac..a9dd029a 100644 --- a/packages/ui/themes/dracula.css +++ b/packages/ui/themes/dracula.css @@ -26,7 +26,7 @@ --font-sans: ui-sans-serif, system-ui, sans-serif; --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --code-bg: rgb(33, 34, 44); --focus-highlight: rgb(139, 233, 253); diff --git a/packages/ui/themes/gruvbox.css b/packages/ui/themes/gruvbox.css index 8b4b68b1..f86c636c 100644 --- a/packages/ui/themes/gruvbox.css +++ b/packages/ui/themes/gruvbox.css @@ -26,7 +26,7 @@ --font-sans: system-ui, sans-serif; --font-mono: 'Fira Code', ui-monospace, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --code-bg: #32302f; --focus-highlight: #83a598; diff --git a/packages/ui/themes/kanagawa-dragon.css b/packages/ui/themes/kanagawa-dragon.css new file mode 100644 index 00000000..fc647bf7 --- /dev/null +++ b/packages/ui/themes/kanagawa-dragon.css @@ -0,0 +1,34 @@ +/* Kanagawa Dragon — warm ash-black, muted teal accent */ +.theme-kanagawa-dragon, +.theme-kanagawa-dragon.light { + --background: #181616; + --foreground: #c8c093; + --card: #211e1e; + --card-foreground: #c8c093; + --popover: #211e1e; + --popover-foreground: #c8c093; + --primary: #7fb4ca; + --primary-foreground: #181616; + --secondary: #2a2625; + --secondary-foreground: #c8c093; + --muted: #252220; + --muted-foreground: #a6a69c; + --accent: #7aa89f; + --accent-foreground: #181616; + --destructive: #c4746e; + --destructive-foreground: #c8c093; + --border: #2e2b28; + --input: #252220; + --ring: #7fb4ca; + --success: #87a987; + --success-foreground: #181616; + --warning: #e6c384; + --warning-foreground: #181616; + + --font-sans: ui-sans-serif, system-ui, sans-serif; + --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace; + --radius: 0.625rem; + + --code-bg: #0d0c0c; + --focus-highlight: #7aa89f; +} diff --git a/packages/ui/themes/kanagawa-lotus.css b/packages/ui/themes/kanagawa-lotus.css new file mode 100644 index 00000000..f491c61d --- /dev/null +++ b/packages/ui/themes/kanagawa-lotus.css @@ -0,0 +1,34 @@ +/* Kanagawa Lotus — light variant, yellow-tan paper background */ +.theme-kanagawa-lotus, +.theme-kanagawa-lotus.light { + --background: #f2ecbc; + --foreground: #545464; + --card: #e5ddb0; + --card-foreground: #545464; + --popover: #e5ddb0; + --popover-foreground: #545464; + --primary: #4d699b; + --primary-foreground: #f2ecbc; + --secondary: #dcd5ac; + --secondary-foreground: #545464; + --muted: #e7dba0; + --muted-foreground: #716e61; + --accent: #624c83; + --accent-foreground: #f2ecbc; + --destructive: #c84053; + --destructive-foreground: #f2ecbc; + --border: #dcd5ac; + --input: #e7dba0; + --ring: #4d699b; + --success: #6f894e; + --success-foreground: #f2ecbc; + --warning: #836f4a; + --warning-foreground: #f2ecbc; + + --font-sans: ui-sans-serif, system-ui, sans-serif; + --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace; + --radius: 0.625rem; + + --code-bg: #d5cea3; + --focus-highlight: #4e8ca2; +} diff --git a/packages/ui/themes/kanagawa-wave.css b/packages/ui/themes/kanagawa-wave.css new file mode 100644 index 00000000..d4dfa529 --- /dev/null +++ b/packages/ui/themes/kanagawa-wave.css @@ -0,0 +1,34 @@ +/* Kanagawa Wave — cool blue-purple, classic Kanagawa */ +.theme-kanagawa-wave, +.theme-kanagawa-wave.light { + --background: #1f1f28; + --foreground: #dcd7ba; + --card: #2a2a37; + --card-foreground: #dcd7ba; + --popover: #2a2a37; + --popover-foreground: #dcd7ba; + --primary: #7e9cd8; + --primary-foreground: #1f1f28; + --secondary: #363646; + --secondary-foreground: #dcd7ba; + --muted: #2d2d3b; + --muted-foreground: #727169; + --accent: #957fb8; + --accent-foreground: #1f1f28; + --destructive: #c34043; + --destructive-foreground: #dcd7ba; + --border: #363646; + --input: #2d2d3b; + --ring: #7fb4ca; + --success: #98bb6c; + --success-foreground: #1f1f28; + --warning: #e6c384; + --warning-foreground: #1f1f28; + + --font-sans: ui-sans-serif, system-ui, sans-serif; + --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace; + --radius: 0.625rem; + + --code-bg: #16161d; + --focus-highlight: #7aa89f; +} diff --git a/packages/ui/themes/monokai-pro.css b/packages/ui/themes/monokai-pro.css index b83838e4..467c5506 100644 --- a/packages/ui/themes/monokai-pro.css +++ b/packages/ui/themes/monokai-pro.css @@ -27,7 +27,7 @@ --font-sans: system-ui, sans-serif; --font-mono: 'Fira Code', ui-monospace, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --code-bg: #221f22; --focus-highlight: #78dce8; diff --git a/packages/ui/themes/paulmillr.css b/packages/ui/themes/paulmillr.css index ac7a5b95..af5fc2c0 100644 --- a/packages/ui/themes/paulmillr.css +++ b/packages/ui/themes/paulmillr.css @@ -27,7 +27,7 @@ --font-sans: system-ui, sans-serif; --font-mono: ui-monospace, 'SF Mono', Consolas, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --code-bg: #1a1a1a; --focus-highlight: #66ccff; diff --git a/packages/ui/themes/plannotator.css b/packages/ui/themes/plannotator.css index 95d19129..abba81f6 100644 --- a/packages/ui/themes/plannotator.css +++ b/packages/ui/themes/plannotator.css @@ -25,7 +25,7 @@ --font-sans: 'Inter', system-ui, sans-serif; --font-mono: 'JetBrains Mono', 'Fira Code', monospace; - --radius: 0.75rem; + --radius: 0.625rem; --code-bg: oklch(0.26 0.02 260); --focus-highlight: oklch(0.70 0.20 200); diff --git a/packages/ui/themes/quantum-rose.css b/packages/ui/themes/quantum-rose.css index d77ce653..7bb905b4 100644 --- a/packages/ui/themes/quantum-rose.css +++ b/packages/ui/themes/quantum-rose.css @@ -34,7 +34,7 @@ --font-sans: Quicksand, sans-serif; --font-serif: Playfair Display, serif; --font-mono: Space Mono, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --shadow-2xs: 0px 3px 0px 0px hsl(300 80% 50% / 0.09); --shadow-xs: 0px 3px 0px 0px hsl(300 80% 50% / 0.09); --shadow-sm: 0px 3px 0px 0px hsl(300 80% 50% / 0.18), 0px 1px 2px -1px hsl(300 80% 50% / 0.18); @@ -89,7 +89,7 @@ --font-sans: Poppins, sans-serif; --font-serif: Playfair Display, serif; --font-mono: Space Mono, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --shadow-2xs: 0px 3px 0px 0px hsl(330 70% 30% / 0.09); --shadow-xs: 0px 3px 0px 0px hsl(330 70% 30% / 0.09); --shadow-sm: 0px 3px 0px 0px hsl(330 70% 30% / 0.18), 0px 1px 2px -1px hsl(330 70% 30% / 0.18); diff --git a/packages/ui/themes/rose-pine.css b/packages/ui/themes/rose-pine.css index 5afc2927..17991645 100644 --- a/packages/ui/themes/rose-pine.css +++ b/packages/ui/themes/rose-pine.css @@ -26,7 +26,7 @@ --font-sans: system-ui, sans-serif; --font-mono: ui-monospace, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --code-bg: #1f1d2e; --focus-highlight: #9ccfd8; diff --git a/packages/ui/themes/soft-pop.css b/packages/ui/themes/soft-pop.css index 51221080..63309062 100644 --- a/packages/ui/themes/soft-pop.css +++ b/packages/ui/themes/soft-pop.css @@ -25,7 +25,7 @@ --font-sans: 'DM Sans', sans-serif; --font-mono: 'Space Mono', monospace; - --radius: 1rem; + --radius: 0.625rem; --code-bg: oklch(0.08 0 0); --focus-highlight: oklch(0.70 0.20 200); diff --git a/packages/ui/themes/synthwave-84.css b/packages/ui/themes/synthwave-84.css index a1744306..fcaade87 100644 --- a/packages/ui/themes/synthwave-84.css +++ b/packages/ui/themes/synthwave-84.css @@ -27,7 +27,7 @@ --font-sans: 'Inter', system-ui, sans-serif; --font-mono: 'Fira Code', ui-monospace, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --code-bg: #241b2f; --focus-highlight: #36f9f6; diff --git a/packages/ui/themes/tinacious.css b/packages/ui/themes/tinacious.css index fdbe153e..8515c192 100644 --- a/packages/ui/themes/tinacious.css +++ b/packages/ui/themes/tinacious.css @@ -37,7 +37,7 @@ --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --shadow-2xs: 0 1px 2px 0 rgb(0 0 0 / 0.05); --shadow-xs: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --shadow-sm: 0 2px 4px -1px rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); diff --git a/packages/ui/themes/tokyo-night.css b/packages/ui/themes/tokyo-night.css index e03d7e1e..2b0fa2c9 100644 --- a/packages/ui/themes/tokyo-night.css +++ b/packages/ui/themes/tokyo-night.css @@ -26,7 +26,7 @@ --font-sans: system-ui, sans-serif; --font-mono: ui-monospace, monospace; - --radius: 0.5rem; + --radius: 0.625rem; --code-bg: #1a1b2e; --focus-highlight: #7dcfff; diff --git a/packages/ui/utils/themeRegistry.ts b/packages/ui/utils/themeRegistry.ts index 80a57978..96885a45 100644 --- a/packages/ui/utils/themeRegistry.ts +++ b/packages/ui/utils/themeRegistry.ts @@ -118,6 +118,36 @@ export const BUILT_IN_THEMES: ThemeInfo[] = [ light: { primary: '#076678', secondary: '#d5c4a1', accent: '#79740e', background: '#fbf1c7', foreground: '#3c3836' }, }, }, + { + id: 'kanagawa-dragon', + name: 'Kanagawa Dragon', + builtIn: true, + modeSupport: 'dark-only', + colors: { + dark: { primary: '#7fb4ca', secondary: '#2a2625', accent: '#7aa89f', background: '#181616', foreground: '#c8c093' }, + light: { primary: '#7fb4ca', secondary: '#2a2625', accent: '#7aa89f', background: '#181616', foreground: '#c8c093' }, + }, + }, + { + id: 'kanagawa-lotus', + name: 'Kanagawa Lotus', + builtIn: true, + modeSupport: 'light-only', + colors: { + dark: { primary: '#4d699b', secondary: '#dcd5ac', accent: '#624c83', background: '#f2ecbc', foreground: '#545464' }, + light: { primary: '#4d699b', secondary: '#dcd5ac', accent: '#624c83', background: '#f2ecbc', foreground: '#545464' }, + }, + }, + { + id: 'kanagawa-wave', + name: 'Kanagawa Wave', + builtIn: true, + modeSupport: 'dark-only', + colors: { + dark: { primary: '#7e9cd8', secondary: '#363646', accent: '#957fb8', background: '#1f1f28', foreground: '#dcd7ba' }, + light: { primary: '#7e9cd8', secondary: '#363646', accent: '#957fb8', background: '#1f1f28', foreground: '#dcd7ba' }, + }, + }, { id: 'monokai-pro', name: 'Monokai Pro',