summaryrefslogtreecommitdiffhomepage
path: root/packages/ui/src
diff options
context:
space:
mode:
authorshuv <[email protected]>2026-01-07 04:44:27 -0800
committerGitHub <[email protected]>2026-01-07 06:44:27 -0600
commit9cce0cf4f404debe1656788328bedd029c618d78 (patch)
treed8969444f7aaac71f6335e1d4ab3952d167a26b0 /packages/ui/src
parenta41c8508daa315e4ce136f63244edc7cdaa895b2 (diff)
downloadopencode-9cce0cf4f404debe1656788328bedd029c618d78.tar.gz
opencode-9cce0cf4f404debe1656788328bedd029c618d78.zip
feat: add Night Owl theme (desktop) (#7151)
Co-authored-by: shuv <[email protected]>
Diffstat (limited to 'packages/ui/src')
-rw-r--r--packages/ui/src/theme/default-themes.ts3
-rw-r--r--packages/ui/src/theme/index.ts1
-rw-r--r--packages/ui/src/theme/themes/nightowl.json131
3 files changed, 135 insertions, 0 deletions
diff --git a/packages/ui/src/theme/default-themes.ts b/packages/ui/src/theme/default-themes.ts
index 749d5e97c..42e94b446 100644
--- a/packages/ui/src/theme/default-themes.ts
+++ b/packages/ui/src/theme/default-themes.ts
@@ -9,6 +9,7 @@ import catppuccinThemeJson from "./themes/catppuccin.json"
import ayuThemeJson from "./themes/ayu.json"
import oneDarkProThemeJson from "./themes/onedarkpro.json"
import shadesOfPurpleThemeJson from "./themes/shadesofpurple.json"
+import nightowlThemeJson from "./themes/nightowl.json"
export const oc1Theme = oc1ThemeJson as DesktopTheme
export const tokyonightTheme = tokyoThemeJson as DesktopTheme
@@ -20,6 +21,7 @@ export const catppuccinTheme = catppuccinThemeJson as DesktopTheme
export const ayuTheme = ayuThemeJson as DesktopTheme
export const oneDarkProTheme = oneDarkProThemeJson as DesktopTheme
export const shadesOfPurpleTheme = shadesOfPurpleThemeJson as DesktopTheme
+export const nightowlTheme = nightowlThemeJson as DesktopTheme
export const DEFAULT_THEMES: Record<string, DesktopTheme> = {
"oc-1": oc1Theme,
@@ -32,4 +34,5 @@ export const DEFAULT_THEMES: Record<string, DesktopTheme> = {
ayu: ayuTheme,
onedarkpro: oneDarkProTheme,
shadesofpurple: shadesOfPurpleTheme,
+ nightowl: nightowlTheme,
}
diff --git a/packages/ui/src/theme/index.ts b/packages/ui/src/theme/index.ts
index d8e0461be..1ec4dc682 100644
--- a/packages/ui/src/theme/index.ts
+++ b/packages/ui/src/theme/index.ts
@@ -41,4 +41,5 @@ export {
ayuTheme,
oneDarkProTheme,
shadesOfPurpleTheme,
+ nightowlTheme,
} from "./default-themes"
diff --git a/packages/ui/src/theme/themes/nightowl.json b/packages/ui/src/theme/themes/nightowl.json
new file mode 100644
index 000000000..5b0331e5f
--- /dev/null
+++ b/packages/ui/src/theme/themes/nightowl.json
@@ -0,0 +1,131 @@
+{
+ "$schema": "https://opencode.ai/desktop-theme.json",
+ "name": "Night Owl",
+ "id": "nightowl",
+ "light": {
+ "seeds": {
+ "neutral": "#f0f0f0",
+ "primary": "#4876d6",
+ "success": "#2aa298",
+ "warning": "#c96765",
+ "error": "#de3d3b",
+ "info": "#4876d6",
+ "interactive": "#4876d6",
+ "diffAdd": "#2aa298",
+ "diffDelete": "#de3d3b"
+ },
+ "overrides": {
+ "background-base": "#fbfbfb",
+ "background-weak": "#f0f0f0",
+ "background-strong": "#ffffff",
+ "background-stronger": "#ffffff",
+ "border-weak-base": "#d9d9d9",
+ "border-weak-hover": "#cccccc",
+ "border-weak-active": "#bfbfbf",
+ "border-weak-selected": "#4876d6",
+ "border-weak-disabled": "#e6e6e6",
+ "border-weak-focus": "#4876d6",
+ "border-base": "#c0c0c0",
+ "border-hover": "#b3b3b3",
+ "border-active": "#a6a6a6",
+ "border-selected": "#4876d6",
+ "border-disabled": "#d9d9d9",
+ "border-focus": "#4876d6",
+ "border-strong-base": "#90a7b2",
+ "border-strong-hover": "#7d9aa6",
+ "border-strong-active": "#6a8d9a",
+ "border-strong-selected": "#4876d6",
+ "border-strong-disabled": "#c0c0c0",
+ "border-strong-focus": "#4876d6",
+ "surface-diff-add-base": "#eaf8f6",
+ "surface-diff-delete-base": "#fbe9e9",
+ "surface-diff-hidden-base": "#e8f0fc",
+ "text-base": "#403f53",
+ "text-weak": "#7a8181",
+ "text-strong": "#1a1a1a",
+ "syntax-string": "#c96765",
+ "syntax-primitive": "#aa0982",
+ "syntax-property": "#4876d6",
+ "syntax-type": "#994cc3",
+ "syntax-constant": "#2aa298",
+ "syntax-info": "#4876d6",
+ "markdown-heading": "#4876d6",
+ "markdown-text": "#403f53",
+ "markdown-link": "#4876d6",
+ "markdown-link-text": "#2aa298",
+ "markdown-code": "#2aa298",
+ "markdown-block-quote": "#7a8181",
+ "markdown-emph": "#994cc3",
+ "markdown-strong": "#c96765",
+ "markdown-horizontal-rule": "#90a7b2",
+ "markdown-list-item": "#4876d6",
+ "markdown-list-enumeration": "#2aa298",
+ "markdown-image": "#4876d6",
+ "markdown-image-text": "#2aa298",
+ "markdown-code-block": "#403f53"
+ }
+ },
+ "dark": {
+ "seeds": {
+ "neutral": "#011627",
+ "primary": "#82aaff",
+ "success": "#c5e478",
+ "warning": "#ecc48d",
+ "error": "#ef5350",
+ "info": "#82aaff",
+ "interactive": "#82aaff",
+ "diffAdd": "#c5e478",
+ "diffDelete": "#ef5350"
+ },
+ "overrides": {
+ "background-base": "#011627",
+ "background-weak": "#0b253a",
+ "background-strong": "#001122",
+ "background-stronger": "#000c17",
+ "border-weak-base": "#1d3b53",
+ "border-weak-hover": "#234561",
+ "border-weak-active": "#2a506f",
+ "border-weak-selected": "#82aaff",
+ "border-weak-disabled": "#0f2132",
+ "border-weak-focus": "#82aaff",
+ "border-base": "#3a5a75",
+ "border-hover": "#456785",
+ "border-active": "#507494",
+ "border-selected": "#82aaff",
+ "border-disabled": "#1a3347",
+ "border-focus": "#82aaff",
+ "border-strong-base": "#5f7e97",
+ "border-strong-hover": "#6e8da6",
+ "border-strong-active": "#7d9cb5",
+ "border-strong-selected": "#82aaff",
+ "border-strong-disabled": "#2c4a63",
+ "border-strong-focus": "#82aaff",
+ "surface-diff-add-base": "#0a2e1a",
+ "surface-diff-delete-base": "#2d1b1b",
+ "surface-diff-hidden-base": "#0b253a",
+ "text-base": "#d6deeb",
+ "text-weak": "#5f7e97",
+ "text-strong": "#ffffff",
+ "syntax-string": "#ecc48d",
+ "syntax-primitive": "#f78c6c",
+ "syntax-property": "#82aaff",
+ "syntax-type": "#c5e478",
+ "syntax-constant": "#7fdbca",
+ "syntax-info": "#82aaff",
+ "markdown-heading": "#82aaff",
+ "markdown-text": "#d6deeb",
+ "markdown-link": "#82aaff",
+ "markdown-link-text": "#7fdbca",
+ "markdown-code": "#c5e478",
+ "markdown-block-quote": "#5f7e97",
+ "markdown-emph": "#c792ea",
+ "markdown-strong": "#ecc48d",
+ "markdown-horizontal-rule": "#5f7e97",
+ "markdown-list-item": "#82aaff",
+ "markdown-list-enumeration": "#7fdbca",
+ "markdown-image": "#82aaff",
+ "markdown-image-text": "#7fdbca",
+ "markdown-code-block": "#d6deeb"
+ }
+ }
+}