collavre 0.8.1 → 0.8.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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/collavre/actiontext.css +3 -3
  3. data/app/assets/stylesheets/collavre/comments_popup.css +44 -31
  4. data/app/assets/stylesheets/collavre/creatives.css +25 -16
  5. data/app/assets/stylesheets/collavre/dark_mode.css +56 -3
  6. data/app/assets/stylesheets/collavre/design_tokens.css +10 -2
  7. data/app/assets/stylesheets/collavre/mention_menu.css +2 -2
  8. data/app/assets/stylesheets/collavre/popup.css +82 -18
  9. data/app/controllers/collavre/creative_shares_controller.rb +27 -0
  10. data/app/javascript/components/creative_tree_row.js +11 -4
  11. data/app/javascript/controllers/comments/contexts_controller.js +7 -4
  12. data/app/javascript/controllers/comments/popup_controller.js +6 -0
  13. data/app/javascript/controllers/comments/topics_controller.js +9 -6
  14. data/app/javascript/controllers/creatives/expansion_controller.js +4 -4
  15. data/app/javascript/controllers/creatives/tree_controller.js +3 -1
  16. data/app/javascript/controllers/share_modal_controller.js +57 -0
  17. data/app/services/collavre/ai_agent/approval_handler.rb +7 -3
  18. data/app/services/collavre/ai_agent_service.rb +16 -3
  19. data/app/services/collavre/ai_client.rb +22 -6
  20. data/app/services/collavre/tools/creative_retrieval_service.rb +2 -2
  21. data/app/services/collavre/tools/creative_update_service.rb +1 -1
  22. data/app/views/collavre/comments/_comments_popup.html.erb +1 -1
  23. data/app/views/collavre/creatives/_mobile_actions_menu.html.erb +1 -1
  24. data/app/views/collavre/creatives/_share_modal.html.erb +71 -28
  25. data/app/views/collavre/creatives/index.html.erb +2 -2
  26. data/app/views/collavre/shared/_custom_theme_style.html.erb +21 -0
  27. data/app/views/layouts/collavre/slide.html.erb +1 -17
  28. data/config/locales/ai_agent.en.yml +10 -0
  29. data/config/locales/ai_agent.ko.yml +10 -0
  30. data/config/locales/creatives.en.yml +3 -1
  31. data/config/locales/creatives.ko.yml +3 -1
  32. data/lib/collavre/version.rb +1 -1
  33. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0aedb88d33b98dd9c3e2d94a658e1671c88cf30b4523a82173f9bff2f797ce29
4
- data.tar.gz: 0336125a76db7678bd3fc9f4ddd9d9342c9914142017eabbf0a42c15b7485022
3
+ metadata.gz: f586b6b08d3de11a9c9212f4ff7e11113143bdf0dbbd5963668e9613041b3f02
4
+ data.tar.gz: 5ad7d024a1c53506c0ef1ee08731041de3a66842de48f26912b5eb56051c7029
5
5
  SHA512:
6
- metadata.gz: d044363cf61f8a6f6beaac085592e8330fa000f251809b56bb7a4f89fa5b0147a606df80a62f3b473dca35b17de893d0226df6cf8c7ec9f8d4c8b9d0ae2dc7a6
7
- data.tar.gz: 7aaf420fef891252b43ec4a968fcba35b84e3fc4c4cf07507568a9a4976fa33f3176683b409c3dc4f3c1392ac52ba3016a00d51537882f7649bbc38513d000b4
6
+ metadata.gz: 187df2c9024426107e264eb14d7af711cc10255f87eec3380287465c2f0b19198b4a67f50b8d8e3920105166d268af57e1a9a525cb9c49ea84e11a2031ac9503
7
+ data.tar.gz: eb58fba86ff137079da0f834c3f1b82e2fbdede8c5e2d930ebff1602b6c38e45744d6a31bb01d568142b4bee42b5bd0bc68a5bf6e77f6187993f901bee3449ad
@@ -61,7 +61,7 @@
61
61
  padding: 0.4rem 0.5rem;
62
62
  background: var(--surface-bg);
63
63
  border: 1px solid var(--border-color);
64
- border-radius: 6px;
64
+ border-radius: var(--radius-2);
65
65
  box-shadow: var(--shadow-3);
66
66
  }
67
67
 
@@ -208,7 +208,7 @@
208
208
  display: block;
209
209
  background: var(--color-code-bg);
210
210
  border: 1px solid var(--border-color);
211
- border-radius: 6px;
211
+ border-radius: var(--radius-2);
212
212
  color: var(--color-code-text);
213
213
  font-family: ui-monospace, SFMono-Regular, SFMono, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
214
214
  font-size: 0.9em;
@@ -404,7 +404,7 @@
404
404
  .lexical-attachment__caption-input {
405
405
  width: 100%;
406
406
  border: 1px solid var(--border-color);
407
- border-radius: 6px;
407
+ border-radius: var(--radius-2);
408
408
  padding: var(--space-2) 0.6rem;
409
409
  font-size: 0.9rem;
410
410
  background: var(--surface-section);
@@ -9,6 +9,12 @@
9
9
  max-height: 80vh;
10
10
  min-width: 200px;
11
11
  min-height: 200px;
12
+ background: var(--surface-bg);
13
+ border: 1px solid var(--border-color);
14
+ border-radius: var(--radius-3);
15
+ box-shadow: var(--shadow-3);
16
+ padding: 1em;
17
+ flex-direction: column;
12
18
  transition: top 0.25s ease, left 0.25s ease, width 0.25s ease, height 0.25s ease,
13
19
  right 0.25s ease, bottom 0.25s ease, border-radius 0.25s ease,
14
20
  box-shadow 0.25s ease, padding 0.25s ease;
@@ -45,6 +51,7 @@ body.chat-fullscreen {
45
51
  align-items: center;
46
52
  justify-content: space-between;
47
53
  gap: 0.75em;
54
+ padding-bottom: var(--space-1);
48
55
  }
49
56
 
50
57
  .comments-popup-header h3 {
@@ -119,8 +126,7 @@ body.chat-fullscreen {
119
126
  flex-wrap: nowrap;
120
127
  align-items: center;
121
128
  gap: 0.5em;
122
- padding: 0.5em 0;
123
- margin-bottom: 0.5em;
129
+ padding: var(--space-1) 0;
124
130
  overflow-x: auto;
125
131
  overflow-y: hidden;
126
132
  scrollbar-width: none; /* Firefox */
@@ -365,7 +371,7 @@ body.chat-fullscreen {
365
371
  padding: 0.3em 0.8em;
366
372
  font-size: 0.85em;
367
373
  cursor: pointer;
368
- border-radius: 4px;
374
+ border-radius: var(--radius-2);
369
375
  white-space: nowrap;
370
376
  }
371
377
 
@@ -570,7 +576,7 @@ body.chat-fullscreen {
570
576
  .comment-action-json {
571
577
  background: var(--color-section-bg);
572
578
  border: 1px solid var(--color-border);
573
- border-radius: 4px;
579
+ border-radius: var(--radius-2);
574
580
  margin-top: 0.4em;
575
581
  padding: 0.5em;
576
582
  white-space: pre-wrap;
@@ -588,7 +594,7 @@ body.chat-fullscreen {
588
594
  .comment-action-edit-textarea {
589
595
  width: 100%;
590
596
  border: 1px solid var(--color-border);
591
- border-radius: 4px;
597
+ border-radius: var(--radius-2);
592
598
  padding: 0.5em;
593
599
  font-family: var(--font-family-monospace, 'SFMono-Regular', 'Consolas', 'Liberation Mono', monospace);
594
600
  font-size: 0.9em;
@@ -657,8 +663,8 @@ body.chat-fullscreen {
657
663
  }
658
664
 
659
665
  .comment-status-label.pending-label {
660
- background-color: color-mix(in srgb, orange 20%, transparent);
661
- color: orange;
666
+ background-color: color-mix(in srgb, var(--color-warning) 20%, transparent);
667
+ color: var(--color-warning);
662
668
  }
663
669
 
664
670
  .comment-action-container {
@@ -731,7 +737,7 @@ body.chat-fullscreen {
731
737
  background: var(--color-section-bg);
732
738
  color: var(--color-text);
733
739
  border: 1px solid var(--color-border);
734
- border-radius: 4px;
740
+ border-radius: var(--radius-2);
735
741
  padding: 0.2em 0.6em;
736
742
  font-size: 0.75em;
737
743
  opacity: 0;
@@ -753,7 +759,7 @@ body.chat-fullscreen {
753
759
  gap: 0.35em;
754
760
  background: var(--color-section-bg);
755
761
  border: 1px solid var(--color-border);
756
- border-radius: 4px;
762
+ border-radius: var(--radius-2);
757
763
  padding: 0.2em 0.4em;
758
764
  margin-right: 0.25em;
759
765
  margin-top: 0.2em;
@@ -784,7 +790,7 @@ body.chat-fullscreen {
784
790
  .comment-attachment-image {
785
791
  max-width: 100%;
786
792
  height: auto;
787
- border-radius: 4px;
793
+ border-radius: var(--radius-2);
788
794
  border: 1px solid var(--color-border);
789
795
  }
790
796
 
@@ -839,7 +845,7 @@ body.chat-fullscreen {
839
845
  }
840
846
 
841
847
  #comment-participants {
842
- margin-bottom: 0.3em;
848
+ padding: var(--space-1) 0;
843
849
  min-height: 20px;
844
850
  display: flex;
845
851
  align-items: center;
@@ -909,7 +915,7 @@ body.chat-fullscreen {
909
915
  flex-wrap: nowrap;
910
916
  align-items: center;
911
917
  gap: 0.4em;
912
- padding: 0.25em 0;
918
+ padding: var(--space-1) 0;
913
919
  overflow-x: auto;
914
920
  overflow-y: visible;
915
921
  scrollbar-width: none;
@@ -943,8 +949,14 @@ body.chat-fullscreen {
943
949
  box-sizing: border-box;
944
950
  }
945
951
 
952
+ .context-chip svg,
953
+ .context-toggle-btn svg {
954
+ vertical-align: middle;
955
+ flex-shrink: 0;
956
+ }
957
+
946
958
  .context-chip:hover {
947
- background: var(--color-border);
959
+ background: var(--surface-hover);
948
960
  }
949
961
 
950
962
  .context-chip.context-disabled {
@@ -1047,7 +1059,7 @@ body.chat-fullscreen {
1047
1059
 
1048
1060
  .context-toggle-btn.context-toggle-active {
1049
1061
  background: var(--color-secondary-active);
1050
- color: white;
1062
+ color: var(--color-badge-text);
1051
1063
  border-color: var(--color-secondary-active);
1052
1064
  }
1053
1065
 
@@ -1056,8 +1068,7 @@ body.chat-fullscreen {
1056
1068
  flex-wrap: nowrap;
1057
1069
  align-items: center;
1058
1070
  gap: 0.5em;
1059
- padding: 0.5em 0;
1060
- margin-bottom: 0.5em;
1071
+ padding: var(--space-1) 0;
1061
1072
  overflow-x: auto;
1062
1073
  overflow-y: hidden;
1063
1074
  scrollbar-width: none; /* Firefox */
@@ -1088,12 +1099,12 @@ body.chat-fullscreen {
1088
1099
  }
1089
1100
 
1090
1101
  .topic-tag:hover {
1091
- background: var(--color-border);
1102
+ background: var(--surface-hover);
1092
1103
  }
1093
1104
 
1094
1105
  .topic-tag.active {
1095
1106
  background: var(--color-secondary-active);
1096
- color: white;
1107
+ color: var(--color-badge-text);
1097
1108
  border-color: var(--color-secondary-active);
1098
1109
  }
1099
1110
 
@@ -1108,7 +1119,7 @@ body.chat-fullscreen {
1108
1119
  top: -8px;
1109
1120
  right: -10px;
1110
1121
  background-color: var(--color-danger);
1111
- color: white;
1122
+ color: var(--color-badge-text);
1112
1123
  font-size: 0.6em;
1113
1124
  padding: 0.1em 0.4em;
1114
1125
  border-radius: 8px;
@@ -1118,7 +1129,7 @@ body.chat-fullscreen {
1118
1129
  /* Drag and drop styles for moving comments to topics */
1119
1130
  .topic-tag.drag-over {
1120
1131
  background-color: var(--color-active);
1121
- color: white;
1132
+ color: var(--color-badge-text);
1122
1133
  border-color: var(--color-active);
1123
1134
  transform: scale(1.05);
1124
1135
  transition: all 0.15s ease;
@@ -1169,8 +1180,8 @@ body.chat-fullscreen {
1169
1180
  left: -1000px;
1170
1181
  padding: var(--space-2) var(--space-3);
1171
1182
  background-color: var(--color-active);
1172
- color: white;
1173
- border-radius: 4px;
1183
+ color: var(--color-badge-text);
1184
+ border-radius: var(--radius-2);
1174
1185
  font-size: 0.9em;
1175
1186
  font-weight: 500;
1176
1187
  white-space: nowrap;
@@ -1279,6 +1290,7 @@ body.chat-fullscreen {
1279
1290
  .topic-archived-toggle {
1280
1291
  display: inline-flex;
1281
1292
  align-items: center;
1293
+ gap: 0.3em;
1282
1294
  padding: 0.15em var(--space-2);
1283
1295
  border-radius: var(--radius-3);
1284
1296
  font-size: var(--text-0);
@@ -1298,10 +1310,11 @@ body.chat-fullscreen {
1298
1310
  background: none;
1299
1311
  border: none;
1300
1312
  cursor: pointer;
1301
- font-size: var(--text-00);
1302
1313
  padding: 0 var(--space-1);
1303
1314
  opacity: 0.6;
1304
- vertical-align: middle;
1315
+ display: inline-flex;
1316
+ align-items: center;
1317
+ color: var(--text-secondary);
1305
1318
  }
1306
1319
  .archive-topic-btn:hover,
1307
1320
  .unarchive-topic-btn:hover {
@@ -1349,7 +1362,7 @@ body.chat-fullscreen {
1349
1362
  }
1350
1363
 
1351
1364
  .selection-action-bar-btn:hover {
1352
- background: var(--surface-hover, rgba(0, 0, 0, 0.05));
1365
+ background: var(--surface-hover);
1353
1366
  }
1354
1367
 
1355
1368
  .selection-action-delete:hover {
@@ -1441,7 +1454,7 @@ body.chat-fullscreen {
1441
1454
  /* Blinking cursor inline at the end of streaming content */
1442
1455
  .streaming-cursor {
1443
1456
  animation: streaming-blink 1s infinite;
1444
- color: var(--color-text, #333);
1457
+ color: var(--text-primary);
1445
1458
  margin-left: 1px;
1446
1459
  font-weight: normal;
1447
1460
  }
@@ -1452,11 +1465,11 @@ body.chat-fullscreen {
1452
1465
  }
1453
1466
 
1454
1467
  .review-hint {
1455
- background: var(--surface-3, #333);
1456
- color: var(--text-1, #fff);
1457
- padding: var(--space-2, 4px) var(--space-3, 8px);
1458
- border-radius: var(--radius-2, 4px);
1459
- font-size: var(--text-0, 0.75rem);
1468
+ background: var(--surface-btn);
1469
+ color: var(--text-on-btn);
1470
+ padding: var(--space-2) var(--space-3);
1471
+ border-radius: var(--radius-2);
1472
+ font-size: var(--text-0);
1460
1473
  white-space: nowrap;
1461
1474
  z-index: var(--layer-important, 999);
1462
1475
  animation: review-hint-fade 3s ease-out forwards;
@@ -64,7 +64,8 @@ html.creative-alignment-ready .page-title {
64
64
  background: var(--surface-section);
65
65
  border: 1px solid var(--border-color);
66
66
  padding: 0.5em;
67
- box-shadow: 0 2px 8px var(--border-color);
67
+ box-shadow: var(--shadow-3);
68
+ border-radius: var(--radius-2);
68
69
  min-width: 220px;
69
70
  }
70
71
 
@@ -104,11 +105,11 @@ creative-tree-row.show-edit .creative-row {
104
105
  position: fixed;
105
106
  display: none;
106
107
  pointer-events: none;
107
- background: rgba(33, 150, 243, 0.9);
108
+ background: color-mix(in srgb, var(--color-active) 90%, transparent);
108
109
  color: var(--text-on-badge);
109
110
  font-size: var(--text-0);
110
111
  padding: 2px 8px;
111
- border-radius: 4px;
112
+ border-radius: var(--radius-2);
112
113
  transform: translate(-50%, -170%);
113
114
  z-index: 9999;
114
115
  font-weight: var(--weight-6);
@@ -165,7 +166,8 @@ creative-tree-row.show-edit .creative-row {
165
166
  .creative-row:hover .creative-content {
166
167
  text-decoration: underline;
167
168
  text-decoration-color: var(--color-link);
168
- text-decoration-thickness: 4px;
169
+ text-decoration-thickness: 2px;
170
+ text-underline-offset: 2px;
169
171
  cursor: pointer;
170
172
  }
171
173
 
@@ -307,20 +309,23 @@ creative-tree-row.show-edit .creative-row {
307
309
  #voice-comments-btn.voice-input-active {
308
310
  background-color: var(--color-brand);
309
311
  color: var(--surface-bg);
310
- border-radius: 6px;
312
+ border-radius: var(--radius-2);
311
313
  padding: 4px 8px;
312
314
  }
313
315
 
314
316
  .creative-toggle-btn {
315
317
  width: 16px;
316
318
  height: 16px;
317
- font-size: 14px;
318
319
  margin-right: 4px;
319
320
  margin-top: 4px;
320
321
  /* Align with text */
321
322
  visibility: hidden;
322
323
  /* Hidden by default on desktop */
323
324
  /* Total width is 20px (16 + 4) */
325
+ color: var(--text-secondary);
326
+ display: flex;
327
+ align-items: center;
328
+ justify-content: center;
324
329
  }
325
330
 
326
331
 
@@ -439,7 +444,7 @@ creative-tree-row:not([expanded]) .creative-toggle-btn {
439
444
  .creative-row.level-1:hover,
440
445
  .creative-row.level-2:hover,
441
446
  .creative-row.level-3:hover {
442
- background-color: var(--border-color);
447
+ background-color: var(--surface-hover);
443
448
  }
444
449
 
445
450
  .creative-progress {
@@ -474,7 +479,7 @@ creative-tree-row:not([expanded]) .creative-toggle-btn {
474
479
 
475
480
  .creative-origin-link:hover,
476
481
  .creative-origin-link:focus {
477
- background-color: var(--border-color);
482
+ background-color: var(--surface-hover);
478
483
  }
479
484
 
480
485
  .creative-origin-link-icon {
@@ -682,20 +687,24 @@ creative-tree-row:not([expanded]) .creative-toggle-btn {
682
687
  /* Archive toggle button */
683
688
  .archive-toggle-btn {
684
689
  background: none;
685
- border: none;
690
+ border: 1px solid var(--color-border);
691
+ border-radius: var(--radius-2);
686
692
  cursor: pointer;
687
- font-size: var(--text-2);
688
693
  padding: var(--space-1) var(--space-2);
689
- opacity: 0.5;
690
- transition: opacity 0.2s var(--ease-2);
694
+ color: var(--text-secondary);
695
+ display: inline-flex;
696
+ align-items: center;
697
+ justify-content: center;
698
+ transition: background 0.15s, color 0.15s;
691
699
  }
692
700
  .archive-toggle-btn:hover {
693
- opacity: 0.8;
701
+ background: var(--surface-input);
702
+ color: var(--text-primary);
694
703
  }
695
704
  .archive-toggle-btn.active {
696
- opacity: 1.0;
697
- background: var(--surface-input);
698
- border-radius: var(--radius-2);
705
+ background: var(--color-active);
706
+ color: var(--color-badge-text);
707
+ border-color: var(--color-active);
699
708
  }
700
709
 
701
710
  /* Archived creative row */
@@ -79,6 +79,40 @@ body.dark-mode {
79
79
  /* ============================================================================
80
80
  * BASE ELEMENT STYLES
81
81
  * ============================================================================ */
82
+ html {
83
+ scroll-behavior: smooth;
84
+ }
85
+
86
+ @media (prefers-reduced-motion: reduce) {
87
+ html { scroll-behavior: auto; }
88
+
89
+ /* Collapse decorative transitions to instant; state changes still
90
+ apply but without visible motion (hover bg, theme switch, etc.). */
91
+ *, *::before, *::after {
92
+ transition-duration: 0.01ms !important;
93
+ }
94
+
95
+ /* Disable decorative/non-essential animations entirely so that
96
+ elements styled with animation end up in their *final* keyframe
97
+ state (via forwards fill) rather than flickering.
98
+ Infinite animations (spinners, streaming dots) stop on their
99
+ current frame and become static — which is the correct reduced-
100
+ motion behaviour. */
101
+ *, *::before, *::after {
102
+ animation-duration: 0.01ms !important;
103
+ animation-iteration-count: 1 !important;
104
+ }
105
+
106
+ /* Keep timed-visibility elements (toasts, hints) fully visible
107
+ instead of letting the collapsed fade-out hide them instantly. */
108
+ .share-modal-message,
109
+ .review-hint,
110
+ .comment-copy-notice.visible {
111
+ animation: none !important;
112
+ opacity: 1 !important;
113
+ }
114
+ }
115
+
82
116
  body {
83
117
  background: var(--surface-bg);
84
118
  color: var(--text-primary);
@@ -96,6 +130,7 @@ nav {
96
130
 
97
131
  a {
98
132
  color: var(--color-link);
133
+ transition: color 0.15s;
99
134
  }
100
135
 
101
136
  main,
@@ -107,9 +142,27 @@ button,
107
142
  input[type="button"],
108
143
  input[type="submit"] {
109
144
  border: none;
110
- border-radius: 1px;
145
+ border-radius: var(--radius-2);
111
146
  padding: 2px 4px;
112
- transition: background 0.3s, color 0.3s;
147
+ transition: background 0.15s, color 0.15s, transform 0.1s;
148
+ }
149
+
150
+ /* --- Global active press feedback --- */
151
+ button:active:not(:disabled),
152
+ input[type="button"]:active:not(:disabled),
153
+ input[type="submit"]:active:not(:disabled),
154
+ .btn:active:not(:disabled) {
155
+ transform: scale(0.97);
156
+ }
157
+
158
+ /* --- Global focus-visible ring --- */
159
+ button:focus-visible,
160
+ input[type="button"]:focus-visible,
161
+ input[type="submit"]:focus-visible,
162
+ a:focus-visible,
163
+ .btn:focus-visible {
164
+ outline: 2px solid var(--color-active);
165
+ outline-offset: 2px;
113
166
  }
114
167
 
115
168
  /* ============================================================================
@@ -127,7 +180,7 @@ input[type="submit"] {
127
180
  font-weight: 500;
128
181
  line-height: 1.4;
129
182
  border: 1px solid var(--border-color);
130
- border-radius: var(--radius-2, 4px);
183
+ border-radius: var(--radius-2);
131
184
  background: var(--surface-btn);
132
185
  color: var(--text-on-btn);
133
186
  cursor: pointer;
@@ -194,6 +194,9 @@
194
194
  --color-code-bg: #f6f8fa; /* code block background */
195
195
  --color-code-text: #1f2328; /* code block text */
196
196
 
197
+ /* -- Surfaces (hover) -- */
198
+ --surface-hover: rgba(0, 0, 0, 0.06); /* hover background overlay */
199
+
197
200
  /* -- Borders & Dividers -- */
198
201
  --border-color: #e0e0e0; /* default borders */
199
202
  --border-drag-over: #e0e0e0; /* drag target highlight */
@@ -245,7 +248,7 @@ body.dark-mode {
245
248
  --text-input: #eaeaea;
246
249
 
247
250
  /* -- Interactive -- */
248
- --color-link: #185ABC;
251
+ --color-link: #6EA8FE;
249
252
  --color-brand: oklch(50% 0.4 145);
250
253
  --color-active: #6a9eff;
251
254
  --color-badge-bg: red;
@@ -255,6 +258,9 @@ body.dark-mode {
255
258
  --color-code-bg: #2d2d2d;
256
259
  --color-code-text: #e0e0e0;
257
260
 
261
+ /* -- Surfaces (hover) -- */
262
+ --surface-hover: rgba(255, 255, 255, 0.08);
263
+
258
264
  /* -- Borders & Dividers -- */
259
265
  --border-color: #333333;
260
266
  --border-drag-over: #383a40;
@@ -292,7 +298,7 @@ body.dark-mode {
292
298
  --text-on-badge: white;
293
299
  --text-input: #eaeaea;
294
300
 
295
- --color-link: #185ABC;
301
+ --color-link: #6EA8FE;
296
302
  --color-brand: oklch(50% 0.4 145);
297
303
  --color-active: #6a9eff;
298
304
  --color-badge-bg: red;
@@ -302,6 +308,8 @@ body.dark-mode {
302
308
  --color-code-bg: #2d2d2d;
303
309
  --color-code-text: #e0e0e0;
304
310
 
311
+ --surface-hover: rgba(255, 255, 255, 0.08);
312
+
305
313
  --border-color: #333333;
306
314
  --border-drag-over: #383a40;
307
315
  --border-drag-edge: #777777;
@@ -5,7 +5,7 @@
5
5
  background: var(--surface-section);
6
6
  border: 1px solid var(--border-color);
7
7
  box-shadow: var(--shadow-2);
8
- border-radius: 6px;
8
+ border-radius: var(--radius-2);
9
9
  padding: 0.35em;
10
10
  max-width: min(420px, 90vw);
11
11
  }
@@ -38,7 +38,7 @@
38
38
  .mention-item.active,
39
39
  .common-popup-item:hover,
40
40
  .common-popup-item.active {
41
- background: var(--border-drag-over);
41
+ background: var(--surface-hover);
42
42
  }
43
43
 
44
44
  .common-popup-item {