App.vue
3.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<template>
<router-view />
</template>
<script setup>
import { useTheme } from '@/composables/useTheme'
useTheme()
</script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
* { margin: 0; padding: 0; box-sizing: border-box; }
/* ═══ Theme Variables ═══ */
:root,
[data-theme="dark"] {
--bg-primary: #0a0e1a;
--bg-secondary: #111827;
--bg-tertiary: #0d1321;
--bg-surface: rgba(255,255,255,0.02);
--bg-surface-hover: rgba(255,255,255,0.04);
--bg-surface-active: rgba(16,185,129,0.1);
--bg-input: rgba(255,255,255,0.04);
--bg-input-focus: rgba(255,255,255,0.06);
--bg-code: #0d1117;
--bg-overlay: rgba(0,0,0,0.2);
--text-primary: #e5e7eb;
--text-secondary: rgba(255,255,255,0.7);
--text-tertiary: rgba(255,255,255,0.5);
--text-muted: rgba(255,255,255,0.35);
--text-faint: rgba(255,255,255,0.2);
--border-primary: rgba(255,255,255,0.06);
--border-active: rgba(16,185,129,0.25);
--accent: #10b981;
--accent-light: #34d399;
--accent-bg: rgba(16,185,129,0.08);
--accent-bg-hover: rgba(16,185,129,0.12);
--msg-user-bg: linear-gradient(135deg,rgba(59,130,246,0.2),rgba(99,102,241,0.15));
--msg-user-border: rgba(59,130,246,0.15);
--msg-assistant-bg: rgba(255,255,255,0.04);
--msg-assistant-border: rgba(255,255,255,0.06);
--avatar-user-bg: rgba(59,130,246,0.15);
--avatar-assistant-bg: rgba(16,185,129,0.15);
--scrollbar-track: transparent;
--scrollbar-thumb: rgba(255,255,255,0.1);
--scrollbar-thumb-hover: rgba(255,255,255,0.2);
--purple-bg: rgba(139,92,246,0.15);
--purple-text: #a78bfa;
--blue-text: #60a5fa;
--cyan-text: #22d3ee;
--yellow-text: #fbbf24;
--green-text: #4ade80;
}
[data-theme="light"] {
--bg-primary: #f8fafc;
--bg-secondary: #f1f5f9;
--bg-tertiary: #e2e8f0;
--bg-surface: rgba(0,0,0,0.02);
--bg-surface-hover: rgba(0,0,0,0.04);
--bg-surface-active: rgba(16,185,129,0.08);
--bg-input: rgba(0,0,0,0.03);
--bg-input-focus: rgba(0,0,0,0.05);
--bg-code: #f1f5f9;
--bg-overlay: rgba(0,0,0,0.04);
--text-primary: #1e293b;
--text-secondary: #334155;
--text-tertiary: #64748b;
--text-muted: #94a3b8;
--text-faint: #cbd5e1;
--border-primary: rgba(0,0,0,0.08);
--border-active: rgba(16,185,129,0.35);
--accent: #059669;
--accent-light: #10b981;
--accent-bg: rgba(16,185,129,0.06);
--accent-bg-hover: rgba(16,185,129,0.1);
--msg-user-bg: linear-gradient(135deg,rgba(59,130,246,0.08),rgba(99,102,241,0.06));
--msg-user-border: rgba(59,130,246,0.12);
--msg-assistant-bg: rgba(0,0,0,0.02);
--msg-assistant-border: rgba(0,0,0,0.06);
--avatar-user-bg: rgba(59,130,246,0.1);
--avatar-assistant-bg: rgba(16,185,129,0.1);
--scrollbar-track: transparent;
--scrollbar-thumb: rgba(0,0,0,0.1);
--scrollbar-thumb-hover: rgba(0,0,0,0.2);
--purple-bg: rgba(139,92,246,0.1);
--purple-text: #7c3aed;
--blue-text: #3b82f6;
--cyan-text: #0891b2;
--yellow-text: #d97706;
--green-text: #16a34a;
}
body {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
-webkit-font-smoothing: antialiased;
background: var(--bg-primary);
color: var(--text-primary);
transition: background 0.3s, color 0.3s;
}
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--scrollbar-track); }
::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--scrollbar-thumb-hover); }
</style>