UI: indigo/slate theme, border cleanup, rounder edges

theme.css:
- Dark mode palette shifted from navy to dark slate with indigo warmth
  (#111113 / #18181f / #1e1e27). Primary restored to true indigo
  (#818cf8) instead of the blue (#5b9cf6) it had drifted to.
- Borders reduced to near-invisible rgba(99,102,241,0.10) indigo tint.
- --radius-md 8px→12px, --radius-lg 12px→18px.
- Tag/wikilink/status-in-progress colors unified to indigo family.
- Thin indigo-tinted scrollbars (4px, rgba thumb).

ChatMessage.vue:
- Message bubbles 16px→18px radius.
- User bubble: flat primary → indigo gradient (#6366f1→#4f46e5).
- Assistant bubble: border removed, relies on bg-card vs bg contrast.

ChatView.vue:
- Sidebar border-right, chat-header border-bottom, context-sidebar
  border-left all removed.
- Streaming bubble: border removed, radius 16px→18px.
- Active conv item: solid primary fill → 15% opacity indigo tint with
  primary-colored text (softer, more refined selection state).
- Send button: flat primary → indigo gradient + glow on hover.
- New Chat button: glow on hover.
- Queued bubble: matches send button gradient.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Bryan Van Deusen
2026-03-10 14:38:19 -04:00
parent 1a6b4b0a97
commit 4a3899d103
3 changed files with 58 additions and 41 deletions
+42 -26
View File
@@ -39,32 +39,32 @@
--color-input-bar-placeholder: rgba(0, 0, 0, 0.4);
--color-overlay: rgba(0, 0, 0, 0.45);
--radius-sm: 6px;
--radius-md: 8px;
--radius-lg: 12px;
--radius-md: 12px;
--radius-lg: 18px;
--radius-pill: 9999px;
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--color-primary) 40%, transparent);
}
[data-theme="dark"] {
--color-bg: #1a1a2e;
--color-bg-secondary: #16213e;
--color-bg-card: #1f2940;
--color-text: #e0e0e0;
--color-text-secondary: #a0a0b0;
--color-text-muted: #707080;
--color-border: #2a3a5c;
--color-input-border: #3a4a6c;
--color-primary: #5b9cf6;
--color-bg: #111113;
--color-bg-secondary: #18181f;
--color-bg-card: #1e1e27;
--color-text: #e4e4f0;
--color-text-secondary: #8888a8;
--color-text-muted: #52526a;
--color-border: rgba(99, 102, 241, 0.10);
--color-input-border: rgba(99, 102, 241, 0.22);
--color-primary: #818cf8;
--color-danger: #f44336;
--color-tag-bg: #1e3a5f;
--color-tag-text: #7bb8f6;
--color-shadow: rgba(0, 0, 0, 0.3);
--color-tag-bg: #2a2a45;
--color-tag-text: #a5b4fc;
--color-shadow: rgba(0, 0, 0, 0.4);
--color-toast-success: #4caf50;
--color-toast-error: #f44336;
--color-status-todo: #9aa0a6;
--color-status-todo-bg: #2d333b;
--color-status-in-progress: #5b9cf6;
--color-status-in-progress-bg: #1e3a5f;
--color-status-todo-bg: #2a2a35;
--color-status-in-progress: #818cf8;
--color-status-in-progress-bg: #2a2a45;
--color-status-done: #4caf50;
--color-status-done-bg: #1b3a20;
--color-priority-low: #80cbc4;
@@ -73,18 +73,18 @@
--color-priority-medium-bg: #3a3520;
--color-priority-high: #f44336;
--color-priority-high-bg: #3a1a1a;
--color-wikilink: #ce93d8;
--color-wikilink-bg: #2a1a30;
--color-wikilink: #c4b5fd;
--color-wikilink-bg: #2a1a45;
--color-overdue: #f44336;
--color-code-bg: #161b22;
--color-code-inline-bg: #2a3040;
--color-table-stripe: #1a2030;
--color-code-bg: #16161d;
--color-code-inline-bg: #1e1e2d;
--color-table-stripe: #16161e;
--color-success: #4ade80;
--color-warning: #facc15;
--color-input-bar-bg: #1c1c1e;
--color-input-bar-text: #ffffff;
--color-input-bar-placeholder: rgba(255, 255, 255, 0.4);
--color-overlay: rgba(0, 0, 0, 0.6);
--color-input-bar-bg: #1e1e27;
--color-input-bar-text: #e4e4f0;
--color-input-bar-placeholder: rgba(228, 228, 240, 0.35);
--color-overlay: rgba(0, 0, 0, 0.65);
}
*,
@@ -131,6 +131,22 @@ a:focus-visible {
}
}
/* Thin indigo-tinted scrollbars */
::-webkit-scrollbar {
width: 4px;
height: 4px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(99, 102, 241, 0.25);
border-radius: 9999px;
}
::-webkit-scrollbar-thumb:hover {
background: rgba(99, 102, 241, 0.45);
}
/* Floating inline assist button (teleported to body, cannot be scoped) */
.inline-assist-btn {
position: fixed;