@kevin5251984/guild 0.2.18 → 0.2.20

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.
@@ -0,0 +1,597 @@
1
+ :root {
2
+ --enamel: #0B0E12;
3
+ --paper: #F3EFE6;
4
+ --ink: #0B0E12;
5
+ --steel: #A8B0BC;
6
+ --signal: #C9A227;
7
+ --bg: #0B0E12;
8
+ --panel: #10141A;
9
+ --lift: #161C24;
10
+ --card: #161C24;
11
+ --bubble: #1A222C;
12
+ --you: #242C36;
13
+ --text: #E8E4DC;
14
+ --muted: #8B8F96;
15
+ --line: #1C222C;
16
+ --fill: #141A22;
17
+ --ok: #9fdfb2;
18
+ --danger: #f0a8a8;
19
+ --press: 0.97;
20
+ --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
21
+ --press-ms: 140ms;
22
+ --hover-ms: 160ms;
23
+ --tap: 44px;
24
+ --focus: 0 0 0 2px var(--bg), 0 0 0 3px var(--steel);
25
+ --vvh: 100dvh;
26
+ color: var(--text);
27
+ background: var(--bg);
28
+ font-family: "SF Pro Text", "PingFang TC", "Segoe UI", system-ui, sans-serif;
29
+ line-height: 1.45;
30
+ }
31
+ * { box-sizing: border-box; }
32
+ html, body {
33
+ margin: 0;
34
+ min-height: 100%;
35
+ height: var(--vvh);
36
+ background: var(--bg);
37
+ color: var(--text);
38
+ }
39
+ html { text-wrap: pretty; -webkit-text-size-adjust: 100%; }
40
+ [hidden] { display: none !important; }
41
+ body.m-away {
42
+ max-width: 40rem;
43
+ margin: 0 auto;
44
+ min-height: var(--vvh);
45
+ display: flex;
46
+ flex-direction: column;
47
+ overflow-x: hidden;
48
+ }
49
+ button, a, input, textarea { touch-action: manipulation; }
50
+ button:focus-visible,
51
+ a:focus-visible,
52
+ textarea:focus-visible {
53
+ outline: none;
54
+ box-shadow: var(--focus);
55
+ }
56
+ /* Enamel press language, shared with the hall: paper / steel / ghost. */
57
+ .navlist a,
58
+ .back,
59
+ .turn-stop,
60
+ .turn-steer,
61
+ .steer,
62
+ .send,
63
+ .stop-all,
64
+ .mention-item {
65
+ transition:
66
+ background-color var(--hover-ms) ease,
67
+ border-color var(--hover-ms) ease,
68
+ color var(--hover-ms) ease,
69
+ transform var(--press-ms) var(--ease-out),
70
+ opacity var(--hover-ms) ease;
71
+ }
72
+ .navlist a:active,
73
+ .back:active,
74
+ .turn-stop:active:not(:disabled),
75
+ .turn-steer:active:not(:disabled),
76
+ .steer:active:not(:disabled),
77
+ .send:active:not(:disabled),
78
+ .stop-all:active:not(:disabled),
79
+ .mention-item:active {
80
+ transform: scale(var(--press));
81
+ }
82
+ @media (prefers-reduced-motion: reduce) {
83
+ .navlist a,
84
+ .back,
85
+ .turn-stop,
86
+ .turn-steer,
87
+ .steer,
88
+ .send,
89
+ .stop-all,
90
+ .mention-item {
91
+ transition:
92
+ background-color var(--hover-ms) ease,
93
+ border-color var(--hover-ms) ease,
94
+ color var(--hover-ms) ease,
95
+ opacity var(--hover-ms) ease;
96
+ }
97
+ .navlist a:active,
98
+ .back:active,
99
+ .turn-stop:active,
100
+ .turn-steer:active,
101
+ .steer:active,
102
+ .send:active,
103
+ .stop-all:active,
104
+ .mention-item:active {
105
+ transform: none;
106
+ }
107
+ }
108
+ .screen {
109
+ display: flex;
110
+ flex-direction: column;
111
+ flex: 1;
112
+ height: var(--vvh);
113
+ min-height: 0;
114
+ overflow: hidden;
115
+ }
116
+ .screen[hidden] { display: none !important; }
117
+ #screen-list {
118
+ overflow: auto;
119
+ -webkit-overflow-scrolling: touch;
120
+ }
121
+ .list-head,
122
+ .room-head {
123
+ position: sticky;
124
+ top: 0;
125
+ z-index: 4;
126
+ display: flex;
127
+ align-items: center;
128
+ gap: 0.65rem;
129
+ min-height: calc(var(--tap) + 0.4rem);
130
+ padding: calc(0.55rem + env(safe-area-inset-top, 0px)) 1rem 0.55rem;
131
+ background: color-mix(in srgb, var(--bg) 92%, transparent);
132
+ backdrop-filter: blur(12px);
133
+ border-bottom: 1px solid var(--line);
134
+ }
135
+ .list-head h1,
136
+ .room-head h1 {
137
+ margin: 0;
138
+ font-size: 1.05rem;
139
+ font-weight: 650;
140
+ letter-spacing: 0.03em;
141
+ min-width: 0;
142
+ overflow: hidden;
143
+ text-overflow: ellipsis;
144
+ white-space: nowrap;
145
+ }
146
+ .hint {
147
+ margin: 0;
148
+ padding: 0.7rem 1rem 0.35rem;
149
+ color: var(--muted);
150
+ font-size: 0.82rem;
151
+ line-height: 1.45;
152
+ }
153
+ .section-h {
154
+ padding: 0.85rem 1rem 0.35rem;
155
+ color: var(--muted);
156
+ font-size: 0.78rem;
157
+ letter-spacing: 0.04em;
158
+ }
159
+ .navlist {
160
+ list-style: none;
161
+ margin: 0;
162
+ padding: 0 0.65rem 1.25rem;
163
+ display: flex;
164
+ flex-direction: column;
165
+ gap: 4px;
166
+ }
167
+ .navlist a {
168
+ display: flex;
169
+ align-items: center;
170
+ gap: 0.7rem;
171
+ min-height: var(--tap);
172
+ padding: 0.55rem 0.75rem;
173
+ border-radius: 14px;
174
+ color: var(--text);
175
+ text-decoration: none;
176
+ background: var(--card);
177
+ min-width: 0;
178
+ }
179
+ .navlist a:hover { text-decoration: none; background: var(--lift); }
180
+ .navlist a.branch { margin-left: 1.1rem; }
181
+ .nav-copy {
182
+ min-width: 0;
183
+ flex: 1;
184
+ display: flex;
185
+ flex-direction: column;
186
+ gap: 2px;
187
+ }
188
+ .nav-copy strong {
189
+ display: flex;
190
+ align-items: center;
191
+ gap: 0.4rem;
192
+ font-weight: 600;
193
+ font-size: 0.95rem;
194
+ }
195
+ .nav-copy em {
196
+ font-style: normal;
197
+ color: var(--muted);
198
+ font-size: 0.78rem;
199
+ overflow: hidden;
200
+ text-overflow: ellipsis;
201
+ white-space: nowrap;
202
+ }
203
+ .live-dot {
204
+ flex: none;
205
+ min-height: 22px;
206
+ padding: 0 0.45rem;
207
+ border-radius: 99px;
208
+ background: color-mix(in srgb, var(--signal) 22%, var(--lift));
209
+ color: var(--paper);
210
+ font-size: 0.68rem;
211
+ font-weight: 650;
212
+ line-height: 22px;
213
+ }
214
+ .back {
215
+ margin: 0;
216
+ min-width: var(--tap);
217
+ min-height: var(--tap);
218
+ padding: 0;
219
+ border: 0;
220
+ border-radius: 12px;
221
+ background: var(--fill);
222
+ color: var(--text);
223
+ font: inherit;
224
+ font-size: 1.15rem;
225
+ cursor: pointer;
226
+ }
227
+ .room-head .meta {
228
+ color: var(--muted);
229
+ font-size: 0.78rem;
230
+ margin-left: auto;
231
+ white-space: nowrap;
232
+ }
233
+ .thread {
234
+ flex: 1;
235
+ min-height: 0;
236
+ overflow: auto;
237
+ padding: 0.75rem 1rem calc(0.5rem + env(safe-area-inset-bottom, 0px));
238
+ display: flex;
239
+ flex-direction: column;
240
+ gap: 0.85rem;
241
+ -webkit-overflow-scrolling: touch;
242
+ }
243
+ .empty-thread,
244
+ .empty-list {
245
+ color: var(--muted);
246
+ font-size: 0.9rem;
247
+ padding: 1.2rem 0.4rem;
248
+ }
249
+ .msg {
250
+ display: flex;
251
+ gap: 0.65rem;
252
+ align-items: flex-start;
253
+ }
254
+ .msg.you { flex-direction: row-reverse; }
255
+ .msg.you .msg-main {
256
+ display: flex;
257
+ flex-direction: column;
258
+ align-items: flex-end;
259
+ }
260
+ .msg.you .msg-head { flex-direction: row-reverse; }
261
+ .msg.you .bubble { max-width: 85%; }
262
+ .avatar {
263
+ width: 32px;
264
+ height: 32px;
265
+ border-radius: 50%;
266
+ display: grid;
267
+ place-items: center;
268
+ flex: none;
269
+ overflow: hidden;
270
+ font-size: 0.72rem;
271
+ font-weight: 650;
272
+ color: #fff;
273
+ background: var(--steel);
274
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--steel) 38%, transparent);
275
+ }
276
+ .avatar img {
277
+ width: 100%;
278
+ height: 100%;
279
+ object-fit: cover;
280
+ }
281
+ .msg-main { min-width: 0; flex: 1; }
282
+ .msg-head {
283
+ display: flex;
284
+ align-items: baseline;
285
+ gap: 0.4rem;
286
+ margin-bottom: 0.2rem;
287
+ }
288
+ .msg-head .name { font-weight: 620; font-size: 0.86rem; }
289
+ .msg-head .handle,
290
+ .msg-head .clock {
291
+ color: var(--muted);
292
+ font-size: 0.72rem;
293
+ }
294
+ .bubble {
295
+ margin: 0;
296
+ padding: 0.55rem 0.75rem;
297
+ border-radius: 14px;
298
+ background: var(--lift);
299
+ overflow-wrap: anywhere;
300
+ white-space: pre-wrap;
301
+ }
302
+ .msg.you .bubble { background: var(--you); }
303
+ .msg.bot .bubble { background: var(--bubble); }
304
+ .assistant-text {
305
+ margin: 0;
306
+ color: var(--text);
307
+ font-size: 0.95rem;
308
+ line-height: 1.65;
309
+ white-space: normal;
310
+ overflow-wrap: break-word;
311
+ }
312
+ .assistant-text p { margin: 0 0 0.7rem; }
313
+ .assistant-text p:last-child { margin-bottom: 0; }
314
+ .assistant-text a { color: var(--steel); }
315
+ .assistant-text code {
316
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
317
+ font-size: 0.86em;
318
+ padding: 0.1em 0.35em;
319
+ border-radius: 6px;
320
+ background: var(--fill);
321
+ border: 1px solid var(--line);
322
+ }
323
+ .assistant-text .md-fence {
324
+ margin: 0.35rem 0 0.7rem;
325
+ border-radius: 12px;
326
+ background: var(--fill);
327
+ overflow: auto;
328
+ }
329
+ .assistant-text .md-fence-bar {
330
+ display: flex;
331
+ align-items: center;
332
+ justify-content: space-between;
333
+ gap: 8px;
334
+ min-height: 32px;
335
+ padding: 4px 8px 0 12px;
336
+ color: var(--muted);
337
+ font-size: 0.75rem;
338
+ }
339
+ .assistant-text .md-pre {
340
+ margin: 0;
341
+ padding: 0.6rem 0.8rem 0.8rem;
342
+ overflow: auto;
343
+ font-size: 0.82rem;
344
+ }
345
+ .assistant-text img.md-img {
346
+ max-width: 100%;
347
+ border-radius: 10px;
348
+ }
349
+ .turn-live {
350
+ display: flex;
351
+ flex-direction: column;
352
+ gap: 6px;
353
+ }
354
+ .turn-status {
355
+ display: inline-flex;
356
+ align-items: center;
357
+ height: 26px;
358
+ font-size: 14px;
359
+ font-weight: 600;
360
+ white-space: nowrap;
361
+ background: linear-gradient(
362
+ 90deg,
363
+ var(--text) 0%,
364
+ var(--text) 40%,
365
+ var(--muted) 50%,
366
+ var(--text) 60%,
367
+ var(--text) 100%
368
+ );
369
+ background-position: 100% 0;
370
+ background-size: 250% 100%;
371
+ background-clip: text;
372
+ -webkit-background-clip: text;
373
+ color: transparent;
374
+ animation: m-shimmer 1.8s ease-in-out infinite;
375
+ }
376
+ .turn-status .clock {
377
+ margin-left: 8px;
378
+ font-size: 13px;
379
+ font-weight: 400;
380
+ font-variant-numeric: tabular-nums;
381
+ color: var(--muted);
382
+ -webkit-text-fill-color: var(--muted);
383
+ }
384
+ @keyframes m-shimmer { to { background-position: 0 0; } }
385
+ @media (prefers-reduced-motion: reduce) {
386
+ .turn-status { animation: none; color: var(--text); background: none; }
387
+ }
388
+ .live-steps {
389
+ margin: 0;
390
+ padding: 0;
391
+ list-style: none;
392
+ display: flex;
393
+ flex-direction: column;
394
+ gap: 2px;
395
+ }
396
+ .live-step {
397
+ display: grid;
398
+ grid-template-columns: auto minmax(0, 1fr);
399
+ gap: 8px;
400
+ min-height: 20px;
401
+ font-size: 13px;
402
+ line-height: 20px;
403
+ color: var(--muted);
404
+ }
405
+ .live-name { color: var(--text); font-weight: 500; }
406
+ .live-detail {
407
+ overflow: hidden;
408
+ text-overflow: ellipsis;
409
+ white-space: nowrap;
410
+ }
411
+ .live-step.running .live-name { color: var(--text); }
412
+ .turn-actions {
413
+ display: flex;
414
+ flex-wrap: wrap;
415
+ gap: 8px;
416
+ margin-top: 4px;
417
+ }
418
+ .turn-stop,
419
+ .turn-steer,
420
+ .steer,
421
+ .send,
422
+ .stop-all {
423
+ display: inline-flex;
424
+ align-items: center;
425
+ justify-content: center;
426
+ flex: none;
427
+ min-height: var(--tap);
428
+ min-width: var(--tap);
429
+ padding: 0 0.9rem;
430
+ border: 1px solid var(--line);
431
+ border-radius: 12px;
432
+ background: var(--fill);
433
+ color: var(--text);
434
+ font: inherit;
435
+ font-weight: 620;
436
+ cursor: pointer;
437
+ }
438
+ /* Stop is ghost steel: --fill at rest, --lift on hover, danger ink only. */
439
+ .turn-stop,
440
+ .stop-all {
441
+ color: var(--danger);
442
+ background: var(--fill);
443
+ border-color: color-mix(in srgb, var(--danger) 32%, var(--line));
444
+ }
445
+ .turn-stop:hover,
446
+ .stop-all:hover {
447
+ background: var(--lift);
448
+ border-color: color-mix(in srgb, var(--danger) 45%, var(--line));
449
+ }
450
+ /* Steer rides the steel rail, never a filled danger slab. */
451
+ .turn-steer,
452
+ .steer {
453
+ color: var(--steel);
454
+ background: var(--fill);
455
+ border-color: color-mix(in srgb, var(--steel) 38%, var(--line));
456
+ }
457
+ .turn-steer:hover,
458
+ .steer:hover {
459
+ background: var(--lift);
460
+ color: var(--text);
461
+ border-color: color-mix(in srgb, var(--steel) 55%, var(--line));
462
+ }
463
+ /* The one paper CTA on the page. */
464
+ .send {
465
+ background: var(--paper);
466
+ color: var(--ink);
467
+ border-color: transparent;
468
+ }
469
+ .send:hover:not(:disabled) {
470
+ background: color-mix(in srgb, var(--paper) 88%, white);
471
+ }
472
+ .send:disabled,
473
+ .stop-all:disabled,
474
+ .steer:disabled,
475
+ .turn-stop:disabled {
476
+ opacity: 0.45;
477
+ cursor: default;
478
+ }
479
+ .composer {
480
+ position: sticky;
481
+ bottom: 0;
482
+ z-index: 5;
483
+ padding: 0.55rem 0.75rem calc(0.55rem + env(safe-area-inset-bottom, 0px));
484
+ background: color-mix(in srgb, var(--bg) 94%, transparent);
485
+ backdrop-filter: blur(12px);
486
+ border-top: 1px solid var(--line);
487
+ }
488
+ .composer-card {
489
+ position: relative;
490
+ display: flex;
491
+ flex-direction: column;
492
+ align-items: stretch;
493
+ gap: 0.5rem;
494
+ min-width: 0;
495
+ }
496
+ .composer-actions {
497
+ display: flex;
498
+ gap: 0.5rem;
499
+ }
500
+ .composer-actions .send,
501
+ .composer-actions .stop-all,
502
+ .composer-actions .steer {
503
+ flex: 1;
504
+ }
505
+ .composer-steer {
506
+ color: var(--muted);
507
+ font-size: 0.75rem;
508
+ line-height: 1.4;
509
+ padding: 0 0.15rem;
510
+ }
511
+ .composer-steer[hidden] { display: none; }
512
+ #draft {
513
+ display: block;
514
+ width: 100%;
515
+ min-width: 0;
516
+ min-height: var(--tap);
517
+ max-height: 9rem;
518
+ padding: 0.7rem 0.8rem;
519
+ border: 1px solid var(--line);
520
+ border-radius: 14px;
521
+ background: var(--fill);
522
+ color: var(--text);
523
+ font: inherit;
524
+ font-size: 16px;
525
+ line-height: 1.4;
526
+ resize: none;
527
+ }
528
+ .mention-pop {
529
+ position: absolute;
530
+ left: 0;
531
+ right: 0;
532
+ bottom: calc(100% + 6px);
533
+ max-height: 12rem;
534
+ overflow: auto;
535
+ border: 1px solid var(--line);
536
+ border-radius: 14px;
537
+ background: var(--panel);
538
+ box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
539
+ }
540
+ .mention-item {
541
+ display: flex;
542
+ align-items: center;
543
+ gap: 0.65rem;
544
+ width: 100%;
545
+ min-height: var(--tap);
546
+ padding: 0.45rem 0.7rem;
547
+ border: 0;
548
+ background: transparent;
549
+ color: var(--text);
550
+ font: inherit;
551
+ text-align: left;
552
+ cursor: pointer;
553
+ }
554
+ .mention-item.on,
555
+ .mention-item:hover { background: var(--lift); }
556
+ .mention-item strong { display: block; font-size: 0.9rem; }
557
+ .mention-item em {
558
+ display: block;
559
+ font-style: normal;
560
+ color: var(--muted);
561
+ font-size: 0.75rem;
562
+ }
563
+ .mention-glyph {
564
+ width: 28px;
565
+ height: 28px;
566
+ border-radius: 50%;
567
+ display: grid;
568
+ place-items: center;
569
+ font-size: 0.7rem;
570
+ font-weight: 650;
571
+ color: #fff;
572
+ background: var(--steel);
573
+ flex: none;
574
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--steel) 38%, transparent);
575
+ }
576
+ .flash {
577
+ position: fixed;
578
+ left: 50%;
579
+ bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
580
+ transform: translateX(-50%);
581
+ padding: 0.45rem 0.8rem;
582
+ border-radius: 999px;
583
+ background: var(--lift);
584
+ color: var(--text);
585
+ font-size: 0.82rem;
586
+ opacity: 0;
587
+ pointer-events: none;
588
+ transition: opacity 160ms ease;
589
+ z-index: 8;
590
+ }
591
+ .flash.on { opacity: 1; }
592
+ /* Errors read as danger ink on enamel lift, never a filled red slab. */
593
+ .flash.err {
594
+ background: var(--lift);
595
+ color: var(--danger);
596
+ border: 1px solid color-mix(in srgb, var(--danger) 35%, var(--line));
597
+ }