From 602664c122a30ce6776e124ad7b163a0e4f4cd0d Mon Sep 17 00:00:00 2001 From: chiyi Date: Thu, 8 Oct 2026 17:15:17 +0800 Subject: [PATCH] =?UTF-8?q?style(ui):=20=E5=85=A8=E7=AB=99=E6=B8=85?= =?UTF-8?q?=E9=99=A4=E7=B4=AB=E8=89=B2=E7=B3=BB=EF=BC=8C=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=20Memphis=20=E8=9C=A1=E7=AC=94=E9=85=8D=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Logo 渐变从粉紫改为橙/粉/蓝蜡笔色,快门圆点改橙色 - 批量替换 accent:violet→orange、fuchsia→rose、indigo→sky、purple→orange, 十六进制与 rgb 字面量同步换算为 Tailwind 对应色 - 修复类名合并冲突:管理员筛选 pill 改 fp-orange、会员号改 fp-pink(新增), style.css 中去重 fp-rose/fp-orange 并补 fp-pink 的浅色模式变体 - 选区色、标签输入框、筛选 pill、图表、滑块等所有紫色残留全部归位 Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- frontend/src/components/CustomModelModal.vue | 2 +- frontend/src/components/ImportModal.vue | 4 +-- frontend/src/components/Logo.vue | 13 +++---- frontend/src/components/ModelFormModal.vue | 4 +-- frontend/src/components/TagInput.vue | 8 ++--- frontend/src/components/UpstreamModal.vue | 4 +-- frontend/src/layouts/AdminLayout.vue | 2 +- frontend/src/layouts/PublicLayout.vue | 2 +- frontend/src/style.css | 27 +++++++------- frontend/src/views/AccountsView.vue | 38 ++++++++++---------- frontend/src/views/AdminOrdersView.vue | 4 +-- frontend/src/views/BannedWordsView.vue | 2 +- frontend/src/views/CdksView.vue | 22 ++++++------ frontend/src/views/ConcurrencyView.vue | 4 +-- frontend/src/views/ConfigView.vue | 4 +-- frontend/src/views/DocsView.vue | 10 +++--- frontend/src/views/ImagesView.vue | 16 ++++----- frontend/src/views/InvitesAdminView.vue | 4 +-- frontend/src/views/LogsView.vue | 12 +++---- frontend/src/views/ModelsView.vue | 18 +++++----- frontend/src/views/OrdersView.vue | 6 ++-- frontend/src/views/OverviewView.vue | 20 +++++------ frontend/src/views/PlaygroundView.vue | 6 ++-- frontend/src/views/SettingsView.vue | 14 ++++---- frontend/src/views/ShowcaseView.vue | 8 ++--- frontend/src/views/UserLogsTableView.vue | 12 +++---- frontend/src/views/UserLogsView.vue | 8 ++--- frontend/src/views/UsersView.vue | 20 +++++------ 28 files changed, 147 insertions(+), 147 deletions(-) diff --git a/frontend/src/components/CustomModelModal.vue b/frontend/src/components/CustomModelModal.vue index 07ac90d..8478e40 100644 --- a/frontend/src/components/CustomModelModal.vue +++ b/frontend/src/components/CustomModelModal.vue @@ -156,7 +156,7 @@ async function save() {
+ :class="ratios.includes(r) ? 'bg-sky-500/15 text-sky-600 ring-sky-300' : 'bg-slate-50 text-slate-500 ring-slate-200 hover:ring-slate-300'">{{ r }}
diff --git a/frontend/src/components/ImportModal.vue b/frontend/src/components/ImportModal.vue index 785d6fd..b8058d0 100644 --- a/frontend/src/components/ImportModal.vue +++ b/frontend/src/components/ImportModal.vue @@ -131,7 +131,7 @@ async function doSmartImport() { Adobe · {{ detected.adobe }} - + Runway · {{ detected.runway }} @@ -146,7 +146,7 @@ async function doSmartImport() { Grok · {{ detected.grok }} - + Creative Fabrica · {{ detected.cf }} diff --git a/frontend/src/components/Logo.vue b/frontend/src/components/Logo.vue index 790a5c1..4374e6e 100644 --- a/frontend/src/components/Logo.vue +++ b/frontend/src/components/Logo.vue @@ -1,7 +1,8 @@ @@ -437,7 +437,7 @@ const sourcePill = (s) => ({ .fade-enter-from, .fade-leave-to { opacity: 0; } /* --- log table: subtle row separators + a barely-there hover tint that - extends a soft violet accent on the left of the row (read as a + extends a soft orange accent on the left of the row (read as a focus indicator without being noisy). --- */ .log-table { border-collapse: separate; border-spacing: 0; } .log-row td { @@ -446,7 +446,7 @@ const sourcePill = (s) => ({ } .log-row:hover td { background: rgb(255 255 255 / 0.025); } .log-row:hover td:first-child { - box-shadow: inset 2px 0 0 rgb(167 139 250 / 0.55); + box-shadow: inset 2px 0 0 rgb(253 186 116 / 0.55); } .log-row:last-child td { border-bottom: none; } diff --git a/frontend/src/views/ModelsView.vue b/frontend/src/views/ModelsView.vue index a0bc7e9..fa819bb 100644 --- a/frontend/src/views/ModelsView.vue +++ b/frontend/src/views/ModelsView.vue @@ -96,12 +96,12 @@ onMounted(loadModels)
{{ stats.total }}
-
图像
-
{{ stats.image }}
+
图像
+
{{ stats.image }}
-
视频
-
{{ stats.video }}
+
视频
+
{{ stats.video }}
启用
@@ -187,8 +187,8 @@ onMounted(loadModels) + ? 'bg-rose-500/10 text-rose-300 ring-rose-400/30' + : 'bg-sky-500/10 text-sky-300 ring-sky-400/30'"> {{ TYPE_LABEL[m.type] || m.type }} @@ -354,12 +354,12 @@ onMounted(loadModels) white-space: nowrap; } .cap-dur { - background: rgb(99 102 241 / 0.12); - color: rgb(165 180 252); + background: rgb(14 165 233 / 0.12); + color: rgb(147 197 253); box-shadow: inset 0 0 0 1px rgb(129 140 248 / 0.3); } .cap-frame { - background: rgb(236 72 153 / 0.12); + background: rgb(251 113 133 / 0.12); color: rgb(244 114 182); box-shadow: inset 0 0 0 1px rgb(244 114 182 / 0.35); } diff --git a/frontend/src/views/OrdersView.vue b/frontend/src/views/OrdersView.vue index 17d3d8a..4a996e3 100644 --- a/frontend/src/views/OrdersView.vue +++ b/frontend/src/views/OrdersView.vue @@ -140,7 +140,7 @@ async function cont(o) { {{ fmt(o.created_at) }} {{ fmt(o.paid_at) }} ¥{{ o.amount }} - {{ o.points }} + {{ o.points }} {{ STATUS[o.status] }} @@ -149,7 +149,7 @@ async function cont(o) { @@ -177,7 +177,7 @@ async function cont(o) { .log-table { border-collapse: separate; border-spacing: 0; } .log-row td { border-bottom: 1px solid rgb(15 23 42 / 0.06); transition: background-color 0.15s ease, box-shadow 0.15s ease; } .log-row:hover td { background: rgb(15 23 42 / 0.025); } -.log-row:hover td:first-child { box-shadow: inset 2px 0 0 rgb(124 58 237 / 0.6); } +.log-row:hover td:first-child { box-shadow: inset 2px 0 0 rgb(234 88 12 / 0.6); } .log-row:last-child td { border-bottom: none; } .pg { min-width: 1.75rem; padding: 0.3rem 0.55rem; font-size: 0.72rem; font-weight: 500; text-align: center; diff --git a/frontend/src/views/OverviewView.vue b/frontend/src/views/OverviewView.vue index 7165383..53c9562 100644 --- a/frontend/src/views/OverviewView.vue +++ b/frontend/src/views/OverviewView.vue @@ -162,7 +162,7 @@ onUnmounted(() => clearInterval(timer))
用户 - +
@@ -197,7 +197,7 @@ onUnmounted(() => clearInterval(timer))
近 24 小时生成 - +
@@ -223,7 +223,7 @@ onUnmounted(() => clearInterval(timer))
累计生成 - +
@@ -317,7 +317,7 @@ onUnmounted(() => clearInterval(timer))
邀请 - +
@@ -387,8 +387,8 @@ onUnmounted(() => clearInterval(timer))

24 小时生成趋势

- 图像 - 视频 + 图像 + 视频 峰值 {{ hourMax }}/h
@@ -402,8 +402,8 @@ onUnmounted(() => clearInterval(timer)) whitespace-nowrap rounded-md bg-black/90 ring-1 ring-white/10 px-2 py-1 text-[10px] text-white/90 tabular-nums"> {{ 23 - i }}h 前 · 图 {{ b.image }} / 视 {{ b.video }}
-
-
+
+
@@ -448,7 +448,7 @@ onUnmounted(() => clearInterval(timer))
-
@@ -544,7 +544,7 @@ onUnmounted(() => clearInterval(timer)) class="flex items-center gap-3 px-2 py-2 text-xs rounded-lg hover:bg-white/[0.03]"> + :class="e.kind === 'video' ? 'text-rose-300' : 'text-sky-300'"> {{ e.kind === 'video' ? '视频' : '图像' }} {{ e.model }} diff --git a/frontend/src/views/PlaygroundView.vue b/frontend/src/views/PlaygroundView.vue index d033798..1792dfe 100644 --- a/frontend/src/views/PlaygroundView.vue +++ b/frontend/src/views/PlaygroundView.vue @@ -889,7 +889,7 @@ onUnmounted(() => {
+ class="w-full accent-sky-500 h-2 rounded-lg appearance-none bg-slate-200 cursor-pointer" />
{{ secsRange.min }}s{{ secsRange.max }}s
@@ -922,7 +922,7 @@ onUnmounted(() => {
@@ -1058,7 +1058,7 @@ onUnmounted(() => {
{{ item.prompt }}
-
{{ item.model }} · 去AI · {{ (item.elapsed_ms / 1000).toFixed(1) }}s
+
{{ item.model }} · 去AI · {{ (item.elapsed_ms / 1000).toFixed(1) }}s
diff --git a/frontend/src/views/SettingsView.vue b/frontend/src/views/SettingsView.vue index 80006f1..c49f4ce 100644 --- a/frontend/src/views/SettingsView.vue +++ b/frontend/src/views/SettingsView.vue @@ -222,7 +222,7 @@ async function recharge() {
-
账户
+
账户

设置

API Key、密码、积分、登录状态 — 都在这里。

@@ -235,7 +235,7 @@ async function recharge() {
- +

账户信息

@@ -273,10 +273,10 @@ async function recharge() {
+ style="background: radial-gradient(circle,#f97316,transparent 60%)">
-
+

API Key

@@ -323,7 +323,7 @@ async function recharge() {

Key 由系统随机生成,不能手动填写。重新生成会让旧 Key 立刻失效。完整调用示例见 - 接口文档。 + 接口文档。

@@ -384,7 +384,7 @@ async function recharge() {
- 到账 {{ pointsPreview }} 积分 + 到账 {{ pointsPreview }} 积分
diff --git a/frontend/src/views/UserLogsTableView.vue b/frontend/src/views/UserLogsTableView.vue index df7981c..0cf4165 100644 --- a/frontend/src/views/UserLogsTableView.vue +++ b/frontend/src/views/UserLogsTableView.vue @@ -70,7 +70,7 @@ onMounted(load) const isApi = (e) => e.source === 'v1' const sourceLabel = (e) => (isApi(e) ? 'API' : '画图台') const sourcePill = (e) => (isApi(e) - ? 'bg-violet-50 text-violet-700 ring-violet-200' + ? 'bg-orange-50 text-orange-700 ring-orange-200' : 'bg-sky-50 text-sky-700 ring-sky-200') // 搜索走服务端(跨页),直接展示服务端返回的当页结果。 @@ -218,7 +218,7 @@ const params = (e) => {
-
管理员
-
{{ stats.admins }}
+
管理员
+
{{ stats.admins }}
总积分
@@ -234,8 +234,8 @@ async function doRecharge() {
-