Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion apps/mobile/generated-uniwind-theme-names.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,7 @@
"ember-light",
"ember-dark",
"iris-light",
"iris-dark"
"iris-dark",
"prism-light",
"prism-dark"
]
250 changes: 250 additions & 0 deletions apps/mobile/generated-uniwind-themes.css
Original file line number Diff line number Diff line change
Expand Up @@ -1370,5 +1370,255 @@
--color-adaptive-zinc-500-400: oklch(70.5% 0.015 286.067);
--color-adaptive-zinc-600-300: oklch(87.1% 0.006 286.286);
}

@variant prism-light {
--color-screen: #f5f7f9;
--color-sheet: rgba(241, 244, 247, 0.98);
--color-sheet-solid: #f1f4f7;
--color-card: #ffffff;
--color-card-alt: #fbfcfd;
--color-card-translucent: rgba(255, 255, 255, 0.8);
--color-foreground: #1d1f26;
--color-foreground-secondary: #646972;
--color-foreground-muted: #5e636d;
--color-foreground-tertiary: #646972;
--color-border: #dbdee3;
--color-border-subtle: rgba(219, 222, 227, 0.7);
--color-separator: rgba(219, 222, 227, 0.55);
--color-subtle: #eef0f3;
--color-subtle-strong: #eaedf1;
--color-inline-skill-background: #e6eaef;
--color-inline-skill-border: rgba(42, 102, 219, 0.42);
--color-inline-skill-foreground: #181a21;
--color-primary: #2a66db;
--color-primary-foreground: #fbfcfd;
--color-primary-shadow: #000000;
--color-secondary: #eaedf1;
--color-secondary-foreground: #21242b;
--color-secondary-border: #dbdee3;
--color-switch-active-track: #2a66db;
--color-switch-active-thumb: #fbfcfd;
--color-switch-inactive-track: #eaedf1;
--color-switch-inactive-thumb: #5e636d;
--color-danger: #fceae9;
--color-danger-border: rgba(238, 52, 59, 0.32);
--color-danger-foreground: #b7191c;
--color-input: #ffffff;
--color-input-border: #c9ced4;
--color-sidebar-search: #dfe3e8;
--color-placeholder: #6d727a;
--color-icon: #1d1f26;
--color-icon-muted: #6a6f78;
--color-icon-subtle: #646972;
--color-header: rgba(245, 247, 249, 0.97);
--color-header-border: #d7dbe0;
--color-glass-surface: rgba(255, 255, 255, 0.74);
--color-glass-tint: rgba(255, 255, 255, 0.22);
--color-status-bar: #f5f7f9;
--color-md-body: #1d1f26;
--color-md-strong: #21242b;
--color-md-link: #2a66db;
--color-md-blockquote-border: #dbdee3;
--color-md-blockquote-bg: #eef0f3;
--color-md-code-bg: #edf0f4;
--color-md-code-text: #262930;
--color-md-user-code-bg: rgba(29, 31, 38, 0.18);
--color-md-user-code-text: #1d1f26;
--color-md-user-fence-bg: rgba(0, 0, 0, 0.16);
--color-md-user-fence-text: #1d1f26;
--color-md-hr: #dbdee3;
--color-user-bubble: #dfe5ed;
--color-user-bubble-foreground: #1d1f26;
--color-user-bubble-foreground-muted: rgba(29, 31, 38, 0.78);
--color-user-bubble-skill-foreground: #292e38;
--color-backdrop: rgba(0, 0, 0, 0.22);
--color-drawer: rgba(237, 240, 244, 0.99);
--color-drawer-shadow: rgba(0, 0, 0, 0.12);
--color-dot-separator: rgba(100, 105, 114, 0.35);
--color-wordmark: #1d1f26;
--color-chevron: rgba(100, 105, 114, 0.42);
--color-adaptive-amber-50-950-a40: oklch(98.7% 0.022 95.277);
--color-adaptive-amber-200-900-a60: oklch(92.4% 0.12 95.746);
--color-adaptive-amber-500-a12-a16: oklch(76.9% 0.188 70.08 / 12%);
--color-adaptive-amber-700-300: oklch(55.5% 0.163 48.998);
--color-adaptive-amber-700-400: oklch(55.5% 0.163 48.998);
--color-adaptive-amber-800-200: oklch(47.3% 0.137 46.201);
--color-adaptive-blue-50-blue-400-a14: oklch(97% 0.014 254.604);
--color-adaptive-blue-300-a50-blue-400-a28: oklch(80.9% 0.105 251.813 / 50%);
--color-adaptive-blue-500-a20-blue-400-a15: oklch(62.3% 0.214 259.815 / 20%);
--color-adaptive-blue-500-400: oklch(62.3% 0.214 259.815);
--color-adaptive-blue-600-400: oklch(54.6% 0.245 262.881);
--color-adaptive-black-a10-a25: rgb(0 0 0 / 10%);
--color-adaptive-black-a15-a35: rgb(0 0 0 / 15%);
--color-adaptive-emerald-500-a12-a16: oklch(69.6% 0.17 162.48 / 12%);
--color-adaptive-emerald-600-400: oklch(59.6% 0.145 163.225);
--color-adaptive-emerald-700-300: oklch(50.8% 0.118 165.612);
--color-adaptive-indigo-500-a12-a16: oklch(58.5% 0.233 277.117 / 12%);
--color-adaptive-indigo-600-300: oklch(51.1% 0.262 276.966);
--color-adaptive-indigo-700-300: oklch(45.7% 0.24 277.023);
--color-adaptive-neutral-100-900: oklch(97% 0 0);
--color-adaptive-neutral-200-700-a60: oklch(92.2% 0 0);
--color-adaptive-neutral-200-800: oklch(92.2% 0 0);
--color-adaptive-neutral-200-a70-white-a8: oklch(92.2% 0 0 / 70%);
--color-adaptive-neutral-200-white-a6: oklch(92.2% 0 0);
--color-adaptive-neutral-200-white-a8: oklch(92.2% 0 0);
--color-adaptive-neutral-200-a80-white-a8: oklch(92.2% 0 0 / 80%);
--color-adaptive-neutral-300-a60-white-a12: oklch(87% 0 0 / 60%);
--color-adaptive-neutral-400-500: oklch(70.8% 0 0);
--color-adaptive-neutral-400-a60-500-a60: oklch(70.8% 0 0 / 60%);
--color-adaptive-neutral-400-a80-500-a80: oklch(70.8% 0 0 / 80%);
--color-adaptive-neutral-500-a10-a16: oklch(55.6% 0 0 / 10%);
--color-adaptive-neutral-500-400: oklch(55.6% 0 0);
--color-adaptive-neutral-500-500: oklch(55.6% 0 0);
--color-adaptive-neutral-600-300: oklch(43.9% 0 0);
--color-adaptive-neutral-600-400: oklch(43.9% 0 0);
--color-adaptive-neutral-950-50: oklch(14.5% 0 0);
--color-adaptive-red-50-950-a80: oklch(97.1% 0.013 17.38);
--color-adaptive-red-200-800: oklch(88.5% 0.062 18.334);
--color-adaptive-red-600-a80-400-a80: oklch(57.7% 0.245 27.325 / 80%);
--color-adaptive-red-700-300: oklch(50.5% 0.213 27.518);
--color-adaptive-rose-100-500-a18: oklch(94.1% 0.03 12.58);
--color-adaptive-rose-100-a80-500-a12: oklch(94.1% 0.03 12.58 / 80%);
--color-adaptive-rose-300-a70-400-a28: oklch(81% 0.117 11.638 / 70%);
--color-adaptive-rose-500-a12-a16: oklch(64.5% 0.246 16.439 / 12%);
--color-adaptive-rose-500-400: oklch(64.5% 0.246 16.439);
--color-adaptive-rose-600-400: oklch(58.6% 0.253 17.585);
--color-adaptive-rose-700-300: oklch(51.4% 0.222 16.935);
--color-adaptive-sky-500-a12-a16: oklch(68.5% 0.169 237.323 / 12%);
--color-adaptive-sky-600-400: oklch(58.8% 0.158 241.966);
--color-adaptive-sky-700-300: oklch(50% 0.134 242.749);
--color-adaptive-violet-500-a12-a16: oklch(60.6% 0.25 292.717 / 12%);
--color-adaptive-violet-600-400: oklch(54.1% 0.281 293.009);
--color-adaptive-violet-700-300: oklch(49.1% 0.27 292.581);
--color-adaptive-white-neutral-950-a70: #fff;
--color-adaptive-zinc-500-a12-a16: oklch(55.2% 0.016 285.938 / 12%);
--color-adaptive-zinc-500-400: oklch(55.2% 0.016 285.938);
--color-adaptive-zinc-600-300: oklch(44.2% 0.017 285.786);
}

@variant prism-dark {
--color-screen: #080a0f;
--color-sheet: rgba(5, 6, 9, 0.98);
--color-sheet-solid: #050609;
--color-card: #181c23;
--color-card-alt: #11141a;
--color-card-translucent: rgba(24, 28, 35, 0.8);
--color-foreground: #eef0f3;
--color-foreground-secondary: #9fa5ae;
--color-foreground-muted: #9fa5ae;
--color-foreground-tertiary: #9fa5ae;
--color-border: #2a2e35;
--color-border-subtle: rgba(42, 46, 53, 0.7);
--color-separator: rgba(42, 46, 53, 0.55);
--color-subtle: #181a20;
--color-subtle-strong: #1c1f26;
--color-inline-skill-background: #20242d;
--color-inline-skill-border: rgba(86, 170, 251, 0.42);
--color-inline-skill-foreground: #eff2f5;
--color-primary: #56aafb;
--color-primary-foreground: #050609;
--color-primary-shadow: #000000;
--color-secondary: #1c1f26;
--color-secondary-foreground: #e5e8ec;
--color-secondary-border: #2a2e35;
--color-switch-active-track: #56aafb;
--color-switch-active-thumb: #050609;
--color-switch-inactive-track: #1c1f26;
--color-switch-inactive-thumb: #9fa5ae;
--color-danger: #3c1618;
--color-danger-border: rgba(248, 74, 84, 0.32);
--color-danger-foreground: #ff9798;
--color-input: #181c23;
--color-input-border: #393d46;
--color-sidebar-search: #15181f;
--color-placeholder: #878d95;
--color-icon: #eef0f3;
--color-icon-muted: #999fa7;
--color-icon-subtle: #9fa5ae;
--color-header: rgba(12, 14, 20, 0.97);
--color-header-border: #2a2e35;
--color-glass-surface: rgba(19, 22, 29, 0.74);
--color-glass-tint: rgba(19, 22, 29, 0.22);
--color-status-bar: #080a0f;
--color-md-body: #eef0f3;
--color-md-strong: #e5e8ec;
--color-md-link: #56aafb;
--color-md-blockquote-border: #2a2e35;
--color-md-blockquote-bg: #181a20;
--color-md-code-bg: #040508;
--color-md-code-text: #d9dfe5;
--color-md-user-code-bg: rgba(239, 242, 245, 0.18);
--color-md-user-code-text: #eff2f5;
--color-md-user-fence-bg: rgba(0, 0, 0, 0.28);
--color-md-user-fence-text: #eff2f5;
--color-md-hr: #2a2e35;
--color-user-bubble: #1f232b;
--color-user-bubble-foreground: #eff2f5;
--color-user-bubble-foreground-muted: rgba(239, 242, 245, 0.78);
--color-user-bubble-skill-foreground: #d8dfe6;
--color-backdrop: rgba(0, 0, 0, 0.48);
--color-drawer: rgba(6, 7, 12, 0.99);
--color-drawer-shadow: rgba(0, 0, 0, 0.32);
--color-dot-separator: rgba(159, 165, 174, 0.35);
--color-wordmark: #eef0f3;
--color-chevron: rgba(159, 165, 174, 0.42);
--color-adaptive-amber-50-950-a40: oklch(27.9% 0.077 45.635 / 40%);
--color-adaptive-amber-200-900-a60: oklch(41.4% 0.112 45.904 / 60%);
--color-adaptive-amber-500-a12-a16: oklch(76.9% 0.188 70.08 / 16%);
--color-adaptive-amber-700-300: oklch(87.9% 0.169 91.605);
--color-adaptive-amber-700-400: oklch(82.8% 0.189 84.429);
--color-adaptive-amber-800-200: oklch(92.4% 0.12 95.746);
--color-adaptive-blue-50-blue-400-a14: oklch(70.7% 0.165 254.624 / 14%);
--color-adaptive-blue-300-a50-blue-400-a28: oklch(70.7% 0.165 254.624 / 28%);
--color-adaptive-blue-500-a20-blue-400-a15: oklch(70.7% 0.165 254.624 / 15%);
--color-adaptive-blue-500-400: oklch(70.7% 0.165 254.624);
--color-adaptive-blue-600-400: oklch(70.7% 0.165 254.624);
--color-adaptive-black-a10-a25: rgb(0 0 0 / 25%);
--color-adaptive-black-a15-a35: rgb(0 0 0 / 35%);
--color-adaptive-emerald-500-a12-a16: oklch(69.6% 0.17 162.48 / 16%);
--color-adaptive-emerald-600-400: oklch(76.5% 0.177 163.223);
--color-adaptive-emerald-700-300: oklch(84.5% 0.143 164.978);
--color-adaptive-indigo-500-a12-a16: oklch(58.5% 0.233 277.117 / 16%);
--color-adaptive-indigo-600-300: oklch(78.5% 0.115 274.713);
--color-adaptive-indigo-700-300: oklch(78.5% 0.115 274.713);
--color-adaptive-neutral-100-900: oklch(20.5% 0 0);
--color-adaptive-neutral-200-700-a60: oklch(37.1% 0 0 / 60%);
--color-adaptive-neutral-200-800: oklch(26.9% 0 0);
--color-adaptive-neutral-200-a70-white-a8: rgb(255 255 255 / 8%);
--color-adaptive-neutral-200-white-a6: rgb(255 255 255 / 6%);
--color-adaptive-neutral-200-white-a8: rgb(255 255 255 / 8%);
--color-adaptive-neutral-200-a80-white-a8: rgb(255 255 255 / 8%);
--color-adaptive-neutral-300-a60-white-a12: rgb(255 255 255 / 12%);
--color-adaptive-neutral-400-500: oklch(55.6% 0 0);
--color-adaptive-neutral-400-a60-500-a60: oklch(55.6% 0 0 / 60%);
--color-adaptive-neutral-400-a80-500-a80: oklch(55.6% 0 0 / 80%);
--color-adaptive-neutral-500-a10-a16: oklch(55.6% 0 0 / 16%);
--color-adaptive-neutral-500-400: oklch(70.8% 0 0);
--color-adaptive-neutral-500-500: oklch(55.6% 0 0);
--color-adaptive-neutral-600-300: oklch(87% 0 0);
--color-adaptive-neutral-600-400: oklch(70.8% 0 0);
--color-adaptive-neutral-950-50: oklch(98.5% 0 0);
--color-adaptive-red-50-950-a80: oklch(25.8% 0.092 26.042 / 80%);
--color-adaptive-red-200-800: oklch(44.4% 0.177 26.899);
--color-adaptive-red-600-a80-400-a80: oklch(70.4% 0.191 22.216 / 80%);
--color-adaptive-red-700-300: oklch(80.8% 0.114 19.571);
--color-adaptive-rose-100-500-a18: oklch(64.5% 0.246 16.439 / 18%);
--color-adaptive-rose-100-a80-500-a12: oklch(64.5% 0.246 16.439 / 12%);
--color-adaptive-rose-300-a70-400-a28: oklch(71.2% 0.194 13.428 / 28%);
--color-adaptive-rose-500-a12-a16: oklch(64.5% 0.246 16.439 / 16%);
--color-adaptive-rose-500-400: oklch(71.2% 0.194 13.428);
--color-adaptive-rose-600-400: oklch(71.2% 0.194 13.428);
--color-adaptive-rose-700-300: oklch(81% 0.117 11.638);
--color-adaptive-sky-500-a12-a16: oklch(68.5% 0.169 237.323 / 16%);
--color-adaptive-sky-600-400: oklch(74.6% 0.16 232.661);
--color-adaptive-sky-700-300: oklch(82.8% 0.111 230.318);
--color-adaptive-violet-500-a12-a16: oklch(60.6% 0.25 292.717 / 16%);
--color-adaptive-violet-600-400: oklch(70.2% 0.183 293.541);
--color-adaptive-violet-700-300: oklch(81.1% 0.111 293.571);
--color-adaptive-white-neutral-950-a70: oklch(14.5% 0 0 / 70%);
--color-adaptive-zinc-500-a12-a16: oklch(55.2% 0.016 285.938 / 16%);
--color-adaptive-zinc-500-400: oklch(70.5% 0.015 286.067);
--color-adaptive-zinc-600-300: oklch(87.1% 0.006 286.286);
}
}
}
2 changes: 2 additions & 0 deletions apps/mobile/scripts/generate-uniwind-themes.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ describe("generate mobile Uniwind themes", () => {
"ember-dark",
"iris-light",
"iris-dark",
"prism-light",
"prism-dark",
]);

const stylesheet = renderUniwindThemesCSS();
Expand Down
4 changes: 4 additions & 0 deletions apps/mobile/src/lib/mobileTheme.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,10 @@ describe("mobile themes", () => {
expect(
contrastRatio(variables["--color-placeholder"], variables["--color-input"]),
).toBeGreaterThanOrEqual(4.5);
// Primary buttons set normal-sized labels on the accent.
expect(
contrastRatio(variables["--color-primary-foreground"], variables["--color-primary"]),
).toBeGreaterThanOrEqual(4.5);
}
}

Expand Down
15 changes: 15 additions & 0 deletions apps/web/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,20 @@
chrome: "oklch(0.225975 0.031062 293.741)",
},
},
prism: {
light: {
background: "oklch(0.975 0.004 255)",
foreground: "oklch(0.24 0.014 270)",
accent: "oklch(0.54 0.19 262)",
chrome: "oklch(0.965 0.005 255)",
},
dark: {
background: "oklch(0.145 0.012 272)",
foreground: "oklch(0.955 0.005 250)",
accent: "oklch(0.72 0.145 250)",
chrome: "oklch(0.12 0.01 272)",
},
},
};
// Keep the built-in mode list in sync with the runtime so the selected
// T3 Chat palette is visible before React has mounted.
Expand All @@ -139,6 +153,7 @@
"ocean",
"ember",
"iris",
"prism",
"t3-chat-dark",
"t3-grove",
"t3-ocean",
Expand Down
2 changes: 2 additions & 0 deletions apps/web/src/components/settings/ThemeSettings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import {
GROVE_THEME,
IRIS_THEME,
OCEAN_THEME,
PRISM_THEME,
} from "../../themePalette";
import {
AlertDialog,
Expand Down Expand Up @@ -61,6 +62,7 @@ const MAINTAINER_THEMES: ReadonlyArray<ThemeDefinition> = [
OCEAN_THEME,
EMBER_THEME,
IRIS_THEME,
PRISM_THEME,
];

function collectionVariantLabels(themes: ReadonlyArray<ThemeDefinition>): ReadonlyArray<string> {
Expand Down
Loading