1export const BUILT_IN_THEME_IDS = ["t3-chat", "grove", "ocean", "ember", "iris"] as const;
2
3/** The standard T3 Code palette, kept separate from the optional built-in theme library. */
4export const MOBILE_DEFAULT_THEME_ID = "t3-code";
5
6/**
7 * Every palette the mobile app can render. Declared here so host-side tooling
8 * (the app-store screenshot harness) can validate a requested theme without
9 * importing React Native application code.
10 */
11export const MOBILE_THEME_IDS = [MOBILE_DEFAULT_THEME_ID, ...BUILT_IN_THEME_IDS] as const;
12
13/**
14 * Ids a theme may not take: the appearance keywords a stored preference uses,
15 * every built-in, and the legacy aliases older saves still carry. Taking one
16 * would either be shadowed by the built-in or capture clients that never chose
17 * it, so the client library and the publish path both consult this set.
18 */
19export const RESERVED_THEME_IDS: ReadonlySet<string> = new Set([
20 "system",
21 "light",
22 "dark",
23 ...BUILT_IN_THEME_IDS,
24 "t3-chat-dark",
25 "t3-grove",
26 "t3-ocean",
27 "t3-ember",
28 "t3-iris",
29]);
30
31/**
32 * Additionally closed to a machine publishing a theme: the mobile default is
33 * not a web or desktop built-in, so a saved theme may legitimately carry that
34 * id, but no client that follows published themes can resolve it -- publishing
35 * it would report success and change nothing.
36 */
37export const UNPUBLISHABLE_THEME_IDS: ReadonlySet<string> = new Set([
38 ...RESERVED_THEME_IDS,
39 MOBILE_DEFAULT_THEME_ID,
40]);
41
42export type BuiltInThemeId = (typeof BUILT_IN_THEME_IDS)[number];
43export type MobileThemeId = (typeof MOBILE_THEME_IDS)[number];
44export type ThemeAppearance = "light" | "dark";
45
46/** Product roles shared by web CSS, React Native tokens, and native surfaces. */
47export const THEME_COLOR_ROLES = [
48 "canvas",
49 "chrome",
50 "toolbar",
51 "toolbarForeground",
52 "toolbarBorder",
53 "toolbarControl",
54 "toolbarControlForeground",
55 "toolbarControlHover",
56 "surface",
57 "surfaceRaised",
58 "surfaceOverlay",
59 "text",
60 "textMuted",
61 "border",
62 "input",
63 "focus",
64 "accent",
65 "accentForeground",
66 "secondary",
67 "secondaryForeground",
68 "muted",
69 "mutedForeground",
70 "placeholder",
71 "secondaryLabel",
72 "iconMuted",
73 "error",
74 "errorForeground",
75 "errorSurface",
76 "warning",
77 "warningForeground",
78 "warningSurface",
79 "update",
80 "updateForeground",
81 "updateSurface",
82 "accentSurface",
83 "accentSurfaceForeground",
84 "messageSurface",
85 "messageForeground",
86 "messageAction",
87 "messageActionForeground",
88 "messageActionHover",
89 "codeBackground",
90 "codeForeground",
91 "searchMatchBackground",
92 "searchMatchForeground",
93 "searchMatchActiveBackground",
94 "searchMatchActiveForeground",
95 "sidebar",
96 "sidebarForeground",
97 "sidebarMutedForeground",
98 "sidebarControlSurface",
99 "sidebarRowHover",
100 "sidebarRowActive",
101 "sidebarRowSelected",
102 "sidebarBorder",
103 "terminalBackground",
104 "terminalForeground",
105 "terminalCursor",
106 "terminalSelection",
107 "terminalScrollbar",
108 "terminalScrollbarHover",
109] as const;
110
111export type ThemeColorRole = (typeof THEME_COLOR_ROLES)[number];
112export type ThemeColors = Readonly<Record<ThemeColorRole, string>>;
113export type ThemeVariants = Readonly<Partial<Record<ThemeAppearance, ThemeColors>>>;
114export type ThemeDefinition = Readonly<{
115 id: string;
116 label: string;
117 appearance: ThemeAppearance;
118 colors: ThemeColors;
119 variants?: ThemeVariants;
120 /** Groups related imported variants into one library card. */
121 collection?: Readonly<{ id: string; label: string }>;
122 /** Allows reviewed built-ins to render product artwork over their sidebar. */
123 sidebarArtwork?: boolean;
124 /** Generated from the guided editor's canvas and accent roles. */
125 managed?: boolean;
126}>;
127
128/**
129 * The palette T3 Code wears with no theme installed, captured from the app's
130 * stock tokens (index.css) so a draft seeded from the default look paints the
131 * pixels the user is already seeing. Alpha-bearing tokens are flattened over
132 * their real backdrops (canvas, or the sidebar for its rows) because theme
133 * colors are stored as opaque OKLCH tokens.
134 * Search uses amber across built-ins to separate matches from accent-tinted
135 * inline code. The current match uses a stronger gold with dark text.
136 */
137export const T3_CODE_LIGHT_THEME_COLORS: ThemeColors = {
138 searchMatchBackground: "#ffde8b",
139 searchMatchForeground: "#21180a",
140 searchMatchActiveBackground: "#eea52b",
141 searchMatchActiveForeground: "#21180a",
142 canvas: "#fcfcfc",
143 chrome: "#fcfcfc",
144 toolbar: "#fcfcfc",
145 toolbarForeground: "#27272a",
146 toolbarBorder: "#e4e4e7",
147 toolbarControl: "#ffffff",
148 toolbarControlForeground: "#27272a",
149 toolbarControlHover: "#f4f4f5",
150 surface: "#ffffff",
151 surfaceRaised: "#fcfcfc",
152 surfaceOverlay: "#ffffff",
153 text: "#27272a",
154 textMuted: "#71717b",
155 border: "#e4e4e7",
156 input: "#d4d4d8",
157 focus: "#1b4ed8",
158 accent: "#1b4ed8",
159 accentForeground: "#ffffff",
160 secondary: "#fafafa",
161 secondaryForeground: "#27272a",
162 muted: "#fafafa",
163 mutedForeground: "#71717b",
164 placeholder: "#71717b",
165 secondaryLabel: "#71717b",
166 iconMuted: "#71717b",
167 error: "#fb2c36",
168 errorForeground: "#c10007",
169 errorSurface: "#fcebec",
170 warning: "#fe9a00",
171 warningForeground: "#bb4d00",
172 warningSurface: "#fcf4e8",
173 update: "#1b4ed8",
174 updateForeground: "#1b4ed8",
175 updateSurface: "#e0e6f7",
176 accentSurface: "#f4f4f5",
177 accentSurfaceForeground: "#18181b",
178 messageSurface: "#f4f4f5",
179 messageForeground: "#27272a",
180 messageAction: "#1b4ed8",
181 messageActionForeground: "#ffffff",
182 messageActionHover: "#3160db",
183 codeBackground: "#ffffff",
184 codeForeground: "#27272a",
185 sidebar: "#fafafa",
186 sidebarForeground: "#27272a",
187 sidebarMutedForeground: "#71717b",
188 sidebarControlSurface: "#f4f4f5",
189 sidebarRowHover: "#fcfcfc",
190 sidebarRowActive: "#ffffff",
191 sidebarRowSelected: "#ffffff",
192 sidebarBorder: "#e4e4e7",
193 terminalBackground: "#fcfcfc",
194 terminalForeground: "#27272a",
195 terminalCursor: "#26384e",
196 terminalSelection: "#d0d6dd",
197 terminalScrollbar: "#d6d6d6",
198 terminalScrollbarHover: "#bdbdbd",
199};
200
201export const T3_CODE_DARK_THEME_COLORS: ThemeColors = {
202 searchMatchBackground: "#8c6c1f",
203 searchMatchForeground: "#f5f5f5",
204 searchMatchActiveBackground: "#eea52b",
205 searchMatchActiveForeground: "#21180a",
206 canvas: "#0a0a0a",
207 chrome: "#0a0a0a",
208 toolbar: "#0a0a0a",
209 toolbarForeground: "#f5f5f5",
210 toolbarBorder: "#191919",
211 toolbarControl: "#111111",
212 toolbarControlForeground: "#f5f5f5",
213 toolbarControlHover: "#141414",
214 surface: "#111111",
215 surfaceRaised: "#111111",
216 surfaceOverlay: "#111111",
217 text: "#f5f5f5",
218 textMuted: "#818181",
219 border: "#191919",
220 input: "#1e1e1e",
221 focus: "#346bf1",
222 accent: "#346bf1",
223 accentForeground: "#ffffff",
224 secondary: "#111111",
225 secondaryForeground: "#f5f5f5",
226 muted: "#111111",
227 mutedForeground: "#818181",
228 placeholder: "#818181",
229 secondaryLabel: "#818181",
230 iconMuted: "#818181",
231 error: "#fb414a",
232 errorForeground: "#ff6467",
233 errorSurface: "#301214",
234 warning: "#fe9a00",
235 warningForeground: "#ffb900",
236 warningSurface: "#312108",
237 update: "#346bf1",
238 updateForeground: "#51a2ff",
239 updateSurface: "#121b34",
240 accentSurface: "#141414",
241 accentSurfaceForeground: "#f5f5f5",
242 messageSurface: "#141414",
243 messageForeground: "#f5f5f5",
244 messageAction: "#346bf1",
245 messageActionForeground: "#ffffff",
246 messageActionHover: "#3061d9",
247 codeBackground: "#111111",
248 codeForeground: "#f5f5f5",
249 sidebar: "#000000",
250 sidebarForeground: "#f1f3f7",
251 sidebarMutedForeground: "#a3a3a3",
252 sidebarControlSurface: "#0a0a0a",
253 sidebarRowHover: "#131313",
254 sidebarRowActive: "#1a1b1b",
255 sidebarRowSelected: "#111111",
256 sidebarBorder: "#141414",
257 terminalBackground: "#0a0a0a",
258 terminalForeground: "#f5f5f5",
259 terminalCursor: "#b4cbff",
260 terminalSelection: "#343a47",
261 terminalScrollbar: "#222222",
262 terminalScrollbarHover: "#363636",
263};
264
265export const T3_CHAT_THEME: ThemeDefinition = {
266 id: "t3-chat",
267 label: "T3 Chat",
268 appearance: "light",
269 colors: {
270 canvas: "oklch(0.982446 0.010114 325.653)",
271 chrome: "oklch(0.982446 0.010114 325.653)",
272 toolbar: "oklch(0.982446 0.010114 325.653)",
273 toolbarForeground: "oklch(0.325698 0.116116 325.037)",
274 toolbarBorder: "oklch(0.856784 0.082879 328.911)",
275 toolbarControl: "oklch(0.939552 0.024286 321.664)",
276 toolbarControlForeground: "oklch(0.325698 0.116116 325.037)",
277 toolbarControlHover: "oklch(0.884525 0.041658 337.177)",
278 surface: "oklch(0.971835 0.012884 321.894)",
279 surfaceRaised: "oklch(0.988235 0.005049 325.615)",
280 surfaceOverlay: "oklch(1 0 0)",
281 text: "oklch(0.325698 0.116116 325.037)",
282 textMuted: "oklch(0.494754 0.190937 354.544)",
283 border: "oklch(0.923531 0.021247 328.096)",
284 input: "oklch(0.851713 0.055822 336.6)",
285 focus: "oklch(0.591646 0.217985 0.584)",
286 accent: "oklch(0.591646 0.217985 0.584)",
287 accentForeground: "oklch(1 0 0)",
288 secondary: "oklch(0.869588 0.06751 334.899)",
289 secondaryForeground: "oklch(0.444777 0.134061 324.799)",
290 muted: "oklch(0.802407 0.090963 345.892)",
291 mutedForeground: "oklch(0.428932 0.163929 354.332)",
292 placeholder: "oklch(0.549927 0.090215 323.149)",
293 secondaryLabel: "oklch(0.494754 0.190937 354.544)",
294 iconMuted: "oklch(0.494754 0.190937 354.544)",
295 error: "oklch(0.627117 0.248974 7.734)",
296 errorForeground: "oklch(0.458704 0.169677 3.815)",
297 errorSurface: "oklch(0.942787 0.032076 344.963)",
298 warning: "oklch(0.76859 0.164659 70.08)",
299 warningForeground: "oklch(0.54612 0.143036 48.949)",
300 warningSurface: "oklch(0.962901 0.015297 48.56)",
301 update: "oklch(0.591646 0.217985 0.584)",
302 updateForeground: "oklch(0.494754 0.190937 354.544)",
303 updateSurface: "oklch(0.930264 0.036194 341.45)",
304 accentSurface: "oklch(0.939552 0.024286 321.664)",
305 accentSurfaceForeground: "oklch(0.396296 0.025134 285.196)",
306 messageSurface: "oklch(0.926746 0.037898 332.6)",
307 messageForeground: "oklch(0.354591 0.093575 307.568)",
308 messageAction: "oklch(0.591646 0.217985 0.584)",
309 messageActionForeground: "oklch(1 0 0)",
310 messageActionHover: "oklch(0.539042 0.197866 0.305)",
311 codeBackground: "oklch(0.953855 0.019695 315.668)",
312 codeForeground: "oklch(0.445128 0.13005 307.026)",
313 searchMatchBackground: "oklch(0.915 0.11 85)",
314 searchMatchForeground: "oklch(0.216164 0.028283 77.423)",
315 searchMatchActiveBackground: "oklch(0.774202 0.151946 74.331)",
316 searchMatchActiveForeground: "oklch(0.216164 0.028283 77.423)",
317 sidebar: "oklch(0.928886 0.031178 322.592)",
318 sidebarForeground: "oklch(0.396296 0.025134 285.196)",
319 sidebarMutedForeground: "oklch(0.494754 0.190937 354.544)",
320 sidebarControlSurface: "oklch(0.978851 0.001321 106.424)",
321 sidebarRowHover: "oklch(0.978851 0.001321 106.424)",
322 sidebarRowActive: "oklch(0.978851 0.001321 106.424)",
323 sidebarRowSelected: "oklch(0.978851 0.001321 106.424)",
324 sidebarBorder: "oklch(0.938313 0.002552 48.717)",
325 terminalBackground: "oklch(0.982446 0.010114 325.653)",
326 terminalForeground: "oklch(0.325698 0.116116 325.037)",
327 terminalCursor: "oklch(0.591646 0.217985 0.584)",
328 terminalSelection: "oklch(0.869588 0.06751 334.899)",
329 terminalScrollbar: "oklch(0.851713 0.055822 336.6)",
330 terminalScrollbarHover: "oklch(0.802407 0.090963 345.892)",
331 },
332 variants: {
333 dark: {
334 canvas: "oklch(0.22813 0.020366 307.469)",
335 chrome: "oklch(0.22813 0.020366 307.469)",
336 toolbar: "oklch(0.22813 0.020366 307.469)",
337 toolbarForeground: "oklch(0.980735 0.004092 301.426)",
338 toolbarBorder: "oklch(0.266943 0.015262 302.425)",
339 toolbarControl: "oklch(0.313674 0.030572 310.061)",
340 toolbarControlForeground: "oklch(0.848252 0.038248 307.961)",
341 toolbarControlHover: "oklch(0.364912 0.050794 308.491)",
342 surface: "oklch(0.267101 0.02016 311.799)",
343 surfaceRaised: "oklch(0.279864 0.021572 309.532)",
344 surfaceOverlay: "oklch(0.154761 0.01316 338.901)",
345 text: "oklch(0.980735 0.004092 301.426)",
346 textMuted: "oklch(0.880303 0.03077 342.696)",
347 border: "oklch(0.266943 0.015262 302.425)",
348 input: "oklch(0.266817 0.02897 344.461)",
349 focus: "oklch(0.591646 0.217985 0.584)",
350 accent: "oklch(0.460685 0.185347 4.099)",
351 accentForeground: "oklch(0.901233 0.057189 343.694)",
352 secondary: "oklch(0.313674 0.030572 310.061)",
353 secondaryForeground: "oklch(0.848252 0.038248 307.961)",
354 muted: "oklch(0.360924 0.021469 316.83)",
355 mutedForeground: "oklch(0.880303 0.03077 342.696)",
356 placeholder: "oklch(0.657087 0.028226 307.985)",
357 secondaryLabel: "oklch(0.880303 0.03077 342.696)",
358 iconMuted: "oklch(0.848252 0.038248 307.961)",
359 error: "oklch(0.458704 0.169677 3.815)",
360 errorForeground: "oklch(0.901233 0.057189 343.694)",
361 errorSurface: "oklch(0.259022 0.04799 340.062)",
362 warning: "oklch(0.76859 0.164659 70.08)",
363 warningForeground: "oklch(0.836861 0.164422 84.429)",
364 warningSurface: "oklch(0.321706 0.036256 60.806)",
365 update: "oklch(0.460685 0.185347 4.099)",
366 updateForeground: "oklch(0.901233 0.057189 343.694)",
367 updateSurface: "oklch(0.256077 0.063004 342.914)",
368 accentSurface: "oklch(0.364912 0.050794 308.491)",
369 accentSurfaceForeground: "oklch(0.964695 0.009139 341.803)",
370 messageSurface: "oklch(0.273791 0.025541 309.079)",
371 messageForeground: "oklch(0.949872 0.021269 306.838)",
372 messageAction: "oklch(0.460685 0.185347 4.099)",
373 messageActionForeground: "oklch(0.901233 0.057189 343.694)",
374 messageActionHover: "oklch(0.458754 0.184639 3.857)",
375 codeBackground: "oklch(0.22813 0.020366 307.469)",
376 codeForeground: "oklch(0.848703 0.064239 306.645)",
377 searchMatchBackground: "oklch(0.55 0.1 85)",
378 searchMatchForeground: "oklch(0.970151 0 0)",
379 searchMatchActiveBackground: "oklch(0.774202 0.151946 74.331)",
380 searchMatchActiveForeground: "oklch(0.216164 0.028283 77.423)",
381 sidebar: "oklch(0.185778 0.019368 322.159)",
382 sidebarForeground: "oklch(0.967434 0.001326 286.375)",
383 sidebarMutedForeground: "oklch(0.880303 0.03077 342.696)",
384 sidebarControlSurface: "oklch(0.23366 0.026081 338.196)",
385 sidebarRowHover: "oklch(0.23366 0.026081 338.196)",
386 sidebarRowActive: "oklch(0.23366 0.026081 338.196)",
387 sidebarRowSelected: "oklch(0.23366 0.026081 338.196)",
388 sidebarBorder: "oklch(0.269132 0.030766 351.067)",
389 terminalBackground: "oklch(0.22813 0.020366 307.469)",
390 terminalForeground: "oklch(0.980735 0.004092 301.426)",
391 terminalCursor: "oklch(0.591646 0.217985 0.584)",
392 terminalSelection: "oklch(0.313674 0.030572 310.061)",
393 terminalScrollbar: "oklch(0.266817 0.02897 344.461)",
394 terminalScrollbarHover: "oklch(0.360924 0.021469 316.83)",
395 },
396 },
397 sidebarArtwork: true,
398};
399
400export const GROVE_THEME: ThemeDefinition = {
401 id: "grove",
402 label: "Grove",
403 appearance: "light",
404 colors: {
405 canvas: "oklch(0.972369 0.005497 157.15)",
406 chrome: "oklch(0.972369 0.005497 157.15)",
407 toolbar: "oklch(0.972369 0.005497 157.15)",
408 toolbarForeground: "oklch(0.222003 0.03479 328.979)",
409 toolbarBorder: "oklch(0.909438 0.021521 164.612)",
410 toolbarControl: "oklch(0.936464 0.014601 163.554)",
411 toolbarControlForeground: "oklch(0.222003 0.03479 328.979)",
412 toolbarControlHover: "oklch(0.909438 0.021521 164.612)",
413 surface: "oklch(0.972369 0.005497 157.15)",
414 surfaceRaised: "oklch(0.949276 0.004496 159.002)",
415 surfaceOverlay: "oklch(0.932695 0.003778 160.944)",
416 text: "oklch(0.222003 0.03479 328.979)",
417 textMuted: "oklch(0.540472 0.014944 326.176)",
418 border: "oklch(0.864831 0.01312 167.255)",
419 input: "oklch(0.829746 0.016084 168.234)",
420 focus: "oklch(0.523295 0.112292 158.089)",
421 accent: "oklch(0.523295 0.112292 158.089)",
422 accentForeground: "oklch(0.990339 0.008411 325.64)",
423 secondary: "oklch(0.936464 0.014601 163.554)",
424 secondaryForeground: "oklch(0.222003 0.03479 328.979)",
425 muted: "oklch(0.945455 0.012308 162.879)",
426 mutedForeground: "oklch(0.527266 0.012309 320.683)",
427 placeholder: "oklch(0.529681 0.01551 326.299)",
428 secondaryLabel: "oklch(0.540472 0.014944 326.176)",
429 iconMuted: "oklch(0.540472 0.014944 326.176)",
430 error: "oklch(0.637823 0.237287 25.436)",
431 errorForeground: "oklch(0.509494 0.208583 28.513)",
432 errorSurface: "oklch(0.936968 0.014243 26.295)",
433 warning: "oklch(0.772406 0.172798 65.367)",
434 warningForeground: "oklch(0.545036 0.155019 45.359)",
435 warningSurface: "oklch(0.953175 0.02009 93.379)",
436 update: "oklch(0.523295 0.112292 158.089)",
437 updateForeground: "oklch(0.388012 0.080082 158.768)",
438 updateSurface: "oklch(0.900411 0.02384 164.795)",
439 accentSurface: "oklch(0.909438 0.021521 164.612)",
440 accentSurfaceForeground: "oklch(0.222003 0.03479 328.979)",
441 messageSurface: "oklch(0.891377 0.026164 164.929)",
442 messageForeground: "oklch(0.222003 0.03479 328.979)",
443 messageAction: "oklch(0.535028 0.106403 77.549)",
444 messageActionForeground: "oklch(0.990339 0.008411 325.64)",
445 messageActionHover: "oklch(0.488753 0.096536 77.829)",
446 codeBackground: "oklch(0.955888 0.004783 158.391)",
447 codeForeground: "oklch(0.222003 0.03479 328.979)",
448 searchMatchBackground: "oklch(0.915 0.11 85)",
449 searchMatchForeground: "oklch(0.216164 0.028283 77.423)",
450 searchMatchActiveBackground: "oklch(0.774202 0.151946 74.331)",
451 searchMatchActiveForeground: "oklch(0.216164 0.028283 77.423)",
452 sidebar: "oklch(0.936464 0.014601 163.554)",
453 sidebarForeground: "oklch(0.222003 0.03479 328.979)",
454 sidebarMutedForeground: "oklch(0.515606 0.011938 318.897)",
455 sidebarControlSurface: "oklch(0.88585 0.011734 166.331)",
456 sidebarRowHover: "oklch(0.886676 0.027374 164.983)",
457 sidebarRowActive: "oklch(0.85335 0.03597 165.158)",
458 sidebarRowSelected: "oklch(0.836654 0.040284 165.149)",
459 sidebarBorder: "oklch(0.860274 0.010287 168.339)",
460 terminalBackground: "oklch(0.972369 0.005497 157.15)",
461 terminalForeground: "oklch(0.222003 0.03479 328.979)",
462 terminalCursor: "oklch(0.523295 0.112292 158.089)",
463 terminalSelection: "oklch(0.891377 0.026164 164.929)",
464 terminalScrollbar: "oklch(0.824752 0.001392 294.641)",
465 terminalScrollbarHover: "oklch(0.755495 0.004415 318.776)",
466 },
467 variants: {
468 dark: {
469 canvas: "oklch(0.260865 0.02152 162.75)",
470 chrome: "oklch(0.260865 0.02152 162.75)",
471 toolbar: "oklch(0.260865 0.02152 162.75)",
472 toolbarForeground: "oklch(0.990339 0.008411 325.64)",
473 toolbarBorder: "oklch(0.464636 0.066083 158.72)",
474 toolbarControl: "oklch(0.380487 0.048313 159.608)",
475 toolbarControlForeground: "oklch(0.990339 0.008411 325.64)",
476 toolbarControlHover: "oklch(0.437021 0.060312 158.962)",
477 surface: "oklch(0.260865 0.02152 162.75)",
478 surfaceRaised: "oklch(0.363192 0.016572 165.32)",
479 surfaceOverlay: "oklch(0.411828 0.014378 166.627)",
480 text: "oklch(0.990339 0.008411 325.64)",
481 textMuted: "oklch(0.666747 0.004239 187.292)",
482 border: "oklch(0.457475 0.044046 160.971)",
483 input: "oklch(0.519849 0.049896 160.863)",
484 focus: "oklch(0.796228 0.133058 157.319)",
485 accent: "oklch(0.796228 0.133058 157.319)",
486 accentForeground: "oklch(0.222003 0.03479 328.979)",
487 secondary: "oklch(0.380487 0.048313 159.608)",
488 secondaryForeground: "oklch(0.990339 0.008411 325.64)",
489 muted: "oklch(0.339728 0.039456 160.274)",
490 mutedForeground: "oklch(0.715427 0.010896 171.428)",
491 placeholder: "oklch(0.739243 0.002222 223.225)",
492 secondaryLabel: "oklch(0.666747 0.004239 187.292)",
493 iconMuted: "oklch(0.666747 0.004239 187.292)",
494 error: "oklch(0.655108 0.221148 23.473)",
495 errorForeground: "oklch(0.704237 0.187511 22.228)",
496 errorSurface: "oklch(0.312773 0.02923 32.121)",
497 warning: "oklch(0.772406 0.172798 65.367)",
498 warningForeground: "oklch(0.829017 0.171221 81.038)",
499 warningSurface: "oklch(0.345524 0.046882 99.736)",
500 update: "oklch(0.796228 0.133058 157.319)",
501 updateForeground: "oklch(0.86276 0.089288 159.704)",
502 updateSurface: "oklch(0.448116 0.062637 158.86)",
503 accentSurface: "oklch(0.437021 0.060312 158.962)",
504 accentSurfaceForeground: "oklch(0.990339 0.008411 325.64)",
505 messageSurface: "oklch(0.470111 0.067221 158.676)",
506 messageForeground: "oklch(0.990339 0.008411 325.64)",
507 messageAction: "oklch(0.791603 0.129713 83.299)",
508 messageActionForeground: "oklch(0.222003 0.03479 328.979)",
509 messageActionHover: "oklch(0.815227 0.117902 84.21)",
510 codeBackground: "oklch(0.312979 0.018942 164.082)",
511 codeForeground: "oklch(0.990339 0.008411 325.64)",
512 searchMatchBackground: "oklch(0.55 0.1 85)",
513 searchMatchForeground: "oklch(0.970151 0 0)",
514 searchMatchActiveBackground: "oklch(0.774202 0.151946 74.331)",
515 searchMatchActiveForeground: "oklch(0.216164 0.028283 77.423)",
516 sidebar: "oklch(0.309925 0.032827 160.944)",
517 sidebarForeground: "oklch(0.990339 0.008411 325.64)",
518 sidebarMutedForeground: "oklch(0.711387 0.007643 175.89)",
519 sidebarControlSurface: "oklch(0.432727 0.024549 163.654)",
520 sidebarRowHover: "oklch(0.374959 0.047124 159.686)",
521 sidebarRowActive: "oklch(0.41688 0.056069 159.165)",
522 sidebarRowSelected: "oklch(0.437466 0.060406 158.958)",
523 sidebarBorder: "oklch(0.569253 0.015933 167.062)",
524 terminalBackground: "oklch(0.260865 0.02152 162.75)",
525 terminalForeground: "oklch(0.990339 0.008411 325.64)",
526 terminalCursor: "oklch(0.796228 0.133058 157.319)",
527 terminalSelection: "oklch(0.464636 0.066083 158.72)",
528 terminalScrollbar: "oklch(0.594692 0.006862 176.022)",
529 terminalScrollbarHover: "oklch(0.687968 0.00354 193.55)",
530 },
531 },
532 sidebarArtwork: true,
533};
534
535export const OCEAN_THEME: ThemeDefinition = {
536 id: "ocean",
537 label: "Ocean",
538 appearance: "light",
539 colors: {
540 canvas: "oklch(0.974199 0.002856 241.597)",
541 chrome: "oklch(0.974199 0.002856 241.597)",
542 toolbar: "oklch(0.974199 0.002856 241.597)",
543 toolbarForeground: "oklch(0.222003 0.03479 328.979)",
544 toolbarBorder: "oklch(0.91295 0.018827 241.836)",
545 toolbarControl: "oklch(0.939254 0.01193 241.729)",
546 toolbarControlForeground: "oklch(0.222003 0.03479 328.979)",
547 toolbarControlHover: "oklch(0.91295 0.018827 241.836)",
548 surface: "oklch(0.974199 0.002856 241.597)",
549 surfaceRaised: "oklch(0.951058 0.002962 258.339)",
550 surfaceOverlay: "oklch(0.934442 0.003181 269.1)",
551 text: "oklch(0.222003 0.03479 328.979)",
552 textMuted: "oklch(0.541555 0.017468 323.531)",
553 border: "oklch(0.867646 0.013482 252.362)",
554 input: "oklch(0.832939 0.017389 252.598)",
555 focus: "oklch(0.536684 0.120219 247.01)",
556 accent: "oklch(0.536684 0.120219 247.01)",
557 accentForeground: "oklch(0.990339 0.008411 325.64)",
558 secondary: "oklch(0.939254 0.01193 241.729)",
559 secondaryForeground: "oklch(0.222003 0.03479 328.979)",
560 muted: "oklch(0.948004 0.009649 241.695)",
561 mutedForeground: "oklch(0.528741 0.01828 313.823)",
562 placeholder: "oklch(0.530733 0.01795 323.79)",
563 secondaryLabel: "oklch(0.541555 0.017468 323.531)",
564 iconMuted: "oklch(0.541555 0.017468 323.531)",
565 error: "oklch(0.637823 0.237287 25.436)",
566 errorForeground: "oklch(0.509494 0.208583 28.513)",
567 errorSurface: "oklch(0.938747 0.016377 7.186)",
568 warning: "oklch(0.772406 0.172798 65.367)",
569 warningForeground: "oklch(0.546927 0.155556 45.359)",
570 warningSurface: "oklch(0.954846 0.016009 81.731)",
571 update: "oklch(0.536684 0.120219 247.01)",
572 updateForeground: "oklch(0.397497 0.084999 246.523)",
573 updateSurface: "oklch(0.904165 0.021144 241.874)",
574 accentSurface: "oklch(0.91295 0.018827 241.836)",
575 accentSurfaceForeground: "oklch(0.222003 0.03479 328.979)",
576 messageSurface: "oklch(0.895373 0.023469 241.913)",
577 messageForeground: "oklch(0.222003 0.03479 328.979)",
578 messageAction: "oklch(0.493961 0.08175 201.584)",
579 messageActionForeground: "oklch(0.990339 0.008411 325.64)",
580 messageActionHover: "oklch(0.45151 0.074407 201.516)",
581 codeBackground: "oklch(0.957684 0.002906 253.68)",
582 codeForeground: "oklch(0.222003 0.03479 328.979)",
583 searchMatchBackground: "oklch(0.915 0.11 85)",
584 searchMatchForeground: "oklch(0.216164 0.028283 77.423)",
585 searchMatchActiveBackground: "oklch(0.774202 0.151946 74.331)",
586 searchMatchActiveForeground: "oklch(0.216164 0.028283 77.423)",
587 sidebar: "oklch(0.939254 0.01193 241.729)",
588 sidebarForeground: "oklch(0.222003 0.03479 328.979)",
589 sidebarMutedForeground: "oklch(0.517366 0.018944 311.433)",
590 sidebarControlSurface: "oklch(0.888479 0.011475 251.638)",
591 sidebarRowHover: "oklch(0.890798 0.024681 241.933)",
592 sidebarRowActive: "oklch(0.858363 0.033325 242.089)",
593 sidebarRowSelected: "oklch(0.842113 0.037689 242.174)",
594 sidebarBorder: "oklch(0.862823 0.011384 256.926)",
595 terminalBackground: "oklch(0.974199 0.002856 241.597)",
596 terminalForeground: "oklch(0.222003 0.03479 328.979)",
597 terminalCursor: "oklch(0.536684 0.120219 247.01)",
598 terminalSelection: "oklch(0.895373 0.023469 241.913)",
599 terminalScrollbar: "oklch(0.826271 0.006191 305.456)",
600 terminalScrollbarHover: "oklch(0.756866 0.008685 313.721)",
601 },
602 variants: {
603 dark: {
604 canvas: "oklch(0.242641 0.024125 250.573)",
605 chrome: "oklch(0.242641 0.024125 250.573)",
606 toolbar: "oklch(0.242641 0.024125 250.573)",
607 toolbarForeground: "oklch(0.990339 0.008411 325.64)",
608 toolbarBorder: "oklch(0.439946 0.0561 243.479)",
609 toolbarControl: "oklch(0.358725 0.043145 244.911)",
610 toolbarControlForeground: "oklch(0.990339 0.008411 325.64)",
611 toolbarControlHover: "oklch(0.413315 0.051874 243.855)",
612 surface: "oklch(0.242641 0.024125 250.573)",
613 surfaceRaised: "oklch(0.348439 0.019942 253.696)",
614 surfaceOverlay: "oklch(0.398517 0.018232 255.72)",
615 text: "oklch(0.990339 0.008411 325.64)",
616 textMuted: "oklch(0.652227 0.01149 273.31)",
617 border: "oklch(0.438653 0.039496 245.44)",
618 input: "oklch(0.500905 0.043574 244.781)",
619 focus: "oklch(0.758933 0.105833 241.548)",
620 accent: "oklch(0.758933 0.105833 241.548)",
621 accentForeground: "oklch(0.222003 0.03479 328.979)",
622 secondary: "oklch(0.358725 0.043145 244.911)",
623 secondaryForeground: "oklch(0.990339 0.008411 325.64)",
624 muted: "oklch(0.319287 0.036766 246.065)",
625 mutedForeground: "oklch(0.691936 0.016294 261.588)",
626 placeholder: "oklch(0.721641 0.010192 281.271)",
627 secondaryLabel: "oklch(0.652227 0.01149 273.31)",
628 iconMuted: "oklch(0.652227 0.01149 273.31)",
629 error: "oklch(0.655108 0.221148 23.473)",
630 errorForeground: "oklch(0.702184 0.189226 22.228)",
631 errorSurface: "oklch(0.298933 0.036443 350.094)",
632 warning: "oklch(0.772406 0.172798 65.367)",
633 warningForeground: "oklch(0.829017 0.171221 81.038)",
634 warningSurface: "oklch(0.329449 0.028712 84.495)",
635 update: "oklch(0.758933 0.105833 241.548)",
636 updateForeground: "oklch(0.840844 0.069217 240.151)",
637 updateSurface: "oklch(0.424017 0.053575 243.695)",
638 accentSurface: "oklch(0.413315 0.051874 243.855)",
639 accentSurfaceForeground: "oklch(0.990339 0.008411 325.64)",
640 messageSurface: "oklch(0.445224 0.056936 243.413)",
641 messageForeground: "oklch(0.990339 0.008411 325.64)",
642 messageAction: "oklch(0.793363 0.105022 199.893)",
643 messageActionForeground: "oklch(0.222003 0.03479 328.979)",
644 messageActionHover: "oklch(0.815308 0.096174 199.862)",
645 codeBackground: "oklch(0.29661 0.021883 251.968)",
646 codeForeground: "oklch(0.990339 0.008411 325.64)",
647 searchMatchBackground: "oklch(0.55 0.1 85)",
648 searchMatchForeground: "oklch(0.970151 0 0)",
649 searchMatchActiveBackground: "oklch(0.774202 0.151946 74.331)",
650 searchMatchActiveForeground: "oklch(0.216164 0.028283 77.423)",
651 sidebar: "oklch(0.290387 0.032043 247.274)",
652 sidebarForeground: "oklch(0.990339 0.008411 325.64)",
653 sidebarMutedForeground: "oklch(0.69099 0.01395 266.424)",
654 sidebarControlSurface: "oklch(0.417822 0.02535 250.162)",
655 sidebarRowHover: "oklch(0.353381 0.042285 245.043)",
656 sidebarRowActive: "oklch(0.393878 0.048778 244.179)",
657 sidebarRowSelected: "oklch(0.413744 0.051943 243.848)",
658 sidebarBorder: "oklch(0.55859 0.019001 256.223)",
659 terminalBackground: "oklch(0.242641 0.024125 250.573)",
660 terminalForeground: "oklch(0.990339 0.008411 325.64)",
661 terminalCursor: "oklch(0.758933 0.105833 241.548)",
662 terminalSelection: "oklch(0.439946 0.0561 243.479)",
663 terminalScrollbar: "oklch(0.58613 0.012959 267.22)",
664 terminalScrollbarHover: "oklch(0.681569 0.010909 276.465)",
665 },
666 },
667 sidebarArtwork: true,
668};
669
670export const EMBER_THEME: ThemeDefinition = {
671 id: "ember",
672 label: "Ember",
673 appearance: "light",
674 colors: {
675 canvas: "oklch(0.976527 0.002685 60.725)",
676 chrome: "oklch(0.976527 0.002685 60.725)",
677 toolbar: "oklch(0.976527 0.002685 60.725)",
678 toolbarForeground: "oklch(0.222003 0.03479 328.979)",
679 toolbarBorder: "oklch(0.916502 0.01832 49.597)",
680 toolbarControl: "oklch(0.942267 0.01151 50.785)",
681 toolbarControlForeground: "oklch(0.222003 0.03479 328.979)",
682 toolbarControlHover: "oklch(0.916502 0.01832 49.597)",
683 surface: "oklch(0.976527 0.002685 60.725)",
684 surfaceRaised: "oklch(0.953321 0.002701 42.266)",
685 surfaceOverlay: "oklch(0.936659 0.002879 29.96)",
686 text: "oklch(0.222003 0.03479 328.979)",
687 textMuted: "oklch(0.543023 0.017316 331.964)",
688 border: "oklch(0.870631 0.013204 39.431)",
689 input: "oklch(0.836213 0.017153 38.661)",
690 focus: "oklch(0.552831 0.129438 44.656)",
691 accent: "oklch(0.552831 0.129438 44.656)",
692 accentForeground: "oklch(0.990339 0.008411 325.64)",
693 secondary: "oklch(0.942267 0.01151 50.785)",
694 secondaryForeground: "oklch(0.222003 0.03479 328.979)",
695 muted: "oklch(0.950842 0.009273 51.528)",
696 mutedForeground: "oklch(0.530413 0.018453 341.181)",
697 placeholder: "oklch(0.532339 0.017796 331.748)",
698 secondaryLabel: "oklch(0.543023 0.017316 331.964)",
699 iconMuted: "oklch(0.543023 0.017316 331.964)",
700 error: "oklch(0.637823 0.237287 25.436)",
701 errorForeground: "oklch(0.509494 0.208583 28.513)",
702 errorSurface: "oklch(0.941094 0.019938 19.375)",
703 warning: "oklch(0.772406 0.172798 65.367)",
704 warningForeground: "oklch(0.549154 0.156188 45.359)",
705 warningSurface: "oklch(0.957148 0.020843 76.702)",
706 update: "oklch(0.552831 0.129438 44.656)",
707 updateForeground: "oklch(0.408647 0.091207 45.037)",
708 updateSurface: "oklch(0.907902 0.020621 49.36)",
709 accentSurface: "oklch(0.916502 0.01832 49.597)",
710 accentSurfaceForeground: "oklch(0.222003 0.03479 328.979)",
711 messageSurface: "oklch(0.899296 0.022939 49.163)",
712 messageForeground: "oklch(0.222003 0.03479 328.979)",
713 messageAction: "oklch(0.516323 0.161628 24.82)",
714 messageActionForeground: "oklch(0.990339 0.008411 325.64)",
715 messageActionHover: "oklch(0.471223 0.145843 24.688)",
716 codeBackground: "oklch(0.959965 0.002668 47.512)",
717 codeForeground: "oklch(0.222003 0.03479 328.979)",
718 searchMatchBackground: "oklch(0.915 0.11 85)",
719 searchMatchForeground: "oklch(0.216164 0.028283 77.423)",
720 searchMatchActiveBackground: "oklch(0.774202 0.151946 74.331)",
721 searchMatchActiveForeground: "oklch(0.216164 0.028283 77.423)",
722 sidebar: "oklch(0.942267 0.01151 50.785)",
723 sidebarForeground: "oklch(0.222003 0.03479 328.979)",
724 sidebarMutedForeground: "oklch(0.519146 0.019214 343.427)",
725 sidebarControlSurface: "oklch(0.891332 0.011179 40.596)",
726 sidebarRowHover: "oklch(0.894819 0.024151 49.073)",
727 sidebarRowActive: "oklch(0.863104 0.032855 48.586)",
728 sidebarRowSelected: "oklch(0.84723 0.037292 48.403)",
729 sidebarBorder: "oklch(0.865593 0.011154 35.246)",
730 terminalBackground: "oklch(0.976527 0.002685 60.725)",
731 terminalForeground: "oklch(0.222003 0.03479 328.979)",
732 terminalCursor: "oklch(0.552831 0.129438 44.656)",
733 terminalSelection: "oklch(0.899296 0.022939 49.163)",
734 terminalScrollbar: "oklch(0.828185 0.005884 349.533)",
735 terminalScrollbarHover: "oklch(0.758584 0.008423 341.16)",
736 },
737 variants: {
738 dark: {
739 canvas: "oklch(0.245899 0.019144 42.044)",
740 chrome: "oklch(0.245899 0.019144 42.044)",
741 toolbar: "oklch(0.245899 0.019144 42.044)",
742 toolbarForeground: "oklch(0.990339 0.008411 325.64)",
743 toolbarBorder: "oklch(0.442681 0.0608 50.795)",
744 toolbarControl: "oklch(0.361499 0.044052 49.515)",
745 toolbarControlForeground: "oklch(0.990339 0.008411 325.64)",
746 toolbarControlHover: "oklch(0.416048 0.055354 50.484)",
747 surface: "oklch(0.245899 0.019144 42.044)",
748 surfaceRaised: "oklch(0.351262 0.01565 37.592)",
749 surfaceOverlay: "oklch(0.401111 0.014308 34.896)",
750 text: "oklch(0.990339 0.008411 325.64)",
751 textMuted: "oklch(0.654017 0.009505 13.287)",
752 border: "oklch(0.44099 0.040202 48.807)",
753 input: "oklch(0.503003 0.045721 49.44)",
754 focus: "oklch(0.762174 0.124117 52.082)",
755 accent: "oklch(0.762174 0.124117 52.082)",
756 accentForeground: "oklch(0.222003 0.03479 328.979)",
757 secondary: "oklch(0.361499 0.044052 49.515)",
758 secondaryForeground: "oklch(0.990339 0.008411 325.64)",
759 muted: "oklch(0.322144 0.03574 48.309)",
760 mutedForeground: "oklch(0.692479 0.015227 30.963)",
761 placeholder: "oklch(0.723533 0.008741 4.515)",
762 secondaryLabel: "oklch(0.654017 0.009505 13.287)",
763 iconMuted: "oklch(0.654017 0.009505 13.287)",
764 error: "oklch(0.655108 0.221148 23.473)",
765 errorForeground: "oklch(0.702184 0.189226 22.228)",
766 errorSurface: "oklch(0.310955 0.059624 24.334)",
767 warning: "oklch(0.772406 0.172798 65.367)",
768 warningForeground: "oklch(0.829017 0.171221 81.038)",
769 warningSurface: "oklch(0.339137 0.055638 66.911)",
770 update: "oklch(0.762174 0.124117 52.082)",
771 updateForeground: "oklch(0.841456 0.079585 53.521)",
772 updateSurface: "oklch(0.426749 0.057547 50.618)",
773 accentSurface: "oklch(0.416048 0.055354 50.484)",
774 accentSurfaceForeground: "oklch(0.990339 0.008411 325.64)",
775 messageSurface: "oklch(0.447961 0.061874 50.849)",
776 messageForeground: "oklch(0.990339 0.008411 325.64)",
777 messageAction: "oklch(0.747955 0.135578 29.432)",
778 messageActionForeground: "oklch(0.222003 0.03479 328.979)",
779 messageActionHover: "oklch(0.775116 0.117953 29.014)",
780 codeBackground: "oklch(0.299662 0.017229 39.973)",
781 codeForeground: "oklch(0.990339 0.008411 325.64)",
782 searchMatchBackground: "oklch(0.55 0.1 85)",
783 searchMatchForeground: "oklch(0.970151 0 0)",
784 searchMatchActiveBackground: "oklch(0.774202 0.151946 74.331)",
785 searchMatchActiveForeground: "oklch(0.216164 0.028283 77.423)",
786 sidebar: "oklch(0.293349 0.029554 46.882)",
787 sidebarForeground: "oklch(0.990339 0.008411 325.64)",
788 sidebarMutedForeground: "oklch(0.691874 0.012538 24.638)",
789 sidebarControlSurface: "oklch(0.420227 0.022893 43.226)",
790 sidebarRowHover: "oklch(0.356163 0.042933 49.385)",
791 sidebarRowActive: "oklch(0.396617 0.051353 50.201)",
792 sidebarRowSelected: "oklch(0.416477 0.055442 50.489)",
793 sidebarBorder: "oklch(0.560372 0.016998 36.179)",
794 terminalBackground: "oklch(0.245899 0.019144 42.044)",
795 terminalForeground: "oklch(0.990339 0.008411 325.64)",
796 terminalCursor: "oklch(0.762174 0.124117 52.082)",
797 terminalSelection: "oklch(0.442681 0.0608 50.795)",
798 terminalScrollbar: "oklch(0.587861 0.010463 20.444)",
799 terminalScrollbarHover: "oklch(0.682876 0.009156 9.796)",
800 },
801 },
802 sidebarArtwork: true,
803};
804
805export const IRIS_THEME: ThemeDefinition = {
806 id: "iris",
807 label: "Iris",
808 appearance: "light",
809 colors: {
810 canvas: "oklch(0.976531 0.003855 303.226)",
811 chrome: "oklch(0.976531 0.003855 303.226)",
812 toolbar: "oklch(0.976531 0.003855 303.226)",
813 toolbarForeground: "oklch(0.222003 0.03479 328.979)",
814 toolbarBorder: "oklch(0.914882 0.022965 299.986)",
815 toolbarControl: "oklch(0.941387 0.014687 300.474)",
816 toolbarControlForeground: "oklch(0.222003 0.03479 328.979)",
817 toolbarControlHover: "oklch(0.914882 0.022965 299.986)",
818 surface: "oklch(0.976531 0.003855 303.226)",
819 surfaceRaised: "oklch(0.953326 0.004536 307.676)",
820 surfaceOverlay: "oklch(0.936665 0.005041 310.132)",
821 text: "oklch(0.222003 0.03479 328.979)",
822 textMuted: "oklch(0.543042 0.018894 325.652)",
823 border: "oklch(0.869608 0.018226 303.859)",
824 input: "oklch(0.834773 0.023405 303.676)",
825 focus: "oklch(0.525348 0.15373 294.176)",
826 accent: "oklch(0.525348 0.15373 294.176)",
827 accentForeground: "oklch(0.990339 0.008411 325.64)",
828 secondary: "oklch(0.941387 0.014687 300.474)",
829 secondaryForeground: "oklch(0.222003 0.03479 328.979)",
830 muted: "oklch(0.950194 0.011956 300.733)",
831 mutedForeground: "oklch(0.529955 0.022319 321.556)",
832 placeholder: "oklch(0.532177 0.019333 325.784)",
833 secondaryLabel: "oklch(0.543042 0.018894 325.652)",
834 iconMuted: "oklch(0.543042 0.018894 325.652)",
835 error: "oklch(0.637823 0.237287 25.436)",
836 errorForeground: "oklch(0.509494 0.208583 28.513)",
837 errorSurface: "oklch(0.941043 0.019582 4.235)",
838 warning: "oklch(0.772406 0.172798 65.367)",
839 warningForeground: "oklch(0.549154 0.156188 45.359)",
840 warningSurface: "oklch(0.957054 0.016197 69.932)",
841 update: "oklch(0.525348 0.15373 294.176)",
842 updateForeground: "oklch(0.389926 0.10825 294.547)",
843 updateSurface: "oklch(0.90602 0.025754 299.867)",
844 accentSurface: "oklch(0.914882 0.022965 299.986)",
845 accentSurfaceForeground: "oklch(0.222003 0.03479 328.979)",
846 messageSurface: "oklch(0.897143 0.028558 299.758)",
847 messageForeground: "oklch(0.222003 0.03479 328.979)",
848 messageAction: "oklch(0.516084 0.185229 340.776)",
849 messageActionForeground: "oklch(0.990339 0.008411 325.64)",
850 messageActionHover: "oklch(0.471003 0.16748 340.687)",
851 codeBackground: "oklch(0.95997 0.004338 306.542)",
852 codeForeground: "oklch(0.222003 0.03479 328.979)",
853 searchMatchBackground: "oklch(0.915 0.11 85)",
854 searchMatchForeground: "oklch(0.216164 0.028283 77.423)",
855 searchMatchActiveBackground: "oklch(0.774202 0.151946 74.331)",
856 searchMatchActiveForeground: "oklch(0.216164 0.028283 77.423)",
857 sidebar: "oklch(0.941387 0.014687 300.474)",
858 sidebarForeground: "oklch(0.222003 0.03479 328.979)",
859 sidebarMutedForeground: "oklch(0.518417 0.023683 320.681)",
860 sidebarControlSurface: "oklch(0.890512 0.0155 303.803)",
861 sidebarRowHover: "oklch(0.892522 0.030022 299.704)",
862 sidebarRowActive: "oklch(0.85971 0.040501 299.36)",
863 sidebarRowSelected: "oklch(0.843236 0.045818 299.198)",
864 sidebarBorder: "oklch(0.864805 0.015938 305.371)",
865 terminalBackground: "oklch(0.976531 0.003855 303.226)",
866 terminalForeground: "oklch(0.222003 0.03479 328.979)",
867 terminalCursor: "oklch(0.525348 0.15373 294.176)",
868 terminalSelection: "oklch(0.897143 0.028558 299.758)",
869 terminalScrollbar: "oklch(0.828195 0.008526 318.858)",
870 terminalScrollbarHover: "oklch(0.758596 0.010892 321.538)",
871 },
872 variants: {
873 dark: {
874 canvas: "oklch(0.225975 0.031062 293.741)",
875 chrome: "oklch(0.225975 0.031062 293.741)",
876 toolbar: "oklch(0.225975 0.031062 293.741)",
877 toolbarForeground: "oklch(0.990339 0.008411 325.64)",
878 toolbarBorder: "oklch(0.395417 0.085554 294.182)",
879 toolbarControl: "oklch(0.325405 0.063614 294.23)",
880 toolbarControlForeground: "oklch(0.990339 0.008411 325.64)",
881 toolbarControlHover: "oklch(0.372436 0.07841 294.204)",
882 surface: "oklch(0.225975 0.031062 293.741)",
883 surfaceRaised: "oklch(0.335291 0.026008 296.394)",
884 surfaceOverlay: "oklch(0.386739 0.024023 297.509)",
885 text: "oklch(0.990339 0.008411 325.64)",
886 textMuted: "oklch(0.640465 0.016197 304.171)",
887 border: "oklch(0.40874 0.058536 295.893)",
888 input: "oklch(0.46756 0.065775 296.265)",
889 focus: "oklch(0.671712 0.169136 293.929)",
890 accent: "oklch(0.671712 0.169136 293.929)",
891 accentForeground: "oklch(0.222003 0.03479 328.979)",
892 secondary: "oklch(0.325405 0.063614 294.23)",
893 secondaryForeground: "oklch(0.990339 0.008411 325.64)",
894 muted: "oklch(0.291515 0.05276 294.209)",
895 mutedForeground: "oklch(0.663321 0.025932 301.862)",
896 placeholder: "oklch(0.706249 0.014508 306.607)",
897 secondaryLabel: "oklch(0.640465 0.016197 304.171)",
898 iconMuted: "oklch(0.640465 0.016197 304.171)",
899 error: "oklch(0.655108 0.221148 23.473)",
900 errorForeground: "oklch(0.702184 0.189226 22.228)",
901 errorSurface: "oklch(0.291658 0.054707 352.238)",
902 warning: "oklch(0.772406 0.172798 65.367)",
903 warningForeground: "oklch(0.829017 0.171221 81.038)",
904 warningSurface: "oklch(0.318952 0.033845 51.646)",
905 update: "oklch(0.671712 0.169136 293.929)",
906 updateForeground: "oklch(0.785032 0.108439 296.344)",
907 updateSurface: "oklch(0.381668 0.081286 294.195)",
908 accentSurface: "oklch(0.372436 0.07841 294.204)",
909 accentSurfaceForeground: "oklch(0.990339 0.008411 325.64)",
910 messageSurface: "oklch(0.399975 0.086965 294.177)",
911 messageForeground: "oklch(0.990339 0.008411 325.64)",
912 messageAction: "oklch(0.789904 0.130063 337.621)",
913 messageActionForeground: "oklch(0.222003 0.03479 328.979)",
914 messageActionHover: "oklch(0.813537 0.114101 337.23)",
915 codeBackground: "oklch(0.281873 0.028308 295.193)",
916 codeForeground: "oklch(0.990339 0.008411 325.64)",
917 searchMatchBackground: "oklch(0.55 0.1 85)",
918 searchMatchForeground: "oklch(0.970151 0 0)",
919 searchMatchActiveBackground: "oklch(0.774202 0.151946 74.331)",
920 searchMatchActiveForeground: "oklch(0.216164 0.028283 77.423)",
921 sidebar: "oklch(0.266743 0.044689 294.138)",
922 sidebarForeground: "oklch(0.990339 0.008411 325.64)",
923 sidebarMutedForeground: "oklch(0.668773 0.021522 302.949)",
924 sidebarControlSurface: "oklch(0.399977 0.035678 297.031)",
925 sidebarRowHover: "oklch(0.320808 0.062152 294.23)",
926 sidebarRowActive: "oklch(0.355677 0.073167 294.217)",
927 sidebarRowSelected: "oklch(0.372806 0.078525 294.203)",
928 sidebarBorder: "oklch(0.545895 0.027522 299.871)",
929 terminalBackground: "oklch(0.225975 0.031062 293.741)",
930 terminalForeground: "oklch(0.990339 0.008411 325.64)",
931 terminalCursor: "oklch(0.671712 0.169136 293.929)",
932 terminalSelection: "oklch(0.395417 0.085554 294.182)",
933 terminalScrollbar: "oklch(0.578663 0.017888 302.229)",
934 terminalScrollbarHover: "oklch(0.676012 0.015271 305.433)",
935 },
936 },
937 sidebarArtwork: true,
938};
939
940export const BUILT_IN_THEMES: ReadonlyArray<ThemeDefinition> = [
941 T3_CHAT_THEME,
942 GROVE_THEME,
943 OCEAN_THEME,
944 EMBER_THEME,
945 IRIS_THEME,
946];
947
948export function getThemeColorsForAppearance(
949 theme: ThemeDefinition,
950 appearance: ThemeAppearance,
951): ThemeColors | null {
952 if (theme.appearance === appearance) return theme.colors;
953 return theme.variants?.[appearance] ?? null;
954}