huhaa-myskills 0.2.13 → 0.3.0

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.
@@ -12,354 +12,1001 @@ html, body, #app { height: 100%; margin: 0; }
12
12
  button, input { font: inherit; }
13
13
  button { cursor: pointer; }
14
14
 
15
+ /* MAIN SHELL - 三栏固定布局 */
15
16
  .shell {
16
17
  height: 100vh;
17
18
  display: grid;
18
- grid-template-columns: 300px 1fr;
19
+ grid-template-columns: 100px 1fr 400px;
20
+ grid-template-rows: 60px 1fr;
19
21
  overflow: hidden;
22
+ gap: 0;
20
23
  }
21
24
 
25
+ /* LEFT SIDEBAR - 筛选项(可拖拽调整宽度、可折叠) */
22
26
  .sidebar {
23
- background: #111827;
24
- color: #e5e7eb;
25
- padding: 22px 16px;
26
- overflow: auto;
27
- border-right: 1px solid rgba(255,255,255,0.08);
27
+ grid-column: 1 / 2;
28
+ grid-row: 2 / 3;
29
+ background: #f8fafc;
30
+ border-right: 1px solid #e5e7eb;
31
+ overflow: hidden;
32
+ padding: 0;
33
+ position: relative;
34
+ user-select: none;
35
+ display: flex;
36
+ flex-direction: column;
28
37
  }
29
38
 
30
- .brand-block { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
31
- .logo {
32
- width: 42px; height: 42px; border-radius: 12px;
33
- display: grid; place-items: center;
34
- background: linear-gradient(135deg, #7c3aed, #2563eb);
35
- font-weight: 900; font-size: 22px;
39
+ .sidebar-toggle {
40
+ flex: 0 0 auto;
41
+ height: 40px;
42
+ display: flex;
43
+ align-items: center;
44
+ justify-content: center;
45
+ border-bottom: 1px solid #e5e7eb;
46
+ cursor: pointer;
47
+ background: white;
48
+ font-size: 14px;
49
+ color: #6b7280;
50
+ transition: all 0.2s ease;
51
+ padding: 0 4px;
36
52
  }
37
- .brand-block h1 { margin: 0; font-size: 18px; }
38
- .brand-block p { margin: 2px 0 0; color: #9ca3af; font-size: 12px; }
39
53
 
40
- .lang-switch {
41
- display: flex; align-items: center; gap: 6px;
42
- margin: -6px 0 16px;
43
- color: #9ca3af; font-size: 12px;
54
+ .sidebar-toggle:hover {
55
+ background: #f3f4f6;
56
+ color: #374151;
44
57
  }
45
- .lang-switch button {
46
- border: 1px solid rgba(255,255,255,0.12);
47
- background: rgba(255,255,255,0.04);
48
- color: #d1d5db;
49
- border-radius: 999px;
50
- padding: 3px 8px;
58
+
59
+ .sidebar.collapsed .sidebar-toggle {
60
+ justify-content: center;
61
+ padding: 0;
51
62
  }
52
- .lang-switch button.active {
53
- background: #eef2ff;
54
- color: #3730a3;
55
- border-color: #eef2ff;
63
+
64
+ .sidebar-content {
65
+ flex: 1;
66
+ overflow-y: auto;
67
+ overflow-x: hidden;
68
+ padding: 8px;
56
69
  }
57
70
 
58
- .stats-card {
59
- background: rgba(255,255,255,0.06);
60
- border: 1px solid rgba(255,255,255,0.08);
61
- border-radius: 14px;
62
- padding: 12px;
63
- margin-bottom: 14px;
71
+ .filter-compact {
72
+ display: flex;
73
+ flex-direction: column;
74
+ gap: 8px;
64
75
  }
65
- .stat-main { font-size: 28px; line-height: 1; font-weight: 800; }
66
- .stat-label { color: #9ca3af; font-size: 11px; margin-bottom: 10px; }
67
- .source-line { display: flex; justify-content: space-between; color: #cbd5e1; font-size: 12px; padding: 2px 0; }
68
76
 
69
- .selected-editor-card {
70
- display: flex; align-items: center; justify-content: space-between; gap: 10px;
71
- margin: 0 0 12px;
72
- padding: 10px;
73
- border: 1px solid rgba(167,139,250,0.42);
74
- background: linear-gradient(135deg, rgba(124,58,237,0.26), rgba(37,99,235,0.18));
75
- border-radius: 14px;
76
- box-shadow: inset 0 1px 0 rgba(255,255,255,0.08);
77
- }
78
- .selected-editor-card span { display: block; color: #c4b5fd; font-size: 10px; margin-bottom: 2px; }
79
- .selected-editor-card strong { color: #fff; font-size: 13px; }
80
- .selected-editor-card button {
81
- width: 26px; height: 26px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.18);
82
- background: rgba(255,255,255,0.09); color: #fff; font-size: 16px; line-height: 1;
83
- }
84
-
85
- .filter-section { margin-top: 14px; }
86
- .nav-section { padding-top: 2px; }
87
- .section-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
88
- .section-head h2 { margin: 0; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #9ca3af; }
89
- .section-head small { color: #6b7280; font-size: 10px; }
90
- .scroll-small { max-height: 280px; overflow: auto; padding-right: 4px; }
91
-
92
- .pill {
93
- width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px;
94
- padding: 7px 10px; margin: 3px 0;
95
- border: 1px solid rgba(255,255,255,0.06); border-radius: 11px;
96
- color: #d1d5db; background: transparent; text-align: left;
97
- }
98
- .pill span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
99
- .pill b { min-width: 24px; text-align: center; color: #9ca3af; font-weight: 700; background: rgba(255,255,255,0.06); border-radius: 999px; padding: 1px 6px; font-size: 11px; }
100
- .pill:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.12); }
101
- .pill.active { color: #fff; background: rgba(124,58,237,0.28); border-color: rgba(167,139,250,0.52); box-shadow: 0 0 0 2px rgba(124,58,237,0.12); }
102
- .pill.active b { color: #ede9fe; background: rgba(255,255,255,0.12); }
103
-
104
- .main { overflow: hidden; display: flex; flex-direction: column; background: #f3f5fa; }
77
+ .filter-item {
78
+ display: flex;
79
+ flex-direction: column;
80
+ gap: 4px;
81
+ font-size: 11px;
82
+ }
83
+
84
+ .filter-item span {
85
+ color: #6b7280;
86
+ font-weight: 600;
87
+ padding: 0 4px;
88
+ }
89
+
90
+ .filter-select-compact {
91
+ padding: 6px 4px;
92
+ border: 1px solid #d1d5db;
93
+ border-radius: 4px;
94
+ background: white;
95
+ color: #374151;
96
+ font-size: 11px;
97
+ cursor: pointer;
98
+ }
99
+
100
+ .filter-select-compact:hover {
101
+ border-color: #9ca3af;
102
+ }
103
+
104
+ .filter-select-compact:focus {
105
+ outline: none;
106
+ border-color: #8b5cf6;
107
+ box-shadow: 0 0 0 2px rgba(139,92,246,0.1);
108
+ }
109
+
110
+ /* 侧栏拖拽把手 */
111
+ .sidebar-resize-handle {
112
+ position: absolute;
113
+ right: 0;
114
+ top: 0;
115
+ bottom: 0;
116
+ width: 4px;
117
+ background: transparent;
118
+ cursor: col-resize;
119
+ transition: background 0.2s;
120
+ }
121
+
122
+ .sidebar-resize-handle:hover {
123
+ background: #8b5cf6;
124
+ }
125
+
126
+ /* TOPBAR */
105
127
  .topbar {
106
- flex: 0 0 auto;
107
- padding: 14px 18px 12px;
128
+ grid-column: 1 / 4;
129
+ grid-row: 1 / 2;
130
+ padding: 10px 16px;
108
131
  background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(248,250,252,0.92));
109
132
  backdrop-filter: blur(12px);
110
133
  border-bottom: 1px solid #d9dee8;
134
+ display: flex;
135
+ align-items: center;
136
+ gap: 12px;
137
+ height: 60px;
111
138
  }
112
- .toolbar-card {
113
- display: grid;
139
+
140
+ .topbar-left {
141
+ display: flex;
142
+ align-items: center;
114
143
  gap: 10px;
115
- padding: 12px;
116
- background: rgba(255,255,255,0.92);
117
- border: 1px solid rgba(209,213,219,0.78);
118
- border-radius: 18px;
119
- box-shadow: 0 10px 30px rgba(15,23,42,0.07);
144
+ flex: 1;
145
+ min-width: 0;
120
146
  }
121
- .toolbar-main { display: grid; grid-template-columns: minmax(260px, 1fr) auto auto; gap: 10px; align-items: center; }
147
+
122
148
  .search-box {
123
- min-width: 0;
124
- display: flex; align-items: center; gap: 9px;
149
+ display: flex;
150
+ align-items: center;
151
+ gap: 9px;
125
152
  padding: 0 13px;
126
153
  border: 1px solid #d4dbe8;
127
154
  border-radius: 14px;
128
155
  background: #f8fafc;
129
156
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
157
+ min-width: 0;
158
+ flex: 1;
130
159
  }
131
- .search-icon { color: #7c3aed; font-size: 18px; line-height: 1; }
160
+
161
+ .search-icon {
162
+ color: #7c3aed;
163
+ font-size: 18px;
164
+ line-height: 1;
165
+ flex-shrink: 0;
166
+ }
167
+
132
168
  .search-box input {
133
- width: 100%; height: 44px; padding: 0; border: 0; outline: none; background: transparent; color: #111827;
169
+ width: 100%;
170
+ height: 40px;
171
+ padding: 0;
172
+ border: 0;
173
+ outline: none;
174
+ background: transparent;
175
+ color: #111827;
176
+ font-size: 14px;
134
177
  }
135
- .search-box:focus-within { border-color: #8b5cf6; background: #fff; box-shadow: 0 0 0 4px rgba(124,58,237,.11); }
178
+
179
+ .search-box input::placeholder {
180
+ color: #9ca3af;
181
+ }
182
+
183
+ .search-box:focus-within {
184
+ border-color: #8b5cf6;
185
+ background: #fff;
186
+ box-shadow: 0 0 0 4px rgba(124,58,237,.11);
187
+ }
188
+
189
+ .topbar-right {
190
+ display: flex;
191
+ gap: 8px;
192
+ flex-shrink: 0;
193
+ }
194
+
136
195
  .btn {
137
- height: 44px;
196
+ height: 40px;
138
197
  border: 0;
139
- border-radius: 14px;
140
- padding: 0 16px;
141
- font-weight: 700;
198
+ border-radius: 12px;
199
+ padding: 0 14px;
200
+ font-weight: 600;
201
+ font-size: 13px;
142
202
  color: #374151;
143
203
  background: #eef2ff;
144
204
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
205
+ cursor: pointer;
206
+ white-space: nowrap;
145
207
  }
146
- .btn:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(15,23,42,0.10); }
147
- .btn:disabled { opacity: .58; cursor: wait; transform: none; box-shadow: none; }
148
- .btn.soft { background: #f1f5f9; color: #475569; }
149
- .btn.primary { color: #fff; background: linear-gradient(135deg, #7c3aed, #2563eb); box-shadow: 0 10px 20px rgba(79,70,229,0.18); }
150
- .toolbar-facets { display: grid; grid-template-columns: repeat(5, minmax(120px, 1fr)); gap: 8px; }
151
- .facet {
152
- min-width: 0;
153
- display: flex; align-items: center; gap: 8px;
154
- padding: 7px 9px;
155
- border: 1px solid #e2e8f0;
156
- border-radius: 13px;
157
- background: #f8fafc;
208
+
209
+ .btn:hover {
210
+ transform: translateY(-1px);
211
+ box-shadow: 0 8px 18px rgba(15,23,42,0.10);
158
212
  }
159
- .facet span { flex: 0 0 auto; color: #64748b; font-size: 11px; font-weight: 800; letter-spacing: .04em; }
160
- .facet select {
161
- min-width: 0; width: 100%;
162
- border: 0; outline: 0;
163
- background: transparent;
164
- color: #111827;
165
- font-size: 13px;
213
+
214
+ .btn:disabled {
215
+ opacity: .58;
216
+ cursor: wait;
217
+ transform: none;
218
+ box-shadow: none;
166
219
  }
167
- .facet:focus-within { background: #fff; border-color: #a78bfa; box-shadow: 0 0 0 3px rgba(124,58,237,.10); }
168
- .toolbar-status { display: flex; align-items: center; gap: 8px; min-width: 0; color: #64748b; font-size: 12px; }
169
- .filter-chip {
170
- flex: 0 0 auto;
171
- display: inline-flex; align-items: center;
172
- min-height: 24px;
173
- padding: 4px 9px;
174
- border-radius: 999px;
220
+
221
+ .btn.soft {
175
222
  background: #f1f5f9;
176
- color: #64748b;
177
- font-weight: 800;
178
- }
179
- .filter-chip.active { background: #ede9fe; color: #5b21b6; }
180
- .active-filter { flex: 1; min-width: 0; color: #64748b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
181
- .active-chip-row { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
182
- .active-chip {
183
- max-width: 240px;
184
- display: inline-flex; align-items: center; gap: 5px;
185
- border: 0;
186
- border-radius: 999px;
187
- padding: 4px 8px;
188
223
  color: #475569;
189
- background: #fff;
190
- box-shadow: inset 0 0 0 1px #dbe3ef;
191
- font-size: 12px;
192
224
  }
193
- .active-chip span { color: #7c3aed; font-weight: 800; }
194
- .active-chip strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
195
- .active-chip b { color: #94a3b8; font-size: 13px; }
196
- .active-chip:hover { color: #5b21b6; box-shadow: inset 0 0 0 1px #a78bfa; background: #faf5ff; }
197
- .reload-state { flex: 0 0 auto; max-width: 190px; color: #94a3b8; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
198
225
 
199
- .content { flex: 1; min-height: 0; display: grid; grid-template-columns: 420px 1fr; gap: 0; }
200
- .list-panel { overflow: auto; padding: 14px; border-right: 1px solid #d9dee8; }
201
- .list-head { display: flex; gap: 10px; align-items: center; justify-content: flex-start; color: #6b7280; margin: 0 0 10px 4px; }
202
- .list-head > div:last-child { margin-left: auto; }
226
+ .btn.primary {
227
+ color: #fff;
228
+ background: linear-gradient(135deg, #7c3aed, #2563eb);
229
+ box-shadow: 0 10px 20px rgba(79,70,229,0.18);
230
+ }
231
+
232
+ /* MAIN CONTENT - 中间列表 */
233
+ .main {
234
+ grid-column: 2 / 3;
235
+ grid-row: 1 / 3;
236
+ overflow: hidden;
237
+ display: flex;
238
+ flex-direction: column;
239
+ background: #f3f5fa;
240
+ }
241
+
242
+ .content-wrapper {
243
+ flex: 1;
244
+ overflow: hidden;
245
+ display: flex;
246
+ flex-direction: column;
247
+ min-height: 0;
248
+ }
249
+
250
+ .error, .loading {
251
+ padding: 16px;
252
+ text-align: center;
253
+ font-size: 14px;
254
+ }
255
+
256
+ .error {
257
+ color: #dc2626;
258
+ background: #fee2e2;
259
+ }
260
+
261
+ .loading {
262
+ color: #7c3aed;
263
+ background: #f3f4f6;
264
+ }
265
+
266
+ /* LIST PANEL */
267
+ .list-panel {
268
+ flex: 1;
269
+ overflow-y: auto;
270
+ display: flex;
271
+ flex-direction: column;
272
+ border-right: 1px solid #e5e7eb;
273
+ }
274
+
275
+ .list-head {
276
+ flex: 0 0 auto;
277
+ padding: 12px 16px;
278
+ display: flex;
279
+ align-items: center;
280
+ justify-content: space-between;
281
+ gap: 16px;
282
+ background: white;
283
+ border-bottom: 1px solid #e5e7eb;
284
+ }
203
285
 
204
286
  .list-view-label {
205
287
  font-weight: 600;
288
+ color: #111827;
289
+ min-width: 80px;
290
+ }
291
+
292
+ .list-head > div:last-child {
293
+ display: flex;
294
+ align-items: center;
295
+ gap: 6px;
296
+ color: #6b7280;
297
+ font-size: 13px;
298
+ }
299
+
300
+ .list-head strong {
206
301
  color: #111827;
207
302
  font-size: 14px;
208
- min-width: 60px;
209
303
  }
210
- .list-head strong { color: #111827; font-size: 20px; margin-right: 4px; }
211
304
 
212
- .list-view-controls {
305
+ /* SKILL CARDS */
306
+ .skill-card {
307
+ width: 100%;
308
+ padding: 12px 16px;
309
+ border: 0;
310
+ border-bottom: 1px solid #e5e7eb;
311
+ background: white;
312
+ text-align: left;
313
+ cursor: pointer;
314
+ transition: background 0.2s ease;
315
+ font-size: 13px;
316
+ }
317
+
318
+ .skill-card:hover {
319
+ background: #f9fafb;
320
+ }
321
+
322
+ .skill-card.selected {
323
+ background: #f0f9ff;
324
+ border-left: 3px solid #0284c7;
325
+ padding-left: 13px;
326
+ }
327
+
328
+ .skill-title {
329
+ display: flex;
330
+ align-items: center;
331
+ gap: 8px;
332
+ margin-bottom: 6px;
333
+ }
334
+
335
+ .src {
336
+ display: inline-block;
337
+ padding: 2px 6px;
338
+ border-radius: 4px;
339
+ font-size: 10px;
340
+ font-weight: 600;
341
+ background: #e0e7ff;
342
+ color: #3730a3;
343
+ flex-shrink: 0;
344
+ }
345
+
346
+ .skill-title strong {
347
+ color: #111827;
348
+ font-weight: 600;
349
+ flex: 1;
350
+ overflow: hidden;
351
+ text-overflow: ellipsis;
352
+ white-space: nowrap;
353
+ }
354
+
355
+ .skill-chipline {
356
+ display: flex;
357
+ gap: 6px;
358
+ margin-bottom: 4px;
359
+ font-size: 12px;
360
+ }
361
+
362
+ .skill-chipline span {
363
+ padding: 2px 6px;
364
+ border-radius: 3px;
365
+ background: #f3f4f6;
366
+ color: #6b7280;
367
+ }
368
+
369
+ .skill-meta {
370
+ font-size: 12px;
371
+ color: #9ca3af;
372
+ margin-bottom: 6px;
373
+ }
374
+
375
+ .skill-card p {
376
+ margin: 0;
377
+ color: #6b7280;
378
+ font-size: 12px;
379
+ line-height: 1.4;
380
+ display: -webkit-box;
381
+ -webkit-line-clamp: 2;
382
+ -webkit-box-orient: vertical;
383
+ overflow: hidden;
384
+ }
385
+
386
+ mark {
387
+ background: #fef3c7;
388
+ padding: 2px 0;
389
+ border-radius: 2px;
390
+ }
391
+
392
+ /* DETAIL PANEL - 右侧固定面板(三栏布局,不是浮层) */
393
+ .detail-panel-fixed {
394
+ grid-column: 3 / 4;
395
+ grid-row: 1 / 3;
396
+ background: white;
397
+ border-left: 1px solid #e5e7eb;
398
+ overflow: hidden;
399
+ display: flex;
400
+ flex-direction: column;
401
+ position: relative;
402
+ }
403
+
404
+ .detail-close-btn {
405
+ flex: 0 0 auto;
406
+ padding: 12px 16px;
407
+ border-bottom: 1px solid #e5e7eb;
408
+ display: flex;
409
+ justify-content: space-between;
410
+ align-items: center;
411
+ }
412
+
413
+ .detail-close-btn h3 {
414
+ margin: 0;
415
+ font-size: 14px;
416
+ font-weight: 600;
417
+ }
418
+
419
+ .detail-close-btn button {
420
+ padding: 6px 12px;
421
+ border: 1px solid #d1d5db;
422
+ border-radius: 6px;
423
+ background: white;
424
+ color: #6b7280;
425
+ font-size: 12px;
426
+ cursor: pointer;
427
+ transition: all 0.2s ease;
428
+ }
429
+
430
+ .detail-close-btn button:hover {
431
+ background: #f3f4f6;
432
+ color: #374151;
433
+ }
434
+
435
+ .detail-head {
436
+ flex: 0 0 auto;
437
+ padding: 16px;
438
+ border-bottom: 1px solid #e5e7eb;
439
+ }
440
+
441
+ .detail-head > div > div:first-child {
442
+ margin-bottom: 8px;
443
+ }
444
+
445
+ .detail-kicker {
446
+ display: flex;
447
+ gap: 6px;
448
+ align-items: center;
449
+ font-size: 11px;
450
+ margin-bottom: 4px;
451
+ }
452
+
453
+ .detail-kicker span {
454
+ padding: 2px 6px;
455
+ border-radius: 4px;
456
+ background: #f3f4f6;
457
+ color: #6b7280;
458
+ }
459
+
460
+ .detail-kicker .src {
461
+ background: none;
462
+ font-weight: 600;
463
+ }
464
+
465
+ .detail-head h2 {
466
+ margin: 0;
467
+ font-size: 18px;
468
+ margin-bottom: 8px;
469
+ }
470
+
471
+ .badge-row {
213
472
  display: flex;
214
473
  gap: 4px;
215
- border: 1px solid #d9dee8;
216
- background: #fff;
474
+ margin-bottom: 8px;
475
+ flex-wrap: wrap;
476
+ }
477
+
478
+ .badge {
479
+ display: inline-block;
480
+ padding: 2px 8px;
481
+ border-radius: 4px;
482
+ font-size: 11px;
483
+ font-weight: 600;
484
+ background: #e0e7ff;
485
+ color: #3730a3;
486
+ }
487
+
488
+ .badge.danger {
489
+ background: #fee2e2;
490
+ color: #b91c1c;
491
+ }
492
+
493
+ .badge.warn {
494
+ background: #fef3c7;
495
+ color: #b45309;
496
+ }
497
+
498
+ .detail-head p {
499
+ margin: 0;
500
+ font-size: 13px;
501
+ color: #4b5563;
502
+ line-height: 1.5;
503
+ }
504
+
505
+ .actions {
506
+ flex: 0 0 auto;
507
+ padding: 12px 16px;
508
+ border-bottom: 1px solid #e5e7eb;
509
+ display: grid;
510
+ grid-template-columns: repeat(2, 1fr);
511
+ gap: 6px;
512
+ }
513
+
514
+ .action-btn {
515
+ padding: 8px 12px;
516
+ font-size: 12px;
517
+ border: 1px solid #d1d5db;
217
518
  border-radius: 8px;
218
- padding: 2px;
519
+ background: white;
520
+ color: #374151;
521
+ cursor: pointer;
522
+ transition: all 0.2s ease;
523
+ white-space: nowrap;
219
524
  }
220
525
 
221
- .view-btn {
222
- border: none;
223
- background: transparent;
526
+ .action-btn:hover {
527
+ background: #f9fafb;
528
+ border-color: #9ca3af;
529
+ }
530
+
531
+ .notice {
532
+ flex: 0 0 auto;
533
+ padding: 8px 16px;
534
+ background: #fef3c7;
535
+ border-bottom: 1px solid #fcd34d;
536
+ font-size: 12px;
537
+ color: #92400e;
538
+ }
539
+
540
+ .detail-scroll {
541
+ flex: 1 1 auto;
542
+ overflow-y: auto;
543
+ padding: 16px;
544
+ }
545
+
546
+ .usage-card {
547
+ margin-bottom: 24px;
548
+ }
549
+
550
+ .usage-head {
551
+ margin-bottom: 12px;
552
+ }
553
+
554
+ .usage-head span {
555
+ display: block;
556
+ font-size: 11px;
557
+ color: #9ca3af;
558
+ text-transform: uppercase;
559
+ letter-spacing: 0.08em;
560
+ margin-bottom: 4px;
561
+ }
562
+
563
+ .usage-head h3 {
564
+ margin: 0;
565
+ font-size: 14px;
566
+ font-weight: 600;
567
+ }
568
+
569
+ .usage-prompt {
570
+ margin-bottom: 12px;
571
+ padding: 10px 12px;
572
+ background: #f3f4f6;
573
+ border-radius: 8px;
574
+ border-left: 3px solid #8b5cf6;
575
+ }
576
+
577
+ .usage-prompt code {
578
+ font-size: 11px;
579
+ color: #374151;
580
+ word-break: break-word;
581
+ }
582
+
583
+ .usage-grid {
584
+ display: grid;
585
+ grid-template-columns: 1fr 1fr;
586
+ gap: 8px;
587
+ margin-bottom: 12px;
588
+ }
589
+
590
+ .usage-grid > div {
591
+ padding: 8px 10px;
592
+ background: #f9fafb;
593
+ border-radius: 6px;
594
+ }
595
+
596
+ .usage-grid strong {
597
+ display: block;
598
+ font-size: 11px;
224
599
  color: #6b7280;
225
- padding: 5px 12px;
600
+ margin-bottom: 4px;
601
+ }
602
+
603
+ .usage-grid p {
604
+ margin: 0;
605
+ font-size: 12px;
606
+ color: #374151;
607
+ line-height: 1.4;
608
+ }
609
+
610
+ .usage-block {
611
+ margin-bottom: 12px;
612
+ }
613
+
614
+ .usage-block strong {
615
+ display: block;
616
+ font-size: 12px;
617
+ margin-bottom: 6px;
618
+ }
619
+
620
+ .tag {
621
+ display: inline-block;
622
+ padding: 3px 8px;
623
+ margin: 2px 4px 2px 0;
624
+ border-radius: 4px;
625
+ background: #e0e7ff;
626
+ color: #3730a3;
627
+ font-size: 11px;
628
+ }
629
+
630
+ .param-table {
631
+ display: grid;
632
+ gap: 8px;
633
+ font-size: 12px;
634
+ }
635
+
636
+ .param-table > div {
637
+ padding: 8px;
638
+ background: #f9fafb;
226
639
  border-radius: 6px;
640
+ }
641
+
642
+ .param-table code {
643
+ display: block;
644
+ font-size: 11px;
645
+ color: #dc2626;
646
+ margin-bottom: 2px;
647
+ }
648
+
649
+ .param-table b {
650
+ display: inline-block;
651
+ padding: 1px 4px;
652
+ background: #fef3c7;
653
+ color: #b45309;
654
+ border-radius: 2px;
655
+ font-size: 10px;
656
+ margin-left: 4px;
657
+ }
658
+
659
+ .usage-link {
660
+ display: block;
661
+ padding: 6px 0;
662
+ font-size: 12px;
663
+ color: #0ea5e9;
664
+ text-decoration: none;
665
+ border-bottom: 1px solid #e0e7ff;
666
+ word-break: break-word;
667
+ }
668
+
669
+ .usage-link:hover {
670
+ color: #0284c7;
671
+ }
672
+
673
+ .kv {
674
+ margin-bottom: 24px;
675
+ }
676
+
677
+ .kv > div {
678
+ display: grid;
679
+ grid-template-columns: 140px 1fr;
680
+ gap: 12px;
681
+ margin-bottom: 10px;
682
+ padding-bottom: 10px;
683
+ border-bottom: 1px solid #f3f4f6;
684
+ font-size: 12px;
685
+ }
686
+
687
+ .kv dt {
688
+ font-weight: 600;
689
+ color: #6b7280;
690
+ word-break: break-word;
691
+ }
692
+
693
+ .kv dd {
694
+ margin: 0;
695
+ color: #374151;
696
+ word-break: break-word;
697
+ }
698
+
699
+ .kv code {
700
+ display: block;
701
+ padding: 6px;
702
+ background: #f3f4f6;
703
+ border-radius: 4px;
704
+ font-size: 11px;
705
+ color: #374151;
706
+ overflow-x: auto;
707
+ }
708
+
709
+ .kv-error dd {
710
+ color: #b91c1c;
711
+ }
712
+
713
+ .markdown {
714
+ margin-bottom: 20px;
227
715
  font-size: 13px;
716
+ line-height: 1.6;
717
+ color: #374151;
718
+ }
719
+
720
+ .markdown h1, .markdown h2, .markdown h3 {
721
+ margin-top: 16px;
722
+ margin-bottom: 8px;
228
723
  font-weight: 600;
724
+ }
725
+
726
+ .markdown p {
727
+ margin: 8px 0;
728
+ }
729
+
730
+ .markdown code {
731
+ background: #f3f4f6;
732
+ padding: 2px 4px;
733
+ border-radius: 3px;
734
+ font-size: 11px;
735
+ color: #dc2626;
736
+ }
737
+
738
+ .markdown pre {
739
+ background: #1f2937;
740
+ padding: 10px;
741
+ border-radius: 6px;
742
+ overflow-x: auto;
743
+ margin: 8px 0;
744
+ }
745
+
746
+ .markdown pre code {
747
+ background: none;
748
+ color: #e5e7eb;
749
+ padding: 0;
750
+ }
751
+
752
+ /* 响应式 - 平板 */
753
+ @media (max-width: 1199px) {
754
+ .shell {
755
+ grid-template-columns: 80px 1fr 320px;
756
+ }
757
+ }
758
+
759
+ /* 响应式 - 手机 */
760
+ @media (max-width: 767px) {
761
+ .shell {
762
+ grid-template-columns: 1fr 300px;
763
+ }
764
+
765
+ .detail-panel {
766
+ grid-column: 2 / 3;
767
+ }
768
+
769
+ .actions {
770
+ grid-template-columns: 1fr;
771
+ }
772
+
773
+ .usage-grid {
774
+ grid-template-columns: 1fr;
775
+ }
776
+
777
+ .kv > div {
778
+ grid-template-columns: 1fr;
779
+ }
780
+ }
781
+
782
+ /* ===== DETAIL PANEL 详细样式 ===== */
783
+
784
+ .detail-close {
785
+ position: absolute;
786
+ top: 12px;
787
+ right: 12px;
788
+ width: 32px;
789
+ height: 32px;
790
+ border: 0;
791
+ border-radius: 8px;
792
+ background: #f3f4f6;
793
+ color: #6b7280;
794
+ font-size: 18px;
229
795
  cursor: pointer;
230
- transition: all 0.15s ease;
796
+ z-index: 10;
797
+ transition: all 0.2s ease;
798
+ }
799
+
800
+ .detail-close:hover {
801
+ background: #e5e7eb;
802
+ color: #1f2937;
803
+ }
804
+
805
+ .detail-scroll {
806
+ flex: 1 1 auto;
807
+ overflow-y: auto;
808
+ padding: 16px;
809
+ }
810
+
811
+ .usage-card {
812
+ margin-bottom: 24px;
231
813
  }
232
814
 
233
- .view-btn:hover {
815
+ .usage-head {
816
+ margin-bottom: 12px;
817
+ }
818
+
819
+ .usage-head span {
820
+ display: block;
821
+ font-size: 11px;
822
+ color: #9ca3af;
823
+ text-transform: uppercase;
824
+ letter-spacing: 0.08em;
825
+ margin-bottom: 4px;
826
+ }
827
+
828
+ .usage-head h3 {
829
+ margin: 0;
830
+ font-size: 14px;
831
+ font-weight: 600;
832
+ }
833
+
834
+ .usage-prompt {
835
+ margin-bottom: 12px;
836
+ padding: 10px 12px;
234
837
  background: #f3f4f6;
838
+ border-radius: 8px;
839
+ border-left: 3px solid #8b5cf6;
840
+ }
841
+
842
+ .usage-prompt code {
843
+ font-size: 11px;
235
844
  color: #374151;
845
+ word-break: break-word;
236
846
  }
237
847
 
238
- .view-btn.active {
239
- background: #ede9fe;
240
- color: #5b21b6;
848
+ .usage-grid {
849
+ display: grid;
850
+ grid-template-columns: 1fr 1fr;
851
+ gap: 8px;
852
+ margin-bottom: 12px;
241
853
  }
242
854
 
243
- .sort-select { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #6b7280; }
244
- .sort-select select { border: 1px solid #d4dbe8; border-radius: 9px; background: #fff; padding: 5px 8px; color: #374151; max-width: 118px; }
245
- .skill-card {
246
- width: 100%; text-align: left;
247
- border: 1px solid #d9dee8;
248
- background: #fff;
249
- border-radius: 14px;
250
- padding: 12px;
855
+ .usage-grid > div {
856
+ padding: 8px 10px;
857
+ background: #f9fafb;
858
+ border-radius: 6px;
859
+ }
860
+
861
+ .usage-grid strong {
862
+ display: block;
863
+ font-size: 11px;
864
+ color: #6b7280;
865
+ margin-bottom: 4px;
866
+ }
867
+
868
+ .usage-grid p {
869
+ margin: 0;
870
+ font-size: 12px;
871
+ color: #374151;
872
+ line-height: 1.4;
873
+ }
874
+
875
+ .usage-block {
876
+ margin-bottom: 12px;
877
+ }
878
+
879
+ .usage-block strong {
880
+ display: block;
881
+ font-size: 12px;
882
+ margin-bottom: 6px;
883
+ }
884
+
885
+ .tag {
886
+ display: inline-block;
887
+ padding: 3px 8px;
888
+ margin: 2px 4px 2px 0;
889
+ border-radius: 4px;
890
+ background: #e0e7ff;
891
+ color: #3730a3;
892
+ font-size: 11px;
893
+ }
894
+
895
+ .param-table {
896
+ display: grid;
897
+ gap: 8px;
898
+ font-size: 12px;
899
+ }
900
+
901
+ .param-table > div {
902
+ padding: 8px;
903
+ background: #f9fafb;
904
+ border-radius: 6px;
905
+ }
906
+
907
+ .param-table code {
908
+ display: block;
909
+ font-size: 11px;
910
+ color: #dc2626;
911
+ margin-bottom: 2px;
912
+ }
913
+
914
+ .param-table b {
915
+ display: inline-block;
916
+ padding: 1px 4px;
917
+ background: #fef3c7;
918
+ color: #b45309;
919
+ border-radius: 2px;
920
+ font-size: 10px;
921
+ margin-left: 4px;
922
+ }
923
+
924
+ .usage-link {
925
+ display: block;
926
+ padding: 6px 0;
927
+ font-size: 12px;
928
+ color: #0ea5e9;
929
+ text-decoration: none;
930
+ border-bottom: 1px solid #e0e7ff;
931
+ word-break: break-word;
932
+ }
933
+
934
+ .usage-link:hover {
935
+ color: #0284c7;
936
+ }
937
+
938
+ .kv {
939
+ margin-bottom: 24px;
940
+ }
941
+
942
+ .kv > div {
251
943
  margin-bottom: 10px;
252
- transition: .12s ease;
253
- }
254
- .skill-card:hover { border-color: #a78bfa; transform: translateY(-1px); }
255
- .skill-card.selected { border-color: #7c3aed; box-shadow: 0 0 0 3px rgba(124,58,237,.12); }
256
- .skill-title { display: flex; align-items: center; gap: 8px; min-width: 0; text-align: left; }
257
- .skill-title strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
258
- .skill-card mark { background: #fef08a; color: #713f12; border-radius: 4px; padding: 0 2px; }
259
- .skill-chipline { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; text-align: left; }
260
- .skill-chipline span {
261
- max-width: 160px;
262
- overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
263
- padding: 3px 7px;
264
- border-radius: 999px;
265
- background: #f1f5f9;
266
- color: #475569;
944
+ padding-bottom: 10px;
945
+ border-bottom: 1px solid #f3f4f6;
946
+ font-size: 12px;
947
+ }
948
+
949
+ .kv dt {
950
+ font-weight: 600;
951
+ color: #6b7280;
952
+ word-break: break-word;
953
+ }
954
+
955
+ .kv dd {
956
+ margin: 0;
957
+ color: #374151;
958
+ word-break: break-word;
959
+ }
960
+
961
+ .kv code {
962
+ display: block;
963
+ padding: 6px;
964
+ background: #f3f4f6;
965
+ border-radius: 4px;
267
966
  font-size: 11px;
268
- font-weight: 700;
269
- }
270
- .skill-meta { color: #6b7280; font-size: 12px; margin-top: 6px; text-align: left; }
271
- .skill-card p { color: #374151; font-size: 13px; margin: 7px 0 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
272
- .src { display: inline-block; flex: 0 0 auto; font-size: 10px; line-height: 1; padding: 4px 7px; border-radius: 99px; color: #fff; font-weight: 700; }
273
- .src-hermes { background: #4f46e5; }
274
- .src-claude-code { background: #d97706; }
275
-
276
- .detail-panel { overflow: auto; padding: 22px 28px 80px; background: #f8fafc; }
277
- .detail-head { display: flex; justify-content: space-between; gap: 20px; }
278
- .detail-kicker { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: #6b7280; font-size: 12px; }
279
- .detail-head h2 { margin: 10px 0 6px; font-size: 28px; letter-spacing: -0.02em; }
280
- .detail-head p { margin: 0; color: #374151; max-width: 980px; }
281
- .badge-row { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
282
- .badge { display: inline-flex; align-items: center; max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 4px 8px; border-radius: 999px; background: #eef2ff; color: #3730a3; font-size: 11px; font-weight: 700; }
283
- .badge.warn { background: #fef3c7; color: #92400e; }
284
- .badge.danger { background: #fee2e2; color: #991b1b; }
285
- .actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
286
- .actions button {
287
- border: 0;
288
- background: linear-gradient(180deg, #ffffff, #f8fafc);
289
- color: #334155;
290
- border-radius: 999px;
291
- padding: 8px 13px;
967
+ color: #374151;
968
+ overflow-x: auto;
969
+ }
970
+
971
+ .kv-error dd {
972
+ color: #b91c1c;
973
+ }
974
+
975
+ .markdown {
976
+ margin-bottom: 20px;
292
977
  font-size: 13px;
293
- font-weight: 700;
294
- box-shadow: inset 0 0 0 1px #dbe3ef, 0 4px 10px rgba(15,23,42,0.04);
295
- transition: transform .12s ease, box-shadow .12s ease, color .12s ease;
978
+ line-height: 1.6;
979
+ color: #374151;
296
980
  }
297
- .actions button:hover { transform: translateY(-1px); color: #5b21b6; box-shadow: inset 0 0 0 1px #a78bfa, 0 8px 18px rgba(124,58,237,0.12); }
298
- .notice { display: inline-block; margin-bottom: 12px; padding: 8px 10px; background: #dcfce7; border: 1px solid #86efac; border-radius: 10px; color: #166534; font-size: 13px; }
299
981
 
300
- .usage-card {
301
- margin: 0 0 18px;
302
- padding: 16px;
303
- border: 1px solid #dbe3ef;
304
- border-radius: 18px;
305
- background: linear-gradient(180deg, #ffffff, #f8fafc);
306
- box-shadow: 0 10px 26px rgba(15,23,42,0.05);
307
- }
308
- .usage-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 12px; }
309
- .usage-head span { color: #7c3aed; font-size: 11px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
310
- .usage-head h3 { margin: 2px 0 0; font-size: 18px; }
311
- .usage-head button {
312
- border: 0;
313
- border-radius: 999px;
314
- padding: 8px 12px;
315
- color: #fff;
316
- background: linear-gradient(135deg, #7c3aed, #2563eb);
317
- font-weight: 800;
318
- }
319
- .usage-prompt { padding: 12px; border-radius: 13px; background: #0f172a; color: #dbeafe; overflow: auto; }
320
- .usage-prompt code { white-space: pre-wrap; word-break: break-word; font-size: 12px; }
321
- .usage-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 12px; margin-top: 12px; }
322
- .usage-grid > div, .usage-block { border: 1px solid #eef2f7; border-radius: 14px; padding: 12px; background: #fff; }
323
- .usage-card strong { display: block; color: #334155; font-size: 12px; margin-bottom: 6px; }
324
- .usage-card p { margin: 0; color: #475569; font-size: 13px; line-height: 1.5; }
325
- .usage-block { margin-top: 10px; }
326
- .param-table { display: grid; gap: 8px; }
327
- .param-table > div { display: grid; grid-template-columns: minmax(90px, .7fr) minmax(60px, .4fr) auto minmax(160px, 1.4fr); gap: 8px; align-items: start; font-size: 12px; }
328
- .param-table code { color: #5b21b6; background: #ede9fe; border-radius: 6px; padding: 2px 6px; }
329
- .param-table b { color: #991b1b; background: #fee2e2; border-radius: 999px; padding: 2px 6px; font-size: 11px; }
330
- .param-table p { font-size: 12px; }
331
- .usage-link { display: inline-flex; margin: 0 6px 6px 0; padding: 4px 8px; border-radius: 999px; color: #2563eb; background: #eff6ff; text-decoration: none; font-size: 12px; }
332
-
333
- .kv { margin: 0 0 18px; background: #fff; border: 1px solid #d9dee8; border-radius: 14px; padding: 10px 14px; }
334
- .kv div { display: grid; grid-template-columns: 90px 1fr; gap: 12px; padding: 7px 0; border-bottom: 1px solid #eef2f7; }
335
- .kv div:last-child { border-bottom: 0; }
336
- .kv dt { color: #6b7280; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
337
- .kv dd { margin: 0; min-width: 0; }
338
- .kv-error dt, .kv-error dd { color: #991b1b; }
339
- .kv code { word-break: break-all; font-size: 12px; color: #374151; }
340
- .tag { display: inline-block; max-width: 520px; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; white-space: nowrap; margin: 0 5px 5px 0; padding: 4px 8px; background: #eef2ff; color: #3730a3; border-radius: 999px; font-size: 12px; }
341
-
342
- .markdown { background: #fff; border: 1px solid #d9dee8; border-radius: 14px; padding: 20px 24px; line-height: 1.68; }
343
- .markdown h1, .markdown h2, .markdown h3 { line-height: 1.25; margin-top: 1.2em; }
344
- .markdown h1:first-child, .markdown h2:first-child { margin-top: 0; }
345
- .markdown pre { background: #0f172a; color: #dbeafe; padding: 14px; border-radius: 12px; overflow: auto; }
346
- .markdown code { background: #eef2ff; padding: 2px 5px; border-radius: 5px; }
347
- .markdown pre code { background: transparent; padding: 0; }
348
- .markdown blockquote { margin: 1em 0; padding: .1em 1em; border-left: 4px solid #c4b5fd; background: #f5f3ff; color: #4c1d95; }
349
- .markdown table { border-collapse: collapse; width: 100%; overflow: auto; }
350
- .markdown th, .markdown td { border: 1px solid #d9dee8; padding: 6px 8px; }
351
-
352
- .error, .loading { margin: 16px; padding: 12px 14px; border-radius: 12px; }
353
- .error { background: #fee2e2; color: #991b1b; }
354
- .loading { background: #e0f2fe; color: #075985; }
355
-
356
- @media (max-width: 1000px) {
357
- .shell { grid-template-columns: 1fr; }
358
- .sidebar { display: none; }
359
- .toolbar-main { grid-template-columns: 1fr; }
360
- .toolbar-facets { grid-template-columns: 1fr 1fr; }
361
- .usage-grid { grid-template-columns: 1fr; }
362
- .param-table > div { grid-template-columns: 1fr; }
363
- .content { grid-template-columns: 1fr; }
364
- .detail-panel { display: none; }
982
+ .markdown h1, .markdown h2, .markdown h3 {
983
+ margin-top: 16px;
984
+ margin-bottom: 8px;
985
+ font-weight: 600;
986
+ }
987
+
988
+ .markdown p {
989
+ margin: 8px 0;
990
+ }
991
+
992
+ .markdown code {
993
+ background: #f3f4f6;
994
+ padding: 2px 4px;
995
+ border-radius: 3px;
996
+ font-size: 11px;
997
+ color: #dc2626;
998
+ }
999
+
1000
+ .markdown pre {
1001
+ background: #1f2937;
1002
+ padding: 10px;
1003
+ border-radius: 6px;
1004
+ overflow-x: auto;
1005
+ margin: 8px 0;
1006
+ }
1007
+
1008
+ .markdown pre code {
1009
+ background: none;
1010
+ color: #e5e7eb;
1011
+ padding: 0;
365
1012
  }