@commonpub/layer 0.7.3 → 0.7.4
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/components/CommentSection.vue +4 -4
- package/components/ContentAttachments.vue +4 -4
- package/components/DiscussionItem.vue +1 -1
- package/components/FeedItem.vue +1 -1
- package/components/MessageThread.vue +1 -1
- package/components/NotificationItem.vue +1 -1
- package/components/hub/HubHero.vue +2 -2
- package/components/hub/HubLayout.vue +1 -1
- package/components/hub/HubProducts.vue +2 -2
- package/components/hub/HubSidebarCard.vue +2 -2
- package/components/views/ArticleView.vue +15 -15
- package/components/views/BlogView.vue +14 -14
- package/components/views/ExplainerView.vue +11 -11
- package/components/views/ProjectView.vue +36 -36
- package/package.json +9 -9
- package/pages/admin/theme.vue +1 -1
- package/pages/authorize_interaction.vue +1 -1
- package/pages/federated-hubs/[id]/index.vue +6 -6
- package/pages/federated-hubs/[id]/posts/[postId].vue +5 -5
- package/pages/hubs/[slug]/index.vue +6 -6
- package/pages/hubs/[slug]/posts/[postId].vue +6 -6
- package/pages/hubs/index.vue +2 -2
- package/pages/mirror/[id].vue +2 -2
- package/server/api/docs/[siteSlug]/search.get.ts +2 -1
- package/theme/components.css +2 -2
- package/theme/layouts.css +2 -2
- package/theme/prose.css +4 -4
|
@@ -266,7 +266,7 @@ async function deleteComment(id: string): Promise<void> {
|
|
|
266
266
|
color: var(--text-faint);
|
|
267
267
|
background: var(--surface2);
|
|
268
268
|
padding: 1px 6px;
|
|
269
|
-
border:
|
|
269
|
+
border: var(--border-width-default) solid var(--border2);
|
|
270
270
|
}
|
|
271
271
|
|
|
272
272
|
.cpub-comment-form {
|
|
@@ -290,7 +290,7 @@ async function deleteComment(id: string): Promise<void> {
|
|
|
290
290
|
gap: 8px;
|
|
291
291
|
padding: 6px 10px;
|
|
292
292
|
background: var(--surface2);
|
|
293
|
-
border:
|
|
293
|
+
border: var(--border-width-default) solid var(--border);
|
|
294
294
|
}
|
|
295
295
|
|
|
296
296
|
.cpub-cancel-reply {
|
|
@@ -313,7 +313,7 @@ async function deleteComment(id: string): Promise<void> {
|
|
|
313
313
|
margin-bottom: 12px;
|
|
314
314
|
padding: 8px 12px;
|
|
315
315
|
background: var(--accent-bg);
|
|
316
|
-
border:
|
|
316
|
+
border: var(--border-width-default) solid var(--accent-border);
|
|
317
317
|
border-radius: 8px;
|
|
318
318
|
}
|
|
319
319
|
.cpub-comment-fed-notice i { color: var(--accent); font-size: 11px; }
|
|
@@ -461,6 +461,6 @@ async function deleteComment(id: string): Promise<void> {
|
|
|
461
461
|
margin-bottom: 12px;
|
|
462
462
|
padding: 8px 12px;
|
|
463
463
|
background: var(--green-bg, rgba(34, 197, 94, 0.08));
|
|
464
|
-
border:
|
|
464
|
+
border: var(--border-width-default) solid var(--green-border, rgba(34, 197, 94, 0.2));
|
|
465
465
|
}
|
|
466
466
|
</style>
|
|
@@ -57,7 +57,7 @@ const safeAttachments = computed(() =>
|
|
|
57
57
|
.cpub-attachments {
|
|
58
58
|
margin: 28px 0;
|
|
59
59
|
padding-top: 16px;
|
|
60
|
-
border-top:
|
|
60
|
+
border-top: var(--border-width-default) solid var(--border);
|
|
61
61
|
}
|
|
62
62
|
.cpub-attachments-label {
|
|
63
63
|
font-size: 10px;
|
|
@@ -77,7 +77,7 @@ const safeAttachments = computed(() =>
|
|
|
77
77
|
align-items: center;
|
|
78
78
|
gap: 8px;
|
|
79
79
|
padding: 8px 12px;
|
|
80
|
-
border:
|
|
80
|
+
border: var(--border-width-default) solid var(--border);
|
|
81
81
|
background: var(--surface);
|
|
82
82
|
text-decoration: none;
|
|
83
83
|
color: var(--text-dim);
|
|
@@ -92,7 +92,7 @@ const safeAttachments = computed(() =>
|
|
|
92
92
|
width: 40px;
|
|
93
93
|
height: 40px;
|
|
94
94
|
object-fit: cover;
|
|
95
|
-
border:
|
|
95
|
+
border: var(--border-width-default) solid var(--border2);
|
|
96
96
|
}
|
|
97
97
|
.cpub-attachment-icon {
|
|
98
98
|
width: 32px;
|
|
@@ -101,7 +101,7 @@ const safeAttachments = computed(() =>
|
|
|
101
101
|
align-items: center;
|
|
102
102
|
justify-content: center;
|
|
103
103
|
background: var(--surface2);
|
|
104
|
-
border:
|
|
104
|
+
border: var(--border-width-default) solid var(--border2);
|
|
105
105
|
color: var(--text-faint);
|
|
106
106
|
font-size: 14px;
|
|
107
107
|
}
|
package/components/FeedItem.vue
CHANGED
|
@@ -271,7 +271,7 @@ const formattedDate = computed((): string => {
|
|
|
271
271
|
|
|
272
272
|
.cpub-feed-stat-btn {
|
|
273
273
|
background: none;
|
|
274
|
-
border:
|
|
274
|
+
border: var(--border-width-default) solid transparent;
|
|
275
275
|
cursor: pointer;
|
|
276
276
|
padding: 2px 8px;
|
|
277
277
|
border-radius: 4px;
|
|
@@ -103,7 +103,7 @@ const iconMap: Record<string, string> = {
|
|
|
103
103
|
align-items: center;
|
|
104
104
|
justify-content: center;
|
|
105
105
|
background: var(--surface);
|
|
106
|
-
border:
|
|
106
|
+
border: var(--border-width-default) solid var(--border);
|
|
107
107
|
border-radius: 50%;
|
|
108
108
|
font-size: 8px;
|
|
109
109
|
color: var(--text-dim);
|
|
@@ -66,7 +66,7 @@ const isCompanyHub = computed(() => hubType.value === 'company');
|
|
|
66
66
|
background: linear-gradient(135deg, var(--accent) 0%, #006b6b 50%, var(--accent-border) 100%);
|
|
67
67
|
position: relative;
|
|
68
68
|
overflow: hidden;
|
|
69
|
-
border-bottom:
|
|
69
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
.cpub-hub-banner-pattern {
|
|
@@ -87,7 +87,7 @@ const isCompanyHub = computed(() => hubType.value === 'company');
|
|
|
87
87
|
|
|
88
88
|
.cpub-hub-meta-bar {
|
|
89
89
|
background: var(--surface);
|
|
90
|
-
border-bottom:
|
|
90
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
91
91
|
padding: 20px 0;
|
|
92
92
|
}
|
|
93
93
|
|
|
@@ -45,7 +45,7 @@ const activeTab = defineModel<string>('activeTab', { required: true });
|
|
|
45
45
|
<style scoped>
|
|
46
46
|
.cpub-hub-tabs {
|
|
47
47
|
background: var(--surface);
|
|
48
|
-
border-bottom:
|
|
48
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
49
49
|
position: sticky;
|
|
50
50
|
top: 48px;
|
|
51
51
|
z-index: 90;
|
|
@@ -36,7 +36,7 @@ defineProps<{
|
|
|
36
36
|
|
|
37
37
|
.cpub-product-card {
|
|
38
38
|
background: var(--surface);
|
|
39
|
-
border:
|
|
39
|
+
border: var(--border-width-default) solid var(--border);
|
|
40
40
|
border-radius: 12px;
|
|
41
41
|
padding: 16px;
|
|
42
42
|
display: flex;
|
|
@@ -55,7 +55,7 @@ defineProps<{
|
|
|
55
55
|
width: 48px;
|
|
56
56
|
height: 48px;
|
|
57
57
|
background: var(--surface2);
|
|
58
|
-
border:
|
|
58
|
+
border: var(--border-width-default) solid var(--border);
|
|
59
59
|
border-radius: 10px;
|
|
60
60
|
display: flex;
|
|
61
61
|
align-items: center;
|
|
@@ -14,7 +14,7 @@ defineProps<{
|
|
|
14
14
|
<style scoped>
|
|
15
15
|
.cpub-sb-card {
|
|
16
16
|
background: var(--surface);
|
|
17
|
-
border:
|
|
17
|
+
border: var(--border-width-default) solid var(--border);
|
|
18
18
|
padding: 18px;
|
|
19
19
|
box-shadow: var(--shadow-sm);
|
|
20
20
|
margin-bottom: 16px;
|
|
@@ -30,6 +30,6 @@ defineProps<{
|
|
|
30
30
|
color: var(--text-dim);
|
|
31
31
|
margin-bottom: 14px;
|
|
32
32
|
padding-bottom: 8px;
|
|
33
|
-
border-bottom:
|
|
33
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
34
34
|
}
|
|
35
35
|
</style>
|
|
@@ -268,7 +268,7 @@ useJsonLd({
|
|
|
268
268
|
align-items: center;
|
|
269
269
|
justify-content: center;
|
|
270
270
|
overflow: hidden;
|
|
271
|
-
border-bottom:
|
|
271
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
272
272
|
}
|
|
273
273
|
|
|
274
274
|
.cpub-cover::after {
|
|
@@ -327,7 +327,7 @@ useJsonLd({
|
|
|
327
327
|
letter-spacing: 0.1em;
|
|
328
328
|
text-transform: uppercase;
|
|
329
329
|
color: var(--accent);
|
|
330
|
-
border:
|
|
330
|
+
border: var(--border-width-default) solid var(--border);
|
|
331
331
|
background: var(--accent-bg);
|
|
332
332
|
padding: 3px 10px;
|
|
333
333
|
margin-bottom: 16px;
|
|
@@ -359,7 +359,7 @@ useJsonLd({
|
|
|
359
359
|
height: 28px;
|
|
360
360
|
border-radius: 50%;
|
|
361
361
|
background: var(--surface3);
|
|
362
|
-
border:
|
|
362
|
+
border: var(--border-width-default) solid var(--border);
|
|
363
363
|
display: flex;
|
|
364
364
|
align-items: center;
|
|
365
365
|
justify-content: center;
|
|
@@ -420,7 +420,7 @@ useJsonLd({
|
|
|
420
420
|
font-size: 10px;
|
|
421
421
|
font-family: var(--font-mono);
|
|
422
422
|
padding: 2px 8px;
|
|
423
|
-
border:
|
|
423
|
+
border: var(--border-width-default) solid var(--border2);
|
|
424
424
|
color: var(--text-dim);
|
|
425
425
|
background: var(--surface2);
|
|
426
426
|
text-decoration: none;
|
|
@@ -445,8 +445,8 @@ useJsonLd({
|
|
|
445
445
|
align-items: center;
|
|
446
446
|
gap: 6px;
|
|
447
447
|
padding: 14px 0;
|
|
448
|
-
border-top:
|
|
449
|
-
border-bottom:
|
|
448
|
+
border-top: var(--border-width-default) solid var(--border);
|
|
449
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
450
450
|
margin-bottom: 28px;
|
|
451
451
|
}
|
|
452
452
|
|
|
@@ -470,7 +470,7 @@ useJsonLd({
|
|
|
470
470
|
font-family: var(--font-mono);
|
|
471
471
|
color: var(--text-dim);
|
|
472
472
|
background: var(--surface);
|
|
473
|
-
border:
|
|
473
|
+
border: var(--border-width-default) solid var(--border);
|
|
474
474
|
padding: 5px 12px;
|
|
475
475
|
cursor: pointer;
|
|
476
476
|
transition: background var(--transition-fast), color var(--transition-fast);
|
|
@@ -503,7 +503,7 @@ useJsonLd({
|
|
|
503
503
|
margin: 40px 0 12px;
|
|
504
504
|
letter-spacing: -0.01em;
|
|
505
505
|
padding-bottom: 8px;
|
|
506
|
-
border-bottom:
|
|
506
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
507
507
|
}
|
|
508
508
|
|
|
509
509
|
.cpub-prose :deep(h3) {
|
|
@@ -524,7 +524,7 @@ useJsonLd({
|
|
|
524
524
|
font-size: 13px;
|
|
525
525
|
color: var(--teal);
|
|
526
526
|
background: var(--surface2);
|
|
527
|
-
border:
|
|
527
|
+
border: var(--border-width-default) solid var(--border);
|
|
528
528
|
padding: 1px 6px;
|
|
529
529
|
}
|
|
530
530
|
|
|
@@ -562,7 +562,7 @@ useJsonLd({
|
|
|
562
562
|
|
|
563
563
|
.cpub-prose :deep(hr) {
|
|
564
564
|
border: none;
|
|
565
|
-
border-top:
|
|
565
|
+
border-top: var(--border-width-default) solid var(--border);
|
|
566
566
|
margin: 36px 0;
|
|
567
567
|
}
|
|
568
568
|
|
|
@@ -573,7 +573,7 @@ useJsonLd({
|
|
|
573
573
|
gap: 6px;
|
|
574
574
|
margin: 40px 0 32px;
|
|
575
575
|
padding-top: 24px;
|
|
576
|
-
border-top:
|
|
576
|
+
border-top: var(--border-width-default) solid var(--border);
|
|
577
577
|
}
|
|
578
578
|
|
|
579
579
|
.cpub-tags-label {
|
|
@@ -589,7 +589,7 @@ useJsonLd({
|
|
|
589
589
|
/* ── AUTHOR CARD ── */
|
|
590
590
|
.cpub-author-card {
|
|
591
591
|
background: var(--surface);
|
|
592
|
-
border:
|
|
592
|
+
border: var(--border-width-default) solid var(--border);
|
|
593
593
|
padding: 24px;
|
|
594
594
|
display: flex;
|
|
595
595
|
gap: 20px;
|
|
@@ -684,7 +684,7 @@ useJsonLd({
|
|
|
684
684
|
text-transform: uppercase;
|
|
685
685
|
margin-bottom: 16px;
|
|
686
686
|
padding-bottom: 8px;
|
|
687
|
-
border-bottom:
|
|
687
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
688
688
|
}
|
|
689
689
|
|
|
690
690
|
.cpub-related-grid {
|
|
@@ -696,7 +696,7 @@ useJsonLd({
|
|
|
696
696
|
|
|
697
697
|
.cpub-related-card {
|
|
698
698
|
background: var(--surface);
|
|
699
|
-
border:
|
|
699
|
+
border: var(--border-width-default) solid var(--border);
|
|
700
700
|
overflow: hidden;
|
|
701
701
|
cursor: pointer;
|
|
702
702
|
transition: box-shadow var(--transition-fast);
|
|
@@ -715,7 +715,7 @@ useJsonLd({
|
|
|
715
715
|
justify-content: center;
|
|
716
716
|
position: relative;
|
|
717
717
|
overflow: hidden;
|
|
718
|
-
border-bottom:
|
|
718
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
719
719
|
}
|
|
720
720
|
|
|
721
721
|
.cpub-related-card-thumb::after {
|
|
@@ -227,7 +227,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
|
|
|
227
227
|
letter-spacing: 0.1em;
|
|
228
228
|
text-transform: uppercase;
|
|
229
229
|
color: var(--green);
|
|
230
|
-
border:
|
|
230
|
+
border: var(--border-width-default) solid var(--border);
|
|
231
231
|
background: var(--green-bg);
|
|
232
232
|
padding: 3px 10px;
|
|
233
233
|
margin-bottom: 16px;
|
|
@@ -250,7 +250,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
|
|
|
250
250
|
height: 28px;
|
|
251
251
|
border-radius: 50%;
|
|
252
252
|
background: var(--surface3);
|
|
253
|
-
border:
|
|
253
|
+
border: var(--border-width-default) solid var(--border);
|
|
254
254
|
display: flex;
|
|
255
255
|
align-items: center;
|
|
256
256
|
justify-content: center;
|
|
@@ -307,7 +307,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
|
|
|
307
307
|
font-size: 10px;
|
|
308
308
|
font-family: var(--font-mono);
|
|
309
309
|
padding: 2px 8px;
|
|
310
|
-
border:
|
|
310
|
+
border: var(--border-width-default) solid var(--border2);
|
|
311
311
|
color: var(--text-dim);
|
|
312
312
|
background: var(--surface2);
|
|
313
313
|
text-decoration: none;
|
|
@@ -332,8 +332,8 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
|
|
|
332
332
|
align-items: center;
|
|
333
333
|
gap: 6px;
|
|
334
334
|
padding: 14px 0;
|
|
335
|
-
border-top:
|
|
336
|
-
border-bottom:
|
|
335
|
+
border-top: var(--border-width-default) solid var(--border);
|
|
336
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
337
337
|
margin-bottom: 36px;
|
|
338
338
|
}
|
|
339
339
|
|
|
@@ -355,7 +355,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
|
|
|
355
355
|
font-family: var(--font-mono);
|
|
356
356
|
color: var(--text-dim);
|
|
357
357
|
background: var(--surface);
|
|
358
|
-
border:
|
|
358
|
+
border: var(--border-width-default) solid var(--border);
|
|
359
359
|
padding: 5px 12px;
|
|
360
360
|
cursor: pointer;
|
|
361
361
|
transition: background var(--transition-fast), color var(--transition-fast);
|
|
@@ -407,7 +407,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
|
|
|
407
407
|
font-size: 12.5px;
|
|
408
408
|
color: var(--teal);
|
|
409
409
|
background: var(--surface2);
|
|
410
|
-
border:
|
|
410
|
+
border: var(--border-width-default) solid var(--border2);
|
|
411
411
|
padding: 1px 6px;
|
|
412
412
|
}
|
|
413
413
|
|
|
@@ -454,14 +454,14 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
|
|
|
454
454
|
|
|
455
455
|
.cpub-prose :deep(hr) {
|
|
456
456
|
border: none;
|
|
457
|
-
border-top:
|
|
457
|
+
border-top: var(--border-width-default) solid var(--border);
|
|
458
458
|
margin: 36px 0;
|
|
459
459
|
}
|
|
460
460
|
|
|
461
461
|
/* ── SERIES NAV ── */
|
|
462
462
|
.cpub-series-nav {
|
|
463
463
|
background: var(--surface);
|
|
464
|
-
border:
|
|
464
|
+
border: var(--border-width-default) solid var(--border);
|
|
465
465
|
padding: 20px;
|
|
466
466
|
margin: 40px 0;
|
|
467
467
|
box-shadow: var(--shadow-sm);
|
|
@@ -518,7 +518,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
|
|
|
518
518
|
height: 4px;
|
|
519
519
|
background: var(--surface3);
|
|
520
520
|
overflow: hidden;
|
|
521
|
-
border:
|
|
521
|
+
border: var(--border-width-default) solid var(--border2);
|
|
522
522
|
}
|
|
523
523
|
|
|
524
524
|
.cpub-series-progress-fill {
|
|
@@ -534,7 +534,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
|
|
|
534
534
|
|
|
535
535
|
.cpub-series-nav-btn {
|
|
536
536
|
background: var(--surface);
|
|
537
|
-
border:
|
|
537
|
+
border: var(--border-width-default) solid var(--border);
|
|
538
538
|
padding: 12px 14px;
|
|
539
539
|
cursor: pointer;
|
|
540
540
|
text-decoration: none;
|
|
@@ -582,7 +582,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
|
|
|
582
582
|
gap: 6px;
|
|
583
583
|
margin: 36px 0 28px;
|
|
584
584
|
padding-top: 20px;
|
|
585
|
-
border-top:
|
|
585
|
+
border-top: var(--border-width-default) solid var(--border);
|
|
586
586
|
}
|
|
587
587
|
|
|
588
588
|
.cpub-tags-label {
|
|
@@ -598,7 +598,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
|
|
|
598
598
|
/* ── AUTHOR CARD ── */
|
|
599
599
|
.cpub-author-card {
|
|
600
600
|
background: var(--surface);
|
|
601
|
-
border:
|
|
601
|
+
border: var(--border-width-default) solid var(--border);
|
|
602
602
|
padding: 22px;
|
|
603
603
|
display: flex;
|
|
604
604
|
gap: 18px;
|
|
@@ -671,7 +671,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
|
|
|
671
671
|
font-family: var(--font-sans);
|
|
672
672
|
font-size: 12px;
|
|
673
673
|
padding: 6px 14px;
|
|
674
|
-
border:
|
|
674
|
+
border: var(--border-width-default) solid var(--border);
|
|
675
675
|
background: var(--surface);
|
|
676
676
|
color: var(--text);
|
|
677
677
|
cursor: pointer;
|
|
@@ -355,7 +355,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
|
|
|
355
355
|
align-items: center;
|
|
356
356
|
justify-content: center;
|
|
357
357
|
background: var(--surface, #1a1a1a);
|
|
358
|
-
border:
|
|
358
|
+
border: var(--border-width-default) solid var(--border, #333);
|
|
359
359
|
color: var(--text-dim, #999);
|
|
360
360
|
font-size: 14px;
|
|
361
361
|
text-decoration: none;
|
|
@@ -387,7 +387,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
|
|
|
387
387
|
top: 3px; left: 0; right: 0;
|
|
388
388
|
height: 48px;
|
|
389
389
|
background: var(--surface);
|
|
390
|
-
border-bottom:
|
|
390
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
391
391
|
display: flex;
|
|
392
392
|
align-items: center;
|
|
393
393
|
gap: 10px;
|
|
@@ -441,7 +441,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
|
|
|
441
441
|
align-items: center;
|
|
442
442
|
justify-content: center;
|
|
443
443
|
background: var(--surface);
|
|
444
|
-
border:
|
|
444
|
+
border: var(--border-width-default) solid var(--border);
|
|
445
445
|
color: var(--text-dim);
|
|
446
446
|
cursor: pointer;
|
|
447
447
|
font-size: 12px;
|
|
@@ -467,7 +467,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
|
|
|
467
467
|
width: 200px;
|
|
468
468
|
flex-shrink: 0;
|
|
469
469
|
background: var(--surface);
|
|
470
|
-
border-right:
|
|
470
|
+
border-right: var(--border-width-default) solid var(--border);
|
|
471
471
|
display: flex;
|
|
472
472
|
flex-direction: column;
|
|
473
473
|
overflow-y: auto;
|
|
@@ -479,7 +479,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
|
|
|
479
479
|
letter-spacing: 0.12em;
|
|
480
480
|
color: var(--text-faint);
|
|
481
481
|
text-transform: uppercase;
|
|
482
|
-
border-bottom:
|
|
482
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
483
483
|
}
|
|
484
484
|
.cpub-toc-list { list-style: none; padding: 6px 0; }
|
|
485
485
|
.cpub-toc-item button {
|
|
@@ -516,7 +516,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
|
|
|
516
516
|
align-items: center;
|
|
517
517
|
gap: 8px;
|
|
518
518
|
padding: 12px 14px;
|
|
519
|
-
border-top:
|
|
519
|
+
border-top: var(--border-width-default) solid var(--border);
|
|
520
520
|
margin-top: auto;
|
|
521
521
|
}
|
|
522
522
|
.cpub-sidebar-author-avatar {
|
|
@@ -524,7 +524,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
|
|
|
524
524
|
height: 24px;
|
|
525
525
|
border-radius: var(--radius-full);
|
|
526
526
|
background: var(--surface3);
|
|
527
|
-
border:
|
|
527
|
+
border: var(--border-width-default) solid var(--border);
|
|
528
528
|
display: flex;
|
|
529
529
|
align-items: center;
|
|
530
530
|
justify-content: center;
|
|
@@ -674,7 +674,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
|
|
|
674
674
|
font-family: var(--font-mono);
|
|
675
675
|
font-size: 13px;
|
|
676
676
|
background: var(--surface2);
|
|
677
|
-
border:
|
|
677
|
+
border: var(--border-width-default) solid var(--border);
|
|
678
678
|
padding: 1px 6px;
|
|
679
679
|
color: var(--accent);
|
|
680
680
|
}
|
|
@@ -718,7 +718,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
|
|
|
718
718
|
justify-content: space-between;
|
|
719
719
|
margin-top: 48px;
|
|
720
720
|
padding-top: 24px;
|
|
721
|
-
border-top:
|
|
721
|
+
border-top: var(--border-width-default) solid var(--border);
|
|
722
722
|
}
|
|
723
723
|
|
|
724
724
|
.cpub-progress-dots { display: flex; align-items: center; gap: 5px; }
|
|
@@ -742,7 +742,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
|
|
|
742
742
|
gap: 8px;
|
|
743
743
|
padding: 10px 18px;
|
|
744
744
|
background: var(--accent);
|
|
745
|
-
border:
|
|
745
|
+
border: var(--border-width-default) solid var(--border);
|
|
746
746
|
color: var(--color-text-inverse);
|
|
747
747
|
font-size: 13px;
|
|
748
748
|
font-weight: 600;
|
|
@@ -759,7 +759,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
|
|
|
759
759
|
gap: 8px;
|
|
760
760
|
padding: 10px 18px;
|
|
761
761
|
background: var(--surface);
|
|
762
|
-
border:
|
|
762
|
+
border: var(--border-width-default) solid var(--border);
|
|
763
763
|
color: var(--text);
|
|
764
764
|
font-size: 13px;
|
|
765
765
|
font-weight: 500;
|
|
@@ -590,7 +590,7 @@ async function handleBuild(): Promise<void> {
|
|
|
590
590
|
background: var(--surface2);
|
|
591
591
|
overflow: hidden;
|
|
592
592
|
flex-shrink: 0;
|
|
593
|
-
border-bottom:
|
|
593
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
594
594
|
}
|
|
595
595
|
|
|
596
596
|
.cpub-hero-cover-grid {
|
|
@@ -653,14 +653,14 @@ async function handleBuild(): Promise<void> {
|
|
|
653
653
|
|
|
654
654
|
.cpub-badge-featured {
|
|
655
655
|
background: var(--yellow-bg);
|
|
656
|
-
border:
|
|
656
|
+
border: var(--border-width-default) solid var(--border);
|
|
657
657
|
color: var(--yellow);
|
|
658
658
|
box-shadow: var(--shadow-sm);
|
|
659
659
|
}
|
|
660
660
|
|
|
661
661
|
.cpub-badge-outline {
|
|
662
662
|
background: var(--surface);
|
|
663
|
-
border:
|
|
663
|
+
border: var(--border-width-default) solid var(--border);
|
|
664
664
|
color: var(--text-dim);
|
|
665
665
|
box-shadow: var(--shadow-sm);
|
|
666
666
|
}
|
|
@@ -721,7 +721,7 @@ async function handleBuild(): Promise<void> {
|
|
|
721
721
|
height: 28px;
|
|
722
722
|
border-radius: 50%;
|
|
723
723
|
background: var(--surface3);
|
|
724
|
-
border:
|
|
724
|
+
border: var(--border-width-default) solid var(--border);
|
|
725
725
|
display: flex;
|
|
726
726
|
align-items: center;
|
|
727
727
|
justify-content: center;
|
|
@@ -768,7 +768,7 @@ async function handleBuild(): Promise<void> {
|
|
|
768
768
|
font-family: var(--font-mono);
|
|
769
769
|
color: var(--accent);
|
|
770
770
|
background: var(--accent-bg);
|
|
771
|
-
border:
|
|
771
|
+
border: var(--border-width-default) solid var(--border);
|
|
772
772
|
padding: 2px 7px;
|
|
773
773
|
}
|
|
774
774
|
|
|
@@ -789,7 +789,7 @@ async function handleBuild(): Promise<void> {
|
|
|
789
789
|
.cpub-author-tag {
|
|
790
790
|
font-size: 9px; font-family: var(--font-mono); text-transform: uppercase;
|
|
791
791
|
letter-spacing: 0.04em; color: var(--text-faint); padding: 1px 6px;
|
|
792
|
-
border:
|
|
792
|
+
border: var(--border-width-default) solid var(--border); background: var(--surface); text-decoration: none;
|
|
793
793
|
}
|
|
794
794
|
.cpub-author-tag:hover { color: var(--accent); border-color: var(--accent); }
|
|
795
795
|
|
|
@@ -816,7 +816,7 @@ async function handleBuild(): Promise<void> {
|
|
|
816
816
|
.cpub-engage-btn {
|
|
817
817
|
font-size: 12px;
|
|
818
818
|
padding: 6px 13px;
|
|
819
|
-
border:
|
|
819
|
+
border: var(--border-width-default) solid var(--border);
|
|
820
820
|
background: var(--surface);
|
|
821
821
|
color: var(--text-dim);
|
|
822
822
|
cursor: pointer;
|
|
@@ -849,7 +849,7 @@ async function handleBuild(): Promise<void> {
|
|
|
849
849
|
.cpub-inline-meta-chip {
|
|
850
850
|
display: inline-flex; align-items: center; gap: 5px;
|
|
851
851
|
font-size: 11px; font-family: var(--font-mono); color: var(--text-dim);
|
|
852
|
-
padding: 3px 10px; background: var(--surface2); border:
|
|
852
|
+
padding: 3px 10px; background: var(--surface2); border: var(--border-width-default) solid var(--border);
|
|
853
853
|
white-space: nowrap;
|
|
854
854
|
}
|
|
855
855
|
.cpub-inline-meta-link { text-decoration: none; cursor: pointer; }
|
|
@@ -861,7 +861,7 @@ async function handleBuild(): Promise<void> {
|
|
|
861
861
|
.cpub-itag {
|
|
862
862
|
font-size: 10px; font-family: var(--font-mono); text-transform: uppercase;
|
|
863
863
|
letter-spacing: 0.04em; padding: 2px 8px; color: var(--text-faint);
|
|
864
|
-
border:
|
|
864
|
+
border: var(--border-width-default) solid var(--border); background: var(--surface);
|
|
865
865
|
}
|
|
866
866
|
|
|
867
867
|
/* ── TABS ── */
|
|
@@ -870,7 +870,7 @@ async function handleBuild(): Promise<void> {
|
|
|
870
870
|
top: 48px;
|
|
871
871
|
z-index: 50;
|
|
872
872
|
background: var(--bg);
|
|
873
|
-
border-bottom:
|
|
873
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
874
874
|
margin-bottom: 28px;
|
|
875
875
|
}
|
|
876
876
|
|
|
@@ -948,7 +948,7 @@ async function handleBuild(): Promise<void> {
|
|
|
948
948
|
font-size: 11px;
|
|
949
949
|
background: var(--surface2);
|
|
950
950
|
padding: 2px 5px;
|
|
951
|
-
border:
|
|
951
|
+
border: var(--border-width-default) solid var(--border2);
|
|
952
952
|
color: var(--accent);
|
|
953
953
|
}
|
|
954
954
|
|
|
@@ -962,7 +962,7 @@ async function handleBuild(): Promise<void> {
|
|
|
962
962
|
|
|
963
963
|
.cpub-prose :deep(hr) {
|
|
964
964
|
border: none;
|
|
965
|
-
border-top:
|
|
965
|
+
border-top: var(--border-width-default) solid var(--border);
|
|
966
966
|
margin: 24px 0;
|
|
967
967
|
}
|
|
968
968
|
|
|
@@ -995,7 +995,7 @@ async function handleBuild(): Promise<void> {
|
|
|
995
995
|
.cpub-toc-nav {
|
|
996
996
|
display: flex; flex-direction: column; gap: 0;
|
|
997
997
|
position: relative;
|
|
998
|
-
border-left:
|
|
998
|
+
border-left: var(--border-width-default) solid var(--border);
|
|
999
999
|
}
|
|
1000
1000
|
.cpub-toc-item {
|
|
1001
1001
|
display: flex; align-items: flex-start; text-align: left; background: none;
|
|
@@ -1022,7 +1022,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1022
1022
|
|
|
1023
1023
|
.cpub-sb-card {
|
|
1024
1024
|
background: var(--surface);
|
|
1025
|
-
border:
|
|
1025
|
+
border: var(--border-width-default) solid var(--border);
|
|
1026
1026
|
padding: 18px;
|
|
1027
1027
|
box-shadow: var(--shadow-sm);
|
|
1028
1028
|
}
|
|
@@ -1036,14 +1036,14 @@ async function handleBuild(): Promise<void> {
|
|
|
1036
1036
|
color: var(--text-dim);
|
|
1037
1037
|
margin-bottom: 14px;
|
|
1038
1038
|
padding-bottom: 8px;
|
|
1039
|
-
border-bottom:
|
|
1039
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
1040
1040
|
}
|
|
1041
1041
|
|
|
1042
1042
|
/* Stats grid */
|
|
1043
1043
|
.cpub-stats-grid {
|
|
1044
1044
|
display: grid;
|
|
1045
1045
|
grid-template-columns: 1fr 1fr;
|
|
1046
|
-
border:
|
|
1046
|
+
border: var(--border-width-default) solid var(--border);
|
|
1047
1047
|
overflow: hidden;
|
|
1048
1048
|
}
|
|
1049
1049
|
|
|
@@ -1051,8 +1051,8 @@ async function handleBuild(): Promise<void> {
|
|
|
1051
1051
|
background: var(--surface2);
|
|
1052
1052
|
padding: 14px;
|
|
1053
1053
|
text-align: center;
|
|
1054
|
-
border-right:
|
|
1055
|
-
border-bottom:
|
|
1054
|
+
border-right: var(--border-width-default) solid var(--border);
|
|
1055
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
1056
1056
|
}
|
|
1057
1057
|
|
|
1058
1058
|
.cpub-stat-cell:nth-child(2n) { border-right: none; }
|
|
@@ -1105,7 +1105,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1105
1105
|
align-items: center;
|
|
1106
1106
|
gap: 10px;
|
|
1107
1107
|
padding: 8px 0;
|
|
1108
|
-
border-bottom:
|
|
1108
|
+
border-bottom: var(--border-width-default) solid var(--border2);
|
|
1109
1109
|
font-size: 12px;
|
|
1110
1110
|
}
|
|
1111
1111
|
|
|
@@ -1115,7 +1115,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1115
1115
|
width: 28px;
|
|
1116
1116
|
height: 28px;
|
|
1117
1117
|
background: var(--surface2);
|
|
1118
|
-
border:
|
|
1118
|
+
border: var(--border-width-default) solid var(--border2);
|
|
1119
1119
|
display: flex;
|
|
1120
1120
|
align-items: center;
|
|
1121
1121
|
justify-content: center;
|
|
@@ -1150,7 +1150,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1150
1150
|
font-size: 10px;
|
|
1151
1151
|
font-family: var(--font-mono);
|
|
1152
1152
|
padding: 4px 10px;
|
|
1153
|
-
border:
|
|
1153
|
+
border: var(--border-width-default) solid var(--border);
|
|
1154
1154
|
color: var(--text-dim);
|
|
1155
1155
|
background: var(--surface);
|
|
1156
1156
|
cursor: pointer;
|
|
@@ -1169,7 +1169,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1169
1169
|
align-items: center;
|
|
1170
1170
|
justify-content: space-between;
|
|
1171
1171
|
padding: 7px 0;
|
|
1172
|
-
border-bottom:
|
|
1172
|
+
border-bottom: var(--border-width-default) solid var(--border2);
|
|
1173
1173
|
font-size: 12px;
|
|
1174
1174
|
}
|
|
1175
1175
|
|
|
@@ -1188,7 +1188,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1188
1188
|
width: 44px;
|
|
1189
1189
|
height: 44px;
|
|
1190
1190
|
background: var(--purple-bg);
|
|
1191
|
-
border:
|
|
1191
|
+
border: var(--border-width-default) solid var(--border);
|
|
1192
1192
|
display: flex;
|
|
1193
1193
|
align-items: center;
|
|
1194
1194
|
justify-content: center;
|
|
@@ -1225,7 +1225,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1225
1225
|
.cpub-btn {
|
|
1226
1226
|
font-size: 12px;
|
|
1227
1227
|
padding: 6px 14px;
|
|
1228
|
-
border:
|
|
1228
|
+
border: var(--border-width-default) solid var(--border);
|
|
1229
1229
|
background: var(--surface);
|
|
1230
1230
|
color: var(--text);
|
|
1231
1231
|
cursor: pointer;
|
|
@@ -1245,7 +1245,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1245
1245
|
background: var(--surface3);
|
|
1246
1246
|
color: var(--text-faint);
|
|
1247
1247
|
padding: 1px 5px;
|
|
1248
|
-
border:
|
|
1248
|
+
border: var(--border-width-default) solid var(--border2);
|
|
1249
1249
|
}
|
|
1250
1250
|
|
|
1251
1251
|
/* BOM products in sidebar */
|
|
@@ -1258,7 +1258,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1258
1258
|
margin-top: 12px;
|
|
1259
1259
|
margin-bottom: 8px;
|
|
1260
1260
|
padding-top: 8px;
|
|
1261
|
-
border-top:
|
|
1261
|
+
border-top: var(--border-width-default) solid var(--border2);
|
|
1262
1262
|
}
|
|
1263
1263
|
|
|
1264
1264
|
.cpub-bom-product-row {
|
|
@@ -1298,7 +1298,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1298
1298
|
gap: 8px;
|
|
1299
1299
|
margin-bottom: 16px;
|
|
1300
1300
|
padding-bottom: 10px;
|
|
1301
|
-
border-bottom:
|
|
1301
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
1302
1302
|
}
|
|
1303
1303
|
|
|
1304
1304
|
.cpub-tab-section-title i { font-size: 12px; color: var(--text-faint); }
|
|
@@ -1324,12 +1324,12 @@ async function handleBuild(): Promise<void> {
|
|
|
1324
1324
|
padding: 8px 12px;
|
|
1325
1325
|
text-align: left;
|
|
1326
1326
|
background: var(--surface2);
|
|
1327
|
-
border-bottom:
|
|
1327
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
1328
1328
|
}
|
|
1329
1329
|
|
|
1330
1330
|
.cpub-parts-table td {
|
|
1331
1331
|
padding: 10px 12px;
|
|
1332
|
-
border-bottom:
|
|
1332
|
+
border-bottom: var(--border-width-default) solid var(--border2);
|
|
1333
1333
|
color: var(--text-dim);
|
|
1334
1334
|
}
|
|
1335
1335
|
|
|
@@ -1344,7 +1344,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1344
1344
|
display: flex; align-items: center; gap: 12px;
|
|
1345
1345
|
padding: 10px 14px;
|
|
1346
1346
|
background: var(--surface);
|
|
1347
|
-
border:
|
|
1347
|
+
border: var(--border-width-default) solid var(--border);
|
|
1348
1348
|
box-shadow: var(--shadow-sm);
|
|
1349
1349
|
}
|
|
1350
1350
|
|
|
@@ -1365,7 +1365,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1365
1365
|
.cpub-build-steps { display: flex; flex-direction: column; gap: 16px; }
|
|
1366
1366
|
|
|
1367
1367
|
.cpub-build-step {
|
|
1368
|
-
border:
|
|
1368
|
+
border: var(--border-width-default) solid var(--border);
|
|
1369
1369
|
overflow: hidden;
|
|
1370
1370
|
box-shadow: var(--shadow-sm);
|
|
1371
1371
|
}
|
|
@@ -1402,7 +1402,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1402
1402
|
width: 100%;
|
|
1403
1403
|
max-height: 400px;
|
|
1404
1404
|
object-fit: cover;
|
|
1405
|
-
border:
|
|
1405
|
+
border: var(--border-width-default) solid var(--border);
|
|
1406
1406
|
margin-top: 12px;
|
|
1407
1407
|
}
|
|
1408
1408
|
|
|
@@ -1410,7 +1410,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1410
1410
|
.cpub-code-tab { display: flex; flex-direction: column; gap: 16px; }
|
|
1411
1411
|
|
|
1412
1412
|
.cpub-code-snippet {
|
|
1413
|
-
border:
|
|
1413
|
+
border: var(--border-width-default) solid var(--border);
|
|
1414
1414
|
overflow: hidden;
|
|
1415
1415
|
box-shadow: var(--shadow-sm);
|
|
1416
1416
|
}
|
|
@@ -1419,7 +1419,7 @@ async function handleBuild(): Promise<void> {
|
|
|
1419
1419
|
display: flex; align-items: center; gap: 8px;
|
|
1420
1420
|
padding: 8px 14px;
|
|
1421
1421
|
background: var(--surface2);
|
|
1422
|
-
border-bottom:
|
|
1422
|
+
border-bottom: var(--border-width-default) solid var(--border);
|
|
1423
1423
|
}
|
|
1424
1424
|
|
|
1425
1425
|
.cpub-code-lang-label {
|
|
@@ -1457,14 +1457,14 @@ async function handleBuild(): Promise<void> {
|
|
|
1457
1457
|
display: flex; align-items: center; gap: 12px;
|
|
1458
1458
|
padding: 12px 14px;
|
|
1459
1459
|
background: var(--surface);
|
|
1460
|
-
border:
|
|
1460
|
+
border: var(--border-width-default) solid var(--border);
|
|
1461
1461
|
box-shadow: var(--shadow-sm);
|
|
1462
1462
|
}
|
|
1463
1463
|
|
|
1464
1464
|
.cpub-file-icon {
|
|
1465
1465
|
width: 32px; height: 32px;
|
|
1466
1466
|
background: var(--surface2);
|
|
1467
|
-
border:
|
|
1467
|
+
border: var(--border-width-default) solid var(--border2);
|
|
1468
1468
|
display: flex; align-items: center; justify-content: center;
|
|
1469
1469
|
font-size: 12px; color: var(--text-faint); flex-shrink: 0;
|
|
1470
1470
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commonpub/layer",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./nuxt.config.ts",
|
|
6
6
|
"files": [
|
|
@@ -50,16 +50,16 @@
|
|
|
50
50
|
"vue": "^3.4.0",
|
|
51
51
|
"vue-router": "^4.3.0",
|
|
52
52
|
"zod": "^4.3.6",
|
|
53
|
-
"@commonpub/
|
|
54
|
-
"@commonpub/
|
|
55
|
-
"@commonpub/docs": "0.6.1",
|
|
53
|
+
"@commonpub/config": "0.9.0",
|
|
54
|
+
"@commonpub/editor": "0.6.1",
|
|
56
55
|
"@commonpub/explainer": "0.7.3",
|
|
57
|
-
"@commonpub/
|
|
58
|
-
"@commonpub/
|
|
56
|
+
"@commonpub/docs": "0.6.2",
|
|
57
|
+
"@commonpub/auth": "0.5.0",
|
|
59
58
|
"@commonpub/protocol": "0.9.7",
|
|
60
|
-
"@commonpub/
|
|
61
|
-
"@commonpub/
|
|
62
|
-
"@commonpub/
|
|
59
|
+
"@commonpub/ui": "0.8.5",
|
|
60
|
+
"@commonpub/learning": "0.5.0",
|
|
61
|
+
"@commonpub/schema": "0.9.3",
|
|
62
|
+
"@commonpub/server": "2.27.3"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@testing-library/jest-dom": "^6.9.1",
|
package/pages/admin/theme.vue
CHANGED
|
@@ -174,7 +174,7 @@ useSeoMeta({
|
|
|
174
174
|
margin-bottom: 20px;
|
|
175
175
|
padding: 8px;
|
|
176
176
|
background: var(--surface2);
|
|
177
|
-
border:
|
|
177
|
+
border: var(--border-width-default) solid var(--border);
|
|
178
178
|
}
|
|
179
179
|
.cpub-authorize-success {
|
|
180
180
|
color: var(--green, #22c55e);
|
|
@@ -506,7 +506,7 @@ async function handlePostVote(postId: string): Promise<void> {
|
|
|
506
506
|
|
|
507
507
|
<style scoped>
|
|
508
508
|
/* Federation indicator (inside hero banner) */
|
|
509
|
-
.cpub-fed-indicator { background: var(--accent-bg); border-bottom:
|
|
509
|
+
.cpub-fed-indicator { background: var(--accent-bg); border-bottom: var(--border-width-default) solid var(--accent-border); }
|
|
510
510
|
.cpub-fed-indicator {
|
|
511
511
|
padding: 6px 24px;
|
|
512
512
|
display: flex; align-items: center; gap: 8px;
|
|
@@ -531,7 +531,7 @@ async function handlePostVote(postId: string): Promise<void> {
|
|
|
531
531
|
}
|
|
532
532
|
.cpub-compose-type-btn {
|
|
533
533
|
font-size: 11px; font-weight: 600; padding: 4px 10px;
|
|
534
|
-
border:
|
|
534
|
+
border: var(--border-width-default) solid var(--border); background: var(--surface2);
|
|
535
535
|
color: var(--text-dim); cursor: pointer;
|
|
536
536
|
display: flex; align-items: center; gap: 4px;
|
|
537
537
|
}
|
|
@@ -540,7 +540,7 @@ async function handlePostVote(postId: string): Promise<void> {
|
|
|
540
540
|
}
|
|
541
541
|
.cpub-compose-row { display: flex; gap: 8px; align-items: center; }
|
|
542
542
|
.cpub-compose-input {
|
|
543
|
-
flex: 1; background: var(--surface2); border:
|
|
543
|
+
flex: 1; background: var(--surface2); border: var(--border-width-default) solid var(--border);
|
|
544
544
|
padding: 10px 14px; font-size: 0.8125rem;
|
|
545
545
|
color: var(--text); font-family: inherit;
|
|
546
546
|
}
|
|
@@ -574,7 +574,7 @@ async function handlePostVote(postId: string): Promise<void> {
|
|
|
574
574
|
.cpub-shared-card-type {
|
|
575
575
|
font-size: 9px; font-family: var(--font-mono); text-transform: uppercase;
|
|
576
576
|
letter-spacing: 0.08em; color: var(--accent); background: var(--accent-bg);
|
|
577
|
-
border:
|
|
577
|
+
border: var(--border-width-default) solid var(--accent-border); padding: 2px 6px;
|
|
578
578
|
display: inline-block; margin-bottom: 6px;
|
|
579
579
|
}
|
|
580
580
|
.cpub-shared-card-title { font-size: 14px; font-weight: 600; margin-bottom: 4px; }
|
|
@@ -623,7 +623,7 @@ async function handlePostVote(postId: string): Promise<void> {
|
|
|
623
623
|
display: inline-flex; align-items: center; gap: 4px;
|
|
624
624
|
font-size: 0.6875rem; font-weight: 600;
|
|
625
625
|
color: var(--accent); background: var(--accent-bg);
|
|
626
|
-
padding: 4px 12px; border:
|
|
626
|
+
padding: 4px 12px; border: var(--border-width-default) solid var(--accent-border);
|
|
627
627
|
}
|
|
628
628
|
|
|
629
629
|
/* Sidebar */
|
|
@@ -646,7 +646,7 @@ async function handlePostVote(postId: string): Promise<void> {
|
|
|
646
646
|
font-size: 12px; color: var(--text-dim); line-height: 1.5;
|
|
647
647
|
padding: 6px 0;
|
|
648
648
|
}
|
|
649
|
-
.cpub-rule-item + .cpub-rule-item { border-top:
|
|
649
|
+
.cpub-rule-item + .cpub-rule-item { border-top: var(--border-width-default) solid var(--border2); }
|
|
650
650
|
.cpub-rule-num {
|
|
651
651
|
font-family: var(--font-mono); font-size: 10px; font-weight: 700;
|
|
652
652
|
color: var(--accent); flex-shrink: 0; width: 18px; text-align: center;
|
|
@@ -243,7 +243,7 @@ useHead({
|
|
|
243
243
|
<style scoped>
|
|
244
244
|
.cpub-post-page { max-width: 800px; margin: 0 auto; padding: 0 16px 40px; }
|
|
245
245
|
|
|
246
|
-
.cpub-fed-banner { background: var(--accent-bg); border-bottom:
|
|
246
|
+
.cpub-fed-banner { background: var(--accent-bg); border-bottom: var(--border-width-default) solid var(--accent-border); margin: 0 -16px 16px; }
|
|
247
247
|
.cpub-fed-banner-inner {
|
|
248
248
|
max-width: 800px; margin: 0 auto; padding: 8px 16px;
|
|
249
249
|
display: flex; align-items: center; gap: 8px;
|
|
@@ -280,7 +280,7 @@ useHead({
|
|
|
280
280
|
display: inline-block; padding: 2px 8px; font-family: var(--font-mono);
|
|
281
281
|
font-size: 10px; font-weight: 600; text-transform: uppercase;
|
|
282
282
|
letter-spacing: 0.05em; color: var(--accent); background: var(--accent-bg);
|
|
283
|
-
border:
|
|
283
|
+
border: var(--border-width-default) solid var(--accent-border);
|
|
284
284
|
}
|
|
285
285
|
|
|
286
286
|
.cpub-post-content {
|
|
@@ -297,7 +297,7 @@ useHead({
|
|
|
297
297
|
|
|
298
298
|
.cpub-post-avatar {
|
|
299
299
|
width: 24px; height: 24px; display: flex; align-items: center; justify-content: center;
|
|
300
|
-
background: var(--surface2); border:
|
|
300
|
+
background: var(--surface2); border: var(--border-width-default) solid var(--border);
|
|
301
301
|
font-family: var(--font-mono); font-size: 10px; font-weight: 700; color: var(--text-dim);
|
|
302
302
|
overflow: hidden;
|
|
303
303
|
}
|
|
@@ -313,7 +313,7 @@ useHead({
|
|
|
313
313
|
.cpub-post-action-btn {
|
|
314
314
|
display: inline-flex; align-items: center; gap: 4px;
|
|
315
315
|
font-size: 12px; color: var(--text-faint); background: none; border: none; cursor: pointer;
|
|
316
|
-
padding: 4px 8px; border:
|
|
316
|
+
padding: 4px 8px; border: var(--border-width-default) solid var(--border); transition: all 0.1s;
|
|
317
317
|
}
|
|
318
318
|
.cpub-post-action-btn:hover:not(:disabled) { color: var(--accent); border-color: var(--accent-border); }
|
|
319
319
|
.cpub-post-action-btn.active { color: var(--red); border-color: var(--red); }
|
|
@@ -354,7 +354,7 @@ useHead({
|
|
|
354
354
|
|
|
355
355
|
.cpub-reply-avatar {
|
|
356
356
|
width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;
|
|
357
|
-
background: var(--surface2); border:
|
|
357
|
+
background: var(--surface2); border: var(--border-width-default) solid var(--border);
|
|
358
358
|
font-family: var(--font-mono); font-size: 9px; font-weight: 700; color: var(--text-dim);
|
|
359
359
|
overflow: hidden;
|
|
360
360
|
}
|
|
@@ -422,7 +422,7 @@ async function onRefreshGallery(): Promise<void> {
|
|
|
422
422
|
/* Compose bar */
|
|
423
423
|
.cpub-compose-bar {
|
|
424
424
|
background: var(--surface);
|
|
425
|
-
border:
|
|
425
|
+
border: var(--border-width-default) solid var(--border);
|
|
426
426
|
border-radius: 12px;
|
|
427
427
|
padding: 12px 14px;
|
|
428
428
|
margin-bottom: 16px;
|
|
@@ -441,7 +441,7 @@ async function onRefreshGallery(): Promise<void> {
|
|
|
441
441
|
letter-spacing: 0.04em;
|
|
442
442
|
padding: 4px 10px;
|
|
443
443
|
background: none;
|
|
444
|
-
border:
|
|
444
|
+
border: var(--border-width-default) solid var(--border);
|
|
445
445
|
border-radius: 6px;
|
|
446
446
|
color: var(--text-faint);
|
|
447
447
|
cursor: pointer;
|
|
@@ -458,7 +458,7 @@ async function onRefreshGallery(): Promise<void> {
|
|
|
458
458
|
.cpub-compose-input {
|
|
459
459
|
flex: 1;
|
|
460
460
|
background: var(--surface2);
|
|
461
|
-
border:
|
|
461
|
+
border: var(--border-width-default) solid var(--border);
|
|
462
462
|
border-radius: 8px;
|
|
463
463
|
padding: 10px 14px;
|
|
464
464
|
font-size: 0.8125rem;
|
|
@@ -466,7 +466,7 @@ async function onRefreshGallery(): Promise<void> {
|
|
|
466
466
|
cursor: pointer;
|
|
467
467
|
}
|
|
468
468
|
|
|
469
|
-
.cpub-post-error { font-size: 0.75rem; color: var(--red); background: var(--red-bg); border:
|
|
469
|
+
.cpub-post-error { font-size: 0.75rem; color: var(--red); background: var(--red-bg); border: var(--border-width-default) solid var(--red-border); border-radius: 8px; padding: 8px 12px; margin-bottom: 12px; }
|
|
470
470
|
|
|
471
471
|
/* Member badge */
|
|
472
472
|
.cpub-member-badge {
|
|
@@ -478,7 +478,7 @@ async function onRefreshGallery(): Promise<void> {
|
|
|
478
478
|
color: var(--green);
|
|
479
479
|
background: var(--green-bg);
|
|
480
480
|
padding: 4px 12px;
|
|
481
|
-
border:
|
|
481
|
+
border: var(--border-width-default) solid var(--green-border);
|
|
482
482
|
border-radius: 20px;
|
|
483
483
|
}
|
|
484
484
|
|
|
@@ -488,7 +488,7 @@ async function onRefreshGallery(): Promise<void> {
|
|
|
488
488
|
|
|
489
489
|
.cpub-mod-avatar {
|
|
490
490
|
width: 32px; height: 32px; border-radius: 50%;
|
|
491
|
-
background: var(--accent-bg); border:
|
|
491
|
+
background: var(--accent-bg); border: var(--border-width-default) solid var(--accent-border);
|
|
492
492
|
display: flex; align-items: center; justify-content: center;
|
|
493
493
|
font-size: 11px; font-weight: 600; color: var(--accent); flex-shrink: 0;
|
|
494
494
|
overflow: hidden;
|
|
@@ -320,7 +320,7 @@ useSeoMeta({
|
|
|
320
320
|
display: inline-block; padding: 2px 8px; font-family: var(--font-mono);
|
|
321
321
|
font-size: 10px; font-weight: 600; text-transform: uppercase;
|
|
322
322
|
letter-spacing: 0.05em; color: var(--accent); background: var(--accent-bg);
|
|
323
|
-
border:
|
|
323
|
+
border: var(--border-width-default) solid var(--accent-border);
|
|
324
324
|
}
|
|
325
325
|
|
|
326
326
|
.cpub-post-locked { font-size: 11px; color: var(--text-faint); }
|
|
@@ -352,7 +352,7 @@ useSeoMeta({
|
|
|
352
352
|
|
|
353
353
|
.cpub-post-avatar {
|
|
354
354
|
width: 24px; height: 24px; display: flex; align-items: center; justify-content: center;
|
|
355
|
-
background: var(--surface2); border:
|
|
355
|
+
background: var(--surface2); border: var(--border-width-default) solid var(--border);
|
|
356
356
|
font-family: var(--font-mono); font-size: 10px; font-weight: 700; color: var(--text-dim);
|
|
357
357
|
overflow: hidden;
|
|
358
358
|
}
|
|
@@ -368,14 +368,14 @@ useSeoMeta({
|
|
|
368
368
|
.cpub-post-action-btn {
|
|
369
369
|
display: inline-flex; align-items: center; gap: 4px;
|
|
370
370
|
font-size: 12px; color: var(--text-faint); background: none; border: none; cursor: pointer;
|
|
371
|
-
padding: 4px 8px; border:
|
|
371
|
+
padding: 4px 8px; border: var(--border-width-default) solid var(--border); transition: all 0.1s;
|
|
372
372
|
}
|
|
373
373
|
.cpub-post-action-btn:hover:not(:disabled) { color: var(--accent); border-color: var(--accent-border); }
|
|
374
374
|
.cpub-post-action-btn.active { color: var(--red); border-color: var(--red); }
|
|
375
375
|
.cpub-post-action-btn:disabled { opacity: 0.5; cursor: default; }
|
|
376
376
|
|
|
377
377
|
.cpub-post-mod-bar {
|
|
378
|
-
margin-top: 12px; padding-top: 12px; border-top:
|
|
378
|
+
margin-top: 12px; padding-top: 12px; border-top: var(--border-width-default) solid var(--border);
|
|
379
379
|
display: flex; gap: 6px;
|
|
380
380
|
}
|
|
381
381
|
|
|
@@ -400,7 +400,7 @@ useSeoMeta({
|
|
|
400
400
|
.cpub-reply-input:focus { outline: none; border-color: var(--accent); }
|
|
401
401
|
|
|
402
402
|
.cpub-post-locked-notice {
|
|
403
|
-
padding: 12px 16px; background: var(--surface2); border:
|
|
403
|
+
padding: 12px 16px; background: var(--surface2); border: var(--border-width-default) solid var(--border);
|
|
404
404
|
font-size: 12px; color: var(--text-faint); margin-bottom: 16px; text-align: center;
|
|
405
405
|
}
|
|
406
406
|
|
|
@@ -420,7 +420,7 @@ useSeoMeta({
|
|
|
420
420
|
|
|
421
421
|
.cpub-reply-avatar {
|
|
422
422
|
width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;
|
|
423
|
-
background: var(--surface2); border:
|
|
423
|
+
background: var(--surface2); border: var(--border-width-default) solid var(--border);
|
|
424
424
|
font-family: var(--font-mono); font-size: 9px; font-weight: 700; color: var(--text-dim);
|
|
425
425
|
overflow: hidden;
|
|
426
426
|
}
|
package/pages/hubs/index.vue
CHANGED
|
@@ -170,7 +170,7 @@ function hubLink(hub: Record<string, unknown>): string {
|
|
|
170
170
|
align-items: center;
|
|
171
171
|
gap: 14px;
|
|
172
172
|
padding-top: 10px;
|
|
173
|
-
border-top:
|
|
173
|
+
border-top: var(--border-width-default) solid var(--border2);
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
.cpub-hub-card-stat {
|
|
@@ -190,7 +190,7 @@ function hubLink(hub: Record<string, unknown>): string {
|
|
|
190
190
|
letter-spacing: 0.08em;
|
|
191
191
|
color: var(--accent);
|
|
192
192
|
background: var(--accent-bg);
|
|
193
|
-
border:
|
|
193
|
+
border: var(--border-width-default) solid var(--accent-border);
|
|
194
194
|
padding: 2px 6px;
|
|
195
195
|
}
|
|
196
196
|
|
package/pages/mirror/[id].vue
CHANGED
|
@@ -132,7 +132,7 @@ useSeoMeta({
|
|
|
132
132
|
|
|
133
133
|
<style scoped>
|
|
134
134
|
.cpub-fed-banner {
|
|
135
|
-
background: var(--accent-bg); border-bottom:
|
|
135
|
+
background: var(--accent-bg); border-bottom: var(--border-width-default) solid var(--accent-border);
|
|
136
136
|
}
|
|
137
137
|
.cpub-fed-banner-inner {
|
|
138
138
|
max-width: 1200px; margin: 0 auto; padding: 8px 24px;
|
|
@@ -161,7 +161,7 @@ useSeoMeta({
|
|
|
161
161
|
.cpub-mirror-cover { width: 100%; max-height: 400px; object-fit: cover; margin-bottom: 20px; }
|
|
162
162
|
.cpub-mirror-title { font-size: 2rem; font-weight: 800; line-height: 1.2; margin-bottom: 12px; }
|
|
163
163
|
.cpub-mirror-desc { font-size: 1.0625rem; color: var(--text-dim); line-height: 1.6; margin-bottom: 16px; }
|
|
164
|
-
.cpub-mirror-author { font-size: 0.875rem; color: var(--text-dim); margin-bottom: 24px; padding-bottom: 16px; border-bottom:
|
|
164
|
+
.cpub-mirror-author { font-size: 0.875rem; color: var(--text-dim); margin-bottom: 24px; padding-bottom: 16px; border-bottom: var(--border-width-default) solid var(--border); display: flex; align-items: flex-start; gap: 12px; }
|
|
165
165
|
.cpub-mirror-author-avatar { width: 40px; height: 40px; object-fit: cover; border: var(--border-width-default) solid var(--border); flex-shrink: 0; }
|
|
166
166
|
.cpub-mirror-bio { font-size: 0.8125rem; color: var(--text-faint); line-height: 1.5; margin-top: 4px; }
|
|
167
167
|
.cpub-mirror-bio :deep(a) { color: var(--accent); }
|
|
@@ -7,6 +7,7 @@ const searchQuerySchema = z.object({
|
|
|
7
7
|
|
|
8
8
|
export default defineEventHandler(async (event) => {
|
|
9
9
|
const db = useDB();
|
|
10
|
+
const config = useConfig();
|
|
10
11
|
const { siteSlug } = parseParams(event, { siteSlug: 'string' });
|
|
11
12
|
const query = parseQueryParams(event, searchQuerySchema);
|
|
12
13
|
|
|
@@ -16,5 +17,5 @@ export default defineEventHandler(async (event) => {
|
|
|
16
17
|
const version = result.versions?.find((v) => v.isDefault) ?? result.versions?.[0];
|
|
17
18
|
if (!version) return [];
|
|
18
19
|
|
|
19
|
-
return searchDocsPages(db, result.site.id, version.id, query.q ?? '');
|
|
20
|
+
return searchDocsPages(db, result.site.id, version.id, query.q ?? '', config.docs.searchLanguage);
|
|
20
21
|
});
|
package/theme/components.css
CHANGED
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
font-size: var(--text-xs, 12px);
|
|
55
55
|
font-family: var(--font-mono);
|
|
56
56
|
padding: 2px 8px;
|
|
57
|
-
border:
|
|
57
|
+
border: var(--border-width-default) solid var(--border2);
|
|
58
58
|
color: var(--text-dim);
|
|
59
59
|
background: var(--surface2);
|
|
60
60
|
}
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
font-family: var(--font-mono);
|
|
93
93
|
margin-bottom: 12px;
|
|
94
94
|
padding-bottom: 8px;
|
|
95
|
-
border-bottom:
|
|
95
|
+
border-bottom: var(--border-width-thin) solid var(--border2);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
/* ─── SECTION HEADERS ─── */
|
package/theme/layouts.css
CHANGED
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
.cpub-sidebar-section {
|
|
146
146
|
margin-bottom: var(--space-6);
|
|
147
147
|
padding-bottom: var(--space-6);
|
|
148
|
-
border-bottom:
|
|
148
|
+
border-bottom: var(--border-width-thin) solid var(--border2);
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
.cpub-sidebar-section:last-child {
|
|
@@ -261,7 +261,7 @@
|
|
|
261
261
|
padding: 2px 8px;
|
|
262
262
|
font-size: var(--text-xs);
|
|
263
263
|
font-weight: var(--font-weight-medium);
|
|
264
|
-
border:
|
|
264
|
+
border: var(--border-width-default) solid var(--border2);
|
|
265
265
|
background: var(--surface2);
|
|
266
266
|
color: var(--text-dim);
|
|
267
267
|
font-family: var(--font-mono);
|
package/theme/prose.css
CHANGED
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
.cpub-prose a {
|
|
55
55
|
color: var(--accent);
|
|
56
56
|
text-decoration: none;
|
|
57
|
-
border-bottom:
|
|
57
|
+
border-bottom: var(--border-width-thin) solid var(--accent-border);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
.cpub-prose a:hover {
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
color: var(--teal);
|
|
69
69
|
background: var(--surface2);
|
|
70
70
|
padding: 2px 6px;
|
|
71
|
-
border:
|
|
71
|
+
border: var(--border-width-thin) solid var(--border2);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
/* Code blocks */
|
|
@@ -308,7 +308,7 @@
|
|
|
308
308
|
text-align: center;
|
|
309
309
|
padding: var(--space-4);
|
|
310
310
|
background: var(--surface2);
|
|
311
|
-
border:
|
|
311
|
+
border: var(--border-width-thin) solid var(--border2);
|
|
312
312
|
font-size: var(--text-lg);
|
|
313
313
|
}
|
|
314
314
|
|
|
@@ -327,7 +327,7 @@
|
|
|
327
327
|
.cpub-prose th,
|
|
328
328
|
.cpub-prose td {
|
|
329
329
|
padding: var(--space-2) var(--space-3);
|
|
330
|
-
border:
|
|
330
|
+
border: var(--border-width-thin) solid var(--border2);
|
|
331
331
|
text-align: left;
|
|
332
332
|
}
|
|
333
333
|
|