codexmate 0.0.27 → 0.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/cli/builtin-proxy.js +430 -4
- package/cli/openai-bridge.js +498 -13
- package/cli.js +130 -41
- package/lib/cli-models-utils.js +71 -10
- package/lib/cli-webhook.js +126 -0
- package/package.json +76 -74
- package/plugins/prompt-templates/computed.mjs +1 -1
- package/plugins/prompt-templates/methods.mjs +0 -66
- package/plugins/prompt-templates/overview.mjs +1 -0
- package/web-ui/app.js +21 -16
- package/web-ui/index.html +1 -0
- package/web-ui/logic.codex.mjs +69 -0
- package/web-ui/modules/app.computed.dashboard.mjs +54 -0
- package/web-ui/modules/app.computed.session.mjs +22 -17
- package/web-ui/modules/app.methods.claude-config.mjs +24 -8
- package/web-ui/modules/app.methods.codex-config.mjs +35 -3
- package/web-ui/modules/app.methods.index.mjs +2 -0
- package/web-ui/modules/app.methods.navigation.mjs +21 -3
- package/web-ui/modules/app.methods.providers.mjs +96 -7
- package/web-ui/modules/app.methods.session-actions.mjs +3 -6
- package/web-ui/modules/app.methods.session-browser.mjs +1 -6
- package/web-ui/modules/app.methods.session-trash.mjs +6 -7
- package/web-ui/modules/app.methods.startup-claude.mjs +8 -1
- package/web-ui/modules/app.methods.webhook.mjs +79 -0
- package/web-ui/modules/i18n.dict.mjs +1104 -104
- package/web-ui/modules/i18n.mjs +9 -3
- package/web-ui/modules/provider-url-display.mjs +17 -0
- package/web-ui/partials/index/layout-header.html +25 -0
- package/web-ui/partials/index/modals-basic.html +0 -3
- package/web-ui/partials/index/panel-config-claude.html +10 -3
- package/web-ui/partials/index/panel-config-codex.html +44 -4
- package/web-ui/partials/index/panel-plugins.html +3 -29
- package/web-ui/partials/index/panel-sessions.html +0 -10
- package/web-ui/partials/index/panel-settings.html +93 -177
- package/web-ui/partials/index/panel-trash.html +88 -0
- package/web-ui/session-helpers.mjs +2 -2
- package/web-ui/styles/base-theme.css +47 -34
- package/web-ui/styles/controls-forms.css +27 -28
- package/web-ui/styles/docs-panel.css +63 -39
- package/web-ui/styles/layout-shell.css +69 -46
- package/web-ui/styles/modals-core.css +12 -10
- package/web-ui/styles/navigation-panels.css +36 -35
- package/web-ui/styles/responsive.css +4 -4
- package/web-ui/styles/sessions-list.css +10 -6
- package/web-ui/styles/settings-panel.css +197 -33
- package/web-ui/styles/titles-cards.css +90 -26
- package/web-ui/styles/trash-panel.css +90 -0
- package/web-ui/styles/webhook.css +81 -0
- package/web-ui/styles.css +2 -0
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
选择器 - 用于模型选择
|
|
3
3
|
============================================ */
|
|
4
4
|
.selector-section {
|
|
5
|
-
background:
|
|
6
|
-
border-radius:
|
|
7
|
-
padding: 12px
|
|
5
|
+
background: rgba(255, 255, 255, 0.36);
|
|
6
|
+
border-radius: var(--radius-md);
|
|
7
|
+
padding: 12px;
|
|
8
8
|
margin-bottom: 12px;
|
|
9
|
-
box-shadow:
|
|
10
|
-
border:
|
|
11
|
-
border-top: 1px solid var(--color-border);
|
|
9
|
+
box-shadow: var(--shadow-subtle);
|
|
10
|
+
border: 1px solid var(--color-border-soft);
|
|
12
11
|
display: flex;
|
|
13
12
|
flex-direction: column;
|
|
14
13
|
gap: 6px;
|
|
@@ -125,9 +124,9 @@
|
|
|
125
124
|
min-height: 28px !important;
|
|
126
125
|
padding: 0 10px !important;
|
|
127
126
|
line-height: 1 !important;
|
|
128
|
-
border-radius:
|
|
127
|
+
border-radius: var(--radius-sm) !important;
|
|
129
128
|
border: 1px solid var(--color-border-soft) !important;
|
|
130
|
-
background: rgba(255, 255, 255, 0.
|
|
129
|
+
background: rgba(255, 255, 255, 0.76) !important;
|
|
131
130
|
font-size: 12px !important;
|
|
132
131
|
font-weight: var(--font-weight-secondary) !important;
|
|
133
132
|
color: var(--color-text-secondary) !important;
|
|
@@ -197,12 +196,12 @@
|
|
|
197
196
|
align-items: center;
|
|
198
197
|
justify-content: center;
|
|
199
198
|
transition: all var(--transition-fast) var(--ease-spring);
|
|
200
|
-
box-shadow: 0
|
|
199
|
+
box-shadow: 0 8px 18px rgba(92, 68, 52, 0.12);
|
|
201
200
|
}
|
|
202
201
|
|
|
203
202
|
.btn-icon:hover {
|
|
204
203
|
transform: translateY(-1px) scale(1.05);
|
|
205
|
-
box-shadow: 0
|
|
204
|
+
box-shadow: 0 12px 24px rgba(92, 68, 52, 0.16);
|
|
206
205
|
}
|
|
207
206
|
|
|
208
207
|
.btn-icon:active {
|
|
@@ -214,11 +213,11 @@
|
|
|
214
213
|
min-height: 36px;
|
|
215
214
|
padding: 8px 10px;
|
|
216
215
|
padding-right: 34px;
|
|
217
|
-
border: 1px solid var(--color-border);
|
|
218
|
-
border-radius:
|
|
216
|
+
border: 1px solid var(--color-border-soft);
|
|
217
|
+
border-radius: var(--radius-sm);
|
|
219
218
|
font-size: 13px;
|
|
220
219
|
font-weight: var(--font-weight-body);
|
|
221
|
-
background-color:
|
|
220
|
+
background-color: rgba(255, 255, 255, 0.72);
|
|
222
221
|
color: var(--color-text-primary);
|
|
223
222
|
outline: none;
|
|
224
223
|
cursor: pointer;
|
|
@@ -228,12 +227,12 @@
|
|
|
228
227
|
background-position: right 14px center;
|
|
229
228
|
background-size: 12px;
|
|
230
229
|
transition: all var(--transition-fast) var(--ease-smooth);
|
|
231
|
-
box-shadow:
|
|
230
|
+
box-shadow: var(--shadow-subtle);
|
|
232
231
|
}
|
|
233
232
|
|
|
234
233
|
.model-select:hover {
|
|
235
234
|
border-color: var(--color-border-strong);
|
|
236
|
-
background-color:
|
|
235
|
+
background-color: rgba(255, 255, 255, 0.9);
|
|
237
236
|
}
|
|
238
237
|
|
|
239
238
|
.model-select:focus {
|
|
@@ -246,20 +245,20 @@
|
|
|
246
245
|
width: 100%;
|
|
247
246
|
min-height: 36px;
|
|
248
247
|
padding: 8px 10px;
|
|
249
|
-
border: 1px solid var(--color-border);
|
|
250
|
-
border-radius:
|
|
248
|
+
border: 1px solid var(--color-border-soft);
|
|
249
|
+
border-radius: var(--radius-sm);
|
|
251
250
|
font-size: 13px;
|
|
252
251
|
font-weight: var(--font-weight-body);
|
|
253
|
-
background-color:
|
|
252
|
+
background-color: rgba(255, 255, 255, 0.72);
|
|
254
253
|
color: var(--color-text-primary);
|
|
255
254
|
outline: none;
|
|
256
255
|
transition: all var(--transition-fast) var(--ease-smooth);
|
|
257
|
-
box-shadow:
|
|
256
|
+
box-shadow: var(--shadow-subtle);
|
|
258
257
|
}
|
|
259
258
|
|
|
260
259
|
.model-input:hover {
|
|
261
260
|
border-color: var(--color-border-strong);
|
|
262
|
-
background-color:
|
|
261
|
+
background-color: rgba(255, 255, 255, 0.9);
|
|
263
262
|
}
|
|
264
263
|
|
|
265
264
|
.model-input:focus {
|
|
@@ -300,9 +299,9 @@
|
|
|
300
299
|
width: 100%;
|
|
301
300
|
min-height: 38px;
|
|
302
301
|
padding: 8px 10px;
|
|
303
|
-
border: 1px dashed rgba(
|
|
304
|
-
border-radius:
|
|
305
|
-
background: rgba(255, 255, 255, 0.
|
|
302
|
+
border: 1px dashed rgba(137, 111, 94, 0.28);
|
|
303
|
+
border-radius: var(--radius-md);
|
|
304
|
+
background: rgba(255, 255, 255, 0.42);
|
|
306
305
|
font-size: 13px;
|
|
307
306
|
font-weight: var(--font-weight-secondary);
|
|
308
307
|
color: var(--color-text-tertiary);
|
|
@@ -324,7 +323,7 @@
|
|
|
324
323
|
.btn-add:hover {
|
|
325
324
|
border-color: var(--color-brand);
|
|
326
325
|
color: var(--color-brand);
|
|
327
|
-
background: linear-gradient(to bottom, rgba(
|
|
326
|
+
background: linear-gradient(to bottom, rgba(200, 121, 99, 0.12) 0%, rgba(255, 255, 255, 0.52) 100%);
|
|
328
327
|
transform: translateY(-1px);
|
|
329
328
|
}
|
|
330
329
|
|
|
@@ -345,15 +344,15 @@
|
|
|
345
344
|
.btn-tool {
|
|
346
345
|
min-height: 36px;
|
|
347
346
|
padding: 8px 10px;
|
|
348
|
-
border-radius:
|
|
347
|
+
border-radius: var(--radius-sm);
|
|
349
348
|
border: 1px solid var(--color-border-soft);
|
|
350
|
-
background: rgba(255, 255, 255, 0.
|
|
349
|
+
background: rgba(255, 255, 255, 0.68);
|
|
351
350
|
font-size: 13px;
|
|
352
351
|
font-weight: var(--font-weight-secondary);
|
|
353
352
|
color: var(--color-text-secondary);
|
|
354
353
|
cursor: pointer;
|
|
355
354
|
transition: all var(--transition-fast) var(--ease-spring);
|
|
356
|
-
box-shadow:
|
|
355
|
+
box-shadow: var(--shadow-subtle);
|
|
357
356
|
letter-spacing: -0.01em;
|
|
358
357
|
width: 100%;
|
|
359
358
|
text-align: center;
|
|
@@ -379,7 +378,7 @@
|
|
|
379
378
|
border-color: var(--color-brand);
|
|
380
379
|
color: var(--color-brand);
|
|
381
380
|
transform: translateY(-1px);
|
|
382
|
-
box-shadow: 0
|
|
381
|
+
box-shadow: 0 10px 22px rgba(92, 68, 52, 0.1);
|
|
383
382
|
}
|
|
384
383
|
|
|
385
384
|
.btn-tool:disabled,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
.docs-mode-content {
|
|
2
2
|
display: grid;
|
|
3
3
|
gap: 14px;
|
|
4
|
-
/* CLI Install 是展示型面板:非输入区域不使用 I-beam(text)光标,避免误导为可编辑。 */
|
|
5
4
|
cursor: default;
|
|
6
5
|
}
|
|
7
6
|
|
|
@@ -41,17 +40,19 @@
|
|
|
41
40
|
.docs-toolbar-grid {
|
|
42
41
|
display: grid;
|
|
43
42
|
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
44
|
-
gap:
|
|
43
|
+
gap: 10px;
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
.docs-toolbar-card {
|
|
48
47
|
grid-column: span 4;
|
|
49
48
|
display: grid;
|
|
50
49
|
gap: 8px;
|
|
51
|
-
padding:
|
|
52
|
-
border: 1px solid var(--color-border);
|
|
53
|
-
border-radius:
|
|
54
|
-
background: rgba(255,
|
|
50
|
+
padding: 14px;
|
|
51
|
+
border: 1px solid var(--color-border-soft);
|
|
52
|
+
border-radius: var(--radius-md);
|
|
53
|
+
background: rgba(255, 255, 255, 0.42);
|
|
54
|
+
box-shadow: var(--shadow-subtle);
|
|
55
|
+
backdrop-filter: blur(8px);
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
.docs-toolbar-card-wide {
|
|
@@ -62,15 +63,17 @@
|
|
|
62
63
|
display: grid;
|
|
63
64
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
64
65
|
gap: 10px;
|
|
66
|
+
margin-top: 2px;
|
|
65
67
|
}
|
|
66
68
|
|
|
67
69
|
.docs-summary-item {
|
|
68
70
|
display: grid;
|
|
69
71
|
gap: 4px;
|
|
70
|
-
padding: 12px;
|
|
71
|
-
border: 1px solid var(--color-border);
|
|
72
|
-
border-radius:
|
|
73
|
-
background: rgba(255,
|
|
72
|
+
padding: 12px 14px;
|
|
73
|
+
border: 1px solid var(--color-border-soft);
|
|
74
|
+
border-radius: var(--radius-md);
|
|
75
|
+
background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(255,251,247,0.78));
|
|
76
|
+
box-shadow: var(--shadow-card);
|
|
74
77
|
}
|
|
75
78
|
|
|
76
79
|
.docs-summary-item-wide {
|
|
@@ -78,17 +81,21 @@
|
|
|
78
81
|
}
|
|
79
82
|
|
|
80
83
|
.docs-summary-label {
|
|
81
|
-
font-size:
|
|
84
|
+
font-size: 10px;
|
|
85
|
+
font-weight: 700;
|
|
82
86
|
color: var(--color-text-muted);
|
|
83
|
-
letter-spacing: 0.
|
|
87
|
+
letter-spacing: 0.06em;
|
|
84
88
|
text-transform: uppercase;
|
|
89
|
+
opacity: 0.82;
|
|
85
90
|
}
|
|
86
91
|
|
|
87
92
|
.docs-summary-value {
|
|
88
|
-
font-size:
|
|
93
|
+
font-size: 15px;
|
|
94
|
+
font-weight: 700;
|
|
89
95
|
color: var(--color-text-primary);
|
|
90
|
-
line-height: 1.
|
|
96
|
+
line-height: 1.25;
|
|
91
97
|
word-break: break-word;
|
|
98
|
+
letter-spacing: -0.02em;
|
|
92
99
|
}
|
|
93
100
|
|
|
94
101
|
.docs-install-list {
|
|
@@ -97,12 +104,16 @@
|
|
|
97
104
|
|
|
98
105
|
.docs-install-row {
|
|
99
106
|
align-items: stretch;
|
|
100
|
-
background: rgba(255,
|
|
107
|
+
background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(255,251,247,0.78));
|
|
108
|
+
border: 1px solid var(--color-border-soft);
|
|
109
|
+
border-radius: var(--radius-md);
|
|
110
|
+
padding: 14px;
|
|
111
|
+
box-shadow: var(--shadow-card);
|
|
101
112
|
}
|
|
102
113
|
|
|
103
114
|
.docs-command-head {
|
|
104
115
|
display: grid;
|
|
105
|
-
gap:
|
|
116
|
+
gap: 6px;
|
|
106
117
|
}
|
|
107
118
|
|
|
108
119
|
.docs-command-row {
|
|
@@ -119,34 +130,38 @@
|
|
|
119
130
|
grid-template-columns: 1fr auto;
|
|
120
131
|
align-items: stretch;
|
|
121
132
|
gap: 10px;
|
|
122
|
-
padding: 10px 10px 10px
|
|
123
|
-
border: 1px solid var(--color-border);
|
|
124
|
-
border-radius:
|
|
125
|
-
background: rgba(255,
|
|
133
|
+
padding: 10px 10px 10px 14px;
|
|
134
|
+
border: 1px solid var(--color-border-soft);
|
|
135
|
+
border-radius: var(--radius-sm);
|
|
136
|
+
background: rgba(255,255,255,0.64);
|
|
137
|
+
box-shadow: var(--shadow-subtle);
|
|
126
138
|
}
|
|
127
139
|
|
|
128
140
|
.docs-command-row .install-command {
|
|
129
141
|
min-width: 0;
|
|
130
|
-
padding: 10px
|
|
131
|
-
border-radius:
|
|
132
|
-
background: rgba(18,
|
|
142
|
+
padding: 10px 14px;
|
|
143
|
+
border-radius: var(--radius-sm);
|
|
144
|
+
background: rgba(18,22,35,0.04);
|
|
145
|
+
border: 1px solid rgba(18,22,35,0.05);
|
|
133
146
|
overflow-x: auto;
|
|
134
147
|
white-space: nowrap;
|
|
135
148
|
user-select: text;
|
|
149
|
+
font-size: 13px;
|
|
150
|
+
line-height: 1.5;
|
|
136
151
|
}
|
|
137
152
|
|
|
138
153
|
.docs-command-prefix {
|
|
139
154
|
display: inline-flex;
|
|
140
155
|
align-items: center;
|
|
141
|
-
padding:
|
|
156
|
+
padding: 3px 10px;
|
|
142
157
|
margin-right: 10px;
|
|
143
158
|
border-radius: 999px;
|
|
144
|
-
border: 1px solid rgba(
|
|
145
|
-
background:
|
|
146
|
-
color: var(--color-
|
|
159
|
+
border: 1px solid rgba(200,121,99,0.18);
|
|
160
|
+
background: var(--color-brand-light);
|
|
161
|
+
color: var(--color-brand-dark);
|
|
147
162
|
font-size: 11px;
|
|
148
163
|
font-weight: 700;
|
|
149
|
-
letter-spacing: 0.
|
|
164
|
+
letter-spacing: 0.03em;
|
|
150
165
|
}
|
|
151
166
|
|
|
152
167
|
.docs-command-meta {
|
|
@@ -160,16 +175,23 @@
|
|
|
160
175
|
.docs-meta-pill {
|
|
161
176
|
display: inline-flex;
|
|
162
177
|
align-items: center;
|
|
163
|
-
padding:
|
|
178
|
+
padding: 3px 10px;
|
|
164
179
|
border-radius: 999px;
|
|
165
|
-
border: 1px solid
|
|
166
|
-
background: rgba(255,
|
|
180
|
+
border: 1px solid var(--color-border-soft);
|
|
181
|
+
background: rgba(255,255,255,0.72);
|
|
182
|
+
font-size: 11px;
|
|
183
|
+
font-weight: 600;
|
|
184
|
+
color: var(--color-text-secondary);
|
|
185
|
+
letter-spacing: 0.01em;
|
|
167
186
|
}
|
|
168
187
|
|
|
169
188
|
.docs-copy-btn {
|
|
170
|
-
min-width:
|
|
189
|
+
min-width: 72px;
|
|
171
190
|
min-height: 40px;
|
|
172
191
|
flex: 0 0 auto;
|
|
192
|
+
border-radius: var(--radius-sm);
|
|
193
|
+
font-weight: 600;
|
|
194
|
+
letter-spacing: 0.01em;
|
|
173
195
|
}
|
|
174
196
|
|
|
175
197
|
.docs-help-grid {
|
|
@@ -179,17 +201,19 @@
|
|
|
179
201
|
}
|
|
180
202
|
|
|
181
203
|
.docs-note-card {
|
|
182
|
-
padding:
|
|
183
|
-
border: 1px solid var(--color-border);
|
|
184
|
-
border-radius:
|
|
185
|
-
background: rgba(255,
|
|
204
|
+
padding: 16px;
|
|
205
|
+
border: 1px solid var(--color-border-soft);
|
|
206
|
+
border-radius: var(--radius-md);
|
|
207
|
+
background: linear-gradient(180deg, rgba(255,255,255,0.86), rgba(255,251,247,0.76));
|
|
208
|
+
box-shadow: var(--shadow-card);
|
|
186
209
|
}
|
|
187
210
|
|
|
188
211
|
.docs-note-title {
|
|
189
212
|
font-size: 13px;
|
|
190
213
|
font-weight: 700;
|
|
191
214
|
color: var(--color-text-primary);
|
|
192
|
-
margin-bottom:
|
|
215
|
+
margin-bottom: 10px;
|
|
216
|
+
letter-spacing: -0.02em;
|
|
193
217
|
}
|
|
194
218
|
|
|
195
219
|
.docs-help-list {
|
|
@@ -201,11 +225,11 @@
|
|
|
201
225
|
padding-left: 18px;
|
|
202
226
|
color: var(--color-text-secondary);
|
|
203
227
|
font-size: 13px;
|
|
204
|
-
line-height: 1.
|
|
228
|
+
line-height: 1.6;
|
|
205
229
|
}
|
|
206
230
|
|
|
207
231
|
.docs-static-list li + li {
|
|
208
|
-
margin-top:
|
|
232
|
+
margin-top: 8px;
|
|
209
233
|
}
|
|
210
234
|
|
|
211
235
|
@media (max-width: 1100px) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
============================================ */
|
|
4
4
|
body::before,
|
|
5
5
|
body::after {
|
|
6
|
-
|
|
6
|
+
pointer-events: none;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
/* ============================================
|
|
@@ -34,7 +34,7 @@ body::after {
|
|
|
34
34
|
min-height: 100vh;
|
|
35
35
|
height: 100vh;
|
|
36
36
|
overflow: hidden;
|
|
37
|
-
background:
|
|
37
|
+
background: transparent;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
.app-shell.standalone {
|
|
@@ -48,16 +48,17 @@ body::after {
|
|
|
48
48
|
display: flex;
|
|
49
49
|
flex-direction: column;
|
|
50
50
|
gap: 0;
|
|
51
|
-
padding:
|
|
52
|
-
background:
|
|
53
|
-
|
|
51
|
+
padding: 14px 10px;
|
|
52
|
+
background:
|
|
53
|
+
linear-gradient(180deg, rgba(255, 252, 248, 0.95) 0%, rgba(255, 248, 241, 0.89) 100%);
|
|
54
|
+
border-right: 1px solid rgba(137, 111, 94, 0.10);
|
|
54
55
|
border-radius: 0;
|
|
55
|
-
box-shadow:
|
|
56
|
+
box-shadow: 8px 0 28px rgba(92, 68, 52, 0.05), 1px 0 0 rgba(255, 255, 255, 0.5);
|
|
56
57
|
min-height: 100vh;
|
|
57
58
|
overflow-y: auto;
|
|
58
59
|
scrollbar-width: none;
|
|
59
60
|
-ms-overflow-style: none;
|
|
60
|
-
backdrop-filter:
|
|
61
|
+
backdrop-filter: blur(18px) saturate(130%);
|
|
61
62
|
}
|
|
62
63
|
|
|
63
64
|
.side-rail::-webkit-scrollbar {
|
|
@@ -72,12 +73,12 @@ body::after {
|
|
|
72
73
|
.side-section {
|
|
73
74
|
display: flex;
|
|
74
75
|
flex-direction: column;
|
|
75
|
-
gap:
|
|
76
|
-
padding:
|
|
76
|
+
gap: 3px;
|
|
77
|
+
padding: 8px 4px;
|
|
77
78
|
}
|
|
78
79
|
|
|
79
80
|
.side-section + .side-section {
|
|
80
|
-
border-top: 1px solid
|
|
81
|
+
border-top: 1px solid rgba(137, 111, 94, 0.08);
|
|
81
82
|
}
|
|
82
83
|
|
|
83
84
|
.side-rail-nav {
|
|
@@ -129,8 +130,8 @@ body::after {
|
|
|
129
130
|
}
|
|
130
131
|
|
|
131
132
|
.lang-choice-btn.active {
|
|
132
|
-
border-color: rgba(
|
|
133
|
-
background: rgba(
|
|
133
|
+
border-color: rgba(200, 121, 99, 0.55);
|
|
134
|
+
background: rgba(200, 121, 99, 0.14);
|
|
134
135
|
color: var(--color-brand-dark);
|
|
135
136
|
}
|
|
136
137
|
|
|
@@ -201,7 +202,7 @@ body::after {
|
|
|
201
202
|
}
|
|
202
203
|
|
|
203
204
|
.lang-fab .lang-switch:hover .lang-switch-track {
|
|
204
|
-
border-color: rgba(
|
|
205
|
+
border-color: rgba(200, 121, 99, 0.7);
|
|
205
206
|
}
|
|
206
207
|
|
|
207
208
|
.side-rail-lang {
|
|
@@ -209,10 +210,10 @@ body::after {
|
|
|
209
210
|
bottom: 0;
|
|
210
211
|
z-index: 2;
|
|
211
212
|
margin-top: auto;
|
|
212
|
-
padding:
|
|
213
|
-
background:
|
|
214
|
-
border-top: 1px solid
|
|
215
|
-
backdrop-filter:
|
|
213
|
+
padding: 10px 4px 6px;
|
|
214
|
+
background: linear-gradient(180deg, rgba(255, 248, 241, 0), rgba(255, 248, 241, 0.94) 28%);
|
|
215
|
+
border-top: 1px solid rgba(137, 111, 94, 0.08);
|
|
216
|
+
backdrop-filter: blur(12px);
|
|
216
217
|
display: flex;
|
|
217
218
|
justify-content: center;
|
|
218
219
|
}
|
|
@@ -249,7 +250,7 @@ body::after {
|
|
|
249
250
|
}
|
|
250
251
|
|
|
251
252
|
.lang-switch:hover .lang-switch-track {
|
|
252
|
-
border-color: rgba(
|
|
253
|
+
border-color: rgba(200, 121, 99, 0.6);
|
|
253
254
|
background: rgba(255, 253, 252, 0.92);
|
|
254
255
|
transform: translateY(-1px);
|
|
255
256
|
}
|
|
@@ -297,7 +298,7 @@ body::after {
|
|
|
297
298
|
content: "";
|
|
298
299
|
position: absolute;
|
|
299
300
|
inset: -20px;
|
|
300
|
-
background: radial-gradient(circle at 30% 20%, rgba(
|
|
301
|
+
background: radial-gradient(circle at 30% 20%, rgba(200, 121, 99, 0.18), rgba(200, 121, 99, 0) 55%);
|
|
301
302
|
opacity: 0;
|
|
302
303
|
transform: translateY(10px);
|
|
303
304
|
transition: opacity 240ms var(--ease-smooth), transform 240ms var(--ease-smooth);
|
|
@@ -310,28 +311,29 @@ body::after {
|
|
|
310
311
|
}
|
|
311
312
|
|
|
312
313
|
.side-section-title {
|
|
313
|
-
font-size:
|
|
314
|
+
font-size: 10px;
|
|
314
315
|
font-weight: 700;
|
|
315
316
|
color: var(--color-text-muted);
|
|
316
|
-
letter-spacing: 0.
|
|
317
|
+
letter-spacing: 0.08em;
|
|
317
318
|
text-transform: uppercase;
|
|
318
|
-
padding: 0
|
|
319
|
-
margin-bottom:
|
|
319
|
+
padding: 0 8px;
|
|
320
|
+
margin-bottom: 6px;
|
|
321
|
+
opacity: 0.72;
|
|
320
322
|
}
|
|
321
323
|
|
|
322
324
|
.side-item {
|
|
323
325
|
width: 100%;
|
|
324
326
|
text-align: left;
|
|
325
|
-
padding:
|
|
326
|
-
border-radius:
|
|
327
|
+
padding: 9px 12px 9px 14px;
|
|
328
|
+
border-radius: 12px;
|
|
327
329
|
border: 1px solid transparent;
|
|
328
330
|
background: transparent;
|
|
329
331
|
color: var(--color-text-secondary);
|
|
330
332
|
cursor: pointer;
|
|
331
|
-
transition: border-color
|
|
333
|
+
transition: border-color 180ms var(--ease-out-expo), background-color 180ms var(--ease-out-expo), color 180ms var(--ease-out-expo), box-shadow 180ms var(--ease-out-expo), transform 180ms var(--ease-out-expo);
|
|
332
334
|
display: flex;
|
|
333
335
|
flex-direction: column;
|
|
334
|
-
gap:
|
|
336
|
+
gap: 3px;
|
|
335
337
|
box-shadow: none;
|
|
336
338
|
position: relative;
|
|
337
339
|
}
|
|
@@ -339,28 +341,28 @@ body::after {
|
|
|
339
341
|
.side-item::before {
|
|
340
342
|
content: "";
|
|
341
343
|
position: absolute;
|
|
342
|
-
left:
|
|
344
|
+
left: 2px;
|
|
343
345
|
top: 50%;
|
|
344
346
|
transform: translateY(-50%);
|
|
345
347
|
width: 3px;
|
|
346
|
-
height:
|
|
347
|
-
border-radius: 0
|
|
348
|
+
height: 18px;
|
|
349
|
+
border-radius: 0 3px 3px 0;
|
|
348
350
|
background: transparent;
|
|
349
|
-
transition: background-color var(--transition-fast) var(--ease-smooth);
|
|
350
|
-
display: none;
|
|
351
351
|
}
|
|
352
352
|
|
|
353
353
|
.side-item:hover {
|
|
354
|
-
background:
|
|
354
|
+
background: rgba(255, 255, 255, 0.64);
|
|
355
355
|
color: var(--color-text-primary);
|
|
356
|
+
transform: translateX(2px);
|
|
356
357
|
}
|
|
357
358
|
|
|
358
359
|
.side-item.active,
|
|
359
360
|
.side-item.nav-intent-active {
|
|
360
|
-
border-color:
|
|
361
|
-
background:
|
|
361
|
+
border-color: rgba(200, 121, 99, 0.22);
|
|
362
|
+
background:
|
|
363
|
+
linear-gradient(135deg, rgba(255, 255, 255, 0.86), rgba(200, 121, 99, 0.10));
|
|
362
364
|
color: var(--color-brand-dark);
|
|
363
|
-
box-shadow:
|
|
365
|
+
box-shadow: 0 8px 20px rgba(92, 68, 52, 0.06);
|
|
364
366
|
}
|
|
365
367
|
|
|
366
368
|
.side-item.nav-intent-inactive,
|
|
@@ -385,6 +387,7 @@ body::after {
|
|
|
385
387
|
font-size: 13px;
|
|
386
388
|
font-weight: 600;
|
|
387
389
|
letter-spacing: -0.01em;
|
|
390
|
+
line-height: 1.25;
|
|
388
391
|
}
|
|
389
392
|
|
|
390
393
|
.side-item-meta {
|
|
@@ -421,8 +424,8 @@ body::after {
|
|
|
421
424
|
align-items: flex-start;
|
|
422
425
|
gap: 10px;
|
|
423
426
|
margin-bottom: 0;
|
|
424
|
-
padding:
|
|
425
|
-
border-bottom: 1px solid
|
|
427
|
+
padding: 14px 10px 16px;
|
|
428
|
+
border-bottom: 1px solid rgba(137, 111, 94, 0.10);
|
|
426
429
|
}
|
|
427
430
|
|
|
428
431
|
.brand-head {
|
|
@@ -434,10 +437,12 @@ body::after {
|
|
|
434
437
|
.brand-logo {
|
|
435
438
|
width: 38px;
|
|
436
439
|
height: 38px;
|
|
437
|
-
border-radius:
|
|
440
|
+
border-radius: 13px;
|
|
438
441
|
object-fit: cover;
|
|
439
442
|
flex-shrink: 0;
|
|
440
|
-
box-shadow:
|
|
443
|
+
box-shadow:
|
|
444
|
+
0 8px 20px rgba(92, 68, 52, 0.10),
|
|
445
|
+
0 0 0 1px rgba(200, 121, 99, 0.08);
|
|
441
446
|
}
|
|
442
447
|
|
|
443
448
|
.brand-copy {
|
|
@@ -465,10 +470,11 @@ body::after {
|
|
|
465
470
|
|
|
466
471
|
.brand-title {
|
|
467
472
|
font-size: 18px;
|
|
468
|
-
line-height: 1.
|
|
473
|
+
line-height: 1.15;
|
|
469
474
|
font-family: var(--font-family-display);
|
|
470
475
|
color: var(--color-text-primary);
|
|
471
476
|
letter-spacing: -0.02em;
|
|
477
|
+
font-weight: 700;
|
|
472
478
|
}
|
|
473
479
|
|
|
474
480
|
.github-badge {
|
|
@@ -497,10 +503,10 @@ body::after {
|
|
|
497
503
|
justify-content: flex-start;
|
|
498
504
|
gap: 8px;
|
|
499
505
|
padding: 8px 10px;
|
|
500
|
-
border-radius:
|
|
501
|
-
background:
|
|
502
|
-
border: 1px solid
|
|
503
|
-
box-shadow:
|
|
506
|
+
border-radius: 13px;
|
|
507
|
+
background: rgba(255, 255, 255, 0.62);
|
|
508
|
+
border: 1px solid rgba(137, 111, 94, 0.15);
|
|
509
|
+
box-shadow: var(--shadow-subtle);
|
|
504
510
|
}
|
|
505
511
|
|
|
506
512
|
.github-badge:hover {
|
|
@@ -511,7 +517,7 @@ body::after {
|
|
|
511
517
|
}
|
|
512
518
|
|
|
513
519
|
.github-badge:focus-visible {
|
|
514
|
-
outline: 3px solid rgba(
|
|
520
|
+
outline: 3px solid rgba(200, 121, 99, 0.18);
|
|
515
521
|
outline-offset: 2px;
|
|
516
522
|
border-color: var(--color-brand);
|
|
517
523
|
color: var(--color-text-primary);
|
|
@@ -601,3 +607,20 @@ body::after {
|
|
|
601
607
|
.github-badge-rail:hover {
|
|
602
608
|
border-color: var(--color-border-strong);
|
|
603
609
|
}
|
|
610
|
+
|
|
611
|
+
/* 侧边栏计数徽标 */
|
|
612
|
+
.side-item-badge {
|
|
613
|
+
display: inline-flex;
|
|
614
|
+
align-items: center;
|
|
615
|
+
justify-content: center;
|
|
616
|
+
min-width: 20px;
|
|
617
|
+
height: 20px;
|
|
618
|
+
padding: 0 6px;
|
|
619
|
+
border-radius: 10px;
|
|
620
|
+
background: var(--color-brand);
|
|
621
|
+
color: #fff;
|
|
622
|
+
font-size: 11px;
|
|
623
|
+
font-weight: 700;
|
|
624
|
+
line-height: 1;
|
|
625
|
+
box-shadow: 0 2px 6px rgba(200, 121, 99, 0.28);
|
|
626
|
+
}
|