Some checks are pending
CI / build-check-test (push) Waiting to run
New components: - crypto-ticker: VVV/DIEM live prices via DexScreener (30s refresh) - persona-selector: 7 AI personas with unique system prompts - slash-commands: / autocomplete overlay for tools/skills - marketplace: toggleable skills panel with localStorage - mood-indicator: emotional states (neutral/focused/excited/warning/frustrated/angry) - typing-indicator: waveform animation matching response complexity - context-peek: hover tooltip summaries for messages UI overhaul: - Full glassmorphism design system (glass, glass-sm, glass-strong) - 10+ CSS animations (fade, scale, slide, wave, float, shake, shimmer) - Broken glass crack overlay for angry mood (5min fade) - Dark mode fixes for keyboard shortcuts - View toggles (tools/thinking/system/timestamps) now apply CSS classes - Session sidebar: 6-chat max with hover scrollbar - Auto-open browser/terminal panels on tool use - Venice as default provider - Smooth hover/click transitions on all buttons - Loading screen with floating mascot + shimmer
263 lines
6.9 KiB
CSS
263 lines
6.9 KiB
CSS
@import "tailwindcss";
|
|
|
|
@theme {
|
|
--color-primary: #6d5acd;
|
|
--color-primary-foreground: #ffffff;
|
|
--color-secondary: #2a2a3e;
|
|
--color-secondary-foreground: #e0e0e0;
|
|
--color-background: #0f0f1a;
|
|
--color-foreground: #e8e8f0;
|
|
--color-muted: #1a1a2e;
|
|
--color-muted-foreground: #8888aa;
|
|
--color-border: #2a2a40;
|
|
--color-card: #161625;
|
|
--color-accent: #7c6fe0;
|
|
}
|
|
|
|
/* ===== BASE ===== */
|
|
html, body {
|
|
background: var(--color-background);
|
|
color: var(--color-foreground);
|
|
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
|
overflow: hidden;
|
|
height: 100vh;
|
|
}
|
|
|
|
::selection {
|
|
background: rgba(109, 90, 205, 0.3);
|
|
color: var(--color-foreground);
|
|
}
|
|
|
|
::-webkit-scrollbar { width: 6px; height: 6px; }
|
|
::-webkit-scrollbar-track { background: transparent; }
|
|
::-webkit-scrollbar-thumb { background: rgba(136,136,170,0.2); border-radius: 3px; }
|
|
::-webkit-scrollbar-thumb:hover { background: rgba(136,136,170,0.4); }
|
|
|
|
/* ===== GLASSMORPHISM ===== */
|
|
.jae-glass {
|
|
background: rgba(22, 22, 37, 0.75);
|
|
backdrop-filter: blur(20px) saturate(1.3);
|
|
-webkit-backdrop-filter: blur(20px) saturate(1.3);
|
|
border: 1px solid rgba(255, 255, 255, 0.06);
|
|
}
|
|
|
|
.jae-glass-sm {
|
|
background: rgba(30, 30, 50, 0.5);
|
|
backdrop-filter: blur(12px) saturate(1.2);
|
|
-webkit-backdrop-filter: blur(12px) saturate(1.2);
|
|
border: 1px solid rgba(255, 255, 255, 0.04);
|
|
}
|
|
|
|
.jae-glass-strong {
|
|
background: rgba(15, 15, 26, 0.9);
|
|
backdrop-filter: blur(30px) saturate(1.5);
|
|
-webkit-backdrop-filter: blur(30px) saturate(1.5);
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
}
|
|
|
|
/* ===== ANIMATIONS ===== */
|
|
@keyframes jae-fade-in {
|
|
from { opacity: 0; transform: translateY(8px); }
|
|
to { opacity: 1; transform: translateY(0); }
|
|
}
|
|
|
|
@keyframes jae-scale-in {
|
|
from { opacity: 0; transform: scale(0.95); }
|
|
to { opacity: 1; transform: scale(1); }
|
|
}
|
|
|
|
@keyframes jae-slide-in {
|
|
from { opacity: 0; transform: translateX(-20px); }
|
|
to { opacity: 1; transform: translateX(0); }
|
|
}
|
|
|
|
@keyframes jae-slide-up {
|
|
from { opacity: 0; transform: translateY(16px); }
|
|
to { opacity: 1; transform: translateY(0); }
|
|
}
|
|
|
|
@keyframes jae-wave {
|
|
0% { height: 3px; }
|
|
100% { height: 16px; }
|
|
}
|
|
|
|
@keyframes jae-float {
|
|
0%, 100% { transform: translateY(0px); }
|
|
50% { transform: translateY(-6px); }
|
|
}
|
|
|
|
@keyframes jae-pulse-angry {
|
|
0%, 100% { transform: scale(1); filter: brightness(1); }
|
|
50% { transform: scale(1.1); filter: brightness(1.3) hue-rotate(-10deg); }
|
|
}
|
|
|
|
@keyframes jae-shake {
|
|
0%, 100% { transform: translateX(0); }
|
|
10%, 30%, 50%, 70%, 90% { transform: translateX(-3px); }
|
|
20%, 40%, 60%, 80% { transform: translateX(3px); }
|
|
}
|
|
|
|
@keyframes jae-glow-pulse {
|
|
0%, 100% { box-shadow: 0 0 5px rgba(109, 90, 205, 0.2); }
|
|
50% { box-shadow: 0 0 20px rgba(109, 90, 205, 0.4); }
|
|
}
|
|
|
|
@keyframes jae-shimmer {
|
|
0% { background-position: -200% 0; }
|
|
100% { background-position: 200% 0; }
|
|
}
|
|
|
|
@keyframes jae-crack-pulse {
|
|
0%, 100% { opacity: var(--crack-opacity, 1); }
|
|
50% { opacity: calc(var(--crack-opacity, 1) * 0.7); }
|
|
}
|
|
|
|
.jae-fade-in { animation: jae-fade-in 0.3s ease-out; }
|
|
.jae-scale-in { animation: jae-scale-in 0.2s ease-out; }
|
|
.jae-slide-in { animation: jae-slide-in 0.3s ease-out; }
|
|
.jae-slide-up { animation: jae-slide-up 0.25s ease-out; }
|
|
.jae-float { animation: jae-float 3s ease-in-out infinite; }
|
|
.jae-shake { animation: jae-shake 0.5s ease-in-out; }
|
|
|
|
/* ===== HOVER & CLICK TRANSITIONS ===== */
|
|
button, [role="button"] {
|
|
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
button:active, [role="button"]:active {
|
|
transform: scale(0.97);
|
|
}
|
|
|
|
/* ===== BROKEN GLASS OVERLAY ===== */
|
|
.jae-cracked-overlay {
|
|
position: fixed;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
z-index: 200;
|
|
background:
|
|
radial-gradient(ellipse at 30% 40%, rgba(220,38,38,0.08) 0%, transparent 50%),
|
|
radial-gradient(ellipse at 70% 60%, rgba(220,38,38,0.05) 0%, transparent 50%);
|
|
transition: opacity 1s ease;
|
|
}
|
|
|
|
.jae-cracked-overlay::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
background-image:
|
|
linear-gradient(135deg, transparent 40%, rgba(255,255,255,0.03) 40.5%, transparent 41%),
|
|
linear-gradient(225deg, transparent 35%, rgba(255,255,255,0.02) 35.5%, transparent 36%),
|
|
linear-gradient(45deg, transparent 55%, rgba(255,255,255,0.025) 55.5%, transparent 56%),
|
|
linear-gradient(315deg, transparent 25%, rgba(255,255,255,0.015) 25.5%, transparent 26%),
|
|
linear-gradient(160deg, transparent 45%, rgba(255,255,255,0.02) 45.5%, transparent 46%),
|
|
linear-gradient(200deg, transparent 60%, rgba(255,255,255,0.018) 60.5%, transparent 61%),
|
|
linear-gradient(80deg, transparent 30%, rgba(255,255,255,0.022) 30.5%, transparent 31%);
|
|
animation: jae-crack-pulse 2s ease-in-out infinite;
|
|
}
|
|
|
|
/* ===== CHAT MESSAGE ANIMATIONS ===== */
|
|
.message-enter {
|
|
animation: jae-slide-up 0.3s ease-out;
|
|
}
|
|
|
|
/* Hide tool outputs when toggled off */
|
|
.hide-tools [data-tool-call],
|
|
.hide-tools .tool-output {
|
|
display: none !important;
|
|
}
|
|
|
|
.hide-thinking [data-thinking],
|
|
.hide-thinking .thinking-block {
|
|
display: none !important;
|
|
}
|
|
|
|
.hide-system [data-system-message],
|
|
.hide-system .system-message {
|
|
display: none !important;
|
|
}
|
|
|
|
.hide-timestamps [data-timestamp],
|
|
.hide-timestamps .message-timestamp {
|
|
display: none !important;
|
|
}
|
|
|
|
/* ===== SHIMMER LOADING ===== */
|
|
.jae-shimmer {
|
|
background: linear-gradient(90deg, transparent 0%, rgba(109,90,205,0.08) 50%, transparent 100%);
|
|
background-size: 200% 100%;
|
|
animation: jae-shimmer 2s infinite;
|
|
}
|
|
|
|
/* ===== SIDEBAR ===== */
|
|
.jae-sidebar {
|
|
scrollbar-width: none;
|
|
}
|
|
.jae-sidebar:hover {
|
|
scrollbar-width: thin;
|
|
}
|
|
.jae-sidebar::-webkit-scrollbar {
|
|
width: 0;
|
|
}
|
|
.jae-sidebar:hover::-webkit-scrollbar {
|
|
width: 4px;
|
|
}
|
|
|
|
/* ===== INPUT GLOW ===== */
|
|
.jae-input-glow:focus-within {
|
|
box-shadow: 0 0 0 1px rgba(109, 90, 205, 0.3), 0 0 20px rgba(109, 90, 205, 0.1);
|
|
border-color: rgba(109, 90, 205, 0.4);
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
/* ===== DARK MODE OVERRIDES ===== */
|
|
.dark input, .dark textarea, .dark select {
|
|
color: var(--color-foreground);
|
|
background: rgba(30, 30, 50, 0.5);
|
|
}
|
|
|
|
/* Fix keyboard shortcuts text */
|
|
.dark .kbd-text, .dark [class*="keyboard"] {
|
|
color: var(--color-foreground) !important;
|
|
}
|
|
|
|
.dark kbd {
|
|
background: rgba(42, 42, 62, 0.8);
|
|
color: var(--color-foreground);
|
|
border: 1px solid rgba(255,255,255,0.1);
|
|
}
|
|
|
|
/* ===== PROVIDER TABS ===== */
|
|
.provider-tab {
|
|
transition: all 0.2s ease;
|
|
border-bottom: 2px solid transparent;
|
|
}
|
|
.provider-tab:hover {
|
|
background: rgba(109, 90, 205, 0.1);
|
|
}
|
|
.provider-tab.active {
|
|
border-bottom-color: var(--color-primary);
|
|
color: var(--color-foreground);
|
|
}
|
|
|
|
/* ===== RESIZE HANDLE ===== */
|
|
.jae-resize-handle {
|
|
width: 4px;
|
|
cursor: col-resize;
|
|
background: transparent;
|
|
transition: background 0.2s;
|
|
flex-shrink: 0;
|
|
}
|
|
.jae-resize-handle:hover,
|
|
.jae-resize-handle:active {
|
|
background: rgba(109, 90, 205, 0.4);
|
|
}
|
|
|
|
/* ===== TOOL RESULTS IN CHAT ===== */
|
|
.inline-browser-result {
|
|
display: none;
|
|
}
|
|
|
|
/* ===== AGENT INTERFACE OVERRIDES ===== */
|
|
[class*="AgentInterface"] {
|
|
background: transparent !important;
|
|
}
|