anentrypoint-design 0.0.210 → 0.0.212

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 CHANGED
@@ -177,14 +177,14 @@
177
177
  }
178
178
  .agentchat-empty-title { margin: 0; font-size: 1.05em; color: var(--fg-2, var(--fg)); }
179
179
  .agentchat-empty-sub { margin: 0; font-size: var(--fs-sm); }
180
- .agentchat-empty-suggestions {
180
+ .agentchat-empty-suggestions, .chat-empty-suggestions {
181
181
  display: flex;
182
182
  flex-wrap: wrap;
183
183
  gap: .5em;
184
184
  justify-content: center;
185
185
  margin-top: .5em;
186
186
  }
187
- .agentchat-empty-suggestion {
187
+ .agentchat-empty-suggestion, .chat-empty-suggestion {
188
188
  cursor: pointer;
189
189
  font: inherit;
190
190
  font-size: var(--fs-tiny);
@@ -194,8 +194,8 @@
194
194
  background: color-mix(in srgb, var(--fg) 5%, transparent);
195
195
  color: var(--fg-2, var(--fg));
196
196
  }
197
- .agentchat-empty-suggestion:hover { background: color-mix(in srgb, var(--accent, var(--fg)) 12%, transparent); }
198
- .agentchat-empty-suggestion:focus-visible { outline: 2px solid var(--accent, var(--fg)); outline-offset: 2px; }
197
+ .agentchat-empty-suggestion:hover, .chat-empty-suggestion:hover { background: color-mix(in srgb, var(--accent, var(--fg)) 12%, transparent); }
198
+ .agentchat-empty-suggestion:focus-visible, .chat-empty-suggestion:focus-visible { outline: 2px solid var(--accent, var(--fg)); outline-offset: 2px; }
199
199
 
200
200
  /* Guided install path in the empty state: copy line + monospaced command rows
201
201
  (each with its own copy button) + a recheck button. No animation. */
@@ -268,6 +268,23 @@
268
268
  @media (prefers-reduced-motion: reduce) {
269
269
  .agentchat-working .chat-thinking-dots span { animation: none; opacity: .7; }
270
270
  }
271
+ /* Standalone thinking part (ThinkingNode renders .chat-bubble.chat-thinking with
272
+ .chat-thinking-dots + .chat-thinking-text OUTSIDE the .agentchat-working tail).
273
+ Without these base rules the dots are invisible empty spans and the text has
274
+ no muted tone. Reuse the agentchat-dot-bounce keyframe. */
275
+ .chat-thinking { display: flex; align-items: center; gap: .5em; color: var(--fg-3); font-size: var(--fs-tiny); background: none; padding: .3em .2em; }
276
+ .chat-thinking-text { color: var(--fg-3); }
277
+ .chat-thinking-dots { display: inline-flex; gap: 3px; }
278
+ .chat-thinking-dots span {
279
+ width: 5px; height: 5px; border-radius: 50%;
280
+ background: var(--fg); opacity: .4;
281
+ animation: agentchat-dot-bounce 1.2s infinite ease-in-out;
282
+ }
283
+ .chat-thinking-dots span:nth-child(2) { animation-delay: .15s; }
284
+ .chat-thinking-dots span:nth-child(3) { animation-delay: .3s; }
285
+ @media (prefers-reduced-motion: reduce) {
286
+ .chat-thinking-dots span { animation: none; opacity: .7; }
287
+ }
271
288
 
272
289
  /* Responsive: the control cluster + cwd bar must stay usable on phones/tablets.
273
290
  The cwd path can't eat the row beside its label + buttons on a narrow screen. */
@@ -295,16 +312,20 @@
295
312
  display: inline-block; width: 8px; height: 8px; border-radius: 50%;
296
313
  background: var(--fg-3); flex: 0 0 auto;
297
314
  }
315
+ /* Each variant carries a non-colour channel (fill vs halo vs hollow ring) so the
316
+ states stay distinguishable for colour-blind users and when stale/connecting
317
+ would otherwise share a hue. Mirrors the rail-tone shape differentiation. */
298
318
  .status-dot-disc.status-dot-live { background: var(--accent); animation: status-disc-pulse 1.8s ease-in-out infinite; }
299
- .status-dot-disc.status-dot-error { background: var(--flame); }
300
- .status-dot-disc.status-dot-connecting { background: var(--amber, #d9a93a); }
301
- .status-dot-disc.status-dot-stale { background: var(--amber, #d9a93a); }
319
+ .status-dot-disc.status-dot-error { background: var(--flame); box-shadow: 0 0 0 1.5px color-mix(in oklab, var(--flame) 38%, transparent); }
320
+ .status-dot-disc.status-dot-connecting { background: transparent; box-shadow: inset 0 0 0 2px var(--amber); }
321
+ .status-dot-disc.status-dot-stale { background: color-mix(in oklab, var(--warn) 70%, var(--fg-3)); }
302
322
  @keyframes status-disc-pulse {
303
323
  0%, 100% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 55%, transparent); }
304
324
  50% { box-shadow: 0 0 0 4px color-mix(in oklab, var(--accent) 0%, transparent); }
305
325
  }
306
326
  @media (prefers-reduced-motion: reduce) {
307
- .status-dot-disc.status-dot-live { animation: none; }
327
+ /* Keep the live disc shape-differentiated without motion: a static concentric ring. */
328
+ .status-dot-disc.status-dot-live { animation: none; box-shadow: 0 0 0 2px color-mix(in oklab, var(--accent) 35%, transparent); }
308
329
  }
309
330
 
310
331
  /* ----------------------------------------------------------------------------
@@ -360,14 +381,16 @@
360
381
  /* Rail tones MUST match .row.rail-* in app-shell.css so the same semantic state
361
382
  reads as one colour across the conversation list and content rows. */
362
383
  .ds-session-row.rail-green::before { background: var(--accent); }
363
- .ds-session-row.rail-purple::before { background: var(--purple-2, #7F18A4); }
384
+ .ds-session-row.rail-purple::before { background: var(--purple-2); }
364
385
  .ds-session-row.rail-flame::before { background: var(--flame); }
365
386
  .ds-session-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
366
387
  .ds-session-title { font-size: var(--fs-sm); color: var(--fg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
367
388
  .ds-session-sub { font-size: var(--fs-tiny); color: var(--fg-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
368
389
  .ds-session-meta { display: flex; align-items: center; gap: var(--space-2); flex: 0 0 auto; }
369
390
  .ds-session-agent { font-family: var(--ff-mono); font-size: var(--fs-tiny); color: var(--fg-3); }
370
- .ds-session-unread { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); display: inline-block; }
391
+ /* New-activity cue is a hollow accent RING so it stays shape-distinct from the
392
+ running live disc (a solid pulsing accent dot) for colour-blind / reduced-motion users. */
393
+ .ds-session-unread { width: 8px; height: 8px; border-radius: 50%; background: transparent; box-shadow: inset 0 0 0 2px var(--accent); display: inline-block; }
371
394
  .ds-session-state { padding: var(--space-5) var(--space-3); text-align: center; color: var(--fg-3); font-size: var(--fs-sm); }
372
395
  .ds-session-state-error { color: var(--flame); }
373
396
 
@@ -397,13 +420,15 @@
397
420
  .ds-dash-card.is-error { border-color: var(--flame); }
398
421
  .ds-dash-card-head { display: flex; align-items: center; gap: var(--space-2); }
399
422
  .ds-dash-status { font-size: var(--fs-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
400
- .ds-dash-status.is-running { color: var(--green); }
423
+ /* running tone unified on --accent (the later is-running rule + the live disc all
424
+ use --accent); the dead var(--green) duplicate that lived here was removed. */
401
425
  .ds-dash-status.is-error { color: var(--flame); }
402
426
  .ds-dash-agent { font-size: var(--fs-body); font-weight: 600; color: var(--fg); }
403
427
  .ds-dash-model { font-family: var(--ff-mono); font-size: var(--fs-tiny); color: var(--fg-3); margin-left: auto; }
404
428
  .ds-dash-meta { display: flex; flex-direction: column; gap: 2px; }
405
429
  .ds-dash-cwd { font-family: var(--ff-mono); font-size: var(--fs-tiny); color: var(--fg-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
406
430
  .ds-dash-stat { font-family: var(--ff-mono); font-size: var(--fs-tiny); color: var(--fg-2); }
431
+ .ds-dash-stat-cost { color: var(--fg); font-weight: 600; }
407
432
  .ds-dash-activity { font-size: var(--fs-tiny); color: var(--fg-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
408
433
  .ds-dash-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-1); }
409
434
  .ds-dash-state { padding: var(--space-6) var(--space-4); text-align: center; color: var(--fg-3); font-size: var(--fs-body); }
@@ -450,6 +475,13 @@
450
475
  /* --- B1: streaming pre shell — monospaced bubble while a fenced block streams,
451
476
  so it does not reflow prose->block on settle. --- */
452
477
  .chat-stream-pre pre { margin: 0; white-space: pre-wrap; word-break: break-word; font-family: var(--ff-mono); font-size: var(--fs-sm); }
478
+ /* Persistent minimal chrome so a fenced block does not pop a border + lang tab +
479
+ copy button only on settle - the streaming slab already reads as a code block. */
480
+ .chat-stream-pre { position: relative; }
481
+ .chat-stream-pre pre {
482
+ border: var(--bw-hair) solid var(--rule); border-radius: var(--r-1);
483
+ padding: var(--space-3); background: color-mix(in oklab, var(--fg) 4%, transparent);
484
+ }
453
485
 
454
486
  /* --- A5: composer context line (agent / model / cwd at point of typing). --- */
455
487
  .chat-composer-context {
@@ -462,11 +494,25 @@ button.chat-composer-context { cursor: pointer; }
462
494
  button.chat-composer-context:hover { color: var(--fg-2); }
463
495
  button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
464
496
 
497
+ /* Composer send/cancel button row: a non-wrapping cluster pinned to the
498
+ bottom-right of the flex-end composer (was unstyled, so the send button
499
+ could wrap below the textarea instead of anchoring like claude.ai/code). */
500
+ .chat-composer-toolbar { display: flex; align-items: center; gap: var(--space-1); flex: 0 0 auto; margin-left: auto; align-self: flex-end; }
501
+ /* Unify the toolbar cluster on one 32px / --r-1 square metric (the round 40px
502
+ ghost buttons + 36px square send read as two button systems; the kit moved
503
+ .btn* off --r-pill). chat.css loads after app-shell.css so this wins by order. */
504
+ .chat-composer-toolbar .composer-btn,
505
+ .chat-composer-toolbar .send { width: 32px; height: 32px; border-radius: var(--r-1); }
506
+ @media (pointer: coarse) {
507
+ .chat-composer-toolbar .composer-btn,
508
+ .chat-composer-toolbar .send { width: 44px; height: 44px; }
509
+ }
510
+
465
511
  /* --- B2: follow-up chips below the last settled assistant turn. --- */
466
512
  .agentchat-followups { display: flex; flex-wrap: wrap; gap: var(--space-2); padding: var(--space-2) var(--space-3); }
467
513
 
468
514
  /* --- C1: stale/idle dashboard status (static, NOT pulsing). --- */
469
- .ds-dash-status.is-stale { color: var(--amber, #d9a93a); }
515
+ .ds-dash-status.is-stale { color: var(--amber); }
470
516
  .ds-dash-status.is-running { color: var(--accent); }
471
517
 
472
518
  /* --- C2: dashboard sort/filter toolbar + stream-state line. --- */
@@ -484,7 +530,7 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
484
530
  }
485
531
  .ds-dash-stream { font-size: var(--fs-tiny); color: var(--fg-3); }
486
532
  .ds-dash-stream.is-lost { color: var(--flame); }
487
- .ds-dash-stream.is-connecting { color: var(--amber, #d9a93a); }
533
+ .ds-dash-stream.is-connecting { color: var(--amber); }
488
534
  .ds-dash-header .spread { flex: 1; }
489
535
  .ds-dash-errors-toggle {
490
536
  padding: 4px 10px; min-height: 32px; border: var(--bw-hair) solid var(--bg-3);
@@ -510,7 +556,7 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
510
556
  /* Stale/idle card: a positive amber inset bar (mirrors is-active) so a stuck
511
557
  agent is flagged in a dense grid, not merely faded near-invisibly. The word
512
558
  'idle' co-carries state, so this stays colour-blind safe. */
513
- .ds-dash-card.is-stale { box-shadow: inset 2px 0 0 var(--amber, #d9a93a); }
559
+ .ds-dash-card.is-stale { box-shadow: inset 2px 0 0 var(--amber); }
514
560
 
515
561
  /* --- H3: dashboard live disc pulses; stale/error do not (handled by H1). --- */
516
562
 
@@ -667,7 +713,7 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
667
713
  }
668
714
 
669
715
  /* Stopping state: in-flight cancel reads distinctly from running/error. */
670
- .ds-dash-status.is-stopping { color: var(--amber, #d9a93a); }
716
+ .ds-dash-status.is-stopping { color: var(--amber); }
671
717
 
672
718
  /* External (observed, not owned) session card: no stop control exists. */
673
719
  .ds-dash-external {
@@ -699,8 +745,29 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
699
745
  .chat-msg-flat.you .chat-role { color: var(--accent); }
700
746
  .chat-msg-flat .chat-bubble { background: none; border: none; border-radius: 0; padding: 0; max-width: 100%; box-shadow: none; transform: none; }
701
747
  .chat-msg-flat.you .chat-bubble { background: none; color: inherit; }
702
- .chat-msg-flat:hover { background: color-mix(in oklab, var(--fg) 3%, transparent); }
703
- .chat-msg-flat.you:hover { background: color-mix(in oklab, var(--fg) 2%, transparent); }
748
+ /* Flat turns strip the bubble padding, so the role label sat 4px above the first
749
+ paragraph and the .them tint hugged text flush. Restore reading rhythm + give
750
+ the tinted assistant row inner breathing room so it reads as a card. */
751
+ .chat-msg-flat .chat-role { margin-bottom: var(--space-2); }
752
+ .chat-msg-flat .chat-md { line-height: 1.65; }
753
+ .chat-msg-flat .chat-md p { margin: 8px 0; }
754
+ .chat-msg-flat.them { padding-block: calc(var(--space-3) * var(--density, 1) + 2px); }
755
+ /* Inline backtick code (renderInline tags <code class=chat-tick>) - was a dead
756
+ class relying on the generic .chat-bubble code rule, so notices / non-bubble
757
+ surfaces got unstyled monospace. Self-style it regardless of container. */
758
+ .chat-tick { font-family: var(--ff-mono); font-size: .92em; background: color-mix(in oklab, var(--fg) 10%, transparent); padding: 1px 6px; border-radius: var(--r-1); }
759
+ /* Structured tool/code output earns more width than running prose (claude.ai/code
760
+ lets diffs/tables break out wider than the reading measure). A flat turn that
761
+ contains a tool card or code block widens itself AND its stack past --measure;
762
+ prose-only turns stay clamped. */
763
+ .chat-msg-flat:has(.chat-tool),
764
+ .chat-msg-flat:has(.chat-bubble.chat-code) { max-width: calc(var(--measure) + 14ch); }
765
+ .chat-msg-flat:has(.chat-tool) .chat-stack,
766
+ .chat-msg-flat:has(.chat-bubble.chat-code) .chat-stack { max-width: calc(var(--measure) + 14ch); }
767
+ /* Hover tint exceeds each role's REST tint so the row gives feedback (and the
768
+ ladder stays monotonic): assistant 5% > its 3% rest; user 4% > transparent. */
769
+ .chat-msg-flat.them:hover { background: color-mix(in oklab, var(--fg) 5%, transparent); }
770
+ .chat-msg-flat.you:hover { background: color-mix(in oklab, var(--fg) 4%, transparent); }
704
771
  .chat-msg-flat:hover .chat-bubble { transform: none; box-shadow: none; background: none; }
705
772
  .chat-msg-flat .chat-avatar { display: none; }
706
773
 
@@ -734,6 +801,9 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
734
801
  }
735
802
  .chat-msg .chat-tool.tool-running .chat-tool-status { color: var(--accent); background: color-mix(in oklab, var(--accent) 12%, transparent); }
736
803
  .chat-msg .chat-tool.tool-error .chat-tool-status { color: var(--flame); background: color-mix(in oklab, var(--flame) 12%, transparent); }
804
+ /* Completed tool: a positive (success) tone so done reads distinctly from the
805
+ neutral pill and from the accent-toned running pill (--success = green-2). */
806
+ .chat-msg .chat-tool.tool-done .chat-tool-status { color: var(--success); background: color-mix(in oklab, var(--success) 12%, transparent); }
737
807
  .chat-tool-body { border-top: var(--bw-hair) solid var(--rule); padding: var(--space-2) var(--space-3); display: flex; flex-direction: column; gap: var(--space-2); }
738
808
  .chat-tool-section { display: flex; flex-direction: column; gap: var(--space-1); }
739
809
  .chat-tool-section-label { font-size: var(--fs-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--fg-3); }
@@ -768,6 +838,10 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
768
838
  }
769
839
  @keyframes ds-arm-pulse { 0% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--warn) 55%, transparent); } 100% { box-shadow: 0 0 0 6px color-mix(in oklab, var(--warn) 0%, transparent); } }
770
840
  .ds-dash-card.is-new { box-shadow: inset 2px 0 0 var(--accent), 0 0 0 1px color-mix(in oklab, var(--accent) 40%, transparent); }
841
+ /* Error card carries the strongest left-bar tone (flame > stale amber > active
842
+ accent), placed last so its inset bar wins source order over is-active/is-stale.
843
+ The full-perimeter border-color (line ~396) stays for extra severity emphasis. */
844
+ .ds-dash-card.is-error { box-shadow: inset 2px 0 0 var(--flame); }
771
845
  @media (prefers-reduced-motion: no-preference) {
772
846
  .ds-dash-card.is-new { animation: ds-card-in var(--dur-slow) var(--ease); }
773
847
  }
@@ -777,9 +851,9 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
777
851
  .ds-dash-group { display: flex; flex-direction: column; gap: var(--space-2); }
778
852
  .ds-dash-group-label { font-size: var(--fs-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--fg-3); padding: 0 var(--space-1); }
779
853
  .ds-dash-breakdown { display: flex; align-items: center; gap: var(--space-1); font-size: var(--fs-sm); color: var(--fg-2); }
780
- .ds-dash-breakdown .seg.is-running { color: var(--green); font-weight: 600; }
854
+ .ds-dash-breakdown .seg.is-running { color: var(--accent); font-weight: 600; }
781
855
  .ds-dash-breakdown .seg.is-error { color: var(--flame); font-weight: 600; }
782
- .ds-dash-breakdown .seg.is-idle { color: var(--amber, #d9a93a); }
856
+ .ds-dash-breakdown .seg.is-idle { color: var(--amber); font-weight: 600; }
783
857
  .ds-dash-stream-disc { display: inline-flex; align-items: center; gap: var(--space-1); }
784
858
  .ds-dash-selectall { display: inline-flex; align-items: center; gap: var(--space-1); font-size: var(--fs-tiny); color: var(--fg-2); cursor: pointer; background: none; border: none; padding: var(--space-1); }
785
859
  .ds-dash-selectall:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
@@ -800,7 +874,7 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
800
874
  .ds-preview-code code { color: var(--fg); }
801
875
  .ds-preview-code .token.comment, .ds-preview-code .token.prolog, .ds-preview-code .token.doctype, .ds-preview-code .token.cdata { color: var(--fg-3); }
802
876
  .ds-preview-code .token.punctuation { color: var(--fg-2); }
803
- .ds-preview-code .token.property, .ds-preview-code .token.tag, .ds-preview-code .token.boolean, .ds-preview-code .token.number, .ds-preview-code .token.constant, .ds-preview-code .token.symbol { color: var(--purple-2, #7F18A4); }
877
+ .ds-preview-code .token.property, .ds-preview-code .token.tag, .ds-preview-code .token.boolean, .ds-preview-code .token.number, .ds-preview-code .token.constant, .ds-preview-code .token.symbol { color: var(--purple-2); }
804
878
  .ds-preview-code .token.selector, .ds-preview-code .token.attr-name, .ds-preview-code .token.string, .ds-preview-code .token.char, .ds-preview-code .token.builtin { color: var(--code-string, var(--green)); }
805
879
  .ds-preview-code .token.atrule, .ds-preview-code .token.attr-value, .ds-preview-code .token.keyword { color: var(--code-keyword, var(--sky)); }
806
880
  .ds-preview-code .token.function, .ds-preview-code .token.class-name { color: var(--code-fn, var(--flame)); }
@@ -197,22 +197,31 @@
197
197
  --size-sm: 32px;
198
198
  --size-base: 42px;
199
199
  --size-lg: 56px;
200
+
201
+ /* Unified focus-ring tokens (single source for the design system). Outset
202
+ rings (the default) tokenize colour+width+offset; bordered text fields use
203
+ the inset variant. Deliberate negative offsets on edge-flush/clipping
204
+ containers stay literal. */
205
+ --focus-color: var(--accent);
206
+ --focus-w: 2px;
207
+ --focus-offset: 2px;
208
+ --focus-ring-inset: inset 0 0 0 var(--focus-w) var(--focus-color);
200
209
  }
201
210
 
202
211
  /* ============================================================
203
212
  Focus-visible styles for keyboard navigation
204
213
  ============================================================ */
205
214
  :focus-visible {
206
- outline: 2px solid var(--accent);
207
- outline-offset: 2px;
215
+ outline: var(--focus-w) solid var(--focus-color);
216
+ outline-offset: var(--focus-offset);
208
217
  }
209
218
 
210
219
  /* Button variants with focus-visible */
211
220
  .btn:focus-visible,
212
221
  .btn-primary:focus-visible,
213
222
  .btn-ghost:focus-visible {
214
- outline: 2px solid var(--accent);
215
- outline-offset: 2px;
223
+ outline: var(--focus-w) solid var(--focus-color);
224
+ outline-offset: var(--focus-offset);
216
225
  }
217
226
 
218
227
  /* Link focus-visible */
@@ -260,6 +269,10 @@ select:focus-visible {
260
269
  --danger: oklch(0.68 0.19 25);
261
270
  --flame: #FF5A1F;
262
271
  --amber: #D9A93A;
272
+ /* warn/sky dark-tuned pairs (mirror flame/amber): the :root paper values
273
+ (#E0241A / #3A6EFF) are too dark on ink; these clear AA 4.5:1 on --ink. */
274
+ --warn: #FF5A52;
275
+ --sky: #6E9BFF;
263
276
  --code-string: var(--green-2);
264
277
  --code-keyword: var(--sky);
265
278
  --code-fn: var(--flame);
@@ -293,6 +306,8 @@ select:focus-visible {
293
306
  --accent-bright: var(--green-2);
294
307
  --flame: #FF5A1F;
295
308
  --amber: #D9A93A;
309
+ --warn: #FF5A52;
310
+ --sky: #6E9BFF;
296
311
  --code-string: var(--green-2);
297
312
  --code-keyword: var(--sky);
298
313
  --code-fn: var(--flame);
package/community.css CHANGED
@@ -1166,7 +1166,11 @@
1166
1166
  .cm-vs-btn,
1167
1167
  .cm-user-btn,
1168
1168
  .cm-ch-spinner,
1169
- .cm-ch-voice-badge {
1169
+ .cm-ch-voice-badge,
1170
+ .vx-ptt,
1171
+ .vx-ptt-glow,
1172
+ .vx-vad-meter,
1173
+ .vx-vad-fill {
1170
1174
  transition: none !important;
1171
1175
  animation: none !important;
1172
1176
  }