anentrypoint-design 1.0.2 → 1.0.3
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/chat.css +99 -3
- package/colors_and_type.css +10 -0
- package/community.css +34 -34
- package/dist/247420.css +262 -41
- package/dist/247420.js +23 -23
- package/package.json +1 -1
- package/src/community-app.js +6 -1
- package/src/components/content/charts.js +5 -1
- package/src/components/content/table.js +15 -5
- package/src/components/freddie/pages-telemetry.js +1 -1
- package/src/components/shell/atoms.js +6 -2
- package/src/css/app-shell/hero-content.css +36 -0
- package/src/css/app-shell/primitives.css +39 -2
- package/src/kits/os/freddie/pages-tools.js +8 -8
- package/src/kits/os/freddie-dashboard.css +3 -3
- package/src/kits/os/freddie-dashboard.js +1 -1
- package/src/kits/os/theme.css +26 -0
package/chat.css
CHANGED
|
@@ -1,6 +1,102 @@
|
|
|
1
|
-
/* chat.css — chat-specific styles
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/* chat.css — chat-specific styles, including the base .chat-* rules used by
|
|
2
|
+
Chat()/ChatMessage() (chat/threads.js, chat/message.js): .chat, .chat-head,
|
|
3
|
+
.chat-thread, .chat-msg, .chat-avatar, .chat-bubble, .chat-stack,
|
|
4
|
+
.chat-empty. This file also carries the AgentChat kit styles (the reusable
|
|
5
|
+
multi-agent orchestration chat surface, .agentchat-*). */
|
|
6
|
+
|
|
7
|
+
/* Base chat surface — the default (non-flat) messenger layout: left/right
|
|
8
|
+
avatar-disc + colored-bubble turns. .chat-msg-flat further down overrides
|
|
9
|
+
these to the claude.ai/code full-width turn style; these are the rules it
|
|
10
|
+
overrides FROM, and were previously entirely undefined, so the default
|
|
11
|
+
layout rendered on raw flex/browser defaults (unstyled bubble shape, no
|
|
12
|
+
avatar depth, no defined thread padding) until a Chat() consumer supplied
|
|
13
|
+
its own colliding class names. */
|
|
14
|
+
.chat {
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
flex: 1;
|
|
18
|
+
min-height: 0;
|
|
19
|
+
}
|
|
20
|
+
.chat-head {
|
|
21
|
+
display: flex;
|
|
22
|
+
align-items: center;
|
|
23
|
+
gap: var(--space-2);
|
|
24
|
+
padding: var(--space-2-75) var(--space-3);
|
|
25
|
+
border-bottom: 1px solid var(--panel-3, color-mix(in oklab, var(--fg) 10%, transparent));
|
|
26
|
+
flex-shrink: 0;
|
|
27
|
+
}
|
|
28
|
+
.chat-head .ds-chat-title { font-size: var(--fs-sm); font-weight: var(--fw-medium); margin: 0; }
|
|
29
|
+
.chat-head .sub { font-size: var(--fs-tiny); color: var(--fg-3); }
|
|
30
|
+
.chat-head .spread { flex: 1; }
|
|
31
|
+
.chat-thread {
|
|
32
|
+
flex: 1;
|
|
33
|
+
min-height: 0;
|
|
34
|
+
overflow-y: auto;
|
|
35
|
+
display: flex;
|
|
36
|
+
flex-direction: column;
|
|
37
|
+
gap: var(--space-3);
|
|
38
|
+
padding: var(--space-3) var(--space-3) var(--space-4);
|
|
39
|
+
/* A short thread must not stretch its one message across the whole
|
|
40
|
+
viewport height — pack content to the bottom (where the composer is)
|
|
41
|
+
instead of centering it in a sea of empty space above and below. */
|
|
42
|
+
justify-content: flex-end;
|
|
43
|
+
}
|
|
44
|
+
.chat-empty {
|
|
45
|
+
margin: auto;
|
|
46
|
+
max-width: var(--measure-narrow, 60ch);
|
|
47
|
+
text-align: center;
|
|
48
|
+
padding: var(--space-5) var(--space-3);
|
|
49
|
+
color: var(--fg-3);
|
|
50
|
+
}
|
|
51
|
+
.chat-empty-title { font-size: var(--fs-lg); font-weight: var(--fw-medium); color: var(--fg-2); margin: 0 0 var(--space-1); }
|
|
52
|
+
.chat-empty-sub { font-size: var(--fs-sm); margin: 0; }
|
|
53
|
+
.chat-msg {
|
|
54
|
+
display: flex;
|
|
55
|
+
gap: var(--space-2);
|
|
56
|
+
align-items: flex-start;
|
|
57
|
+
max-width: 100%;
|
|
58
|
+
}
|
|
59
|
+
.chat-msg.you { flex-direction: row-reverse; }
|
|
60
|
+
.chat-msg.centered { justify-content: center; text-align: center; }
|
|
61
|
+
.chat-avatar {
|
|
62
|
+
width: 32px;
|
|
63
|
+
height: 32px;
|
|
64
|
+
flex-shrink: 0;
|
|
65
|
+
border-radius: 50%;
|
|
66
|
+
background: var(--bg-3);
|
|
67
|
+
color: var(--fg);
|
|
68
|
+
display: inline-flex;
|
|
69
|
+
align-items: center;
|
|
70
|
+
justify-content: center;
|
|
71
|
+
font-size: var(--fs-tiny);
|
|
72
|
+
font-weight: var(--fw-medium);
|
|
73
|
+
/* Depth over a flat solid-color disc: a hairline inset ring plus the same
|
|
74
|
+
soft shadow --panel-shadow uses elsewhere, so avatars read as a real
|
|
75
|
+
surface element instead of a wireframe placeholder. */
|
|
76
|
+
box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--fg) 10%, transparent), 0 1px 2px color-mix(in oklab, var(--fg) 10%, transparent);
|
|
77
|
+
}
|
|
78
|
+
.chat-stack {
|
|
79
|
+
display: flex;
|
|
80
|
+
flex-direction: column;
|
|
81
|
+
gap: var(--space-1);
|
|
82
|
+
max-width: 70%;
|
|
83
|
+
min-width: 0;
|
|
84
|
+
}
|
|
85
|
+
.chat-msg.you .chat-stack { align-items: flex-end; }
|
|
86
|
+
.chat-bubble {
|
|
87
|
+
padding: var(--space-2) var(--space-2-75);
|
|
88
|
+
background: var(--bg-2);
|
|
89
|
+
color: var(--fg);
|
|
90
|
+
/* r-2, not a pill — a pill-capsule bubble read as a generic chat-template
|
|
91
|
+
shape inconsistent with every other rounded element in the app (which
|
|
92
|
+
all use the r-0..r-3 scale, never 999px). */
|
|
93
|
+
border-radius: var(--r-2);
|
|
94
|
+
line-height: var(--lh-base, 1.5);
|
|
95
|
+
word-break: break-word;
|
|
96
|
+
font-size: var(--fs-sm);
|
|
97
|
+
}
|
|
98
|
+
.chat-msg.you .chat-bubble { background: var(--accent); color: var(--accent-fg); }
|
|
99
|
+
.chat-meta { display: flex; gap: var(--space-1-5); font-size: var(--fs-nano); color: var(--fg-3); padding: 0 var(--space-1); }
|
|
4
100
|
|
|
5
101
|
.agentchat {
|
|
6
102
|
display: flex;
|
package/colors_and_type.css
CHANGED
|
@@ -187,6 +187,16 @@
|
|
|
187
187
|
--ff-body: system-ui, sans-serif;
|
|
188
188
|
--ff-mono: ui-monospace, Menlo, Consolas, monospace;
|
|
189
189
|
|
|
190
|
+
/* Weight scale — regular is the default voice for body/UI text everywhere;
|
|
191
|
+
medium/semibold/bold are reserved for genuine emphasis (active state,
|
|
192
|
+
unread counts, own-message author, section headers). Never reach for a
|
|
193
|
+
hardcoded 600/700 in a component rule — use these so the whole surface
|
|
194
|
+
can be re-tuned in one place instead of drifting per-component. */
|
|
195
|
+
--fw-regular: 400;
|
|
196
|
+
--fw-medium: 500;
|
|
197
|
+
--fw-semibold: 600;
|
|
198
|
+
--fw-bold: 700;
|
|
199
|
+
|
|
190
200
|
/* Sub-12px tiers exist ONLY for dense OS/data chrome — taskbar strips,
|
|
191
201
|
session chips, tool-call headers, file-row metadata, ID/stat columns.
|
|
192
202
|
Never use them for body copy or ordinary UI text: at these sizes the
|
package/community.css
CHANGED
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
justify-content: center;
|
|
83
83
|
font-family: var(--ff-body);
|
|
84
84
|
font-size: var(--fs-lg);
|
|
85
|
-
font-weight:
|
|
85
|
+
font-weight: var(--fw-medium);
|
|
86
86
|
letter-spacing: var(--tr-tight);
|
|
87
87
|
cursor: pointer;
|
|
88
88
|
overflow: hidden;
|
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
color: var(--ink);
|
|
140
140
|
font-family: var(--ff-mono);
|
|
141
141
|
font-size: var(--fs-micro);
|
|
142
|
-
font-weight:
|
|
142
|
+
font-weight: var(--fw-bold);
|
|
143
143
|
border-radius: var(--r-pill);
|
|
144
144
|
display: flex;
|
|
145
145
|
align-items: center;
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
align-items: center;
|
|
159
159
|
justify-content: center;
|
|
160
160
|
font-size: var(--fs-xl);
|
|
161
|
-
font-weight:
|
|
161
|
+
font-weight: var(--fw-regular);
|
|
162
162
|
cursor: pointer;
|
|
163
163
|
border: 0;
|
|
164
164
|
transition:
|
|
@@ -204,7 +204,7 @@
|
|
|
204
204
|
padding: var(--space-2-75) var(--space-3);
|
|
205
205
|
background: var(--bg-2);
|
|
206
206
|
box-shadow: 0 1px 0 color-mix(in oklab, var(--fg) 8%, transparent);
|
|
207
|
-
font-weight:
|
|
207
|
+
font-weight: var(--fw-medium);
|
|
208
208
|
font-size: var(--fs-sm);
|
|
209
209
|
letter-spacing: -0.01em;
|
|
210
210
|
/* No cursor:pointer, no :hover background, no user-select:none. This is a
|
|
@@ -259,7 +259,7 @@
|
|
|
259
259
|
padding: var(--space-1) var(--space-2);
|
|
260
260
|
font-family: var(--ff-body);
|
|
261
261
|
font-size: var(--fs-micro);
|
|
262
|
-
font-weight:
|
|
262
|
+
font-weight: var(--fw-medium);
|
|
263
263
|
color: var(--fg-3);
|
|
264
264
|
letter-spacing: var(--tr-caps);
|
|
265
265
|
text-transform: uppercase;
|
|
@@ -298,7 +298,7 @@
|
|
|
298
298
|
font-family: var(--ff-mono);
|
|
299
299
|
font-size: var(--fs-micro);
|
|
300
300
|
color: var(--fg-3);
|
|
301
|
-
font-weight:
|
|
301
|
+
font-weight: var(--fw-medium);
|
|
302
302
|
letter-spacing: 0;
|
|
303
303
|
text-transform: none;
|
|
304
304
|
}
|
|
@@ -368,7 +368,7 @@
|
|
|
368
368
|
.cm-channel-item.active {
|
|
369
369
|
background: color-mix(in oklab, var(--fg) 10%, transparent);
|
|
370
370
|
color: var(--fg);
|
|
371
|
-
font-weight:
|
|
371
|
+
font-weight: var(--fw-medium);
|
|
372
372
|
}
|
|
373
373
|
.cm-channel-item.active::before {
|
|
374
374
|
content: '';
|
|
@@ -474,7 +474,7 @@
|
|
|
474
474
|
color: var(--ink);
|
|
475
475
|
font-family: var(--ff-mono);
|
|
476
476
|
font-size: var(--fs-micro);
|
|
477
|
-
font-weight:
|
|
477
|
+
font-weight: var(--fw-bold);
|
|
478
478
|
border-radius: var(--r-pill);
|
|
479
479
|
display: inline-flex;
|
|
480
480
|
align-items: center;
|
|
@@ -558,7 +558,7 @@
|
|
|
558
558
|
align-items: center;
|
|
559
559
|
justify-content: center;
|
|
560
560
|
font-size: var(--fs-pico);
|
|
561
|
-
font-weight:
|
|
561
|
+
font-weight: var(--fw-medium);
|
|
562
562
|
overflow: hidden;
|
|
563
563
|
transition: box-shadow var(--dur-snap) var(--ease);
|
|
564
564
|
}
|
|
@@ -597,7 +597,7 @@
|
|
|
597
597
|
a pulsing dot and must read as the loudest thing in the strip). */
|
|
598
598
|
.cm-vs-label {
|
|
599
599
|
color: var(--green);
|
|
600
|
-
font-weight:
|
|
600
|
+
font-weight: var(--fw-bold);
|
|
601
601
|
display: inline-flex;
|
|
602
602
|
align-items: center;
|
|
603
603
|
gap: var(--space-1-75);
|
|
@@ -623,7 +623,7 @@
|
|
|
623
623
|
|
|
624
624
|
.cm-vs-channel {
|
|
625
625
|
font-size: var(--fs-sm);
|
|
626
|
-
font-weight:
|
|
626
|
+
font-weight: var(--fw-medium);
|
|
627
627
|
color: var(--fg);
|
|
628
628
|
overflow: hidden;
|
|
629
629
|
text-overflow: ellipsis;
|
|
@@ -651,7 +651,7 @@
|
|
|
651
651
|
border-radius: var(--r-1);
|
|
652
652
|
font-family: var(--ff-body);
|
|
653
653
|
font-size: var(--fs-xs);
|
|
654
|
-
font-weight:
|
|
654
|
+
font-weight: var(--fw-medium);
|
|
655
655
|
cursor: pointer;
|
|
656
656
|
transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
|
|
657
657
|
}
|
|
@@ -693,7 +693,7 @@
|
|
|
693
693
|
align-items: center;
|
|
694
694
|
justify-content: center;
|
|
695
695
|
font-size: var(--fs-xs);
|
|
696
|
-
font-weight:
|
|
696
|
+
font-weight: var(--fw-medium);
|
|
697
697
|
overflow: hidden;
|
|
698
698
|
}
|
|
699
699
|
.cm-user-avatar img {
|
|
@@ -723,7 +723,7 @@
|
|
|
723
723
|
}
|
|
724
724
|
.cm-user-name {
|
|
725
725
|
font-size: var(--fs-xs);
|
|
726
|
-
font-weight:
|
|
726
|
+
font-weight: var(--fw-medium);
|
|
727
727
|
color: var(--fg);
|
|
728
728
|
overflow: hidden;
|
|
729
729
|
text-overflow: ellipsis;
|
|
@@ -804,7 +804,7 @@
|
|
|
804
804
|
pinned weight/size/colour, but a bare h1 also brings a UA block margin
|
|
805
805
|
that would break this flex row — so the margin is zeroed explicitly. */
|
|
806
806
|
margin: 0;
|
|
807
|
-
font-weight:
|
|
807
|
+
font-weight: var(--fw-medium);
|
|
808
808
|
font-size: var(--fs-sm);
|
|
809
809
|
color: var(--fg);
|
|
810
810
|
letter-spacing: -0.01em;
|
|
@@ -868,7 +868,7 @@
|
|
|
868
868
|
padding: var(--space-2-75) var(--space-3) var(--space-1-75);
|
|
869
869
|
font-family: var(--ff-body);
|
|
870
870
|
font-size: var(--fs-micro);
|
|
871
|
-
font-weight:
|
|
871
|
+
font-weight: var(--fw-medium);
|
|
872
872
|
color: var(--fg-3);
|
|
873
873
|
letter-spacing: var(--tr-caps);
|
|
874
874
|
text-transform: uppercase;
|
|
@@ -904,7 +904,7 @@
|
|
|
904
904
|
align-items: center;
|
|
905
905
|
justify-content: center;
|
|
906
906
|
font-size: var(--fs-micro);
|
|
907
|
-
font-weight:
|
|
907
|
+
font-weight: var(--fw-medium);
|
|
908
908
|
overflow: hidden;
|
|
909
909
|
}
|
|
910
910
|
.cm-member-avatar img {
|
|
@@ -965,7 +965,7 @@
|
|
|
965
965
|
align-items: center;
|
|
966
966
|
justify-content: center;
|
|
967
967
|
font-size: var(--fs-lg);
|
|
968
|
-
font-weight:
|
|
968
|
+
font-weight: var(--fw-medium);
|
|
969
969
|
overflow: hidden;
|
|
970
970
|
}
|
|
971
971
|
.cm-voice-user-avatar img {
|
|
@@ -981,7 +981,7 @@
|
|
|
981
981
|
.cm-voice-user-name {
|
|
982
982
|
font-size: var(--fs-xs);
|
|
983
983
|
color: var(--fg);
|
|
984
|
-
font-weight:
|
|
984
|
+
font-weight: var(--fw-medium);
|
|
985
985
|
max-width: 100px;
|
|
986
986
|
overflow: hidden;
|
|
987
987
|
text-overflow: ellipsis;
|
|
@@ -1176,7 +1176,7 @@
|
|
|
1176
1176
|
flex: 1 1 auto;
|
|
1177
1177
|
min-width: 0;
|
|
1178
1178
|
font-family: var(--font-mono, monospace);
|
|
1179
|
-
font-weight:
|
|
1179
|
+
font-weight: var(--fw-medium);
|
|
1180
1180
|
color: var(--fg);
|
|
1181
1181
|
white-space: nowrap;
|
|
1182
1182
|
overflow: hidden;
|
|
@@ -1199,7 +1199,7 @@
|
|
|
1199
1199
|
font-size: var(--fs-xs);
|
|
1200
1200
|
}
|
|
1201
1201
|
.cm-rb-label { flex: none; color: var(--fg-2); }
|
|
1202
|
-
.cm-rb-author { color: var(--accent); font-weight:
|
|
1202
|
+
.cm-rb-author { color: var(--accent); font-weight: var(--fw-medium); }
|
|
1203
1203
|
.cm-rb-preview {
|
|
1204
1204
|
flex: 1 1 auto;
|
|
1205
1205
|
min-width: 0;
|
|
@@ -1231,7 +1231,7 @@
|
|
|
1231
1231
|
width: 100%;
|
|
1232
1232
|
padding: var(--space-2) var(--space-3);
|
|
1233
1233
|
font-size: var(--fs-xs);
|
|
1234
|
-
font-weight:
|
|
1234
|
+
font-weight: var(--fw-medium);
|
|
1235
1235
|
}
|
|
1236
1236
|
.cm-banner.clickable { cursor: pointer; }
|
|
1237
1237
|
.cm-banner.clickable:hover { background: color-mix(in oklab, currentColor 10%, transparent); }
|
|
@@ -1242,7 +1242,7 @@
|
|
|
1242
1242
|
background: transparent;
|
|
1243
1243
|
color: inherit;
|
|
1244
1244
|
font: inherit;
|
|
1245
|
-
font-weight:
|
|
1245
|
+
font-weight: var(--fw-semibold);
|
|
1246
1246
|
padding: var(--space-hair) var(--space-2);
|
|
1247
1247
|
border-radius: var(--r-1);
|
|
1248
1248
|
cursor: pointer;
|
|
@@ -1304,7 +1304,7 @@
|
|
|
1304
1304
|
color: var(--fg);
|
|
1305
1305
|
font-family: var(--ff-body);
|
|
1306
1306
|
font-size: var(--fs-sm);
|
|
1307
|
-
font-weight:
|
|
1307
|
+
font-weight: var(--fw-medium);
|
|
1308
1308
|
cursor: pointer;
|
|
1309
1309
|
user-select: none;
|
|
1310
1310
|
-webkit-user-select: none;
|
|
@@ -1426,7 +1426,7 @@
|
|
|
1426
1426
|
color: var(--fg);
|
|
1427
1427
|
font-family: var(--ff-body);
|
|
1428
1428
|
font-size: var(--fs-sm);
|
|
1429
|
-
font-weight:
|
|
1429
|
+
font-weight: var(--fw-semibold);
|
|
1430
1430
|
cursor: pointer;
|
|
1431
1431
|
transition: background var(--dur-base) var(--ease);
|
|
1432
1432
|
}
|
|
@@ -1456,7 +1456,7 @@
|
|
|
1456
1456
|
padding: var(--space-3);
|
|
1457
1457
|
border-bottom: var(--bw-hair) solid var(--rule);
|
|
1458
1458
|
}
|
|
1459
|
-
.vx-modal-title { margin: 0; font-size: var(--fs-lg); font-weight:
|
|
1459
|
+
.vx-modal-title { margin: 0; font-size: var(--fs-lg); font-weight: var(--fw-semibold); }
|
|
1460
1460
|
.vx-modal-x {
|
|
1461
1461
|
border: 0; background: transparent; color: var(--fg-3);
|
|
1462
1462
|
font-size: var(--fs-xl); line-height: 1; cursor: pointer; padding: 0 var(--space-1);
|
|
@@ -1480,7 +1480,7 @@
|
|
|
1480
1480
|
color: var(--fg);
|
|
1481
1481
|
font-family: var(--ff-body);
|
|
1482
1482
|
font-size: var(--fs-tiny);
|
|
1483
|
-
font-weight:
|
|
1483
|
+
font-weight: var(--fw-medium);
|
|
1484
1484
|
letter-spacing: var(--tr-caps);
|
|
1485
1485
|
cursor: pointer;
|
|
1486
1486
|
}
|
|
@@ -1538,13 +1538,13 @@
|
|
|
1538
1538
|
.vx-chip-current { border-color: var(--accent); background: color-mix(in oklab, var(--accent) 16%, var(--bg-3)); }
|
|
1539
1539
|
.vx-chip-live { border-color: var(--green-2); }
|
|
1540
1540
|
.vx-chip-dot { width: 8px; height: 8px; border-radius: var(--r-pill); background: var(--fg-3); flex-shrink: 0; }
|
|
1541
|
-
.vx-chip-name { font-weight:
|
|
1541
|
+
.vx-chip-name { font-weight: var(--fw-medium); }
|
|
1542
1542
|
.vx-chip-dur { font-family: var(--ff-mono); color: var(--fg-3); }
|
|
1543
1543
|
/* Joins the small-label voice above. Deliberate overrides: --green + weight 700
|
|
1544
1544
|
because this is the "LIVE" badge on a session chip, same signal role as
|
|
1545
1545
|
.cm-vs-label. */
|
|
1546
1546
|
.vx-chip-tag {
|
|
1547
|
-
color: var(--green); font-weight:
|
|
1547
|
+
color: var(--green); font-weight: var(--fw-bold);
|
|
1548
1548
|
}
|
|
1549
1549
|
|
|
1550
1550
|
/* VoiceControls — vx-vc-* */
|
|
@@ -1590,7 +1590,7 @@
|
|
|
1590
1590
|
display: flex; align-items: center; justify-content: space-between;
|
|
1591
1591
|
padding: var(--space-2); border-bottom: var(--bw-hair) solid var(--rule);
|
|
1592
1592
|
}
|
|
1593
|
-
.cm-tp-title { font-weight:
|
|
1593
|
+
.cm-tp-title { font-weight: var(--fw-bold); font-size: var(--fs-xs); }
|
|
1594
1594
|
.cm-tp-head-actions { display: flex; gap: var(--space-1); }
|
|
1595
1595
|
.cm-tp-new, .cm-tp-close {
|
|
1596
1596
|
border: none; background: transparent; color: var(--fg-2, var(--fg));
|
|
@@ -1608,7 +1608,7 @@
|
|
|
1608
1608
|
}
|
|
1609
1609
|
.cm-tp-item:hover { background: var(--bg-3); }
|
|
1610
1610
|
.cm-tp-item.is-active { background: var(--bg-3); box-shadow: inset 3px 0 0 var(--accent); }
|
|
1611
|
-
.cm-tp-item.is-unread .cm-tp-item-title { font-weight:
|
|
1611
|
+
.cm-tp-item.is-unread .cm-tp-item-title { font-weight: var(--fw-bold); }
|
|
1612
1612
|
.cm-tp-dot { position: absolute; left: 4px; top: 50%; transform: translateY(-50%); width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }
|
|
1613
1613
|
.cm-tp-item-title { font-size: var(--fs-xs); }
|
|
1614
1614
|
.cm-tp-item-snippet { font-size: var(--fs-micro); color: var(--fg-2, var(--fg)); opacity: .8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
@@ -1664,7 +1664,7 @@
|
|
|
1664
1664
|
.cm-forum-item { display: flex; flex-direction: column; gap: var(--space-1); width: 100%; text-align: left; cursor: pointer; padding: var(--space-2) var(--space-3); border: none; background: transparent; border-bottom: var(--bw-hair) solid var(--rule); color: var(--fg); }
|
|
1665
1665
|
.cm-forum-item:hover { background: var(--bg-3); }
|
|
1666
1666
|
.cm-forum-item-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
|
|
1667
|
-
.cm-forum-item-title { font-weight:
|
|
1667
|
+
.cm-forum-item-title { font-weight: var(--fw-bold); font-size: var(--fs-xs); }
|
|
1668
1668
|
.cm-forum-item-replies { font-size: var(--fs-micro); color: var(--fg-2, var(--fg)); opacity: .8; white-space: nowrap; }
|
|
1669
1669
|
.cm-forum-item-snippet { font-size: var(--fs-micro); color: var(--fg-2, var(--fg)); opacity: .85; }
|
|
1670
1670
|
.cm-forum-item-meta { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; font-size: var(--fs-micro); color: var(--fg-2, var(--fg)); opacity: .7; }
|
|
@@ -1677,9 +1677,9 @@
|
|
|
1677
1677
|
.cm-page { display: flex; flex-direction: column; height: 100%; min-height: 0; overflow-y: auto; background: var(--bg-1, var(--bg-2)); color: var(--fg); }
|
|
1678
1678
|
.cm-page-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); padding: var(--space-3); border-bottom: var(--bw-hair) solid var(--rule); }
|
|
1679
1679
|
.cm-page-head-title { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; }
|
|
1680
|
-
.cm-page-title { margin: 0; font-size: var(--fs-xl); font-weight:
|
|
1680
|
+
.cm-page-title { margin: 0; font-size: var(--fs-xl); font-weight: var(--fw-bold); }
|
|
1681
1681
|
.cm-page-meta { display: flex; align-items: center; gap: var(--space-2); font-size: var(--fs-xs); color: var(--fg-2, var(--fg)); }
|
|
1682
|
-
.cm-page-author { font-weight:
|
|
1682
|
+
.cm-page-author { font-weight: var(--fw-medium); }
|
|
1683
1683
|
.cm-page-time { opacity: .75; }
|
|
1684
1684
|
.cm-page-edit { padding: var(--space-1) var(--space-2); border: var(--bw-hair) solid var(--rule-strong); border-radius: var(--r-1); background: var(--bg-3); color: var(--fg); cursor: pointer; }
|
|
1685
1685
|
.cm-page-body { padding: var(--space-3); line-height: 1.6; }
|