diff --git a/VERSION b/VERSION
index 7d85683..a918a2a 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.5.4
+0.6.0
diff --git a/web/index.html b/web/index.html
index 544e3fe..4a9e955 100644
--- a/web/index.html
+++ b/web/index.html
@@ -4,6 +4,9 @@
{#if $summary}
diff --git a/web/src/app.css b/web/src/app.css
index 11751fc..0e26fab 100644
--- a/web/src/app.css
+++ b/web/src/app.css
@@ -2,62 +2,10 @@
@custom-variant dark (&:is(.dark *));
-/* Neutral gray theme matching shadcn/ui's canonical dark palette (0-chroma
- OKLCH grays) — the app is dark-only, so :root carries the dark values
- directly rather than gating behind a .dark class. --success/--warning are
- Oikos-specific semantic status colors (real health state), kept
- distinguishable rather than desaturated to match the neutral chrome. */
-:root {
- --radius: 0.625rem;
- --background: oklch(0.145 0 0);
- --foreground: oklch(0.985 0 0);
- --card: oklch(0.205 0 0);
- --card-foreground: oklch(0.985 0 0);
- --popover: oklch(0.205 0 0);
- --popover-foreground: oklch(0.985 0 0);
- --primary: oklch(0.922 0 0);
- --primary-foreground: oklch(0.205 0 0);
- --secondary: oklch(0.269 0 0);
- --secondary-foreground: oklch(0.985 0 0);
- --muted: oklch(0.269 0 0);
- --muted-foreground: oklch(0.708 0 0);
- --accent: oklch(0.371 0 0);
- --accent-foreground: oklch(0.985 0 0);
- --destructive: oklch(0.704 0.191 22.216);
- --destructive-foreground: oklch(0.985 0 0);
- --success: #3fb950;
- --warning: #d29922;
- --border: oklch(1 0 0 / 10%);
- --input: oklch(1 0 0 / 15%);
- --ring: oklch(0.556 0 0);
- --sidebar: oklch(0.205 0 0);
- --sidebar-foreground: oklch(0.985 0 0);
- --sidebar-primary: oklch(0.488 0.243 264.376);
- --sidebar-primary-foreground: oklch(0.985 0 0);
- --sidebar-accent: oklch(0.269 0 0);
- --sidebar-accent-foreground: oklch(0.985 0 0);
- --sidebar-border: oklch(1 0 0 / 10%);
- --sidebar-ring: oklch(0.439 0 0);
- --font-mono: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
-
- /* legacy aliases still referenced by Chat/Sessions/App */
- --bg: var(--background);
- --bg-surface: var(--card);
- --bg-deeper: oklch(0.11 0 0);
- --bg-hover: var(--secondary);
- --bg-active: var(--accent);
- --text: var(--foreground);
- --text-muted: var(--muted-foreground);
- /* accent-blue stays a real blue (matches --sidebar-primary) for the few
- spots that want an interactive "pop" — everything else (buttons,
- links, focus rings) rides the neutral --primary now. */
- --accent-blue: var(--sidebar-primary);
- --accent-green: var(--success);
- --accent-red: var(--destructive);
- --accent-orange: var(--warning);
-}
-
@theme inline {
+ --font-sans: 'DM Sans', system-ui, sans-serif;
+ --font-mono: 'DM Sans', system-ui, sans-serif;
+ --font-heading: 'Inknut Antiqua', Georgia, serif;
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
@@ -91,25 +39,179 @@
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-ring: var(--sidebar-ring);
- --font-mono: var(--font-mono);
+ --color-chart-1: var(--chart-1);
+ --color-chart-2: var(--chart-2);
+ --color-chart-3: var(--chart-3);
+ --color-chart-4: var(--chart-4);
+ --color-chart-5: var(--chart-5);
+}
+
+/* ── Terracotta Light Theme ── */
+:root {
+ --radius: 0.625rem;
+ --background: oklch(0.94 0.02 55);
+ --foreground: oklch(0.18 0.03 45);
+ --card: oklch(0.91 0.025 55);
+ --card-foreground: oklch(0.18 0.03 45);
+ --popover: oklch(0.91 0.025 55);
+ --popover-foreground: oklch(0.18 0.03 45);
+ --primary: oklch(0.55 0.14 45);
+ --primary-foreground: oklch(0.95 0.02 55);
+ --secondary: oklch(0.86 0.03 55);
+ --secondary-foreground: oklch(0.18 0.03 45);
+ --muted: oklch(0.86 0.025 55);
+ --muted-foreground: oklch(0.45 0.04 45);
+ --accent: oklch(0.84 0.035 55);
+ --accent-foreground: oklch(0.18 0.03 45);
+ --destructive: oklch(0.5 0.2 25);
+ --destructive-foreground: oklch(0.95 0.02 55);
+ --border: oklch(0.6 0.08 45);
+ --input: oklch(0.78 0.04 55);
+ --ring: oklch(0.55 0.14 45);
+ --chart-1: oklch(0.55 0.14 45);
+ --chart-2: oklch(0.65 0.1 70);
+ --chart-3: oklch(0.5 0.08 30);
+ --chart-4: oklch(0.6 0.06 90);
+ --chart-5: oklch(0.4 0.04 45);
+ --sidebar: oklch(0.90 0.025 55);
+ --sidebar-foreground: oklch(0.18 0.03 45);
+ --sidebar-primary: oklch(0.55 0.14 45);
+ --sidebar-primary-foreground: oklch(0.95 0.02 55);
+ --sidebar-accent: oklch(0.84 0.035 55);
+ --sidebar-accent-foreground: oklch(0.18 0.03 45);
+ --sidebar-border: oklch(0.6 0.08 45);
+ --sidebar-ring: oklch(0.55 0.14 45);
+ --success: #3fb950;
+ --warning: #d29922;
+
+ --bg: var(--background);
+ --bg-surface: var(--card);
+ --bg-deeper: oklch(0.98 0.01 55);
+ --bg-hover: var(--secondary);
+ --bg-active: var(--accent);
+ --text: var(--foreground);
+ --text-muted: var(--muted-foreground);
+ --accent-blue: var(--primary);
+ --accent-green: var(--success);
+ --accent-red: var(--destructive);
+ --accent-orange: var(--warning);
+}
+
+/* ── Carbon Dark Theme ── */
+.dark {
+ --radius: 0.625rem;
+ --background: oklch(0.145 0 0);
+ --foreground: oklch(0.985 0 0);
+ --card: oklch(0.205 0 0);
+ --card-foreground: oklch(0.985 0 0);
+ --popover: oklch(0.205 0 0);
+ --popover-foreground: oklch(0.985 0 0);
+ --primary: oklch(0.922 0 0);
+ --primary-foreground: oklch(0.205 0 0);
+ --secondary: oklch(0.269 0 0);
+ --secondary-foreground: oklch(0.985 0 0);
+ --muted: oklch(0.269 0 0);
+ --muted-foreground: oklch(0.708 0 0);
+ --accent: oklch(0.371 0 0);
+ --accent-foreground: oklch(0.985 0 0);
+ --destructive: oklch(0.704 0.191 22.216);
+ --destructive-foreground: oklch(0.985 0 0);
+ --border: oklch(1 0 0 / 10%);
+ --input: oklch(1 0 0 / 15%);
+ --ring: oklch(0.556 0 0);
+ --chart-1: oklch(0.488 0.243 264.376);
+ --chart-2: oklch(0.6 0.15 220);
+ --chart-3: oklch(0.5 0.1 160);
+ --chart-4: oklch(0.7 0.08 60);
+ --chart-5: oklch(0.45 0.05 320);
+ --sidebar: oklch(0.205 0 0);
+ --sidebar-foreground: oklch(0.985 0 0);
+ --sidebar-primary: oklch(0.488 0.243 264.376);
+ --sidebar-primary-foreground: oklch(0.985 0 0);
+ --sidebar-accent: oklch(0.269 0 0);
+ --sidebar-accent-foreground: oklch(0.985 0 0);
+ --sidebar-border: oklch(1 0 0 / 10%);
+ --sidebar-ring: oklch(0.439 0 0);
+ --success: #3fb950;
+ --warning: #d29922;
+
+ --bg: var(--background);
+ --bg-surface: var(--card);
+ --bg-deeper: oklch(0.11 0 0);
+ --bg-hover: var(--secondary);
+ --bg-active: var(--accent);
+ --text: var(--foreground);
+ --text-muted: var(--muted-foreground);
+ --accent-blue: var(--sidebar-primary);
+ --accent-green: var(--success);
+ --accent-red: var(--destructive);
+ --accent-orange: var(--warning);
+}
+
+
+/* Terminal-style block cursor — outside @layer so it overrides CodeMirror */
+.cm-cursor,
+.cm-cursor-primary {
+ border-left-color: var(--primary) !important;
+ border-left-width: 0.5em !important;
}
@layer base {
* {
@apply border-border outline-ring/50;
}
+
html,
body {
@apply bg-background text-foreground;
height: 100%;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
- font-size: 14px;
+ font-size: 15px;
line-height: 1.4;
-webkit-font-smoothing: antialiased;
}
- /* Tailwind's preflight resets