@domternal/theme 0.6.2 → 0.7.0

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.
@@ -12,8 +12,37 @@
12
12
  --dm-accent-surface: rgba(37, 99, 235, 0.1);
13
13
  --dm-focus-color: rgba(66, 133, 244, 0.3);
14
14
  --dm-selection: rgba(66, 133, 244, 0.2);
15
+ --dm-scrollbar-thumb: rgba(0, 0, 0, 0.18);
16
+ --dm-scrollbar-thumb-hover: rgba(0, 0, 0, 0.28);
17
+ --dm-z-handle: 25;
18
+ --dm-z-popover: 50;
19
+ --dm-block-handle-gutter: 3rem;
20
+ --dm-block-handle-left: -0.5rem;
21
+ --dm-block-inline-padding: 0.375rem;
22
+ --dm-block-children-indent: 1.5rem;
23
+ --dm-popover-shadow: 0 10px 25px rgba(0, 0, 0, 0.08), 0 4px 10px rgba(0, 0, 0, 0.04);
15
24
  --dm-code-surface: #f0f0f0;
16
25
  --dm-code-color: inherit;
26
+ --dm-block-bg-gray: #f1f1ef;
27
+ --dm-block-bg-brown: #f3eeee;
28
+ --dm-block-bg-orange: #f8ecdf;
29
+ --dm-block-bg-yellow: #faf3dd;
30
+ --dm-block-bg-green: #eef3ed;
31
+ --dm-block-bg-blue: #e9f3f7;
32
+ --dm-block-bg-purple: #f6f3f8;
33
+ --dm-block-bg-pink: #f9f2f5;
34
+ --dm-block-bg-red: #faecec;
35
+ --dm-block-text-gray: #787774;
36
+ --dm-block-text-brown: #976d57;
37
+ --dm-block-text-orange: #cc782f;
38
+ --dm-block-text-yellow: #c29343;
39
+ --dm-block-text-green: #548164;
40
+ --dm-block-text-blue: #487ca5;
41
+ --dm-block-text-purple: #8a67ab;
42
+ --dm-block-text-pink: #b35488;
43
+ --dm-block-text-red: #c4554d;
44
+ --dm-block-selected-halo: rgba(112, 207, 248, 0.25);
45
+ --dm-block-context-active-bg: rgba(55, 53, 47, 0.06);
17
46
  --dm-editor-bg: var(--dm-bg);
18
47
  --dm-editor-text: var(--dm-text);
19
48
  --dm-editor-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
@@ -58,6 +87,8 @@
58
87
  --dm-details-border: 1px solid var(--dm-border-color);
59
88
  --dm-details-bg: var(--dm-surface);
60
89
  --dm-details-summary-font-weight: 600;
90
+ --dm-task-checkbox-left: -1.15em;
91
+ --dm-task-checkbox-top: 0.45em;
61
92
  }
62
93
 
63
94
  .dm-toolbar {
@@ -77,6 +108,66 @@
77
108
  --dm-separator-margin: 0.375rem;
78
109
  }
79
110
 
111
+ :root {
112
+ --dm-toc-tick-h1-width: 18px;
113
+ --dm-toc-tick-h2-width: 12px;
114
+ --dm-toc-tick-h3-width: 8px;
115
+ --dm-toc-tick-h4-width: 6px;
116
+ --dm-toc-tick-h5-width: 5px;
117
+ --dm-toc-tick-h6-width: 4px;
118
+ --dm-toc-tick-height: 2px;
119
+ --dm-toc-tick-radius: 1px;
120
+ --dm-toc-tick-gap: 10px;
121
+ --dm-toc-tick-color: rgba(55, 53, 47, 0.4);
122
+ --dm-toc-tick-hover-color: rgba(55, 53, 47, 0.7);
123
+ --dm-toc-tick-active-color: rgba(55, 53, 47, 0.95);
124
+ --dm-toc-padding-block: 12px;
125
+ --dm-toc-padding-inline: 8px;
126
+ --dm-toc-right-offset: 24px;
127
+ --dm-toc-z-index: 10;
128
+ --dm-toc-editor-top: 1rem;
129
+ --dm-toc-page-offset: 8px;
130
+ --dm-toc-card-viewport-margin: 16px;
131
+ --dm-toc-card-bg: rgba(255, 255, 255, 0.98);
132
+ --dm-toc-card-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
133
+ --dm-toc-card-radius: 6px;
134
+ --dm-toc-card-border: 1px solid rgba(0, 0, 0, 0.06);
135
+ --dm-toc-card-min-width: 180px;
136
+ --dm-toc-card-max-width: 260px;
137
+ --dm-toc-card-padding-block: 6px;
138
+ --dm-toc-card-offset: 8px;
139
+ --dm-toc-card-transition: 180ms;
140
+ --dm-toc-row-padding-block: 4px;
141
+ --dm-toc-row-padding-inline-start: 12px;
142
+ --dm-toc-row-padding-inline-end: 16px;
143
+ --dm-toc-row-indent: 14px;
144
+ --dm-toc-row-color: rgba(55, 53, 47, 0.7);
145
+ --dm-toc-row-hover-bg: rgba(0, 0, 0, 0.04);
146
+ --dm-toc-row-active-color: rgba(55, 53, 47, 0.95);
147
+ --dm-toc-row-active-weight: 600;
148
+ --dm-toc-row-font-size: 13px;
149
+ --dm-toc-row-line-height: 1.4;
150
+ --dm-toc-block-bg: rgba(0, 0, 0, 0.02);
151
+ --dm-toc-block-border: 1px solid rgba(0, 0, 0, 0.08);
152
+ --dm-toc-block-radius: 6px;
153
+ --dm-toc-block-padding-block: 12px;
154
+ --dm-toc-block-padding-inline: 16px;
155
+ --dm-toc-block-margin-block: 1rem;
156
+ --dm-toc-block-empty-color: rgba(55, 53, 47, 0.5);
157
+ --dm-toc-block-empty-font-style: italic;
158
+ --dm-toc-block-link-color: rgba(55, 53, 47, 0.8);
159
+ --dm-toc-block-link-hover-color: rgba(55, 53, 47, 1);
160
+ --dm-toc-block-link-hover-bg: rgba(0, 0, 0, 0.04);
161
+ --dm-toc-block-link-active-color: rgba(55, 53, 47, 0.95);
162
+ --dm-toc-block-link-active-weight: 600;
163
+ --dm-toc-block-link-padding-block: 4px;
164
+ --dm-toc-block-link-padding-inline: 8px;
165
+ --dm-toc-block-link-indent: 16px;
166
+ --dm-toc-block-link-radius: 3px;
167
+ --dm-toc-block-link-font-size: 0.9375rem;
168
+ --dm-toc-block-link-line-height: 1.5;
169
+ }
170
+
80
171
  .dm-editor .ProseMirror {
81
172
  position: relative;
82
173
  word-wrap: break-word;
@@ -265,6 +356,9 @@ img.ProseMirror-separator {
265
356
  opacity: 1;
266
357
  }
267
358
  }
359
+ .dm-editor .ProseMirror :where(p, h1, h2, h3, h4, h5, h6) {
360
+ padding-inline: var(--dm-block-inline-padding);
361
+ }
268
362
  .dm-editor .ProseMirror h1,
269
363
  .dm-editor .ProseMirror h2,
270
364
  .dm-editor .ProseMirror h3,
@@ -314,20 +408,27 @@ img.ProseMirror-separator {
314
408
  border-left: var(--dm-blockquote-border);
315
409
  color: var(--dm-blockquote-color);
316
410
  margin: 0.5em 0;
317
- padding: 0.1em 0 0.1em 0.8em;
411
+ padding: 0.1em var(--dm-block-inline-padding) 0.1em 0.8em;
318
412
  }
319
413
  .dm-editor .ProseMirror ul,
320
414
  .dm-editor .ProseMirror ol {
321
415
  margin: 0.75em 0;
322
416
  padding-left: 1.5em;
417
+ padding-right: var(--dm-block-inline-padding);
323
418
  }
324
- .dm-editor .ProseMirror ul li,
419
+ .dm-editor .ProseMirror ul:not([data-type=taskList]) li,
325
420
  .dm-editor .ProseMirror ol li {
326
421
  margin: 0.25em 0;
327
422
  }
328
- .dm-editor .ProseMirror ul li > p,
423
+ .dm-editor .ProseMirror ul:not([data-type=taskList]) li > p,
329
424
  .dm-editor .ProseMirror ol li > p {
330
425
  margin: 0.1em 0;
426
+ padding-inline: 0.3em 0;
427
+ }
428
+ .dm-editor .ProseMirror ul:not([data-type=taskList]) li > :not(p:first-child):not(ul):not(ol),
429
+ .dm-editor .ProseMirror ol li > :not(p:first-child):not(ul):not(ol) {
430
+ margin-inline-start: var(--dm-block-children-indent, 1.5rem);
431
+ margin-top: 0.25rem;
331
432
  }
332
433
  .dm-editor .ProseMirror hr {
333
434
  border: none;
@@ -717,7 +818,7 @@ img.ProseMirror-separator {
717
818
  --dm-button-active-color: var(--dm-accent, #2563eb);
718
819
  --dm-button-disabled-opacity: 0.4;
719
820
  }
720
- .dm-bubble-menu .dm-toolbar-button svg {
821
+ .dm-bubble-menu .dm-toolbar-button svg:not(.dm-dropdown-caret) {
721
822
  width: 1rem;
722
823
  height: 1rem;
723
824
  }
@@ -752,21 +853,121 @@ img.ProseMirror-separator {
752
853
  position: absolute;
753
854
  display: flex;
754
855
  flex-direction: column;
755
- gap: var(--dm-toolbar-gap);
756
- padding: var(--dm-toolbar-padding);
757
- background: var(--dm-toolbar-bg);
758
- border: var(--dm-toolbar-border);
759
- border-radius: var(--dm-button-border-radius);
760
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
856
+ gap: 0.25rem;
857
+ min-width: 16rem;
858
+ max-height: 22rem;
859
+ overflow-y: auto;
860
+ padding: 0.375rem;
861
+ background: var(--dm-toolbar-bg, var(--dm-bg, #ffffff));
862
+ border: 1px solid var(--dm-border-color, #e5e7eb);
863
+ border-radius: var(--dm-toolbar-border-radius, 0.5rem);
864
+ box-shadow: var(--dm-popover-shadow, 0 10px 25px rgba(0, 0, 0, 0.08), 0 4px 10px rgba(0, 0, 0, 0.04));
761
865
  visibility: hidden;
762
866
  opacity: 0;
763
- transition: opacity 0.2s ease, visibility 0.2s;
764
- z-index: 50;
867
+ transition: opacity 0.15s ease, visibility 0.15s;
868
+ z-index: var(--dm-z-popover, 50);
869
+ scrollbar-width: thin;
870
+ scrollbar-color: var(--dm-scrollbar-thumb, rgba(0, 0, 0, 0.18)) transparent;
871
+ }
872
+ .dm-floating-menu::-webkit-scrollbar {
873
+ width: 6px;
874
+ }
875
+ .dm-floating-menu::-webkit-scrollbar-track {
876
+ background: transparent;
877
+ margin: 0.375rem 0;
878
+ }
879
+ .dm-floating-menu::-webkit-scrollbar-thumb {
880
+ background: var(--dm-scrollbar-thumb, rgba(0, 0, 0, 0.18));
881
+ border-radius: 3px;
882
+ transition: background-color 0.15s;
883
+ }
884
+ .dm-floating-menu::-webkit-scrollbar-thumb:hover {
885
+ background: var(--dm-scrollbar-thumb-hover, rgba(0, 0, 0, 0.28));
765
886
  }
766
887
  .dm-floating-menu[data-show] {
767
888
  visibility: visible;
768
889
  opacity: 1;
769
890
  }
891
+ .dm-floating-menu-group-label {
892
+ padding: 0.375rem 0.5rem 0.125rem;
893
+ font-size: 0.6875rem;
894
+ font-weight: 600;
895
+ letter-spacing: 0.04em;
896
+ text-transform: uppercase;
897
+ color: var(--dm-muted, #999);
898
+ user-select: none;
899
+ }
900
+ .dm-floating-menu-group {
901
+ display: flex;
902
+ flex-direction: column;
903
+ gap: 0.125rem;
904
+ }
905
+ .dm-floating-menu-group + .dm-floating-menu-group:not(:has(+ .dm-floating-menu-group-label)) {
906
+ margin-top: 0.25rem;
907
+ }
908
+ .dm-floating-menu-group-wrapper {
909
+ display: flex;
910
+ flex-direction: column;
911
+ }
912
+ .dm-floating-menu-item {
913
+ display: flex;
914
+ align-items: center;
915
+ gap: 0.5rem;
916
+ width: 100%;
917
+ padding: 0.3125rem 0.5rem;
918
+ border: none;
919
+ border-radius: var(--dm-button-border-radius, 0.375rem);
920
+ background: transparent;
921
+ color: var(--dm-button-color, inherit);
922
+ text-align: left;
923
+ font: inherit;
924
+ cursor: pointer;
925
+ transition: background-color 0.12s;
926
+ }
927
+ .dm-floating-menu-item:hover:not([aria-disabled=true]), .dm-floating-menu-item:focus:not([aria-disabled=true]) {
928
+ background: var(--dm-button-hover-bg, rgba(0, 0, 0, 0.04));
929
+ }
930
+ .dm-floating-menu-item:focus-visible {
931
+ outline: 2px solid var(--dm-accent, #2563eb);
932
+ outline-offset: -2px;
933
+ }
934
+ .dm-floating-menu-item[aria-disabled=true], .dm-floating-menu-item:disabled {
935
+ opacity: var(--dm-button-disabled-opacity, 0.45);
936
+ cursor: not-allowed;
937
+ }
938
+ .dm-floating-menu-item-icon {
939
+ display: inline-flex;
940
+ align-items: center;
941
+ justify-content: center;
942
+ width: 1.25rem;
943
+ height: 1.25rem;
944
+ flex-shrink: 0;
945
+ color: var(--dm-editor-text, inherit);
946
+ }
947
+ .dm-floating-menu-item-icon svg {
948
+ width: 1.125rem;
949
+ height: 1.125rem;
950
+ }
951
+ .dm-floating-menu-item-label {
952
+ flex: 1;
953
+ min-width: 0;
954
+ font-size: 0.875rem;
955
+ color: var(--dm-editor-text, inherit);
956
+ white-space: nowrap;
957
+ overflow: hidden;
958
+ text-overflow: ellipsis;
959
+ }
960
+ .dm-floating-menu-item-shortcut {
961
+ flex-shrink: 0;
962
+ padding: 0.0625rem 0.375rem;
963
+ font-family: var(--dm-code-font, ui-monospace, monospace);
964
+ font-size: 0.6875rem;
965
+ color: var(--dm-muted, #999);
966
+ background: var(--dm-surface, #f8f9fa);
967
+ border: 1px solid var(--dm-border-color, #e5e7eb);
968
+ border-radius: 0.25rem;
969
+ user-select: none;
970
+ }
770
971
 
771
972
  .dm-link-popover {
772
973
  position: fixed;
@@ -894,134 +1095,476 @@ img.ProseMirror-separator {
894
1095
  color: #3b82f6;
895
1096
  }
896
1097
  }
897
- .dm-editor .ProseMirror .is-empty::before {
898
- content: attr(data-placeholder);
899
- float: left;
900
- color: var(--dm-placeholder-color);
901
- pointer-events: none;
902
- height: 0;
1098
+ .dm-editor--has-block-handle {
1099
+ overflow: visible;
1100
+ }
1101
+ .dm-editor--has-block-handle .ProseMirror {
1102
+ padding-left: var(--dm-block-handle-gutter, 4rem);
903
1103
  }
904
1104
 
905
- .dm-editor .ProseMirror ul[data-type=taskList] {
906
- list-style: none;
907
- padding-left: 0;
1105
+ .dm-editor--has-block-handle .ProseMirror-selectednode,
1106
+ .dm-editor--has-block-handle .ProseMirror-selectednoderange {
1107
+ position: relative;
1108
+ outline: none;
908
1109
  }
909
- .dm-editor .ProseMirror ul[data-type=taskList] li[data-type=taskItem] {
910
- display: flex;
911
- align-items: flex-start;
912
- gap: 0.5em;
1110
+ .dm-editor--has-block-handle .ProseMirror-selectednode::before,
1111
+ .dm-editor--has-block-handle .ProseMirror-selectednoderange::before {
1112
+ content: "";
1113
+ position: absolute;
1114
+ inset: -0.25rem;
1115
+ background-color: var(--dm-block-selected-halo, rgba(112, 207, 248, 0.25));
1116
+ border-radius: 0.25rem;
1117
+ pointer-events: none;
1118
+ z-index: -1;
913
1119
  }
914
- .dm-editor .ProseMirror ul[data-type=taskList] li[data-type=taskItem] > label {
1120
+
1121
+ .dm-block-handle {
1122
+ position: absolute;
1123
+ left: var(--dm-block-handle-left, -0.5rem);
915
1124
  display: flex;
916
1125
  align-items: center;
917
- flex-shrink: 0;
918
- margin-top: 0.4em;
919
- user-select: none;
1126
+ gap: 2px;
1127
+ padding: 2px;
1128
+ opacity: 0;
1129
+ visibility: hidden;
1130
+ pointer-events: none;
1131
+ transition: opacity 0.12s ease, visibility 0.12s;
1132
+ z-index: var(--dm-z-handle, 25);
920
1133
  }
921
- .dm-editor .ProseMirror ul[data-type=taskList] li[data-type=taskItem] > label input[type=checkbox] {
922
- width: 1em;
923
- height: 1em;
924
- margin: 0;
1134
+ .dm-block-handle[data-show] {
1135
+ opacity: 1;
1136
+ visibility: visible;
1137
+ pointer-events: auto;
1138
+ }
1139
+ .dm-block-handle-btn {
1140
+ display: inline-flex;
1141
+ align-items: center;
1142
+ justify-content: center;
1143
+ width: 1.25rem;
1144
+ height: 1.5rem;
925
1145
  padding: 0;
1146
+ border: none;
1147
+ background: transparent;
1148
+ color: var(--dm-muted, #999);
926
1149
  cursor: pointer;
927
- accent-color: var(--dm-accent, #2563eb);
1150
+ border-radius: 3px;
1151
+ transition: background-color 0.1s, color 0.1s;
1152
+ user-select: none;
1153
+ -webkit-user-select: none;
1154
+ touch-action: none;
928
1155
  }
929
- .dm-editor .ProseMirror ul[data-type=taskList] li[data-type=taskItem] > div {
930
- flex: 1;
931
- min-width: 0;
1156
+ .dm-block-handle-btn:hover {
1157
+ background: var(--dm-button-hover-bg, rgba(0, 0, 0, 0.04));
1158
+ color: var(--dm-editor-text, inherit);
932
1159
  }
933
- .dm-editor .ProseMirror ul[data-type=taskList] li[data-type=taskItem] > div > p {
934
- margin: 0;
1160
+ .dm-block-handle-btn:focus-visible {
1161
+ outline: 2px solid var(--dm-accent, #2563eb);
1162
+ outline-offset: -1px;
935
1163
  }
936
- .dm-editor .ProseMirror ul[data-type=taskList] li[data-type=taskItem][data-checked=true] > div {
937
- text-decoration: line-through;
938
- opacity: 0.6;
1164
+ .dm-block-handle-btn svg {
1165
+ width: 1rem;
1166
+ height: 1rem;
1167
+ pointer-events: none;
1168
+ }
1169
+ .dm-block-handle-drag {
1170
+ cursor: grab;
1171
+ }
1172
+ .dm-block-handle-drag:active {
1173
+ cursor: grabbing;
1174
+ }
1175
+ .dm-block-handle-plus:hover {
1176
+ color: var(--dm-accent, #2563eb);
939
1177
  }
940
1178
 
941
- .dm-editor .ProseMirror .mention {
942
- display: inline;
943
- background: var(--dm-mention-bg);
944
- color: var(--dm-mention-color);
945
- border-radius: var(--dm-mention-border-radius);
946
- padding: 0.1em 0.3em;
947
- font-weight: 500;
948
- font-size: 0.95em;
949
- white-space: nowrap;
1179
+ .dm-block-drop-indicator {
1180
+ position: absolute;
1181
+ height: 2px;
1182
+ background: var(--dm-accent, #2563eb);
1183
+ border-radius: 1px;
1184
+ pointer-events: none;
1185
+ z-index: 5;
1186
+ display: none;
1187
+ box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.15);
1188
+ transform: translateY(3px);
1189
+ transition: left 80ms ease-out, width 80ms ease-out, top 80ms ease-out, transform 80ms ease-out;
950
1190
  }
951
- .dm-editor .ProseMirror .mention-suggestion {
952
- text-decoration: underline;
953
- text-decoration-color: var(--dm-accent, #2563eb);
954
- text-underline-offset: 2px;
1191
+ .dm-block-drop-indicator[data-show] {
1192
+ display: block;
1193
+ }
1194
+ .dm-block-drop-indicator[data-mode=nested] {
1195
+ height: 0;
1196
+ background: transparent;
1197
+ border-radius: 0;
1198
+ border-top: 2px dashed var(--dm-accent, #2563eb);
1199
+ box-shadow: none;
1200
+ transform: translateY(-2px);
955
1201
  }
956
1202
 
957
- .dm-mention-suggestion {
1203
+ .dm-slash-command-menu {
958
1204
  position: absolute;
959
- z-index: 100;
960
- min-width: 12rem;
961
- max-width: 20rem;
962
- padding: 0.25rem;
963
- background: var(--dm-surface, #f8f9fa);
964
- border: 1px solid var(--dm-border-color, #e0e0e0);
965
- border-radius: 0.25rem;
966
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
967
- animation: dm-fade-in 0.2s ease;
1205
+ display: flex;
1206
+ flex-direction: column;
1207
+ gap: 0.25rem;
1208
+ min-width: 17rem;
1209
+ max-height: 22rem;
1210
+ overflow-y: auto;
1211
+ padding: 0.375rem;
1212
+ background: var(--dm-toolbar-bg, var(--dm-bg, #ffffff));
1213
+ border: 1px solid var(--dm-border-color, #e5e7eb);
1214
+ border-radius: var(--dm-toolbar-border-radius, 0.5rem);
1215
+ box-shadow: var(--dm-popover-shadow, 0 10px 25px rgba(0, 0, 0, 0.08), 0 4px 10px rgba(0, 0, 0, 0.04));
1216
+ z-index: var(--dm-z-popover, 50);
1217
+ scrollbar-width: thin;
1218
+ scrollbar-color: var(--dm-scrollbar-thumb, rgba(0, 0, 0, 0.18)) transparent;
1219
+ }
1220
+ .dm-slash-command-menu::-webkit-scrollbar {
1221
+ width: 6px;
1222
+ }
1223
+ .dm-slash-command-menu::-webkit-scrollbar-track {
1224
+ background: transparent;
1225
+ margin: 0.375rem 0;
1226
+ }
1227
+ .dm-slash-command-menu::-webkit-scrollbar-thumb {
1228
+ background: var(--dm-scrollbar-thumb, rgba(0, 0, 0, 0.18));
1229
+ border-radius: 3px;
1230
+ transition: background-color 0.15s;
1231
+ }
1232
+ .dm-slash-command-menu::-webkit-scrollbar-thumb:hover {
1233
+ background: var(--dm-scrollbar-thumb-hover, rgba(0, 0, 0, 0.28));
968
1234
  }
969
1235
 
970
- .dm-mention-suggestion-item {
1236
+ .dm-slash-command-query {
1237
+ color: var(--dm-accent, #2563eb);
1238
+ }
1239
+
1240
+ .dm-slash-command-group-label {
1241
+ padding: 0.375rem 0.5rem 0.125rem;
1242
+ font-size: 0.6875rem;
1243
+ font-weight: 600;
1244
+ letter-spacing: 0.04em;
1245
+ text-transform: uppercase;
1246
+ color: var(--dm-muted, #999);
1247
+ user-select: none;
1248
+ }
1249
+
1250
+ .dm-slash-command-group {
1251
+ display: flex;
1252
+ flex-direction: column;
1253
+ gap: 0.125rem;
1254
+ }
1255
+
1256
+ .dm-slash-command-item {
971
1257
  display: flex;
972
1258
  align-items: center;
973
1259
  gap: 0.5rem;
974
1260
  width: 100%;
975
1261
  padding: 0.375rem 0.5rem;
976
1262
  border: none;
977
- border-radius: 0.25rem;
1263
+ border-radius: var(--dm-button-border-radius, 0.375rem);
978
1264
  background: transparent;
979
- color: var(--dm-text, #1a1a1a);
980
- cursor: pointer;
981
- font-size: 0.8125rem;
982
- line-height: 1.4;
1265
+ color: var(--dm-editor-text, inherit);
983
1266
  text-align: left;
1267
+ font: inherit;
1268
+ cursor: pointer;
984
1269
  transition: background-color 0.1s;
985
1270
  }
986
- .dm-mention-suggestion-item:hover, .dm-mention-suggestion-item--selected {
987
- background: var(--dm-hover, rgba(0, 0, 0, 0.06));
1271
+ .dm-slash-command-item[data-selected] {
1272
+ background: var(--dm-button-hover-bg, rgba(0, 0, 0, 0.04));
988
1273
  }
989
- .dm-mention-suggestion-item:focus-visible {
1274
+ .dm-slash-command-item:focus-visible {
990
1275
  outline: 2px solid var(--dm-accent, #2563eb);
991
- outline-offset: 1px;
1276
+ outline-offset: -2px;
992
1277
  }
993
1278
 
994
- .dm-mention-suggestion-label {
1279
+ .dm-slash-command-item-icon {
1280
+ display: inline-flex;
1281
+ align-items: center;
1282
+ justify-content: center;
1283
+ width: 1.25rem;
1284
+ height: 1.25rem;
1285
+ flex-shrink: 0;
1286
+ color: var(--dm-editor-text, inherit);
1287
+ }
1288
+ .dm-slash-command-item-icon svg {
1289
+ width: 1.125rem;
1290
+ height: 1.125rem;
1291
+ }
1292
+
1293
+ .dm-slash-command-item-text {
1294
+ display: flex;
1295
+ flex-direction: column;
1296
+ flex: 1;
1297
+ min-width: 0;
1298
+ line-height: 1.25;
1299
+ }
1300
+
1301
+ .dm-slash-command-item-label {
1302
+ font-size: 0.875rem;
1303
+ font-weight: 500;
1304
+ color: var(--dm-editor-text, inherit);
1305
+ white-space: nowrap;
995
1306
  overflow: hidden;
996
1307
  text-overflow: ellipsis;
997
- white-space: nowrap;
998
1308
  }
999
1309
 
1000
- .dm-mention-suggestion-empty {
1001
- padding: 0.5rem;
1002
- text-align: center;
1003
- color: var(--dm-text, #1a1a1a);
1004
- opacity: 0.5;
1005
- font-size: 0.8125rem;
1310
+ .dm-slash-command-item-description {
1311
+ font-size: 0.75rem;
1312
+ color: var(--dm-muted, #999);
1313
+ white-space: nowrap;
1314
+ overflow: hidden;
1315
+ text-overflow: ellipsis;
1006
1316
  }
1007
1317
 
1008
- .dm-editor .ProseMirror img[style*="float: left"], .dm-editor .ProseMirror img[style*="float: right"] {
1009
- max-width: 60%;
1318
+ .dm-slash-command-item-shortcut {
1319
+ flex-shrink: 0;
1320
+ padding: 0.0625rem 0.375rem;
1321
+ font-family: var(--dm-code-font, ui-monospace, monospace);
1322
+ font-size: 0.6875rem;
1323
+ color: var(--dm-muted, #999);
1324
+ background: var(--dm-surface, #f8f9fa);
1325
+ border: 1px solid var(--dm-border-color, #e5e7eb);
1326
+ border-radius: 0.25rem;
1327
+ user-select: none;
1010
1328
  }
1011
1329
 
1012
- .dm-editor .ProseMirror .dm-image-resizable {
1013
- position: relative;
1014
- display: inline-block;
1015
- max-width: 100%;
1016
- margin: 0.75em 0;
1017
- line-height: 0;
1018
- }
1019
- .dm-editor .ProseMirror .dm-image-resizable img {
1020
- display: block;
1021
- max-width: 100%;
1022
- height: auto;
1330
+ .dm-slash-command-empty {
1331
+ padding: 0.5rem 0.75rem;
1332
+ font-size: 0.8125rem;
1333
+ color: var(--dm-muted, #999);
1334
+ user-select: none;
1023
1335
  }
1024
- .dm-editor .ProseMirror .dm-image-resizable[data-float=left] {
1336
+
1337
+ .dm-block-context-menu {
1338
+ position: absolute;
1339
+ display: none;
1340
+ flex-direction: column;
1341
+ min-width: 12rem;
1342
+ max-height: 20rem;
1343
+ overflow-y: auto;
1344
+ overscroll-behavior: contain;
1345
+ padding: 0.25rem;
1346
+ background: var(--dm-toolbar-bg, var(--dm-bg, #ffffff));
1347
+ border: 1px solid var(--dm-border-color, #e5e7eb);
1348
+ border-radius: var(--dm-toolbar-border-radius, 0.5rem);
1349
+ box-shadow: var(--dm-popover-shadow, 0 10px 25px rgba(0, 0, 0, 0.08), 0 4px 10px rgba(0, 0, 0, 0.04));
1350
+ z-index: var(--dm-z-popover, 50);
1351
+ }
1352
+ .dm-block-context-menu[data-show] {
1353
+ display: flex;
1354
+ }
1355
+ .dm-block-context-menu {
1356
+ scrollbar-width: thin;
1357
+ scrollbar-color: var(--dm-scrollbar-thumb, rgba(0, 0, 0, 0.18)) transparent;
1358
+ }
1359
+ .dm-block-context-menu::-webkit-scrollbar {
1360
+ width: 6px;
1361
+ }
1362
+ .dm-block-context-menu::-webkit-scrollbar-track {
1363
+ background: transparent;
1364
+ }
1365
+ .dm-block-context-menu::-webkit-scrollbar-thumb {
1366
+ background: var(--dm-scrollbar-thumb, rgba(0, 0, 0, 0.18));
1367
+ border-radius: 3px;
1368
+ }
1369
+ .dm-block-context-menu::-webkit-scrollbar-thumb:hover {
1370
+ background: var(--dm-scrollbar-thumb-hover, rgba(0, 0, 0, 0.28));
1371
+ }
1372
+ .dm-block-context-menu-group {
1373
+ display: flex;
1374
+ flex-direction: column;
1375
+ gap: 1px;
1376
+ }
1377
+ .dm-block-context-menu-group-label {
1378
+ padding: 0.5rem 0.5rem 0.125rem;
1379
+ margin-top: 0.25rem;
1380
+ border-top: 1px solid var(--dm-border-color, #e5e7eb);
1381
+ font-size: 0.6875rem;
1382
+ font-weight: 600;
1383
+ letter-spacing: 0.04em;
1384
+ text-transform: uppercase;
1385
+ color: var(--dm-muted, #999);
1386
+ user-select: none;
1387
+ }
1388
+ .dm-block-context-menu-item {
1389
+ display: flex;
1390
+ align-items: center;
1391
+ gap: 0.5rem;
1392
+ width: 100%;
1393
+ padding: 0.3125rem 0.5rem;
1394
+ border: none;
1395
+ border-radius: var(--dm-button-border-radius, 0.375rem);
1396
+ background: transparent;
1397
+ color: var(--dm-editor-text, inherit);
1398
+ text-align: left;
1399
+ font: inherit;
1400
+ font-size: 0.875rem;
1401
+ cursor: pointer;
1402
+ transition: background-color 0.1s;
1403
+ }
1404
+ .dm-block-context-menu-item:hover, .dm-block-context-menu-item:focus-visible {
1405
+ background: var(--dm-button-hover-bg, rgba(0, 0, 0, 0.04));
1406
+ }
1407
+ .dm-block-context-menu-item:focus-visible {
1408
+ outline: 2px solid var(--dm-accent, #2563eb);
1409
+ outline-offset: -2px;
1410
+ }
1411
+ .dm-block-context-menu-item-icon {
1412
+ display: inline-flex;
1413
+ align-items: center;
1414
+ justify-content: center;
1415
+ width: 1.125rem;
1416
+ height: 1.125rem;
1417
+ flex-shrink: 0;
1418
+ color: var(--dm-muted, #999);
1419
+ }
1420
+ .dm-block-context-menu-item-icon svg {
1421
+ width: 1rem;
1422
+ height: 1rem;
1423
+ }
1424
+ .dm-block-context-menu-item-label {
1425
+ flex: 1;
1426
+ min-width: 0;
1427
+ white-space: nowrap;
1428
+ overflow: hidden;
1429
+ text-overflow: ellipsis;
1430
+ }
1431
+
1432
+ .ProseMirror .dm-block-context-active {
1433
+ background-color: var(--dm-block-context-active-bg, rgba(55, 53, 47, 0.06));
1434
+ border-radius: 0.25rem;
1435
+ box-shadow: 0 0 0 4px var(--dm-block-context-active-bg, rgba(55, 53, 47, 0.06));
1436
+ transition: background-color 0.12s ease, box-shadow 0.12s ease;
1437
+ }
1438
+
1439
+ .dm-editor .ProseMirror .is-empty::before {
1440
+ content: attr(data-placeholder);
1441
+ float: left;
1442
+ color: var(--dm-placeholder-color);
1443
+ pointer-events: none;
1444
+ height: 0;
1445
+ }
1446
+
1447
+ .dm-editor .ProseMirror ul[data-type=taskList] {
1448
+ list-style: none;
1449
+ padding-left: 1.5em;
1450
+ }
1451
+ .dm-editor .ProseMirror ul[data-type=taskList] li[data-type=taskItem] {
1452
+ position: relative;
1453
+ margin: 0.25em 0;
1454
+ }
1455
+ .dm-editor .ProseMirror ul[data-type=taskList] li[data-type=taskItem] > label {
1456
+ position: absolute;
1457
+ left: var(--dm-task-checkbox-left, -1.15em);
1458
+ top: var(--dm-task-checkbox-top, 0.45em);
1459
+ display: flex;
1460
+ align-items: center;
1461
+ user-select: none;
1462
+ }
1463
+ .dm-editor .ProseMirror ul[data-type=taskList] li[data-type=taskItem] > label input[type=checkbox] {
1464
+ width: 1em;
1465
+ height: 1em;
1466
+ margin: 0;
1467
+ padding: 0;
1468
+ cursor: pointer;
1469
+ accent-color: var(--dm-accent, #2563eb);
1470
+ }
1471
+ .dm-editor .ProseMirror ul[data-type=taskList] li[data-type=taskItem] > div > p {
1472
+ margin: 0.1em 0;
1473
+ padding-inline: 0.3em 0;
1474
+ }
1475
+ .dm-editor .ProseMirror ul[data-type=taskList] li[data-type=taskItem] > div > :not(p:first-child):not(ul):not(ol) {
1476
+ margin-inline-start: var(--dm-block-children-indent, 1.5rem);
1477
+ margin-top: 0.25rem;
1478
+ }
1479
+ .dm-editor .ProseMirror ul[data-type=taskList] li[data-type=taskItem][data-checked=true] > div > p:first-child {
1480
+ text-decoration: line-through;
1481
+ opacity: 0.6;
1482
+ }
1483
+
1484
+ .dm-editor .ProseMirror .mention {
1485
+ display: inline;
1486
+ background: var(--dm-mention-bg);
1487
+ color: var(--dm-mention-color);
1488
+ border-radius: var(--dm-mention-border-radius);
1489
+ padding: 0.1em 0.3em;
1490
+ font-weight: 500;
1491
+ font-size: 0.95em;
1492
+ white-space: nowrap;
1493
+ }
1494
+ .dm-editor .ProseMirror .mention-suggestion {
1495
+ text-decoration: underline;
1496
+ text-decoration-color: var(--dm-accent, #2563eb);
1497
+ text-underline-offset: 2px;
1498
+ }
1499
+
1500
+ .dm-mention-suggestion {
1501
+ position: absolute;
1502
+ z-index: 100;
1503
+ min-width: 12rem;
1504
+ max-width: 20rem;
1505
+ padding: 0.25rem;
1506
+ background: var(--dm-surface, #f8f9fa);
1507
+ border: 1px solid var(--dm-border-color, #e0e0e0);
1508
+ border-radius: 0.25rem;
1509
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
1510
+ animation: dm-fade-in 0.2s ease;
1511
+ }
1512
+
1513
+ .dm-mention-suggestion-item {
1514
+ display: flex;
1515
+ align-items: center;
1516
+ gap: 0.5rem;
1517
+ width: 100%;
1518
+ padding: 0.375rem 0.5rem;
1519
+ border: none;
1520
+ border-radius: 0.25rem;
1521
+ background: transparent;
1522
+ color: var(--dm-text, #1a1a1a);
1523
+ cursor: pointer;
1524
+ font-size: 0.8125rem;
1525
+ line-height: 1.4;
1526
+ text-align: left;
1527
+ transition: background-color 0.1s;
1528
+ }
1529
+ .dm-mention-suggestion-item:hover, .dm-mention-suggestion-item--selected {
1530
+ background: var(--dm-hover, rgba(0, 0, 0, 0.06));
1531
+ }
1532
+ .dm-mention-suggestion-item:focus-visible {
1533
+ outline: 2px solid var(--dm-accent, #2563eb);
1534
+ outline-offset: 1px;
1535
+ }
1536
+
1537
+ .dm-mention-suggestion-label {
1538
+ overflow: hidden;
1539
+ text-overflow: ellipsis;
1540
+ white-space: nowrap;
1541
+ }
1542
+
1543
+ .dm-mention-suggestion-empty {
1544
+ padding: 0.5rem;
1545
+ text-align: center;
1546
+ color: var(--dm-text, #1a1a1a);
1547
+ opacity: 0.5;
1548
+ font-size: 0.8125rem;
1549
+ }
1550
+
1551
+ .dm-editor .ProseMirror img[style*="float: left"], .dm-editor .ProseMirror img[style*="float: right"] {
1552
+ max-width: 60%;
1553
+ }
1554
+
1555
+ .dm-editor .ProseMirror .dm-image-resizable {
1556
+ position: relative;
1557
+ display: inline-block;
1558
+ max-width: 100%;
1559
+ margin: 0.75em 0;
1560
+ line-height: 0;
1561
+ }
1562
+ .dm-editor .ProseMirror .dm-image-resizable img {
1563
+ display: block;
1564
+ max-width: 100%;
1565
+ height: auto;
1566
+ }
1567
+ .dm-editor .ProseMirror .dm-image-resizable[data-float=left] {
1025
1568
  float: left;
1026
1569
  margin: 0 1em 1em 0;
1027
1570
  }
@@ -1783,6 +2326,693 @@ img.ProseMirror-separator {
1783
2326
  margin: 0.25rem 0;
1784
2327
  }
1785
2328
 
2329
+ .dm-editor .ProseMirror [data-bg-color=gray] {
2330
+ background-color: var(--dm-block-bg-gray);
2331
+ }
2332
+ .dm-editor .ProseMirror [data-bg-color=brown] {
2333
+ background-color: var(--dm-block-bg-brown);
2334
+ }
2335
+ .dm-editor .ProseMirror [data-bg-color=orange] {
2336
+ background-color: var(--dm-block-bg-orange);
2337
+ }
2338
+ .dm-editor .ProseMirror [data-bg-color=yellow] {
2339
+ background-color: var(--dm-block-bg-yellow);
2340
+ }
2341
+ .dm-editor .ProseMirror [data-bg-color=green] {
2342
+ background-color: var(--dm-block-bg-green);
2343
+ }
2344
+ .dm-editor .ProseMirror [data-bg-color=blue] {
2345
+ background-color: var(--dm-block-bg-blue);
2346
+ }
2347
+ .dm-editor .ProseMirror [data-bg-color=purple] {
2348
+ background-color: var(--dm-block-bg-purple);
2349
+ }
2350
+ .dm-editor .ProseMirror [data-bg-color=pink] {
2351
+ background-color: var(--dm-block-bg-pink);
2352
+ }
2353
+ .dm-editor .ProseMirror [data-bg-color=red] {
2354
+ background-color: var(--dm-block-bg-red);
2355
+ }
2356
+ .dm-editor .ProseMirror [data-bg-color] {
2357
+ padding-block: 0.125rem;
2358
+ border-radius: 0.25rem;
2359
+ }
2360
+ .dm-editor .ProseMirror [data-text-color=gray] {
2361
+ color: var(--dm-block-text-gray);
2362
+ }
2363
+ .dm-editor .ProseMirror [data-text-color=brown] {
2364
+ color: var(--dm-block-text-brown);
2365
+ }
2366
+ .dm-editor .ProseMirror [data-text-color=orange] {
2367
+ color: var(--dm-block-text-orange);
2368
+ }
2369
+ .dm-editor .ProseMirror [data-text-color=yellow] {
2370
+ color: var(--dm-block-text-yellow);
2371
+ }
2372
+ .dm-editor .ProseMirror [data-text-color=green] {
2373
+ color: var(--dm-block-text-green);
2374
+ }
2375
+ .dm-editor .ProseMirror [data-text-color=blue] {
2376
+ color: var(--dm-block-text-blue);
2377
+ }
2378
+ .dm-editor .ProseMirror [data-text-color=purple] {
2379
+ color: var(--dm-block-text-purple);
2380
+ }
2381
+ .dm-editor .ProseMirror [data-text-color=pink] {
2382
+ color: var(--dm-block-text-pink);
2383
+ }
2384
+ .dm-editor .ProseMirror [data-text-color=red] {
2385
+ color: var(--dm-block-text-red);
2386
+ }
2387
+
2388
+ .dm-block-color-row {
2389
+ display: flex;
2390
+ flex-wrap: wrap;
2391
+ align-items: center;
2392
+ gap: 0.25rem;
2393
+ padding: 0.25rem 0.5rem;
2394
+ }
2395
+
2396
+ .dm-block-color-row-label {
2397
+ position: absolute;
2398
+ width: 1px;
2399
+ height: 1px;
2400
+ padding: 0;
2401
+ overflow: hidden;
2402
+ clip: rect(0, 0, 0, 0);
2403
+ white-space: nowrap;
2404
+ border: 0;
2405
+ }
2406
+
2407
+ .dm-block-color-swatch {
2408
+ display: inline-flex;
2409
+ align-items: center;
2410
+ justify-content: center;
2411
+ width: 1.5rem;
2412
+ height: 1.5rem;
2413
+ padding: 0;
2414
+ border: 1px solid var(--dm-border-color, #e5e7eb);
2415
+ border-radius: 50%;
2416
+ background: transparent;
2417
+ cursor: pointer;
2418
+ transition: transform 0.08s ease, box-shadow 0.08s ease;
2419
+ }
2420
+ .dm-block-color-swatch:hover {
2421
+ transform: scale(1.1);
2422
+ box-shadow: 0 0 0 2px var(--dm-accent-surface, rgba(37, 99, 235, 0.15));
2423
+ }
2424
+ .dm-block-color-swatch:focus-visible, .dm-block-color-swatch[aria-pressed=true] {
2425
+ outline: 2px solid var(--dm-accent, #2563eb);
2426
+ outline-offset: 1px;
2427
+ }
2428
+ .dm-block-color-swatch::before {
2429
+ content: "";
2430
+ display: block;
2431
+ width: 1rem;
2432
+ height: 1rem;
2433
+ border-radius: 50%;
2434
+ }
2435
+ .dm-block-color-swatch[data-color=null]::before {
2436
+ background: linear-gradient(to top right, transparent calc(50% - 1px), var(--dm-muted, #999) calc(50% - 1px), var(--dm-muted, #999) calc(50% + 1px), transparent calc(50% + 1px));
2437
+ border: 1px solid var(--dm-border-color, #e5e7eb);
2438
+ }
2439
+
2440
+ .dm-block-color-swatch--bg[data-color=gray]::before {
2441
+ background: var(--dm-block-bg-gray);
2442
+ }
2443
+ .dm-block-color-swatch--bg[data-color=brown]::before {
2444
+ background: var(--dm-block-bg-brown);
2445
+ }
2446
+ .dm-block-color-swatch--bg[data-color=orange]::before {
2447
+ background: var(--dm-block-bg-orange);
2448
+ }
2449
+ .dm-block-color-swatch--bg[data-color=yellow]::before {
2450
+ background: var(--dm-block-bg-yellow);
2451
+ }
2452
+ .dm-block-color-swatch--bg[data-color=green]::before {
2453
+ background: var(--dm-block-bg-green);
2454
+ }
2455
+ .dm-block-color-swatch--bg[data-color=blue]::before {
2456
+ background: var(--dm-block-bg-blue);
2457
+ }
2458
+ .dm-block-color-swatch--bg[data-color=purple]::before {
2459
+ background: var(--dm-block-bg-purple);
2460
+ }
2461
+ .dm-block-color-swatch--bg[data-color=pink]::before {
2462
+ background: var(--dm-block-bg-pink);
2463
+ }
2464
+ .dm-block-color-swatch--bg[data-color=red]::before {
2465
+ background: var(--dm-block-bg-red);
2466
+ }
2467
+
2468
+ .dm-block-color-swatch--text::before {
2469
+ content: "A";
2470
+ display: flex;
2471
+ align-items: center;
2472
+ justify-content: center;
2473
+ font-family: var(--dm-editor-font-family, system-ui, sans-serif);
2474
+ font-size: 0.75rem;
2475
+ font-weight: 600;
2476
+ background: var(--dm-surface, #f8f9fa);
2477
+ color: var(--dm-editor-text, #333);
2478
+ }
2479
+ .dm-block-color-swatch--text[data-color=gray]::before {
2480
+ color: var(--dm-block-text-gray);
2481
+ }
2482
+ .dm-block-color-swatch--text[data-color=brown]::before {
2483
+ color: var(--dm-block-text-brown);
2484
+ }
2485
+ .dm-block-color-swatch--text[data-color=orange]::before {
2486
+ color: var(--dm-block-text-orange);
2487
+ }
2488
+ .dm-block-color-swatch--text[data-color=yellow]::before {
2489
+ color: var(--dm-block-text-yellow);
2490
+ }
2491
+ .dm-block-color-swatch--text[data-color=green]::before {
2492
+ color: var(--dm-block-text-green);
2493
+ }
2494
+ .dm-block-color-swatch--text[data-color=blue]::before {
2495
+ color: var(--dm-block-text-blue);
2496
+ }
2497
+ .dm-block-color-swatch--text[data-color=purple]::before {
2498
+ color: var(--dm-block-text-purple);
2499
+ }
2500
+ .dm-block-color-swatch--text[data-color=pink]::before {
2501
+ color: var(--dm-block-text-pink);
2502
+ }
2503
+ .dm-block-color-swatch--text[data-color=red]::before {
2504
+ color: var(--dm-block-text-red);
2505
+ }
2506
+
2507
+ .dm-editor .ProseMirror span[data-bg-color] {
2508
+ padding-block: 0;
2509
+ padding-inline: 0.2rem;
2510
+ border-radius: 0.25rem;
2511
+ }
2512
+
2513
+ .dm-ncp-trigger {
2514
+ position: relative;
2515
+ display: inline-flex;
2516
+ flex-direction: column;
2517
+ align-items: center;
2518
+ justify-content: center;
2519
+ gap: 0.125rem;
2520
+ }
2521
+
2522
+ .dm-ncp-trigger-glyph {
2523
+ font-family: var(--dm-editor-font-family, system-ui, sans-serif);
2524
+ font-size: 0.95rem;
2525
+ font-weight: 600;
2526
+ line-height: 1;
2527
+ transform: translateY(2px);
2528
+ }
2529
+
2530
+ .dm-ncp-trigger-underline {
2531
+ width: 0.875rem;
2532
+ height: 0.125rem;
2533
+ border-radius: 0.0625rem;
2534
+ background-color: transparent;
2535
+ }
2536
+
2537
+ .dm-notion-color-picker {
2538
+ position: absolute;
2539
+ z-index: 60;
2540
+ display: flex;
2541
+ flex-direction: column;
2542
+ gap: 0.25rem;
2543
+ padding: 0.25rem;
2544
+ background: var(--dm-surface-elevated, var(--dm-surface, #ffffff));
2545
+ color: var(--dm-editor-text, inherit);
2546
+ border: 1px solid var(--dm-border-color, #e5e7eb);
2547
+ border-radius: 0.5rem;
2548
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
2549
+ }
2550
+ .dm-notion-color-picker:not([data-show]) {
2551
+ display: none;
2552
+ }
2553
+
2554
+ .dm-ncp-section {
2555
+ display: flex;
2556
+ flex-direction: column;
2557
+ gap: 0.25rem;
2558
+ }
2559
+
2560
+ .dm-ncp-label {
2561
+ font-size: 0.75rem;
2562
+ line-height: 1;
2563
+ font-weight: 500;
2564
+ color: var(--dm-muted, #6b7280);
2565
+ padding: 0.125rem 0.25rem;
2566
+ }
2567
+
2568
+ .dm-ncp-grid {
2569
+ display: grid;
2570
+ grid-template-columns: repeat(5, 1.5rem);
2571
+ gap: 0.25rem;
2572
+ padding: 0.25rem 0.5rem;
2573
+ justify-content: start;
2574
+ }
2575
+
2576
+ .dm-ncp-swatch {
2577
+ position: relative;
2578
+ display: inline-flex;
2579
+ align-items: center;
2580
+ justify-content: center;
2581
+ width: 1.5rem;
2582
+ height: 1.5rem;
2583
+ padding: 0;
2584
+ border: 1px solid var(--dm-border-color, #e5e7eb);
2585
+ border-radius: 50%;
2586
+ background: transparent;
2587
+ color: var(--dm-editor-text, #333);
2588
+ font-family: var(--dm-editor-font-family, system-ui, sans-serif);
2589
+ font-size: 0.75rem;
2590
+ font-weight: 600;
2591
+ line-height: 1;
2592
+ cursor: pointer;
2593
+ transition: transform 0.08s ease, box-shadow 0.08s ease;
2594
+ }
2595
+ .dm-ncp-swatch:hover {
2596
+ transform: scale(1.1);
2597
+ box-shadow: 0 0 0 2px var(--dm-accent-surface, rgba(37, 99, 235, 0.15));
2598
+ }
2599
+ .dm-ncp-swatch:focus-visible, .dm-ncp-swatch.dm-ncp-active {
2600
+ outline: 2px solid var(--dm-accent, #2563eb);
2601
+ outline-offset: 1px;
2602
+ }
2603
+
2604
+ .dm-ncp-swatch--text {
2605
+ background-color: var(--dm-surface, #f8f9fa);
2606
+ }
2607
+ .dm-ncp-swatch--text::before {
2608
+ content: "A";
2609
+ }
2610
+ .dm-ncp-swatch--text[data-color=null]::after {
2611
+ content: "";
2612
+ position: absolute;
2613
+ inset: 0;
2614
+ border-radius: inherit;
2615
+ pointer-events: none;
2616
+ background-image: linear-gradient(to top right, transparent calc(50% - 1px), var(--dm-muted, #999) calc(50% - 1px), var(--dm-muted, #999) calc(50% + 1px), transparent calc(50% + 1px));
2617
+ }
2618
+ .dm-ncp-swatch--text[data-color=gray]::before {
2619
+ color: var(--dm-block-text-gray);
2620
+ }
2621
+ .dm-ncp-swatch--text[data-color=brown]::before {
2622
+ color: var(--dm-block-text-brown);
2623
+ }
2624
+ .dm-ncp-swatch--text[data-color=orange]::before {
2625
+ color: var(--dm-block-text-orange);
2626
+ }
2627
+ .dm-ncp-swatch--text[data-color=yellow]::before {
2628
+ color: var(--dm-block-text-yellow);
2629
+ }
2630
+ .dm-ncp-swatch--text[data-color=green]::before {
2631
+ color: var(--dm-block-text-green);
2632
+ }
2633
+ .dm-ncp-swatch--text[data-color=blue]::before {
2634
+ color: var(--dm-block-text-blue);
2635
+ }
2636
+ .dm-ncp-swatch--text[data-color=purple]::before {
2637
+ color: var(--dm-block-text-purple);
2638
+ }
2639
+ .dm-ncp-swatch--text[data-color=pink]::before {
2640
+ color: var(--dm-block-text-pink);
2641
+ }
2642
+ .dm-ncp-swatch--text[data-color=red]::before {
2643
+ color: var(--dm-block-text-red);
2644
+ }
2645
+
2646
+ .dm-ncp-swatch--bg[data-color=null]::after {
2647
+ content: "";
2648
+ position: absolute;
2649
+ inset: 0;
2650
+ border-radius: inherit;
2651
+ pointer-events: none;
2652
+ background-image: linear-gradient(to top right, transparent calc(50% - 1px), var(--dm-muted, #999) calc(50% - 1px), var(--dm-muted, #999) calc(50% + 1px), transparent calc(50% + 1px));
2653
+ }
2654
+ .dm-ncp-swatch--bg[data-color=gray] {
2655
+ background-color: var(--dm-block-bg-gray);
2656
+ }
2657
+ .dm-ncp-swatch--bg[data-color=brown] {
2658
+ background-color: var(--dm-block-bg-brown);
2659
+ }
2660
+ .dm-ncp-swatch--bg[data-color=orange] {
2661
+ background-color: var(--dm-block-bg-orange);
2662
+ }
2663
+ .dm-ncp-swatch--bg[data-color=yellow] {
2664
+ background-color: var(--dm-block-bg-yellow);
2665
+ }
2666
+ .dm-ncp-swatch--bg[data-color=green] {
2667
+ background-color: var(--dm-block-bg-green);
2668
+ }
2669
+ .dm-ncp-swatch--bg[data-color=blue] {
2670
+ background-color: var(--dm-block-bg-blue);
2671
+ }
2672
+ .dm-ncp-swatch--bg[data-color=purple] {
2673
+ background-color: var(--dm-block-bg-purple);
2674
+ }
2675
+ .dm-ncp-swatch--bg[data-color=pink] {
2676
+ background-color: var(--dm-block-bg-pink);
2677
+ }
2678
+ .dm-ncp-swatch--bg[data-color=red] {
2679
+ background-color: var(--dm-block-bg-red);
2680
+ }
2681
+
2682
+ @media (max-width: 480px) {
2683
+ .dm-notion-color-picker {
2684
+ max-width: calc(100vw - 1rem);
2685
+ }
2686
+ }
2687
+ .dm-toc-outline {
2688
+ display: flex;
2689
+ flex-direction: column;
2690
+ align-items: flex-end;
2691
+ gap: var(--dm-toc-tick-gap, 10px);
2692
+ padding: var(--dm-toc-padding-block, 12px) var(--dm-toc-padding-inline, 8px);
2693
+ z-index: var(--dm-toc-z-index, 10);
2694
+ background: transparent;
2695
+ border: 0;
2696
+ margin: 0;
2697
+ pointer-events: auto;
2698
+ }
2699
+ .dm-toc-outline[data-anchor=editor] {
2700
+ position: sticky;
2701
+ top: var(--dm-toc-mid-top, 50vh);
2702
+ }
2703
+ .dm-toc-outline[data-anchor=editor][data-bottom-visible=true] {
2704
+ top: var(--dm-toc-editor-top, 1rem);
2705
+ }
2706
+ .dm-toc-outline[data-anchor=viewport] {
2707
+ position: fixed;
2708
+ top: 50%;
2709
+ right: var(--dm-toc-right-offset, 24px);
2710
+ transform: translateY(-50%);
2711
+ }
2712
+ .dm-toc-outline[data-state=hidden], .dm-toc-outline[data-viewport=mobile] {
2713
+ display: none;
2714
+ }
2715
+
2716
+ .dm-toc-outline-shell[data-anchor=editor] {
2717
+ position: absolute;
2718
+ top: 25px;
2719
+ bottom: 25px;
2720
+ right: var(--dm-toc-page-offset, 8px);
2721
+ z-index: var(--dm-toc-z-index, 10);
2722
+ pointer-events: none;
2723
+ }
2724
+ .dm-toc-outline-shell[data-anchor=editor]:has(.dm-toc-outline[data-state=hidden]), .dm-toc-outline-shell[data-anchor=editor]:has(.dm-toc-outline[data-viewport=mobile]) {
2725
+ display: none;
2726
+ }
2727
+
2728
+ .dm-toc-outline-shell[data-anchor=editor][data-mode=center] {
2729
+ display: flex;
2730
+ align-items: center;
2731
+ justify-content: flex-end;
2732
+ }
2733
+
2734
+ .dm-toc-outline-tick {
2735
+ appearance: none;
2736
+ border: 0;
2737
+ margin: 0;
2738
+ padding: 0;
2739
+ font: inherit;
2740
+ cursor: pointer;
2741
+ background: var(--dm-toc-tick-color, rgba(55, 53, 47, 0.4));
2742
+ height: var(--dm-toc-tick-height, 2px);
2743
+ border-radius: var(--dm-toc-tick-radius, 1px);
2744
+ width: var(--dm-toc-tick-h3-width, 8px);
2745
+ transition: background-color 120ms ease-out, width 120ms ease-out;
2746
+ }
2747
+ .dm-toc-outline-tick:hover {
2748
+ background: var(--dm-toc-tick-hover-color, rgba(55, 53, 47, 0.7));
2749
+ }
2750
+ .dm-toc-outline-tick:focus-visible {
2751
+ background: var(--dm-toc-tick-hover-color, rgba(55, 53, 47, 0.7));
2752
+ outline: 2px solid var(--dm-accent, #2563eb);
2753
+ outline-offset: 3px;
2754
+ }
2755
+ .dm-toc-outline-tick.dm-toc--active, .dm-toc-outline-tick[aria-current=location] {
2756
+ background: var(--dm-toc-tick-active-color, rgba(55, 53, 47, 0.95));
2757
+ }
2758
+ .dm-toc-outline-tick[data-level="1"] {
2759
+ width: var(--dm-toc-tick-h1-width, 18px);
2760
+ }
2761
+ .dm-toc-outline-tick[data-level="2"] {
2762
+ width: var(--dm-toc-tick-h2-width, 12px);
2763
+ }
2764
+ .dm-toc-outline-tick[data-level="3"] {
2765
+ width: var(--dm-toc-tick-h3-width, 8px);
2766
+ }
2767
+ .dm-toc-outline-tick[data-level="4"] {
2768
+ width: var(--dm-toc-tick-h4-width, 6px);
2769
+ }
2770
+ .dm-toc-outline-tick[data-level="5"] {
2771
+ width: var(--dm-toc-tick-h5-width, 5px);
2772
+ }
2773
+ .dm-toc-outline-tick[data-level="6"] {
2774
+ width: var(--dm-toc-tick-h6-width, 4px);
2775
+ }
2776
+
2777
+ .dm-toc-outline[data-state=expanded] .dm-toc-outline-tick {
2778
+ opacity: 0;
2779
+ pointer-events: none;
2780
+ }
2781
+
2782
+ .dm-toc-outline-card {
2783
+ position: absolute;
2784
+ right: 0;
2785
+ top: 50%;
2786
+ transform: translateY(calc(-50% + var(--dm-toc-card-shift-y, 0px))) translateX(var(--dm-toc-card-offset, 8px));
2787
+ min-width: var(--dm-toc-card-min-width, 180px);
2788
+ max-width: var(--dm-toc-card-max-width, 260px);
2789
+ max-height: calc(100vh - 2 * var(--dm-toc-card-viewport-margin, 16px));
2790
+ overflow-y: auto;
2791
+ padding: var(--dm-toc-card-padding-block, 6px) 0;
2792
+ background: var(--dm-toc-card-bg, rgba(255, 255, 255, 0.98));
2793
+ border: var(--dm-toc-card-border, 1px solid rgba(0, 0, 0, 0.06));
2794
+ border-radius: var(--dm-toc-card-radius, 6px);
2795
+ box-shadow: var(--dm-toc-card-shadow, 0 8px 24px rgba(0, 0, 0, 0.08));
2796
+ display: flex;
2797
+ flex-direction: column;
2798
+ align-items: stretch;
2799
+ opacity: 0;
2800
+ pointer-events: none;
2801
+ transition: opacity var(--dm-toc-card-transition, 180ms) ease-out, transform var(--dm-toc-card-transition, 180ms) ease-out;
2802
+ }
2803
+
2804
+ .dm-toc-outline[data-state=expanded] .dm-toc-outline-card {
2805
+ opacity: 1;
2806
+ pointer-events: auto;
2807
+ transform: translateY(calc(-50% + var(--dm-toc-card-shift-y, 0px))) translateX(0);
2808
+ }
2809
+
2810
+ .dm-toc-outline-row {
2811
+ appearance: none;
2812
+ border: 0;
2813
+ margin: 0;
2814
+ background: transparent;
2815
+ cursor: pointer;
2816
+ text-align: start;
2817
+ font: inherit;
2818
+ font-size: var(--dm-toc-row-font-size, 13px);
2819
+ line-height: var(--dm-toc-row-line-height, 1.4);
2820
+ color: var(--dm-toc-row-color, rgba(55, 53, 47, 0.7));
2821
+ padding: var(--dm-toc-row-padding-block, 4px) var(--dm-toc-row-padding-inline-end, 16px) var(--dm-toc-row-padding-block, 4px) var(--dm-toc-row-padding-inline-start, 12px);
2822
+ white-space: nowrap;
2823
+ overflow: hidden;
2824
+ text-overflow: ellipsis;
2825
+ border-radius: 3px;
2826
+ transition: background-color 120ms ease-out, color 120ms ease-out;
2827
+ }
2828
+ .dm-toc-outline-row:hover {
2829
+ background: var(--dm-toc-row-hover-bg, rgba(0, 0, 0, 0.04));
2830
+ }
2831
+ .dm-toc-outline-row:focus-visible {
2832
+ outline: 2px solid var(--dm-accent, #2563eb);
2833
+ outline-offset: -2px;
2834
+ }
2835
+ .dm-toc-outline-row.dm-toc--active, .dm-toc-outline-row[aria-current=location] {
2836
+ color: var(--dm-toc-row-active-color, rgba(55, 53, 47, 0.95));
2837
+ font-weight: var(--dm-toc-row-active-weight, 600);
2838
+ }
2839
+ .dm-toc-outline-row[data-level="1"] {
2840
+ padding-inline-start: var(--dm-toc-row-padding-inline-start, 12px);
2841
+ }
2842
+ .dm-toc-outline-row[data-level="2"] {
2843
+ padding-inline-start: calc(var(--dm-toc-row-padding-inline-start, 12px) + var(--dm-toc-row-indent, 14px));
2844
+ }
2845
+ .dm-toc-outline-row[data-level="3"] {
2846
+ padding-inline-start: calc(var(--dm-toc-row-padding-inline-start, 12px) + var(--dm-toc-row-indent, 14px) * 2);
2847
+ }
2848
+ .dm-toc-outline-row[data-level="4"] {
2849
+ padding-inline-start: calc(var(--dm-toc-row-padding-inline-start, 12px) + var(--dm-toc-row-indent, 14px) * 3);
2850
+ }
2851
+ .dm-toc-outline-row[data-level="5"] {
2852
+ padding-inline-start: calc(var(--dm-toc-row-padding-inline-start, 12px) + var(--dm-toc-row-indent, 14px) * 4);
2853
+ }
2854
+ .dm-toc-outline-row[data-level="6"] {
2855
+ padding-inline-start: calc(var(--dm-toc-row-padding-inline-start, 12px) + var(--dm-toc-row-indent, 14px) * 5);
2856
+ }
2857
+
2858
+ .dm-toc-block {
2859
+ display: block;
2860
+ margin-block: var(--dm-toc-block-margin-block, 1rem);
2861
+ padding: var(--dm-toc-block-padding-block, 12px) var(--dm-toc-block-padding-inline, 16px);
2862
+ background: var(--dm-toc-block-bg, rgba(0, 0, 0, 0.02));
2863
+ border: var(--dm-toc-block-border, 1px solid rgba(0, 0, 0, 0.08));
2864
+ border-radius: var(--dm-toc-block-radius, 6px);
2865
+ }
2866
+ .dm-toc-block.ProseMirror-selectednode {
2867
+ outline: 2px solid var(--dm-accent, #2563eb);
2868
+ outline-offset: 2px;
2869
+ }
2870
+
2871
+ .dm-toc-block-empty {
2872
+ margin: 0;
2873
+ color: var(--dm-toc-block-empty-color, rgba(55, 53, 47, 0.5));
2874
+ font-style: var(--dm-toc-block-empty-font-style, italic);
2875
+ }
2876
+
2877
+ .dm-toc-block-list {
2878
+ list-style: none;
2879
+ padding: 0;
2880
+ margin: 0;
2881
+ }
2882
+
2883
+ .dm-toc-block-item {
2884
+ margin: 0;
2885
+ }
2886
+
2887
+ .dm-toc-block-link {
2888
+ appearance: none;
2889
+ border: 0;
2890
+ background: transparent;
2891
+ cursor: pointer;
2892
+ font: inherit;
2893
+ font-size: var(--dm-toc-block-link-font-size, 0.9375rem);
2894
+ line-height: var(--dm-toc-block-link-line-height, 1.5);
2895
+ color: var(--dm-toc-block-link-color, rgba(55, 53, 47, 0.8));
2896
+ text-align: start;
2897
+ width: 100%;
2898
+ display: block;
2899
+ padding: var(--dm-toc-block-link-padding-block, 4px) var(--dm-toc-block-link-padding-inline, 8px);
2900
+ border-radius: var(--dm-toc-block-link-radius, 3px);
2901
+ transition: background-color 120ms ease-out, color 120ms ease-out;
2902
+ }
2903
+ .dm-toc-block-link:hover {
2904
+ color: var(--dm-toc-block-link-hover-color, rgb(55, 53, 47));
2905
+ background: var(--dm-toc-block-link-hover-bg, rgba(0, 0, 0, 0.04));
2906
+ }
2907
+ .dm-toc-block-link:focus-visible {
2908
+ outline: 2px solid var(--dm-accent, #2563eb);
2909
+ outline-offset: -2px;
2910
+ }
2911
+ .dm-toc-block-link.dm-toc-block-link--active, .dm-toc-block-link[aria-current=location] {
2912
+ color: var(--dm-toc-block-link-active-color, rgba(55, 53, 47, 0.95));
2913
+ font-weight: var(--dm-toc-block-link-active-weight, 600);
2914
+ }
2915
+ .dm-toc-block-link[data-level="1"] {
2916
+ padding-inline-start: var(--dm-toc-block-link-padding-inline, 8px);
2917
+ }
2918
+ .dm-toc-block-link[data-level="2"] {
2919
+ padding-inline-start: calc(var(--dm-toc-block-link-padding-inline, 8px) + var(--dm-toc-block-link-indent, 16px));
2920
+ }
2921
+ .dm-toc-block-link[data-level="3"] {
2922
+ padding-inline-start: calc(var(--dm-toc-block-link-padding-inline, 8px) + var(--dm-toc-block-link-indent, 16px) * 2);
2923
+ }
2924
+ .dm-toc-block-link[data-level="4"] {
2925
+ padding-inline-start: calc(var(--dm-toc-block-link-padding-inline, 8px) + var(--dm-toc-block-link-indent, 16px) * 3);
2926
+ }
2927
+ .dm-toc-block-link[data-level="5"] {
2928
+ padding-inline-start: calc(var(--dm-toc-block-link-padding-inline, 8px) + var(--dm-toc-block-link-indent, 16px) * 4);
2929
+ }
2930
+ .dm-toc-block-link[data-level="6"] {
2931
+ padding-inline-start: calc(var(--dm-toc-block-link-padding-inline, 8px) + var(--dm-toc-block-link-indent, 16px) * 5);
2932
+ }
2933
+
2934
+ @media (prefers-reduced-motion: reduce) {
2935
+ .dm-toc-outline-tick,
2936
+ .dm-toc-outline-card,
2937
+ .dm-toc-outline-row,
2938
+ .dm-toc-block-link {
2939
+ transition: none;
2940
+ }
2941
+ .dm-toc-outline-card {
2942
+ transform: translateY(calc(-50% + var(--dm-toc-card-shift-y, 0px))) translateX(0);
2943
+ }
2944
+ }
2945
+ @media print {
2946
+ .dm-toc-outline {
2947
+ display: none;
2948
+ }
2949
+ .dm-toc-block {
2950
+ background: transparent;
2951
+ border-color: rgba(0, 0, 0, 0.2);
2952
+ }
2953
+ }
2954
+ @media (forced-colors: active) {
2955
+ .dm-toc-outline-tick {
2956
+ background: ButtonText;
2957
+ border: 1px solid ButtonText;
2958
+ }
2959
+ .dm-toc-outline-tick.dm-toc--active, .dm-toc-outline-tick[aria-current=location] {
2960
+ background: Highlight;
2961
+ border-color: Highlight;
2962
+ }
2963
+ .dm-toc-outline-card {
2964
+ border: 1px solid ButtonText;
2965
+ }
2966
+ .dm-toc-outline-row.dm-toc--active, .dm-toc-outline-row.dm-toc-block-link--active, .dm-toc-outline-row[aria-current=location],
2967
+ .dm-toc-block-link.dm-toc--active,
2968
+ .dm-toc-block-link.dm-toc-block-link--active,
2969
+ .dm-toc-block-link[aria-current=location] {
2970
+ color: Highlight;
2971
+ }
2972
+ .dm-toc-block {
2973
+ border: 1px solid ButtonText;
2974
+ }
2975
+ }
2976
+ .dm-editor.dm-notion-mode {
2977
+ border: none;
2978
+ border-radius: 0;
2979
+ box-shadow: none;
2980
+ background: transparent;
2981
+ max-width: 38rem;
2982
+ margin: 0 auto;
2983
+ --dm-editor-font-size: 1.0625rem;
2984
+ --dm-editor-line-height: 1.7;
2985
+ --dm-editor-padding: 0;
2986
+ --dm-block-handle-gutter: 0;
2987
+ --dm-block-handle-left: -3.5rem;
2988
+ --dm-task-checkbox-top: 0.45em;
2989
+ }
2990
+ .dm-editor.dm-notion-mode .ProseMirror {
2991
+ min-height: 60vh;
2992
+ outline: none;
2993
+ }
2994
+ .dm-editor.dm-notion-mode .ProseMirror h1 {
2995
+ font-size: 2.25rem;
2996
+ font-weight: 700;
2997
+ margin-top: 1.5rem;
2998
+ margin-bottom: 0.75rem;
2999
+ }
3000
+ .dm-editor.dm-notion-mode .ProseMirror h2 {
3001
+ font-size: 1.625rem;
3002
+ font-weight: 600;
3003
+ margin-top: 1.5rem;
3004
+ margin-bottom: 0.5rem;
3005
+ }
3006
+ .dm-editor.dm-notion-mode .ProseMirror h3 {
3007
+ font-size: 1.25rem;
3008
+ font-weight: 600;
3009
+ margin-top: 1.25rem;
3010
+ margin-bottom: 0.375rem;
3011
+ }
3012
+ .dm-editor.dm-notion-mode .ProseMirror p {
3013
+ margin: 0.25rem 0;
3014
+ }
3015
+
1786
3016
  .dm-theme-light,
1787
3017
  .dm-theme-light .dm-editor,
1788
3018
  .dm-theme-light .dm-toolbar,
@@ -1819,10 +3049,13 @@ img.ProseMirror-separator {
1819
3049
  .dm-theme-dark .dm-editor,
1820
3050
  .dm-theme-dark .dm-toolbar,
1821
3051
  .dm-theme-dark .dm-bubble-menu,
3052
+ .dm-theme-dark .dm-floating-menu,
1822
3053
  .dm-theme-dark .dm-emoji-picker,
1823
3054
  .dm-theme-dark .dm-emoji-suggestion,
1824
3055
  .dm-theme-dark .dm-mention-suggestion,
1825
- .dm-theme-dark .dm-table-controls-dropdown {
3056
+ .dm-theme-dark .dm-table-controls-dropdown,
3057
+ .dm-theme-dark .dm-slash-command-menu,
3058
+ .dm-theme-dark .dm-block-context-menu {
1826
3059
  --dm-color-scheme: dark;
1827
3060
  --dm-bg: #1e1e1e;
1828
3061
  --dm-text: #e0e0e0;
@@ -1839,8 +3072,12 @@ img.ProseMirror-separator {
1839
3072
  --dm-code-surface: #2d2d2d;
1840
3073
  --dm-code-color: inherit;
1841
3074
  --dm-highlight-bg: rgba(255, 243, 205, 0.2);
3075
+ --dm-scrollbar-thumb: rgba(255, 255, 255, 0.18);
3076
+ --dm-scrollbar-thumb-hover: rgba(255, 255, 255, 0.32);
3077
+ --dm-popover-shadow: 0 10px 25px rgba(0, 0, 0, 0.4), 0 4px 10px rgba(0, 0, 0, 0.25);
1842
3078
  --dm-blockquote-border: 3px solid #555555;
1843
3079
  --dm-blockquote-color: #a0a0a0;
3080
+ --dm-block-context-active-bg: rgba(255, 255, 255, 0.05);
1844
3081
  --dm-syntax-keyword: #ff7b72;
1845
3082
  --dm-syntax-entity: #d2a8ff;
1846
3083
  --dm-syntax-constant: #79c0ff;
@@ -1852,6 +3089,25 @@ img.ProseMirror-separator {
1852
3089
  --dm-syntax-addition-bg: #033a16;
1853
3090
  --dm-syntax-deletion: #ffdcd7;
1854
3091
  --dm-syntax-deletion-bg: #67060c;
3092
+ --dm-block-bg-gray: #2f2f2f;
3093
+ --dm-block-bg-brown: #4a3228;
3094
+ --dm-block-bg-orange: #5c3b1e;
3095
+ --dm-block-bg-yellow: #564328;
3096
+ --dm-block-bg-green: #243d30;
3097
+ --dm-block-bg-blue: #143a4e;
3098
+ --dm-block-bg-purple: #3c2d49;
3099
+ --dm-block-bg-pink: #4e2c3c;
3100
+ --dm-block-bg-red: #5c1e1e;
3101
+ --dm-block-text-gray: #9b9a97;
3102
+ --dm-block-text-brown: #ba856f;
3103
+ --dm-block-text-orange: #d68a52;
3104
+ --dm-block-text-yellow: #ca9849;
3105
+ --dm-block-text-green: #6db285;
3106
+ --dm-block-text-blue: #7a9bd6;
3107
+ --dm-block-text-purple: #a877d8;
3108
+ --dm-block-text-pink: #dc6da4;
3109
+ --dm-block-text-red: #df5452;
3110
+ --dm-block-selected-halo: rgba(112, 207, 248, 0.35);
1855
3111
  }
1856
3112
 
1857
3113
  @media (prefers-color-scheme: dark) {
@@ -1859,10 +3115,13 @@ img.ProseMirror-separator {
1859
3115
  .dm-theme-auto .dm-editor,
1860
3116
  .dm-theme-auto .dm-toolbar,
1861
3117
  .dm-theme-auto .dm-bubble-menu,
3118
+ .dm-theme-auto .dm-floating-menu,
1862
3119
  .dm-theme-auto .dm-emoji-picker,
1863
3120
  .dm-theme-auto .dm-emoji-suggestion,
1864
3121
  .dm-theme-auto .dm-mention-suggestion,
1865
- .dm-theme-auto .dm-table-controls-dropdown {
3122
+ .dm-theme-auto .dm-table-controls-dropdown,
3123
+ .dm-theme-auto .dm-slash-command-menu,
3124
+ .dm-theme-auto .dm-block-context-menu {
1866
3125
  --dm-color-scheme: dark;
1867
3126
  --dm-bg: #1e1e1e;
1868
3127
  --dm-text: #e0e0e0;
@@ -1879,8 +3138,12 @@ img.ProseMirror-separator {
1879
3138
  --dm-code-surface: #2d2d2d;
1880
3139
  --dm-code-color: inherit;
1881
3140
  --dm-highlight-bg: rgba(255, 243, 205, 0.2);
3141
+ --dm-scrollbar-thumb: rgba(255, 255, 255, 0.18);
3142
+ --dm-scrollbar-thumb-hover: rgba(255, 255, 255, 0.32);
3143
+ --dm-popover-shadow: 0 10px 25px rgba(0, 0, 0, 0.4), 0 4px 10px rgba(0, 0, 0, 0.25);
1882
3144
  --dm-blockquote-border: 3px solid #555555;
1883
3145
  --dm-blockquote-color: #a0a0a0;
3146
+ --dm-block-context-active-bg: rgba(255, 255, 255, 0.05);
1884
3147
  --dm-syntax-keyword: #ff7b72;
1885
3148
  --dm-syntax-entity: #d2a8ff;
1886
3149
  --dm-syntax-constant: #79c0ff;
@@ -1892,6 +3155,75 @@ img.ProseMirror-separator {
1892
3155
  --dm-syntax-addition-bg: #033a16;
1893
3156
  --dm-syntax-deletion: #ffdcd7;
1894
3157
  --dm-syntax-deletion-bg: #67060c;
3158
+ --dm-block-bg-gray: #2f2f2f;
3159
+ --dm-block-bg-brown: #4a3228;
3160
+ --dm-block-bg-orange: #5c3b1e;
3161
+ --dm-block-bg-yellow: #564328;
3162
+ --dm-block-bg-green: #243d30;
3163
+ --dm-block-bg-blue: #143a4e;
3164
+ --dm-block-bg-purple: #3c2d49;
3165
+ --dm-block-bg-pink: #4e2c3c;
3166
+ --dm-block-bg-red: #5c1e1e;
3167
+ --dm-block-text-gray: #9b9a97;
3168
+ --dm-block-text-brown: #ba856f;
3169
+ --dm-block-text-orange: #d68a52;
3170
+ --dm-block-text-yellow: #ca9849;
3171
+ --dm-block-text-green: #6db285;
3172
+ --dm-block-text-blue: #7a9bd6;
3173
+ --dm-block-text-purple: #a877d8;
3174
+ --dm-block-text-pink: #dc6da4;
3175
+ --dm-block-text-red: #df5452;
3176
+ --dm-block-selected-halo: rgba(112, 207, 248, 0.35);
3177
+ }
3178
+ }
3179
+ .dm-theme-dark .dm-toc-outline,
3180
+ .dm-theme-dark.dm-toc-outline {
3181
+ --dm-toc-tick-color: rgba(255, 255, 255, 0.3);
3182
+ --dm-toc-tick-hover-color: rgba(255, 255, 255, 0.6);
3183
+ --dm-toc-tick-active-color: rgba(255, 255, 255, 0.95);
3184
+ --dm-toc-card-bg: rgba(45, 50, 56, 0.98);
3185
+ --dm-toc-card-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
3186
+ --dm-toc-card-border: 1px solid rgba(255, 255, 255, 0.08);
3187
+ --dm-toc-row-color: rgba(255, 255, 255, 0.7);
3188
+ --dm-toc-row-hover-bg: rgba(255, 255, 255, 0.06);
3189
+ --dm-toc-row-active-color: rgba(255, 255, 255, 0.95);
3190
+ }
3191
+
3192
+ .dm-theme-dark .dm-toc-block,
3193
+ .dm-theme-dark.dm-toc-block {
3194
+ --dm-toc-block-bg: rgba(255, 255, 255, 0.04);
3195
+ --dm-toc-block-border: 1px solid rgba(255, 255, 255, 0.08);
3196
+ --dm-toc-block-empty-color: rgba(255, 255, 255, 0.4);
3197
+ --dm-toc-block-link-color: rgba(255, 255, 255, 0.7);
3198
+ --dm-toc-block-link-hover-color: rgba(255, 255, 255, 0.95);
3199
+ --dm-toc-block-link-hover-bg: rgba(255, 255, 255, 0.06);
3200
+ --dm-toc-block-link-active-color: rgba(255, 255, 255, 0.95);
3201
+ }
3202
+
3203
+ @media (prefers-color-scheme: dark) {
3204
+ .dm-theme-auto .dm-toc-block,
3205
+ .dm-theme-auto.dm-toc-block {
3206
+ --dm-toc-block-bg: rgba(255, 255, 255, 0.04);
3207
+ --dm-toc-block-border: 1px solid rgba(255, 255, 255, 0.08);
3208
+ --dm-toc-block-empty-color: rgba(255, 255, 255, 0.4);
3209
+ --dm-toc-block-link-color: rgba(255, 255, 255, 0.7);
3210
+ --dm-toc-block-link-hover-color: rgba(255, 255, 255, 0.95);
3211
+ --dm-toc-block-link-hover-bg: rgba(255, 255, 255, 0.06);
3212
+ --dm-toc-block-link-active-color: rgba(255, 255, 255, 0.95);
3213
+ }
3214
+ }
3215
+ @media (prefers-color-scheme: dark) {
3216
+ .dm-theme-auto .dm-toc-outline,
3217
+ .dm-theme-auto.dm-toc-outline {
3218
+ --dm-toc-tick-color: rgba(255, 255, 255, 0.3);
3219
+ --dm-toc-tick-hover-color: rgba(255, 255, 255, 0.6);
3220
+ --dm-toc-tick-active-color: rgba(255, 255, 255, 0.95);
3221
+ --dm-toc-card-bg: rgba(45, 50, 56, 0.98);
3222
+ --dm-toc-card-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
3223
+ --dm-toc-card-border: 1px solid rgba(255, 255, 255, 0.08);
3224
+ --dm-toc-row-color: rgba(255, 255, 255, 0.7);
3225
+ --dm-toc-row-hover-bg: rgba(255, 255, 255, 0.06);
3226
+ --dm-toc-row-active-color: rgba(255, 255, 255, 0.95);
1895
3227
  }
1896
3228
  }
1897
3229
  @media (prefers-reduced-motion: reduce) {
@@ -1926,7 +3258,13 @@ img.ProseMirror-separator {
1926
3258
  .dm-table-align-item,
1927
3259
  .dm-image-popover-btn,
1928
3260
  .dm-link-popover-btn,
3261
+ .dm-block-handle,
3262
+ .dm-block-handle-btn,
3263
+ .dm-block-color-swatch,
3264
+ .dm-slash-command-item,
3265
+ .dm-block-context-menu-item,
1929
3266
  .dm-editor .ProseMirror div[data-type=details] > button[type=button]::before {
1930
3267
  transition: none;
3268
+ transform: none;
1931
3269
  }
1932
3270
  }