Restyle the web UI as a dark trading terminal

- Single palette (web/src/styles/palette.ts) taken from the Stitch
  design, exposed as ap-* UnoCSS colors and --ap-* CSS variables and
  used for Element Plus dark theme overrides, KLineChart and the news
  iframe; zero radius, JetBrains Mono / Space Grotesk bundled locally
- New sidebar and header layout; trading page, plan card and analysis
  drawer follow the design; other pages use the same panels
- Status API reports today's closed trades, wins and net PnL, shown as
  today's PnL and win rate on the trading page
This commit is contained in:
eezd committed 2026-10-15 18:28:59 +08:00
1 parent 665c12fc31
commit d5fa78f1ad
31 files changed
+1199 -505

No files matched your search

+2 -2
View File
@@ -126,8 +126,8 @@ function onCollapse(item: TreeItem) {
>
<template #default="{ data }">
<div
class="group w-full flex items-center gap-1 overflow-hidden rounded pr-1 text-sm"
:class="{ 'opacity-50': !data.data.enabled, 'bg-yellow-100': highlightIds?.includes(data.id) }"
class="group w-full flex items-center gap-1 overflow-hidden pr-1 text-sm"
:class="{ 'opacity-50': !data.data.enabled, 'bg-ap-brand/15': highlightIds?.includes(data.id) }"
>
<span>{{ data.data.kind === "folder" ? "📁" : "📄" }}</span>
<span class="truncate">{{ data.data.name }}</span>
+3 -3
View File
@@ -50,7 +50,7 @@ async function publish(version: SkillVersion) {
<el-scrollbar class="w-60 shrink-0">
<div
v-for="v in versions" :key="v.id"
class="mb-1 cursor-pointer border rounded border-solid px-2 py-1 text-sm"
class="mb-1 cursor-pointer border border-solid px-2 py-1 text-sm"
:class="v.id === selectedId ? 'border-[var(--el-color-primary)] bg-[var(--el-color-primary-light-9)]' : 'border-[var(--el-border-color-lighter)]'"
@click="selectedId = v.id"
>
@@ -81,11 +81,11 @@ async function publish(version: SkillVersion) {
发布此版本
</el-button>
</div>
<el-scrollbar class="min-h-0 flex-1 border rounded border-solid border-[var(--el-border-color-lighter)]">
<el-scrollbar class="min-h-0 flex-1 border border-ap-line border-solid bg-ap-sunken">
<div class="p-2 text-xs font-mono">
<div
v-for="(line, i) in diff" :key="i" class="whitespace-pre-wrap"
:class="{ 'bg-green-100': line.type === 'add', 'bg-red-100 line-through': line.type === 'del' }"
:class="{ 'diff-add': line.type === 'add', 'diff-del': line.type === 'del' }"
>
{{ line.type === "add" ? "+ " : line.type === "del" ? "- " : " " }}{{ line.text }}
</div>