Skip to content

Commit 5fb61bd

Browse files
committed
✨ feat(ui): add Midnight theme from ui-ux-pro-max design system
Based on ui-ux-pro-max 'Developer Tool / IDE' color palette: - Dark: deep slate #0F172A background, #F8FAFC text, #22C55E green primary - Light: clean #F8FAFC background, #0F172A text, #3B82F6 blue interactive - Full syntax highlighting with green strings, purple properties, gold types - High contrast WCAG AAA compliant color combinations
1 parent 383a836 commit 5fb61bd

2 files changed

Lines changed: 134 additions & 0 deletions

File tree

packages/ui/src/theme/default-themes.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import auraThemeJson from "./themes/aura.json"
1818
import rosepineThemeJson from "./themes/rosepine.json"
1919
import kanagawaThemeJson from "./themes/kanagawa.json"
2020
import everforestThemeJson from "./themes/everforest.json"
21+
import midnightThemeJson from "./themes/midnight.json"
2122

2223
export const oc1Theme = oc1ThemeJson as DesktopTheme
2324
export const oc2Theme = oc2ThemeJson as DesktopTheme
@@ -38,6 +39,7 @@ export const auraTheme = auraThemeJson as DesktopTheme
3839
export const rosepineTheme = rosepineThemeJson as DesktopTheme
3940
export const kanagawaTheme = kanagawaThemeJson as DesktopTheme
4041
export const everforestTheme = everforestThemeJson as DesktopTheme
42+
export const midnightTheme = midnightThemeJson as DesktopTheme
4143

4244
export const DEFAULT_THEMES: Record<string, DesktopTheme> = {
4345
"oc-1": oc1Theme,
@@ -50,6 +52,7 @@ export const DEFAULT_THEMES: Record<string, DesktopTheme> = {
5052
everforest: everforestTheme,
5153
gruvbox: gruvboxTheme,
5254
kanagawa: kanagawaTheme,
55+
midnight: midnightTheme,
5356
monokai: monokaiTheme,
5457
nightowl: nightowlTheme,
5558
nord: nordTheme,
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
{
2+
"$schema": "https://opencode.ai/desktop-theme.json",
3+
"name": "Midnight",
4+
"id": "midnight",
5+
"light": {
6+
"seeds": {
7+
"neutral": "#F8FAFC",
8+
"primary": "#1E293B",
9+
"success": "#22C55E",
10+
"warning": "#F59E0B",
11+
"error": "#EF4444",
12+
"info": "#3B82F6",
13+
"interactive": "#3B82F6",
14+
"diffAdd": "#22C55E",
15+
"diffDelete": "#EF4444"
16+
},
17+
"overrides": {
18+
"background-base": "#F8FAFC",
19+
"background-weak": "#F1F5F9",
20+
"background-strong": "#FFFFFF",
21+
"background-stronger": "#FFFFFF",
22+
"border-weak-base": "#E2E8F0",
23+
"border-weak-hover": "#CBD5E1",
24+
"border-weak-active": "#94A3B8",
25+
"border-weak-selected": "#93C5FD",
26+
"border-weak-disabled": "#F1F5F9",
27+
"border-weak-focus": "#93C5FD",
28+
"border-base": "#CBD5E1",
29+
"border-hover": "#94A3B8",
30+
"border-active": "#64748B",
31+
"border-selected": "#3B82F6",
32+
"border-disabled": "#E2E8F0",
33+
"border-focus": "#3B82F6",
34+
"border-strong-base": "#94A3B8",
35+
"border-strong-hover": "#64748B",
36+
"border-strong-active": "#475569",
37+
"border-strong-selected": "#3B82F6",
38+
"border-strong-disabled": "#CBD5E1",
39+
"border-strong-focus": "#3B82F6",
40+
"surface-diff-add-base": "#DCFCE7",
41+
"surface-diff-delete-base": "#FEE2E2",
42+
"surface-diff-hidden-base": "#DBEAFE",
43+
"text-base": "#334155",
44+
"text-weak": "#64748B",
45+
"text-strong": "#0F172A",
46+
"syntax-string": "#059669",
47+
"syntax-primitive": "#DC2626",
48+
"syntax-property": "#7C3AED",
49+
"syntax-type": "#D97706",
50+
"syntax-constant": "#0284C7",
51+
"syntax-info": "#0284C7",
52+
"markdown-heading": "#1E293B",
53+
"markdown-text": "#334155",
54+
"markdown-link": "#3B82F6",
55+
"markdown-link-text": "#0284C7",
56+
"markdown-code": "#059669",
57+
"markdown-block-quote": "#D97706",
58+
"markdown-emph": "#D97706",
59+
"markdown-strong": "#1E293B",
60+
"markdown-horizontal-rule": "#E2E8F0",
61+
"markdown-list-item": "#3B82F6",
62+
"markdown-list-enumeration": "#0284C7",
63+
"markdown-image": "#3B82F6",
64+
"markdown-image-text": "#0284C7",
65+
"markdown-code-block": "#334155"
66+
}
67+
},
68+
"dark": {
69+
"seeds": {
70+
"neutral": "#0F172A",
71+
"primary": "#22C55E",
72+
"success": "#22C55E",
73+
"warning": "#F59E0B",
74+
"error": "#EF4444",
75+
"info": "#3B82F6",
76+
"interactive": "#3B82F6",
77+
"diffAdd": "#22C55E",
78+
"diffDelete": "#EF4444"
79+
},
80+
"overrides": {
81+
"background-base": "#0F172A",
82+
"background-weak": "#131C31",
83+
"background-strong": "#0B1120",
84+
"background-stronger": "#0D1424",
85+
"border-weak-base": "#1E293B",
86+
"border-weak-hover": "#253347",
87+
"border-weak-active": "#334155",
88+
"border-weak-selected": "#1D4ED8",
89+
"border-weak-disabled": "#0F172A",
90+
"border-weak-focus": "#2563EB",
91+
"border-base": "#334155",
92+
"border-hover": "#475569",
93+
"border-active": "#64748B",
94+
"border-selected": "#3B82F6",
95+
"border-disabled": "#1E293B",
96+
"border-focus": "#3B82F6",
97+
"border-strong-base": "#475569",
98+
"border-strong-hover": "#64748B",
99+
"border-strong-active": "#94A3B8",
100+
"border-strong-selected": "#60A5FA",
101+
"border-strong-disabled": "#1E293B",
102+
"border-strong-focus": "#60A5FA",
103+
"surface-diff-add-base": "#052E16",
104+
"surface-diff-delete-base": "#450A0A",
105+
"surface-diff-hidden-base": "#172554",
106+
"text-base": "#CBD5E1",
107+
"text-weak": "#64748B",
108+
"text-strong": "#F8FAFC",
109+
"syntax-string": "#4ADE80",
110+
"syntax-primitive": "#FB7185",
111+
"syntax-property": "#A78BFA",
112+
"syntax-type": "#FBBF24",
113+
"syntax-constant": "#38BDF8",
114+
"syntax-info": "#38BDF8",
115+
"markdown-heading": "#22C55E",
116+
"markdown-text": "#E2E8F0",
117+
"markdown-link": "#60A5FA",
118+
"markdown-link-text": "#38BDF8",
119+
"markdown-code": "#4ADE80",
120+
"markdown-block-quote": "#FBBF24",
121+
"markdown-emph": "#FBBF24",
122+
"markdown-strong": "#F8FAFC",
123+
"markdown-horizontal-rule": "#1E293B",
124+
"markdown-list-item": "#60A5FA",
125+
"markdown-list-enumeration": "#38BDF8",
126+
"markdown-image": "#60A5FA",
127+
"markdown-image-text": "#38BDF8",
128+
"markdown-code-block": "#E2E8F0"
129+
}
130+
}
131+
}

0 commit comments

Comments
 (0)