refactor(web): router-based navigation, light theme, form config

- Replace Zustand activeView with React Router (NavLink + Routes)
- White/light modern theme with indigo accents
- Sidebar with Chinese labels under icons
- ConfigForm with individual form fields (no JSON textareas)
- Account switching with context injection into chat
- Fix duplicate conversation creation with useRef guard
- Asset gallery: smaller 6-column grid with date labels
- All components updated to light color scheme

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-07 03:48:14 +08:00
parent 2859fa3f2c
commit 348cc0c5b9
22 changed files with 506 additions and 220 deletions

View File

@@ -4,20 +4,21 @@
@layer base {
* {
@apply border-zinc-800;
@apply border-zinc-200;
}
body {
@apply bg-zinc-950 text-zinc-50;
@apply bg-white text-zinc-900;
}
}
/* GitHub-style Markdown */
/* GitHub-style Markdown - light theme */
@layer components {
.markdown-body {
color-scheme: dark;
color-scheme: light;
color: #1f2328;
}
.markdown-body h1 { font-size: 1.5em; font-weight: 600; margin: 0.67em 0; padding-bottom: 0.3em; border-bottom: 1px solid #30363d; }
.markdown-body h2 { font-size: 1.25em; font-weight: 600; margin: 0.83em 0; padding-bottom: 0.3em; border-bottom: 1px solid #30363d; }
.markdown-body h1 { font-size: 1.5em; font-weight: 600; margin: 0.67em 0; padding-bottom: 0.3em; border-bottom: 1px solid #d0d7de; }
.markdown-body h2 { font-size: 1.25em; font-weight: 600; margin: 0.83em 0; padding-bottom: 0.3em; border-bottom: 1px solid #d0d7de; }
.markdown-body h3 { font-size: 1.1em; font-weight: 600; margin: 1em 0 0.25em; }
.markdown-body h4 { font-size: 1em; font-weight: 600; margin: 1em 0 0.25em; }
.markdown-body p { margin: 0 0 0.75em; }
@@ -27,24 +28,22 @@
.markdown-body li > p { margin: 0; }
.markdown-body ul { list-style-type: disc; }
.markdown-body ol { list-style-type: decimal; }
.markdown-body ul ul { list-style-type: circle; }
.markdown-body ul ul ul { list-style-type: square; }
.markdown-body blockquote {
margin: 0 0 0.75em;
padding: 0 1em;
color: #8b949e;
border-left: 3px solid #30363d;
color: #656d76;
border-left: 3px solid #d0d7de;
}
.markdown-body code {
background: rgba(110,118,129,0.2);
background: rgba(175,184,193,0.2);
padding: 0.15em 0.4em;
border-radius: 4px;
font-size: 0.875em;
font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
}
.markdown-body pre {
background: #161b22;
border: 1px solid #30363d;
background: #f6f8fa;
border: 1px solid #d0d7de;
border-radius: 6px;
padding: 12px;
margin: 0 0 0.75em;
@@ -55,35 +54,19 @@
padding: 0;
font-size: 0.8125em;
line-height: 1.5;
color: #e6edf3;
color: #1f2328;
}
.markdown-body hr {
border: 0;
height: 1px;
background: #30363d;
background: #d0d7de;
margin: 1em 0;
}
.markdown-body a {
color: #58a6ff;
text-decoration: none;
}
.markdown-body a:hover {
text-decoration: underline;
}
.markdown-body a { color: #0969da; text-decoration: none; }
.markdown-body a:hover { text-decoration: underline; }
.markdown-body strong { font-weight: 600; }
.markdown-body table {
border-collapse: collapse;
margin: 0 0 0.75em;
width: 100%;
}
.markdown-body th, .markdown-body td {
border: 1px solid #30363d;
padding: 6px 13px;
text-align: left;
}
.markdown-body th {
font-weight: 600;
background: rgba(110,118,129,0.1);
}
.markdown-body table { border-collapse: collapse; margin: 0 0 0.75em; width: 100%; }
.markdown-body th, .markdown-body td { border: 1px solid #d0d7de; padding: 6px 13px; text-align: left; }
.markdown-body th { font-weight: 600; background: #f6f8fa; }
.markdown-body img { max-width: 100%; border-radius: 6px; }
}