claudeck 1.4.1 → 1.4.2

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.
@@ -14,6 +14,56 @@
14
14
  flex-direction: column;
15
15
  min-width: 0;
16
16
  overflow: hidden;
17
+ position: relative;
18
+ }
19
+
20
+ /* ── Jump-to-latest pill ─────────────────────────────── */
21
+ /* Sits in document flow just above .input-bar; collapses to zero height when
22
+ hidden so it never pushes the chatbox down. */
23
+ claudeck-jump-to-latest {
24
+ display: flex;
25
+ justify-content: center;
26
+ width: 100%;
27
+ max-width: calc(var(--chat-max-w) + 48px);
28
+ margin: 0 auto;
29
+ padding: 0 24px 6px;
30
+ pointer-events: none;
31
+ z-index: 5;
32
+ }
33
+
34
+ .jump-to-latest {
35
+ display: inline-flex;
36
+ align-items: center;
37
+ gap: 6px;
38
+ padding: 6px 12px;
39
+ border-radius: 999px;
40
+ border: 1px solid var(--border, #d0d7de);
41
+ background: var(--bg-elevated, #ffffff);
42
+ color: var(--text, #1f2328);
43
+ font-size: 12px;
44
+ line-height: 1;
45
+ cursor: pointer;
46
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18), 0 1px 2px rgba(0, 0, 0, 0.08);
47
+ pointer-events: auto;
48
+ transition: opacity 120ms ease, transform 120ms ease;
49
+ }
50
+
51
+ .jump-to-latest:hover {
52
+ transform: translateY(-1px);
53
+ }
54
+
55
+ .jump-to-latest.hidden {
56
+ display: none;
57
+ }
58
+
59
+ .jump-to-latest svg {
60
+ flex-shrink: 0;
61
+ }
62
+
63
+ /* Hide the pill's wrapper padding when the button is hidden so the input-bar
64
+ doesn't get a phantom 6px gap above it. */
65
+ claudeck-jump-to-latest:not(:has(.jump-to-latest:not(.hidden))) {
66
+ padding: 0;
17
67
  }
18
68
 
19
69
  .messages {
@@ -55,7 +105,97 @@
55
105
  display: none;
56
106
  }
57
107
 
58
- /* Whaly mascot empty state */
108
+ /* ── Welcome State (centered chatbox) ─────────────────── */
109
+ .chat-area-main.welcome-state {
110
+ justify-content: center;
111
+ align-items: center;
112
+ }
113
+
114
+ .chat-area-main.welcome-state .messages {
115
+ display: none;
116
+ }
117
+
118
+ .chat-area-main.welcome-state .input-waiting,
119
+ .chat-area-main.welcome-state #image-preview-strip,
120
+ .chat-area-main.welcome-state #toolbox-panel,
121
+ .chat-area-main.welcome-state #workflow-panel {
122
+ display: none;
123
+ }
124
+
125
+ .chat-area-main.welcome-state .welcome-center {
126
+ display: flex;
127
+ flex-direction: column;
128
+ align-items: center;
129
+ gap: 20px;
130
+ width: 100%;
131
+ max-width: calc(var(--chat-max-w) + 48px);
132
+ padding: 0 24px;
133
+ margin-bottom: 32px;
134
+ animation: welcomeFadeIn 0.5s ease-out;
135
+ }
136
+
137
+ .chat-area-main.welcome-state .input-bar {
138
+ border-top: none;
139
+ padding-top: 0;
140
+ max-width: calc((var(--chat-max-w) + 48px) * 0.9);
141
+ }
142
+
143
+ .chat-area-main.welcome-state .input-bar::before {
144
+ display: none;
145
+ }
146
+
147
+ .chat-area-main:not(.welcome-state) .welcome-center {
148
+ display: none;
149
+ }
150
+
151
+ /* Welcome center content */
152
+ .welcome-center .whaly-welcome-img {
153
+ width: 100px;
154
+ height: auto;
155
+ filter: drop-shadow(0 8px 24px rgba(51, 209, 122, 0.08));
156
+ animation: float 4s ease-in-out infinite;
157
+ transition: filter 0.3s;
158
+ }
159
+
160
+ .welcome-center:hover .whaly-welcome-img {
161
+ filter: drop-shadow(0 8px 32px rgba(51, 209, 122, 0.15));
162
+ }
163
+
164
+ .welcome-center .welcome-greeting {
165
+ color: var(--text-dim);
166
+ font-size: 16px;
167
+ font-family: var(--font-display);
168
+ text-align: center;
169
+ letter-spacing: 0.03em;
170
+ font-weight: 500;
171
+ opacity: 0.8;
172
+ }
173
+
174
+ /* Transition animation: welcome state exiting */
175
+ .chat-area-main.welcome-exit .welcome-center {
176
+ animation: welcomeFadeOut 0.3s ease-in forwards;
177
+ }
178
+
179
+ .chat-area-main.welcome-exit .input-bar {
180
+ animation: inputBarSlideDown 0.4s ease-out forwards;
181
+ }
182
+
183
+ @keyframes welcomeFadeIn {
184
+ from { opacity: 0; transform: translateY(12px); }
185
+ to { opacity: 1; transform: translateY(0); }
186
+ }
187
+
188
+ @keyframes welcomeFadeOut {
189
+ from { opacity: 1; transform: translateY(0); }
190
+ to { opacity: 0; transform: translateY(-20px); }
191
+ }
192
+
193
+ @keyframes inputBarSlideDown {
194
+ from { transform: translateY(0); }
195
+ to { transform: translateY(40px); }
196
+ }
197
+
198
+ /* Whaly mascot empty state (used when messages exist but empty after clear) */
59
199
  .whaly-placeholder {
60
200
  display: flex;
61
201
  flex-direction: column;
@@ -107,29 +247,30 @@
107
247
  .msg-user {
108
248
  background: var(--user-dim);
109
249
  border: 1px solid var(--border);
110
- border-left: 3px solid var(--user);
111
- border-radius: var(--radius-md);
250
+ border-radius: var(--radius-lg);
112
251
  padding: 0;
113
- font-size: 13px;
114
- line-height: 1.65;
252
+ font-size: 13.5px;
253
+ line-height: 1.7;
115
254
  color: var(--text);
116
- transition: border-color 0.2s;
255
+ transition: border-color 0.2s, box-shadow 0.2s;
117
256
  }
118
257
 
119
258
  .msg-user:hover {
120
- border-color: rgba(123,155,245,0.2);
259
+ border-color: rgba(123,155,245,0.15);
260
+ box-shadow: 0 2px 12px rgba(123,155,245,0.04);
121
261
  }
122
262
 
123
263
  .msg-user-label {
124
264
  display: block;
125
- padding: 5px 14px;
126
- font-size: 10px;
127
- font-weight: 700;
128
- font-family: var(--font-display);
129
- letter-spacing: 0.12em;
265
+ padding: 6px 16px;
266
+ font-size: 11px;
267
+ font-weight: 600;
268
+ font-family: var(--font-sans);
269
+ letter-spacing: 0.06em;
130
270
  color: var(--user);
131
271
  background: var(--user-dim);
132
272
  border-bottom: 1px solid var(--border-subtle);
273
+ border-radius: var(--radius-lg) var(--radius-lg) 0 0;
133
274
  user-select: none;
134
275
  text-transform: uppercase;
135
276
  }
@@ -174,7 +315,7 @@
174
315
 
175
316
  .msg-user-body {
176
317
  display: block;
177
- padding: 10px 14px;
318
+ padding: 12px 16px;
178
319
  white-space: pre-wrap;
179
320
  word-wrap: break-word;
180
321
  font-family: var(--font-sans);
@@ -182,12 +323,11 @@
182
323
 
183
324
  html[data-theme="light"] .msg-user {
184
325
  border-color: var(--border);
185
- border-left-color: var(--user);
186
326
  }
187
327
 
188
328
  .msg-assistant {
189
- font-size: 13.5px;
190
- line-height: 1.7;
329
+ font-size: 14px;
330
+ line-height: 1.65;
191
331
  color: var(--text);
192
332
  }
193
333
 
@@ -202,40 +342,37 @@ html[data-theme="light"] .msg-user {
202
342
  .msg-assistant .text-content .md-h2,
203
343
  .msg-assistant .text-content .md-h3,
204
344
  .msg-assistant .text-content .md-h4 {
205
- font-family: var(--font-display);
345
+ font-family: var(--font-editorial);
206
346
  color: var(--text);
207
- letter-spacing: 0.01em;
208
- margin-top: 16px;
209
- margin-bottom: 8px;
210
- line-height: 1.3;
347
+ letter-spacing: -0.01em;
348
+ margin-top: 14px;
349
+ margin-bottom: 6px;
350
+ line-height: 1.35;
211
351
  }
212
352
 
213
353
  .msg-assistant .text-content .md-h1 {
214
- font-size: 20px;
354
+ font-size: 22px;
215
355
  font-weight: 700;
216
- padding-bottom: 8px;
217
- border-bottom: 1px solid var(--border);
218
- background: linear-gradient(90deg, var(--text), var(--text-secondary));
219
- -webkit-background-clip: text;
220
- -webkit-text-fill-color: transparent;
221
- background-clip: text;
356
+ padding-bottom: 6px;
357
+ border-bottom: 2px solid var(--border);
222
358
  }
223
359
 
224
360
  .msg-assistant .text-content .md-h2 {
225
- font-size: 17px;
361
+ font-size: 18px;
226
362
  font-weight: 700;
227
- padding-bottom: 4px;
363
+ padding-bottom: 6px;
228
364
  border-bottom: 1px solid var(--border-subtle);
229
365
  }
230
366
 
231
367
  .msg-assistant .text-content .md-h3 {
232
- font-size: 15px;
368
+ font-size: 15.5px;
233
369
  font-weight: 600;
234
370
  }
235
371
 
236
372
  .msg-assistant .text-content .md-h4 {
237
373
  font-size: 14px;
238
374
  font-weight: 600;
375
+ font-style: italic;
239
376
  color: var(--text-secondary);
240
377
  }
241
378
 
@@ -262,23 +399,25 @@ html[data-theme="light"] .msg-user {
262
399
  /* ── Typography — Inline Code ────────────────────────── */
263
400
  .msg-assistant .text-content code.inline-code {
264
401
  font-family: var(--font-mono);
265
- font-size: 12px;
402
+ font-size: 0.88em;
266
403
  background: var(--bg-tertiary);
267
- padding: 2px 7px;
268
- border-radius: 4px;
404
+ padding: 2px 8px;
405
+ border-radius: 5px;
269
406
  color: var(--purple);
270
407
  border: 1px solid var(--border-subtle);
408
+ font-variant-ligatures: none;
271
409
  }
272
410
 
273
411
  /* Legacy inline code (without .inline-code class) */
274
412
  .msg-assistant .text-content code:not([class*="language-"]):not(.inline-code):not(.hljs) {
275
413
  font-family: var(--font-mono);
276
- font-size: 12px;
414
+ font-size: 0.88em;
277
415
  background: var(--bg-tertiary);
278
- padding: 2px 7px;
279
- border-radius: 4px;
416
+ padding: 2px 8px;
417
+ border-radius: 5px;
280
418
  color: var(--purple);
281
419
  border: 1px solid var(--border-subtle);
420
+ font-variant-ligatures: none;
282
421
  }
283
422
 
284
423
  /* ── Typography — Links ──────────────────────────────── */
@@ -291,7 +430,7 @@ html[data-theme="light"] .msg-user {
291
430
 
292
431
  .msg-assistant .text-content .md-link:hover {
293
432
  border-bottom-color: var(--accent);
294
- text-shadow: 0 0 8px var(--accent-glow);
433
+ opacity: 0.85;
295
434
  }
296
435
 
297
436
  /* ── Typography — Horizontal Rule ────────────────────── */
@@ -304,15 +443,16 @@ html[data-theme="light"] .msg-user {
304
443
 
305
444
  /* ── Typography — Blockquotes ────────────────────────── */
306
445
  .msg-assistant .text-content .md-blockquote {
307
- margin: 12px 0;
446
+ margin: 10px 0;
308
447
  padding: 10px 18px;
309
448
  border-left: 3px solid var(--accent);
310
449
  background: var(--accent-dim);
311
450
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
312
451
  color: var(--text-secondary);
313
452
  font-style: italic;
314
- font-size: 13px;
315
- line-height: 1.65;
453
+ font-family: var(--font-editorial);
454
+ font-size: 14px;
455
+ line-height: 1.7;
316
456
  }
317
457
 
318
458
  /* ── Typography — Lists ──────────────────────────────── */
@@ -346,6 +486,68 @@ html[data-theme="light"] .msg-user {
346
486
  font-family: var(--font-mono);
347
487
  }
348
488
 
489
+ /* Nested lists */
490
+ .msg-assistant .text-content .md-list .md-list {
491
+ margin: 4px 0;
492
+ }
493
+
494
+ .msg-assistant .text-content .md-ul .md-ul {
495
+ list-style-type: circle;
496
+ }
497
+
498
+ .msg-assistant .text-content .md-ul .md-ul .md-ul {
499
+ list-style-type: square;
500
+ }
501
+
502
+ /* ── Typography — Task Lists ───────────────────────────── */
503
+ .msg-assistant .text-content .md-task-list {
504
+ list-style: none;
505
+ padding-left: 4px;
506
+ }
507
+
508
+ .msg-assistant .text-content .md-task-list li {
509
+ display: flex;
510
+ align-items: flex-start;
511
+ gap: 8px;
512
+ padding-left: 0;
513
+ }
514
+
515
+ .msg-assistant .text-content .md-checkbox {
516
+ appearance: none;
517
+ -webkit-appearance: none;
518
+ width: 16px;
519
+ height: 16px;
520
+ border: 1.5px solid var(--border);
521
+ border-radius: 4px;
522
+ background: var(--bg-secondary);
523
+ flex-shrink: 0;
524
+ margin-top: 4px;
525
+ cursor: default;
526
+ position: relative;
527
+ transition: all 0.15s var(--ease-smooth);
528
+ }
529
+
530
+ .msg-assistant .text-content .md-checkbox:checked {
531
+ background: var(--accent);
532
+ border-color: var(--accent);
533
+ }
534
+
535
+ .msg-assistant .text-content .md-checkbox:checked::after {
536
+ content: "\2713";
537
+ position: absolute;
538
+ top: -1px;
539
+ left: 2px;
540
+ font-size: 12px;
541
+ color: #fff;
542
+ font-weight: 700;
543
+ line-height: 1;
544
+ }
545
+
546
+ .msg-assistant .text-content .md-task-list .task-text-done {
547
+ text-decoration: line-through;
548
+ color: var(--text-dim);
549
+ }
550
+
349
551
  /* ── Typography — Tables ─────────────────────────────── */
350
552
  .msg-assistant .text-content .md-table-wrap {
351
553
  margin: 12px 0;
@@ -371,7 +573,7 @@ html[data-theme="light"] .msg-user {
371
573
  font-size: 11px;
372
574
  text-transform: uppercase;
373
575
  letter-spacing: 0.04em;
374
- font-family: var(--font-display);
576
+ font-family: var(--font-sans);
375
577
  }
376
578
 
377
579
  .msg-assistant .text-content .md-table td {
@@ -388,6 +590,10 @@ html[data-theme="light"] .msg-user {
388
590
  transition: background 0.15s;
389
591
  }
390
592
 
593
+ .msg-assistant .text-content .md-table tbody tr:nth-child(even) {
594
+ background: var(--bg-secondary);
595
+ }
596
+
391
597
  .msg-assistant .text-content .md-table tbody tr:hover {
392
598
  background: var(--accent-dim);
393
599
  }
@@ -395,16 +601,17 @@ html[data-theme="light"] .msg-user {
395
601
  /* ── Code Blocks ─────────────────────────────────────── */
396
602
  .code-block-wrapper {
397
603
  position: relative;
398
- margin: 12px 0;
604
+ margin: 10px 0;
399
605
  border: 1px solid var(--border);
400
- border-radius: var(--radius-md);
606
+ border-radius: var(--radius-lg);
401
607
  overflow: hidden;
402
608
  background: var(--bg-deep);
403
- transition: border-color 0.2s;
609
+ transition: border-color 0.2s, box-shadow 0.2s;
404
610
  }
405
611
 
406
612
  .code-block-wrapper:hover {
407
613
  border-color: rgba(255,255,255,0.06);
614
+ box-shadow: var(--shadow-sm);
408
615
  }
409
616
 
410
617
  .code-block-header {
@@ -418,12 +625,12 @@ html[data-theme="light"] .msg-user {
418
625
  }
419
626
 
420
627
  .code-lang-label {
421
- font-family: var(--font-display);
628
+ font-family: var(--font-sans);
422
629
  font-size: 11px;
423
630
  font-weight: 600;
424
631
  color: var(--text-secondary);
425
632
  text-transform: uppercase;
426
- letter-spacing: 0.06em;
633
+ letter-spacing: 0.05em;
427
634
  user-select: none;
428
635
  }
429
636
 
@@ -454,6 +661,26 @@ html[data-theme="light"] .msg-user {
454
661
  font-family: var(--font-mono);
455
662
  font-size: 12.5px;
456
663
  line-height: 1.65;
664
+ counter-reset: line;
665
+ }
666
+
667
+ /* Line numbers via CSS counters */
668
+ .msg-assistant .text-content pre code .code-line {
669
+ display: block;
670
+ counter-increment: line;
671
+ }
672
+
673
+ .msg-assistant .text-content pre code .code-line::before {
674
+ content: counter(line);
675
+ display: inline-block;
676
+ width: 3ch;
677
+ margin-right: 16px;
678
+ text-align: right;
679
+ color: var(--text-dim);
680
+ opacity: 0.5;
681
+ font-size: 11px;
682
+ user-select: none;
683
+ pointer-events: none;
457
684
  }
458
685
 
459
686
  /* ── Code Copy Button ──────────────────────────────────── */
@@ -463,7 +690,7 @@ html[data-theme="light"] .msg-user {
463
690
  opacity: 0;
464
691
  padding: 3px 10px;
465
692
  font-size: 10px;
466
- font-family: var(--font-display);
693
+ font-family: var(--font-sans);
467
694
  color: var(--text-dim);
468
695
  background: transparent;
469
696
  border: 1px solid var(--border);
@@ -471,7 +698,7 @@ html[data-theme="light"] .msg-user {
471
698
  cursor: pointer;
472
699
  transition: all 0.2s var(--ease-smooth);
473
700
  text-transform: uppercase;
474
- letter-spacing: 0.06em;
701
+ letter-spacing: 0.05em;
475
702
  margin-left: auto;
476
703
  }
477
704
 
@@ -482,7 +709,7 @@ html[data-theme="light"] .msg-user {
482
709
  right: 8px;
483
710
  padding: 3px 10px;
484
711
  font-size: 10px;
485
- font-family: var(--font-display);
712
+ font-family: var(--font-sans);
486
713
  color: var(--text-dim);
487
714
  background: var(--bg-tertiary);
488
715
  border: 1px solid var(--border);
@@ -492,7 +719,7 @@ html[data-theme="light"] .msg-user {
492
719
  transition: all 0.2s var(--ease-smooth);
493
720
  z-index: 2;
494
721
  text-transform: uppercase;
495
- letter-spacing: 0.06em;
722
+ letter-spacing: 0.05em;
496
723
  }
497
724
 
498
725
  .code-block-wrapper:hover .code-copy-btn {
@@ -516,24 +743,23 @@ html[data-theme="light"] .msg-user {
516
743
  display: flex;
517
744
  align-items: center;
518
745
  flex-wrap: wrap;
519
- gap: 8px;
520
- padding: 8px 14px;
746
+ gap: 10px;
747
+ padding: 10px 14px;
521
748
  background: var(--bg-secondary);
522
749
  border: 1px solid var(--border);
523
- border-left: 2px solid var(--accent);
524
- border-radius: var(--radius-md);
525
- font-size: 11px;
750
+ border-radius: var(--radius-lg);
751
+ font-size: 11.5px;
526
752
  font-family: var(--font-mono);
527
753
  color: var(--text-secondary);
528
- margin: 4px 0;
754
+ margin: 6px 0;
529
755
  cursor: pointer;
530
756
  transition: all 0.2s var(--ease-smooth);
531
- animation: fadeInUp 0.2s var(--ease-out-expo);
757
+ animation: fadeIn 0.2s var(--ease-out-expo);
532
758
  animation-fill-mode: both;
533
759
  }
534
760
 
535
- .tool-indicator:hover { border-color: var(--accent); background: rgba(51,209,122,0.03); }
536
- .tool-indicator .tool-name { font-weight: 600; color: var(--accent); font-family: var(--font-display); letter-spacing: 0.02em; }
761
+ .tool-indicator:hover { border-color: rgba(51,209,122,0.25); background: rgba(51,209,122,0.03); }
762
+ .tool-indicator .tool-name { font-weight: 600; color: var(--accent); font-family: var(--font-sans); letter-spacing: 0.02em; }
537
763
  .tool-indicator .tool-detail { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-family: var(--font-sans); }
538
764
 
539
765
  /* Spinner for running tools */
@@ -557,27 +783,20 @@ html[data-theme="light"] .msg-user {
557
783
  flex-shrink: 0;
558
784
  }
559
785
 
560
- /* Running state — pulsing left border */
786
+ /* Running state — subtle background tint */
561
787
  .tool-indicator.tool-running {
562
- border-left-color: var(--accent);
563
- animation: fadeInUp 0.2s var(--ease-out-expo), toolRunPulse 1.5s ease-in-out infinite;
564
- animation-fill-mode: both;
565
- }
566
-
567
- @keyframes toolRunPulse {
568
- 0%, 100% { border-left-color: var(--accent); }
569
- 50% { border-left-color: var(--accent-solid); }
788
+ background: var(--accent-dim);
789
+ border-color: var(--border-accent);
570
790
  }
571
791
 
572
792
  /* Done state */
573
793
  .tool-indicator.tool-done {
574
- border-left-color: var(--success);
575
794
  opacity: 0.85;
576
795
  }
577
796
 
578
797
  /* Error state */
579
798
  .tool-indicator.tool-error {
580
- border-left-color: var(--error);
799
+ border-color: rgba(237,51,59,0.2);
581
800
  }
582
801
 
583
802
  /* Result preview shown inline under the tool detail */
@@ -700,17 +919,29 @@ html[data-theme="light"] .msg-user {
700
919
  display: flex;
701
920
  align-items: center;
702
921
  gap: 12px;
703
- padding: 10px 16px;
922
+ padding: 12px 16px;
704
923
  max-width: var(--chat-max-w);
705
924
  width: 100%;
706
925
  margin: 0 auto;
707
926
  background: var(--bg-secondary);
708
927
  border: 1px solid var(--border);
709
- border-left: 2px solid var(--accent);
710
- border-radius: var(--radius-md);
928
+ border-radius: var(--radius-lg);
711
929
  font-size: 12px;
712
930
  color: var(--text-secondary);
713
- animation: fadeInUp 0.25s var(--ease-out-expo);
931
+ animation: fadeIn 0.25s var(--ease-out-expo);
932
+ position: relative;
933
+ overflow: hidden;
934
+ }
935
+
936
+ .thinking-bar::before {
937
+ content: "";
938
+ position: absolute;
939
+ top: 0;
940
+ left: 0;
941
+ width: 60%;
942
+ height: 2px;
943
+ background: linear-gradient(90deg, transparent, var(--accent), transparent);
944
+ animation: editorialShimmer 2s linear infinite;
714
945
  }
715
946
 
716
947
  .thinking-dot-container {
@@ -720,11 +951,12 @@ html[data-theme="light"] .msg-user {
720
951
  }
721
952
 
722
953
  .thinking-dot {
723
- width: 5px;
724
- height: 5px;
954
+ width: 4px;
955
+ height: 4px;
725
956
  background: var(--accent);
726
957
  border-radius: 50%;
727
958
  animation: thinkingPulse 1.4s infinite;
959
+ opacity: 0.7;
728
960
  }
729
961
 
730
962
  .thinking-dot:nth-child(2) { animation-delay: 0.2s; }
@@ -732,7 +964,7 @@ html[data-theme="light"] .msg-user {
732
964
 
733
965
  .thinking-label {
734
966
  color: var(--accent);
735
- font-family: var(--font-display);
967
+ font-family: var(--font-sans);
736
968
  font-size: 12px;
737
969
  font-weight: 500;
738
970
  letter-spacing: 0.02em;