youhua
This commit is contained in:
@@ -407,11 +407,26 @@ onMounted(() => {
|
|||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
// ============================================
|
// ============================================
|
||||||
// 基础布局 - 使用设计系统变量
|
// 基础布局 - 融合渐变背景
|
||||||
// ============================================
|
// ============================================
|
||||||
.agents-layout {
|
.agents-layout {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: var(--color-bg-page);
|
// 亮色:从微妙蓝灰渐变到纯白,营造融合美感
|
||||||
|
background: linear-gradient(180deg,
|
||||||
|
oklch(0.97 0.012 250) 0%,
|
||||||
|
oklch(0.98 0.006 255) 15%,
|
||||||
|
oklch(0.995 0.002 260) 35%,
|
||||||
|
oklch(1 0 0) 60%
|
||||||
|
);
|
||||||
|
|
||||||
|
.dark & {
|
||||||
|
// 暗色:从深蓝灰渐变到更深的统一色调
|
||||||
|
background: linear-gradient(180deg,
|
||||||
|
oklch(0.15 0.008 255) 0%,
|
||||||
|
oklch(0.13 0.006 260) 20%,
|
||||||
|
oklch(0.12 0.004 260) 50%
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.agents-container {
|
.agents-container {
|
||||||
@@ -422,12 +437,12 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ============================================
|
// ============================================
|
||||||
// 头部区域 - 极简优雅
|
// 头部区域 - 极简优雅,融入渐变背景
|
||||||
// ============================================
|
// ============================================
|
||||||
.agents-header {
|
.agents-header {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 48px 0 32px;
|
padding: 48px 0 32px;
|
||||||
background: linear-gradient(90deg, rgba(56, 189, 248, 0.12) 0%, rgba(99, 102, 241, 0.14) 100%);
|
background: transparent;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -441,22 +456,30 @@ onMounted(() => {
|
|||||||
.deco-circle {
|
.deco-circle {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
opacity: 0.5;
|
opacity: 0.6;
|
||||||
|
|
||||||
&--1 {
|
&--1 {
|
||||||
width: 300px;
|
width: 400px;
|
||||||
height: 300px;
|
height: 400px;
|
||||||
right: -100px;
|
right: -150px;
|
||||||
top: -150px;
|
top: -200px;
|
||||||
background: radial-gradient(circle, rgba(37, 99, 235, 0.06) 0%, transparent 70%);
|
background: radial-gradient(circle, oklch(0.55 0.12 255 / 0.06) 0%, transparent 70%);
|
||||||
|
|
||||||
|
.dark & {
|
||||||
|
background: radial-gradient(circle, oklch(0.65 0.10 255 / 0.05) 0%, transparent 70%);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&--2 {
|
&--2 {
|
||||||
width: 200px;
|
width: 300px;
|
||||||
height: 200px;
|
height: 300px;
|
||||||
left: -50px;
|
left: -100px;
|
||||||
bottom: -100px;
|
bottom: -150px;
|
||||||
background: radial-gradient(circle, rgba(124, 58, 237, 0.04) 0%, transparent 70%);
|
background: radial-gradient(circle, oklch(0.55 0.12 290 / 0.04) 0%, transparent 70%);
|
||||||
|
|
||||||
|
.dark & {
|
||||||
|
background: radial-gradient(circle, oklch(0.65 0.10 290 / 0.03) 0%, transparent 70%);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -513,12 +536,16 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
border-color: var(--color-primary-500);
|
border-color: var(--ring);
|
||||||
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1), var(--shadow-md);
|
box-shadow: 0 0 0 3px oklch(0.35 0.06 255 / 0.15), var(--shadow-md);
|
||||||
|
|
||||||
|
.dark & {
|
||||||
|
box-shadow: 0 0 0 3px oklch(0.65 0.08 255 / 0.2), var(--shadow-md);
|
||||||
|
}
|
||||||
|
|
||||||
& + .search-icon,
|
& + .search-icon,
|
||||||
& ~ .search-icon {
|
& ~ .search-icon {
|
||||||
color: var(--color-primary-500);
|
color: var(--primary);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -559,17 +586,21 @@ onMounted(() => {
|
|||||||
gap: 6px;
|
gap: 6px;
|
||||||
padding: 0 16px;
|
padding: 0 16px;
|
||||||
height: 52px;
|
height: 52px;
|
||||||
border: 1px solid var(--color-gray-300);
|
border: 1px solid var(--border);
|
||||||
border-radius: var(--radius-lg);
|
border-radius: var(--radius-lg);
|
||||||
background: var(--color-bg-card);
|
background: var(--card);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: all var(--duration-fast);
|
transition: all var(--duration-fast);
|
||||||
box-shadow: var(--shadow-sm);
|
box-shadow: var(--shadow-sm);
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
border-color: #f59e0b;
|
border-color: var(--warning);
|
||||||
background: #fffbeb;
|
background: oklch(0.95 0.08 85);
|
||||||
box-shadow: var(--shadow-md);
|
box-shadow: var(--shadow-md);
|
||||||
|
|
||||||
|
.dark & {
|
||||||
|
background: oklch(0.25 0.06 85);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:active {
|
&:active {
|
||||||
@@ -579,13 +610,13 @@ onMounted(() => {
|
|||||||
|
|
||||||
.favorites-btn-icon {
|
.favorites-btn-icon {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
color: #f59e0b;
|
color: var(--warning);
|
||||||
}
|
}
|
||||||
|
|
||||||
.favorites-btn-text {
|
.favorites-btn-text {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: var(--color-gray-700);
|
color: var(--foreground);
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -638,9 +669,9 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
&--active {
|
&--active {
|
||||||
background: var(--color-gray-900);
|
background: var(--foreground);
|
||||||
color: white;
|
color: var(--background);
|
||||||
box-shadow: 0 2px 8px rgba(0,0,0,0.12);
|
box-shadow: var(--shadow-md);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -653,7 +684,7 @@ onMounted(() => {
|
|||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
padding: 1px 6px;
|
padding: 1px 6px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
background: rgba(255,255,255,0.15);
|
background: oklch(0 0 0 / 0.08);
|
||||||
color: inherit;
|
color: inherit;
|
||||||
opacity: 0.9;
|
opacity: 0.9;
|
||||||
|
|
||||||
@@ -669,6 +700,7 @@ onMounted(() => {
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
padding: 32px 24px 48px;
|
padding: 32px 24px 48px;
|
||||||
|
background: transparent;
|
||||||
|
|
||||||
&::-webkit-scrollbar {
|
&::-webkit-scrollbar {
|
||||||
width: 6px;
|
width: 6px;
|
||||||
@@ -679,11 +711,11 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
&::-webkit-scrollbar-thumb {
|
&::-webkit-scrollbar-thumb {
|
||||||
background: #E5E5E5;
|
background: var(--border);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: #D4D4D4;
|
background: var(--muted-foreground);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -704,8 +736,12 @@ onMounted(() => {
|
|||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding-top: 48px;
|
padding-top: 48px;
|
||||||
background: rgba(255, 255, 255, 0.7);
|
background: oklch(1 0 0 / 0.7);
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
|
|
||||||
|
.dark & {
|
||||||
|
background: oklch(0.12 0.004 260 / 0.7);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.custom-spinner {
|
.custom-spinner {
|
||||||
@@ -745,18 +781,24 @@ onMounted(() => {
|
|||||||
// ============================================
|
// ============================================
|
||||||
.agent-card {
|
.agent-card {
|
||||||
position: relative;
|
position: relative;
|
||||||
background: var(--surface-elevated);
|
background: var(--card);
|
||||||
|
border: 1px solid var(--border);
|
||||||
border-radius: 16px;
|
border-radius: 16px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
animation: cardReveal 0.5s ease-out backwards;
|
animation: cardReveal 0.5s ease-out backwards;
|
||||||
animation-delay: calc(var(--i) * 0.04s);
|
animation-delay: calc(var(--i) * 0.04s);
|
||||||
box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.03);
|
box-shadow: var(--shadow-sm);
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
transform: translateY(-4px);
|
transform: translateY(-4px);
|
||||||
box-shadow: 0 12px 24px rgba(0,0,0,0.08), 0 4px 8px rgba(0,0,0,0.04);
|
box-shadow: var(--shadow-lg);
|
||||||
|
border-color: var(--color-gray-300);
|
||||||
|
|
||||||
|
.dark & {
|
||||||
|
border-color: var(--color-gray-600);
|
||||||
|
}
|
||||||
|
|
||||||
.card-footer {
|
.card-footer {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
@@ -801,12 +843,12 @@ onMounted(() => {
|
|||||||
transform: scale(0.9);
|
transform: scale(0.9);
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
|
|
||||||
&--blue { background: linear-gradient(135deg, #3B82F6, #8B5CF6); }
|
&--blue { background: linear-gradient(135deg, oklch(0.55 0.15 255), oklch(0.55 0.15 290)); }
|
||||||
&--emerald { background: linear-gradient(135deg, #10B981, #06B6D4); }
|
&--emerald { background: linear-gradient(135deg, oklch(0.55 0.12 160), oklch(0.50 0.10 195)); }
|
||||||
&--violet { background: linear-gradient(135deg, #8B5CF6, #EC4899); }
|
&--violet { background: linear-gradient(135deg, oklch(0.55 0.15 290), oklch(0.55 0.15 340)); }
|
||||||
&--rose { background: linear-gradient(135deg, #F43F5E, #F97316); }
|
&--rose { background: linear-gradient(135deg, oklch(0.55 0.18 10), oklch(0.55 0.15 40)); }
|
||||||
&--amber { background: linear-gradient(135deg, #F59E0B, #EF4444); }
|
&--amber { background: linear-gradient(135deg, oklch(0.70 0.14 85), oklch(0.55 0.18 25)); }
|
||||||
&--cyan { background: linear-gradient(135deg, #06B6D4, #3B82F6); }
|
&--cyan { background: linear-gradient(135deg, oklch(0.55 0.10 195), oklch(0.55 0.15 255)); }
|
||||||
}
|
}
|
||||||
|
|
||||||
.avatar-inner {
|
.avatar-inner {
|
||||||
@@ -815,7 +857,7 @@ onMounted(() => {
|
|||||||
height: 52px;
|
height: 52px;
|
||||||
border-radius: 14px;
|
border-radius: 14px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: linear-gradient(135deg, #F3F4F6, #E5E7EB);
|
background: var(--muted);
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@@ -829,7 +871,7 @@ onMounted(() => {
|
|||||||
|
|
||||||
.avatar-icon {
|
.avatar-icon {
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
color: #9CA3AF;
|
color: var(--muted-foreground);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 信息区域
|
// 信息区域
|
||||||
@@ -851,7 +893,7 @@ onMounted(() => {
|
|||||||
.info-name {
|
.info-name {
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #111827;
|
color: var(--foreground);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
line-height: 1.3;
|
line-height: 1.3;
|
||||||
letter-spacing: -0.01em;
|
letter-spacing: -0.01em;
|
||||||
@@ -864,17 +906,26 @@ onMounted(() => {
|
|||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|
||||||
&--blue { background: #EFF6FF; color: #2563EB; }
|
&--blue { background: oklch(0.93 0.03 255); color: oklch(0.45 0.12 255); }
|
||||||
&--emerald { background: #ECFDF5; color: #059669; }
|
&--emerald { background: oklch(0.95 0.03 160); color: oklch(0.45 0.12 160); }
|
||||||
&--violet { background: #F5F3FF; color: #7C3AED; }
|
&--violet { background: oklch(0.95 0.03 290); color: oklch(0.45 0.12 290); }
|
||||||
&--rose { background: #FFF1F2; color: #E11D48; }
|
&--rose { background: oklch(0.95 0.03 10); color: oklch(0.45 0.12 10); }
|
||||||
&--amber { background: #FFFBEB; color: #D97706; }
|
&--amber { background: oklch(0.95 0.08 85); color: oklch(0.50 0.15 85); }
|
||||||
&--cyan { background: #ECFEFF; color: #0891B2; }
|
&--cyan { background: oklch(0.95 0.03 195); color: oklch(0.45 0.10 195); }
|
||||||
|
|
||||||
|
.dark & {
|
||||||
|
&--blue { background: oklch(0.25 0.04 255); color: oklch(0.75 0.10 255); }
|
||||||
|
&--emerald { background: oklch(0.25 0.04 160); color: oklch(0.75 0.10 160); }
|
||||||
|
&--violet { background: oklch(0.25 0.04 290); color: oklch(0.75 0.10 290); }
|
||||||
|
&--rose { background: oklch(0.25 0.04 10); color: oklch(0.75 0.10 10); }
|
||||||
|
&--amber { background: oklch(0.25 0.06 85); color: oklch(0.80 0.12 85); }
|
||||||
|
&--cyan { background: oklch(0.25 0.04 195); color: oklch(0.75 0.08 195); }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-desc {
|
.info-desc {
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: #6B7280;
|
color: var(--muted-foreground);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
@@ -890,8 +941,8 @@ onMounted(() => {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
padding: 12px 16px;
|
padding: 12px 16px;
|
||||||
border-top: 1px solid #F3F4F6;
|
border-top: 1px solid var(--border);
|
||||||
background: #FAFAFA;
|
background: var(--muted);
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transform: translateY(4px);
|
transform: translateY(4px);
|
||||||
transition: all 0.25s ease;
|
transition: all 0.25s ease;
|
||||||
@@ -908,19 +959,19 @@ onMounted(() => {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 5px;
|
gap: 5px;
|
||||||
padding: 6px 12px;
|
padding: 6px 12px;
|
||||||
background: white;
|
background: var(--card);
|
||||||
border: 1px solid #E5E7EB;
|
border: 1px solid var(--border);
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: #6B7280;
|
color: var(--muted-foreground);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: all 0.2s ease;
|
transition: all 0.2s ease;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
border-color: #D1D5DB;
|
border-color: var(--color-gray-400);
|
||||||
background: #F9FAFB;
|
background: var(--accent);
|
||||||
color: #374151;
|
color: var(--foreground);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:active {
|
&:active {
|
||||||
@@ -928,14 +979,14 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
&--primary {
|
&--primary {
|
||||||
background: #111827;
|
background: var(--foreground);
|
||||||
border-color: #111827;
|
border-color: var(--foreground);
|
||||||
color: white;
|
color: var(--background);
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: #1F2937;
|
background: var(--color-gray-700);
|
||||||
border-color: #1F2937;
|
border-color: var(--color-gray-700);
|
||||||
color: white;
|
color: var(--background);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -952,13 +1003,13 @@ onMounted(() => {
|
|||||||
width: 32px;
|
width: 32px;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
border: none;
|
border: none;
|
||||||
background: rgba(255, 255, 255, 0.9);
|
background: var(--card);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
color: var(--color-gray-400);
|
color: var(--muted-foreground);
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
transition: all 0.2s ease;
|
transition: all 0.2s ease;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
@@ -966,10 +1017,10 @@ onMounted(() => {
|
|||||||
transform: scale(0.8);
|
transform: scale(0.8);
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: white;
|
background: var(--accent);
|
||||||
color: #F59E0B;
|
color: var(--warning);
|
||||||
transform: scale(1);
|
transform: scale(1);
|
||||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
box-shadow: var(--shadow-md);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:active {
|
&:active {
|
||||||
@@ -980,12 +1031,16 @@ onMounted(() => {
|
|||||||
&--active {
|
&--active {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
transform: scale(1);
|
transform: scale(1);
|
||||||
color: #F59E0B;
|
color: var(--warning);
|
||||||
background: #FEF3C7;
|
background: oklch(0.95 0.08 85);
|
||||||
|
|
||||||
|
.dark & {
|
||||||
|
background: oklch(0.25 0.06 85);
|
||||||
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: #FDE68A;
|
background: oklch(0.90 0.10 85);
|
||||||
color: #D97706;
|
color: oklch(0.60 0.12 85);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1100,10 +1155,10 @@ onMounted(() => {
|
|||||||
transform: translateX(-50%);
|
transform: translateX(-50%);
|
||||||
width: 320px;
|
width: 320px;
|
||||||
max-width: calc(100vw - 48px);
|
max-width: calc(100vw - 48px);
|
||||||
background: var(--color-bg-card);
|
background: var(--card);
|
||||||
border-radius: var(--radius-lg);
|
border-radius: var(--radius-lg);
|
||||||
box-shadow: 0 12px 32px rgba(0,0,0,0.12), 0 4px 12px rgba(0,0,0,0.08);
|
box-shadow: var(--shadow-xl);
|
||||||
border: 1px solid var(--color-gray-200);
|
border: 1px solid var(--border);
|
||||||
z-index: 1001;
|
z-index: 1001;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
@@ -1184,11 +1239,11 @@ onMounted(() => {
|
|||||||
|
|
||||||
.category-panel .panel-chip--active .panel-chip-name,
|
.category-panel .panel-chip--active .panel-chip-name,
|
||||||
.category-panel .panel-chip--active .panel-chip-count {
|
.category-panel .panel-chip--active .panel-chip-count {
|
||||||
color: white;
|
color: var(--background);
|
||||||
}
|
}
|
||||||
|
|
||||||
.category-panel .panel-chip--active .panel-chip-count {
|
.category-panel .panel-chip--active .panel-chip-count {
|
||||||
background: rgba(255,255,255,0.2);
|
background: oklch(0 0 0 / 0.15);
|
||||||
}
|
}
|
||||||
|
|
||||||
.category-panel .panel-chip-name {
|
.category-panel .panel-chip-name {
|
||||||
|
|||||||
Reference in New Issue
Block a user