feat(v3): 配色体系对齐 deepseek-harness Web(D7 视觉)
- 提取 dsh design-platform 官方色板为设计令牌:品牌蓝 #4176e6、bluish 灰阶、 语义状态色、透明描边(rgba 0.04-0.1) - 侧栏改近白(sidebar-fill),扁平化阴影,悬停/滚动条/缓动全部对齐 dsh - 六视图旧硬编码蓝批量令牌化,视觉单一来源
This commit is contained in:
+27
-26
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="app">
|
||||
<!-- 深色侧边导航 -->
|
||||
<!-- 侧边导航(dsh 风格:近白 + 透明描边) -->
|
||||
<aside class="side">
|
||||
<div class="brand">
|
||||
<div class="brand-logo">🤖</div>
|
||||
@@ -31,7 +31,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
// App.vue — 深色侧边栏壳 + 路由出口
|
||||
// App.vue — 侧边栏壳(deepseek-harness 配色:sidebar-fill 近白 + 品牌蓝点缀)
|
||||
const NAV = [
|
||||
{ to: '/chat', icon: '💬', label: '对话' },
|
||||
{ to: '/collaboration', icon: '🔄', label: '协作过程' },
|
||||
@@ -48,13 +48,14 @@ const NAV = [
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/* ---------- 侧边栏 ---------- */
|
||||
/* ---------- 侧边栏(dsh:specific-sidebar-fill 近白) ---------- */
|
||||
.side {
|
||||
width: 208px;
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background: linear-gradient(180deg, var(--c-side-bg) 0%, var(--c-side-bg-2) 100%);
|
||||
background: var(--c-side-bg);
|
||||
border-right: 1px solid var(--c-side-border);
|
||||
color: var(--c-side-text);
|
||||
padding: 18px 12px 14px;
|
||||
user-select: none;
|
||||
@@ -64,9 +65,8 @@ const NAV = [
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 4px 8px 18px;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.07);
|
||||
margin-bottom: 14px;
|
||||
padding: 4px 8px 16px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.brand-logo {
|
||||
width: 38px;
|
||||
@@ -74,43 +74,44 @@ const NAV = [
|
||||
display: grid;
|
||||
place-items: center;
|
||||
font-size: 20px;
|
||||
background: linear-gradient(135deg, #4f6ef7, #7c5cf5);
|
||||
background: linear-gradient(135deg, var(--ds-blue-400), var(--ds-blue-500));
|
||||
border-radius: 11px;
|
||||
box-shadow: 0 4px 14px rgba(79, 110, 247, 0.45);
|
||||
box-shadow: 0 3px 10px rgba(65, 118, 230, 0.35);
|
||||
}
|
||||
.brand-text { display: flex; flex-direction: column; line-height: 1.25; }
|
||||
.brand-text b { color: #fff; font-size: 15px; letter-spacing: 0.5px; }
|
||||
.brand-text span { font-size: 11px; color: var(--c-side-text); }
|
||||
.brand-text { display: flex; flex-direction: column; line-height: 1.3; }
|
||||
.brand-text b { color: var(--c-text); font-size: 15px; letter-spacing: 0.5px; }
|
||||
.brand-text span { font-size: 11px; color: var(--c-caption); }
|
||||
|
||||
.nav { display: flex; flex-direction: column; gap: 3px; flex: 1; }
|
||||
.nav { display: flex; flex-direction: column; gap: 2px; flex: 1; }
|
||||
|
||||
.nav-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 11px;
|
||||
padding: 9px 12px;
|
||||
padding: 8px 10px;
|
||||
border-radius: 9px;
|
||||
text-decoration: none;
|
||||
color: var(--c-side-text);
|
||||
font-size: 13.5px;
|
||||
font-weight: 500;
|
||||
position: relative;
|
||||
transition: background 0.15s, color 0.15s;
|
||||
transition: background 0.15s var(--ds-ease), color 0.15s var(--ds-ease);
|
||||
}
|
||||
.nav-item:hover { background: rgba(255, 255, 255, 0.055); color: #e6eaf4; }
|
||||
.nav-item:hover { background: var(--c-side-hover); color: var(--c-text); }
|
||||
.nav-item.router-link-active {
|
||||
background: var(--c-side-active);
|
||||
color: var(--c-side-text-active);
|
||||
font-weight: 600;
|
||||
}
|
||||
.nav-item.router-link-active::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: -12px;
|
||||
top: 8px;
|
||||
bottom: 8px;
|
||||
top: 7px;
|
||||
bottom: 7px;
|
||||
width: 3px;
|
||||
border-radius: 0 3px 3px 0;
|
||||
background: var(--c-primary);
|
||||
background: var(--c-accent);
|
||||
}
|
||||
.nav-icon {
|
||||
width: 26px;
|
||||
@@ -118,26 +119,25 @@ const NAV = [
|
||||
display: grid;
|
||||
place-items: center;
|
||||
font-size: 15px;
|
||||
background: rgba(255, 255, 255, 0.06);
|
||||
background: var(--c-hover);
|
||||
border-radius: 7px;
|
||||
}
|
||||
.nav-item.router-link-active .nav-icon { background: rgba(79, 110, 247, 0.35); }
|
||||
.nav-item.router-link-active .nav-icon { background: var(--c-primary-soft); }
|
||||
|
||||
.side-foot {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 7px;
|
||||
padding: 10px 8px 2px;
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.07);
|
||||
padding: 12px 8px 2px;
|
||||
font-size: 11px;
|
||||
color: #7d879e;
|
||||
color: var(--c-caption);
|
||||
}
|
||||
.foot-dot {
|
||||
width: 7px;
|
||||
height: 7px;
|
||||
border-radius: 50%;
|
||||
background: #34d399;
|
||||
box-shadow: 0 0 6px #34d399;
|
||||
background: var(--c-ok);
|
||||
box-shadow: 0 0 6px rgba(34, 197, 94, 0.6);
|
||||
}
|
||||
|
||||
/* ---------- 内容区 ---------- */
|
||||
@@ -147,6 +147,7 @@ const NAV = [
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background: var(--c-surface);
|
||||
}
|
||||
.content {
|
||||
flex: 1;
|
||||
|
||||
Reference in New Issue
Block a user