Files
zclaw_openfang/desktop/src/index.css
iven 28299807b6 fix(desktop): DeerFlow UI — ChatArea refactor + ai-elements + dead CSS cleanup
ChatArea retry button uses setInput instead of direct sendToGateway,
fix bootstrap spinner stuck for non-logged-in users,
remove dead CSS (aurora-title/sidebar-open/quick-action-chips),
add ai components (ReasoningBlock/StreamingText/ChatMode/ModelSelector/TaskProgress),
add ClassroomPlayer + ResizableChatLayout + artifact panel

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 19:24:44 +08:00

170 lines
3.7 KiB
CSS

@import "tailwindcss";
:root {
/* Brand Colors - 中性灰色系 */
--color-primary: #374151; /* gray-700 */
--color-primary-hover: #1f2937; /* gray-800 */
--color-primary-light: #f3f4f6; /* gray-100 */
/* Accent Color - 仅用于重要强调 */
--color-accent: #f97316; /* orange-500 */
--color-accent-hover: #ea580c; /* orange-600 */
/* Semantic Colors */
--color-success: #22c55e;
--color-warning: #eab308;
--color-error: #ef4444;
--color-info: #3b82f6;
/* Neutral Colors */
--color-bg: #ffffff;
--color-bg-secondary: #faf9f6;
--color-border: #e8e6e1;
--color-text: #111827;
--color-text-secondary: #6b7280;
--color-text-muted: #9ca3af;
/* Spacing Scale */
--space-xs: 4px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 24px;
--space-xl: 32px;
/* Border Radius */
--radius-sm: 6px;
--radius-md: 8px;
--radius-lg: 12px;
--radius-xl: 16px;
--radius-full: 9999px;
/* Shadows */
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
/* Transitions */
--transition-fast: 150ms ease;
--transition-normal: 200ms ease;
--transition-slow: 300ms ease;
}
.dark {
--color-bg: #0f1117;
--color-bg-secondary: #1a1b26;
--color-border: #2e303a;
--color-text: #f1f5f9;
--color-text-secondary: #94a3b8;
--color-text-muted: #64748b;
}
/* Focus states for accessibility */
:focus-visible {
outline: 2px solid var(--color-primary);
outline-offset: 2px;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
background-color: #faf9f6;
}
.custom-scrollbar::-webkit-scrollbar {
width: 6px;
}
.custom-scrollbar::-webkit-scrollbar-track {
background: transparent;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
background: #d1d5db;
border-radius: 3px;
}
.agent-avatar {
background: #4b5563; /* gray-600 */
}
/* Sidebar warm background — DeerFlow-style */
.sidebar-bg {
background: #f5f4f1;
}
:root.dark .sidebar-bg {
background: #0f1117;
}
.chat-bubble-assistant {
background: white;
border: 1px solid #e5e7eb;
border-radius: 12px;
border-bottom-left-radius: 4px;
}
.chat-bubble-user {
background: #374151; /* gray-700 */
color: white;
border-radius: 12px;
border-bottom-right-radius: 4px;
}
.thinking-dot {
animation: pulse 1.5s infinite;
}
@keyframes pulse {
0%, 100% { opacity: 0.4; }
50% { opacity: 1; }
}
@keyframes gradientShift {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
/* Force remove textarea border — WebView2 / Tailwind v4 preflight override */
textarea {
border: none !important;
outline: none !important;
box-shadow: none !important;
}
textarea:focus,
textarea:focus-visible {
border: none !important;
outline: none !important;
box-shadow: none !important;
}
/* === Accessibility: reduced motion === */
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}
/* === Responsive breakpoints for small windows/tablets === */
@media (max-width: 768px) {
/* Auto-collapse sidebar aside on narrow viewports */
aside.w-64 {
width: 0 !important;
min-width: 0 !important;
overflow: hidden;
border-right: none !important;
}
aside.w-64.sidebar-open {
width: 260px !important;
min-width: 260px !important;
position: fixed;
z-index: 50;
height: 100vh;
}
}
@media (max-width: 480px) {
.chat-bubble-assistant,
.chat-bubble-user {
max-width: 95% !important;
}
}