Polish Admin/Chat UI and fix WhatsApp group session titles.

Surface group names in channel titles, theme composer chips for light mode, and trim unused Runtime alert/stack panels.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-08-11 04:59:39 +08:00
parent 8ad4768476
commit 746570dfc9
8 changed files with 1659 additions and 619 deletions

View file

@ -26,9 +26,9 @@ body.theme-ds-body {
--chat-sess-hover-bg: rgba(255, 255, 255, 0.05);
--chat-sess-active-bg: rgba(255, 255, 255, 0.062);
--chat-sess-border: rgba(255, 255, 255, 0.09);
/* 用户消息气泡(微信式绿底深字) */
--chat-user-bubble-bg: #42b983;
--chat-user-bubble-fg: #111111;
/* 用户消息气泡:磨砂玻璃(半透明蓝) */
--chat-user-bubble-bg: rgba(94, 179, 255, 0.18);
--chat-user-bubble-fg: #e8e8e8;
/* 弹层 / 菜单 / Toast */
--ds-overlay-bg: rgba(0, 0, 0, 0.58);
--ds-menu-hover-bg: rgba(255, 255, 255, 0.06);
@ -330,10 +330,12 @@ body.theme-ds-body .card {
}
.chat-sess-btn {
display: block;
display: flex;
align-items: center;
gap: 8px;
width: 100%;
text-align: left;
padding: 10px 0 10px 8px;
padding: 8px 6px 8px 8px;
margin-bottom: 0;
border-radius: 0;
border: 1px solid transparent;
@ -341,6 +343,67 @@ body.theme-ds-body .card {
color: inherit;
cursor: pointer;
font-size: 13px;
line-height: 1.3;
min-width: 0;
min-height: 40px;
box-sizing: border-box;
}
.chat-sess-btn__label {
flex: 1;
min-width: 0;
display: block;
overflow: hidden;
}
.chat-sess-btn__name {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.chat-sess-btn__id {
display: none;
}
.chat-sess-badge {
flex: 0 0 2.6rem;
width: 2.6rem;
min-width: 2.6rem;
box-sizing: border-box;
font-size: 10px;
font-weight: 600;
letter-spacing: 0.02em;
line-height: 1;
padding: 4px 0;
border-radius: 6px;
text-align: center;
border: 1px solid rgba(148, 163, 184, 0.22);
background: rgba(148, 163, 184, 0.1);
color: #94a3b8;
}
/* Keep channel tint very subtle so the list reads as one system. */
.chat-sess-badge--whatsapp {
border-color: rgba(37, 211, 102, 0.28);
color: #86efac;
}
.chat-sess-badge--wechat,
.chat-sess-badge--weixin {
border-color: rgba(7, 193, 96, 0.28);
color: #86efac;
}
.chat-sess-badge--wecom {
border-color: rgba(59, 130, 246, 0.28);
color: #93c5fd;
}
.chat-sess-badge--local {
border-color: rgba(148, 163, 184, 0.28);
color: #cbd5e1;
}
.chat-sess-btn:hover {
@ -349,17 +412,19 @@ body.theme-ds-body .card {
.chat-sess-row {
border: 1px solid transparent;
border-radius: 0;
border-radius: 8px;
margin-bottom: 2px;
min-height: 40px;
}
.chat-sess-row:hover {
background: var(--chat-sess-hover-bg, rgba(255, 255, 255, 0.06));
border-color: var(--chat-sess-border, rgba(255, 255, 255, 0.12));
background: var(--chat-sess-hover-bg, rgba(255, 255, 255, 0.05));
border-color: transparent;
}
.chat-sess-row--active {
background: var(--chat-sess-active-bg, rgba(255, 255, 255, 0.062));
border-color: var(--chat-sess-border, rgba(255, 255, 255, 0.08));
background: var(--chat-sess-active-bg, rgba(148, 163, 184, 0.12));
border-color: transparent;
}
.chat-sess-row--active .chat-sess-btn {
@ -369,11 +434,14 @@ body.theme-ds-body .card {
.chat-sess-row .chat-sess-more {
opacity: 0;
pointer-events: none;
flex: 0 0 2rem;
min-width: 2rem;
}
.chat-sess-row:hover .chat-sess-more,
.chat-sess-row:focus-within .chat-sess-more {
opacity: 1;
.chat-sess-row:focus-within .chat-sess-more,
.chat-sess-row--active .chat-sess-more {
opacity: 0.85;
pointer-events: auto;
}
@ -398,10 +466,10 @@ body.theme-ds-body .card {
flex: 1;
min-height: 0;
overflow-y: auto;
padding: 12px 14px;
padding: 16px 18px 20px;
display: flex;
flex-direction: column;
gap: 10px;
gap: 14px;
}
/* 滚动条:管理台等仍用隐藏式;独立 /chat 页见文件末尾 body.chat-standalone-page */
@ -475,10 +543,10 @@ body.theme-ds-body .card {
.chat-msg {
max-width: 92%;
padding: 6px 12px;
border-radius: 12px;
padding: 8px 12px;
border-radius: 10px;
font-size: 14px;
line-height: 1.5;
line-height: 1.55;
white-space: pre-wrap;
word-break: break-word;
}
@ -589,9 +657,17 @@ body.theme-ds-body .card {
.chat-msg--user {
align-self: flex-end;
background: var(--chat-user-bubble-bg, #42b983);
color: var(--chat-user-bubble-fg, #111);
border: 1px solid rgba(0, 0, 0, 0.12);
padding: 10px 14px;
border-radius: 14px;
color: var(--chat-user-bubble-fg, #f1f5f9);
background: var(--chat-user-bubble-bg, rgba(59, 130, 246, 0.22));
border: 1px solid rgba(148, 163, 184, 0.22);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.08),
0 8px 24px rgba(2, 6, 23, 0.18);
backdrop-filter: blur(14px) saturate(1.25);
-webkit-backdrop-filter: blur(14px) saturate(1.25);
filter: none;
}
.chat-msg--user .chat-msg__md,
@ -600,22 +676,30 @@ body.theme-ds-body .card {
}
.chat-msg--user .chat-msg__md a {
color: #0b4d8c;
color: #93c5fd;
}
.chat-msg--user .chat-msg__md pre,
.chat-msg--user .chat-msg__md code {
background: rgba(0, 0, 0, 0.12);
color: #111;
border-color: rgba(0, 0, 0, 0.12);
background: rgba(2, 6, 23, 0.28);
color: #e2e8f0;
border-color: rgba(148, 163, 184, 0.2);
}
.chat-msg--assistant {
align-self: flex-start;
width: auto;
max-width: 100%;
background: var(--ds-splash-bg, rgba(148, 163, 184, 0.06));
border: 1px solid var(--ds-border, rgba(148, 163, 184, 0.18));
padding: 10px 14px;
border-radius: 14px;
color: var(--ds-text, #e8e8e8);
background: rgba(148, 163, 184, 0.1);
border: 1px solid rgba(148, 163, 184, 0.18);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.06),
0 8px 24px rgba(2, 6, 23, 0.14);
backdrop-filter: blur(14px) saturate(1.2);
-webkit-backdrop-filter: blur(14px) saturate(1.2);
}
.chat-msg__actions {