@bendyline/docblocks-react 2.7.1 → 2.7.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.
- package/README.md +1 -1
- package/THIRD_PARTY_NOTICES.txt +98 -48
- package/dist/{ExportDialog-IMBVGRYG.js → ExportDialog-JRVZCG3J.js} +2 -2
- package/dist/{ExportToolbarControls-MUM6HM3K.js → ExportToolbarControls-2FEIHNMW.js} +15 -7
- package/dist/KeyboardShortcutsDialog-NOD4P25G.js +145 -0
- package/dist/{PresentationMaker-W2JIBHRN.js → PresentationMaker-ITNP5SDO.js} +1 -1
- package/dist/{Settings-DuXk6baH.d.ts → Settings-RDYvDDI0.d.ts} +13 -11
- package/dist/{SpeechToolbarControl-OSQS7NVY.js → SpeechToolbarControl-CLU7RB2G.js} +1 -1
- package/dist/{TextFromNarration-XYRAB6O2.js → TextFromNarration-NITJQ4IB.js} +1 -1
- package/dist/{WorkspaceSearchPanel-BKZJRPMY.js → WorkspaceSearchPanel-J6BKEZQJ.js} +1 -1
- package/dist/{chunk-UG4G7PJ4.js → chunk-5O5YTOXG.js} +1 -1
- package/dist/{chunk-VO2JYYQZ.js → chunk-6JJOGV6M.js} +5 -13
- package/dist/{chunk-X437UAF7.js → chunk-6MSHXQNB.js} +7 -2
- package/dist/{chunk-W55E6TE2.js → chunk-BLUEZG7T.js} +27 -22
- package/dist/chunk-DICE7VBJ.js +77 -0
- package/dist/{chunk-BCQZTWE5.js → chunk-HRWEGPTY.js} +18 -4
- package/dist/chunk-K7XJDJUJ.js +126 -0
- package/dist/{chunk-EPOLZNFD.js → chunk-SSB43524.js} +164 -69
- package/dist/{chunk-G4MFB3IO.js → chunk-VG434562.js} +2 -70
- package/dist/{chunk-BD54Z5XP.js → chunk-Y5OE3HJC.js} +4 -3
- package/dist/editor.js +6 -4
- package/dist/export/index.d.ts +17 -6
- package/dist/export/index.js +4 -4
- package/dist/index.d.ts +24 -6
- package/dist/index.js +395 -196
- package/dist/run-export-CS3HRNAZ.js +13 -0
- package/dist/settings/index.d.ts +1 -1
- package/dist/settings/index.js +1 -1
- package/package.json +9 -8
- package/src/styles/docblocks.css +465 -266
- package/dist/chunk-EA4BO6E4.js +0 -73
- package/dist/run-export-47X5FTYZ.js +0 -11
package/src/styles/docblocks.css
CHANGED
|
@@ -4,15 +4,19 @@
|
|
|
4
4
|
|
|
5
5
|
/* ── Theme Tokens ────────────────────────────────────────────── */
|
|
6
6
|
|
|
7
|
-
/* DocBlocks
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
`--db-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
/* DocBlocks palette — paper, ink, and rust.
|
|
8
|
+
The page is the one white sheet. Every chrome pane around it (sidebar,
|
|
9
|
+
toolbar, status bar) shares the cream `--db-bg-subtle`, so nothing but
|
|
10
|
+
the document competes for attention. Text is ink. The default accent
|
|
11
|
+
palette, Rust, paints primary buttons, active tabs and toggles in rust,
|
|
12
|
+
and a selected row is a quiet rust tint marked by a 2px
|
|
13
|
+
`--db-selected-rule` instead of a filled slab. The other accent palettes
|
|
14
|
+
(Green, Blue, …) follow the same model in their own hues. Dark mode
|
|
15
|
+
mirrors it: espresso panes, light ink, a lighter rust.
|
|
16
|
+
Derived shades (`--db-accent-soft-*`, `--db-accent-tint-strong`,
|
|
17
|
+
`--db-accent-deep`) are defined alongside so every place that needs a
|
|
18
|
+
tinted background or a readable-on-tint text color pulls from the same
|
|
19
|
+
source of truth. */
|
|
16
20
|
/* The palette binds on the document root as well as on the shell. Squisq
|
|
17
21
|
mounts its menus, dialogs and flyouts in PORTALS on <body>, outside the
|
|
18
22
|
shell — without a root binding they cannot see --db-*, which is why the
|
|
@@ -20,44 +24,59 @@
|
|
|
20
24
|
follows whichever appearance the shell in the page resolved to. */
|
|
21
25
|
:root,
|
|
22
26
|
.db-shell {
|
|
23
|
-
/* Chrome typeface
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
/* Chrome typeface: the bundled `DocBlocks Fixed UI` face, which is Hanken
|
|
28
|
+
Grotesk — the sans docblocks.com is set in — so the app and the site
|
|
29
|
+
read as one product and the chrome renders identically on every OS.
|
|
30
|
+
Settings > Appearance > Interface font > System swaps it for the
|
|
31
|
+
platform's own face (the block below). */
|
|
27
32
|
--db-ui-font:
|
|
28
|
-
system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
|
|
29
|
-
sans-serif;
|
|
30
|
-
|
|
33
|
+
'DocBlocks Fixed UI', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
|
|
34
|
+
'Helvetica Neue', Arial, sans-serif;
|
|
35
|
+
/* Metadata face: counts, timestamps, version strings, section labels. A
|
|
36
|
+
small mono sets what you read apart from what you act on. */
|
|
37
|
+
--db-meta-font: 'JetBrains Mono', ui-monospace, SFMono-Regular, Consolas, monospace;
|
|
38
|
+
/* Squisq's chrome reads `--squisq-ux-font` with a `system-ui` fallback, the
|
|
39
|
+
same bridge shape as the `--squisq-*` color tokens further down. Binding
|
|
40
|
+
it carries the chrome face into the editor toolbar, menus and dialogs.
|
|
41
|
+
DOCUMENT typography is never touched — a theme's fonts are content the
|
|
42
|
+
author chose, not chrome. */
|
|
43
|
+
--squisq-ux-font: var(--db-ui-font);
|
|
44
|
+
--db-bg: #fffdf9;
|
|
31
45
|
--db-bg-subtle: #f3eede;
|
|
32
46
|
--db-bg-hover: #e9e2cb;
|
|
33
|
-
--db-bg-selected: #
|
|
34
|
-
--db-bg-selected-hover: #
|
|
35
|
-
--db-border: #
|
|
36
|
-
--db-border-strong: #
|
|
37
|
-
--db-text: #
|
|
47
|
+
--db-bg-selected: #e5ccb6;
|
|
48
|
+
--db-bg-selected-hover: #e0c0a8;
|
|
49
|
+
--db-border: #ddd5c3;
|
|
50
|
+
--db-border-strong: #c7bca3;
|
|
51
|
+
--db-text: #231f18;
|
|
38
52
|
--db-text-secondary: #3d3528;
|
|
39
|
-
--db-text-muted: #
|
|
53
|
+
--db-text-muted: #6b6252;
|
|
40
54
|
--db-text-placeholder: #766c54;
|
|
41
|
-
--db-accent: #
|
|
42
|
-
--db-accent-hover: #
|
|
43
|
-
--db-text-on-accent: #
|
|
44
|
-
--db-text-on-selected: #
|
|
45
|
-
/*
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
--db-
|
|
52
|
-
--db-accent-soft-
|
|
53
|
-
--db-accent-soft-
|
|
54
|
-
--db-accent-soft-
|
|
55
|
-
--db-accent-
|
|
56
|
-
--db-accent-
|
|
57
|
-
--db-
|
|
55
|
+
--db-accent: #a0461f;
|
|
56
|
+
--db-accent-hover: #8a3a1a;
|
|
57
|
+
--db-text-on-accent: #fffdf9;
|
|
58
|
+
--db-text-on-selected: #231f18;
|
|
59
|
+
/* The 2px mark down the leading edge of a selected row. Selection is a
|
|
60
|
+
tint, so this is what carries the state at a glance. */
|
|
61
|
+
--db-selected-rule: #a0461f;
|
|
62
|
+
/* Keyboard focus ring, in ink. The accent is rust and paints buttons and
|
|
63
|
+
the selected-row rule, so a rust ring would vanish against them; ink
|
|
64
|
+
holds at 14:1 on the cream panes. */
|
|
65
|
+
--db-focus: #231f18;
|
|
66
|
+
--db-accent-soft-08: rgba(160, 70, 31, 0.08);
|
|
67
|
+
--db-accent-soft-10: rgba(160, 70, 31, 0.1);
|
|
68
|
+
--db-accent-soft-12: rgba(160, 70, 31, 0.12);
|
|
69
|
+
--db-accent-soft-15: rgba(160, 70, 31, 0.15);
|
|
70
|
+
--db-accent-soft-25: rgba(160, 70, 31, 0.25);
|
|
71
|
+
--db-accent-tint-strong: #e8d2be;
|
|
72
|
+
--db-accent-deep: #7a3418;
|
|
73
|
+
--db-editor-canvas: #fffdf9;
|
|
74
|
+
/* Surfaces that float over the chrome: menus, dialogs, popovers. In light
|
|
75
|
+
mode they are the same warm-white sheet as the page. */
|
|
76
|
+
--db-bg-raised: var(--db-bg);
|
|
58
77
|
--db-badge-bg: #f3eede;
|
|
59
78
|
--db-badge-text: #3d3220;
|
|
60
|
-
--db-badge-text-hover: #
|
|
79
|
+
--db-badge-text-hover: #231f18;
|
|
61
80
|
/* The editor "desk": every chrome surface the page floats on — the
|
|
62
81
|
outline pane, the inline-preview gutter, the Monaco line-number
|
|
63
82
|
margin, and (via `--squisq-desk-bg`) the field behind the WYSIWYG
|
|
@@ -144,53 +163,63 @@
|
|
|
144
163
|
}
|
|
145
164
|
}
|
|
146
165
|
|
|
147
|
-
/* Interface font:
|
|
148
|
-
`DocBlocks Fixed UI` is the
|
|
149
|
-
for the document theme of that name, redeclared over
|
|
150
|
-
so the chrome's 400/500/600/650/700 weights render
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
166
|
+
/* Interface font: system.
|
|
167
|
+
`DocBlocks Fixed UI` (above) is the Hanken Grotesk variable binary each
|
|
168
|
+
surface already ships for the document theme of that name, redeclared over
|
|
169
|
+
the full 100-900 range so the chrome's 400/500/600/650/700 weights render
|
|
170
|
+
exactly. This block is the opt-out for anyone who wants DocBlocks to look
|
|
171
|
+
native: the platform UI face, and the platform mono for metadata, so the
|
|
172
|
+
chrome fetches nothing. Bound on the root, not only the shell, because
|
|
173
|
+
Squisq portals its menus onto <body>. */
|
|
174
|
+
:root[data-db-interface-font='system'],
|
|
175
|
+
:root[data-db-interface-font='system'] .db-shell {
|
|
155
176
|
--db-ui-font:
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
same bridge shape as the `--squisq-*` colour tokens further down. Setting
|
|
160
|
-
it here carries the fixed face into the editor toolbar, menus and dialogs,
|
|
161
|
-
which is most of what a shell screenshot actually contains.
|
|
162
|
-
|
|
163
|
-
Scoped to fixed mode on purpose: the token is left unset by default so
|
|
164
|
-
Squisq keeps its own chrome font, and DOCUMENT typography is never touched
|
|
165
|
-
— a theme's fonts are content the author chose, not chrome. */
|
|
177
|
+
system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
|
|
178
|
+
sans-serif;
|
|
179
|
+
--db-meta-font: ui-monospace, SFMono-Regular, Consolas, monospace;
|
|
166
180
|
--squisq-ux-font: var(--db-ui-font);
|
|
167
181
|
}
|
|
168
182
|
|
|
183
|
+
/* Form controls take the chrome face. Browsers give <button>, <input>,
|
|
184
|
+
<select> and <textarea> a UA font of their own (Arial in Chromium on
|
|
185
|
+
Windows), so every label inside a button — the view tabs, H1–H3, the
|
|
186
|
+
workspace picker — rendered in a second sans beside the chrome's.
|
|
187
|
+
Zero specificity, so any rule that names a font still wins; unscoped,
|
|
188
|
+
because Squisq portals its menus and dialogs onto <body>. */
|
|
189
|
+
:where(button, input, select, textarea) {
|
|
190
|
+
font-family: inherit;
|
|
191
|
+
}
|
|
192
|
+
|
|
169
193
|
:root:has(.db-shell[data-theme='dark']),
|
|
170
194
|
.db-shell[data-theme='dark'] {
|
|
171
195
|
--db-bg: #1a1812;
|
|
172
196
|
--db-bg-subtle: #262219;
|
|
173
197
|
--db-bg-hover: #3a3528;
|
|
174
|
-
--db-bg-selected: #
|
|
175
|
-
--db-bg-selected-hover: #
|
|
176
|
-
--db-border: #
|
|
177
|
-
--db-border-strong: #
|
|
178
|
-
--db-text: #
|
|
198
|
+
--db-bg-selected: #433021;
|
|
199
|
+
--db-bg-selected-hover: #513625;
|
|
200
|
+
--db-border: #342e27;
|
|
201
|
+
--db-border-strong: #4a4238;
|
|
202
|
+
--db-text: #ece6d8;
|
|
179
203
|
--db-text-secondary: #d4ccb0;
|
|
180
|
-
--db-text-muted: #
|
|
204
|
+
--db-text-muted: #a39885;
|
|
181
205
|
--db-text-placeholder: #6b614a;
|
|
182
|
-
--db-accent: #
|
|
183
|
-
--db-accent-hover: #
|
|
206
|
+
--db-accent: #e0835a;
|
|
207
|
+
--db-accent-hover: #eb9a76;
|
|
184
208
|
--db-text-on-accent: #1a1812;
|
|
185
|
-
--db-text-on-selected: #
|
|
186
|
-
--db-
|
|
187
|
-
--db-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
--db-
|
|
192
|
-
--db-accent-
|
|
193
|
-
--db-accent-
|
|
209
|
+
--db-text-on-selected: #ece6d8;
|
|
210
|
+
--db-selected-rule: #e0835a;
|
|
211
|
+
--db-focus: #ece6d8;
|
|
212
|
+
/* Dark mode reverses that: a floating surface must sit LIGHTER than the
|
|
213
|
+
panes it opens over, or a menu reads as a hole in the chrome. Derived
|
|
214
|
+
from the palette's own steps, so every accent palette gets one. */
|
|
215
|
+
--db-bg-raised: color-mix(in srgb, var(--db-bg-subtle), var(--db-bg-hover) 40%);
|
|
216
|
+
--db-accent-soft-08: rgba(224, 131, 90, 0.08);
|
|
217
|
+
--db-accent-soft-10: rgba(224, 131, 90, 0.1);
|
|
218
|
+
--db-accent-soft-12: rgba(224, 131, 90, 0.12);
|
|
219
|
+
--db-accent-soft-15: rgba(224, 131, 90, 0.18);
|
|
220
|
+
--db-accent-soft-25: rgba(224, 131, 90, 0.28);
|
|
221
|
+
--db-accent-tint-strong: #533725;
|
|
222
|
+
--db-accent-deep: #f0c2aa;
|
|
194
223
|
--db-editor-canvas: #16110b;
|
|
195
224
|
--db-badge-bg: #3a2f1f;
|
|
196
225
|
--db-badge-text: #fff4d6;
|
|
@@ -220,25 +249,30 @@
|
|
|
220
249
|
--db-bg: #1a1812;
|
|
221
250
|
--db-bg-subtle: #262219;
|
|
222
251
|
--db-bg-hover: #3a3528;
|
|
223
|
-
--db-bg-selected: #
|
|
224
|
-
--db-bg-selected-hover: #
|
|
225
|
-
--db-border: #
|
|
226
|
-
--db-border-strong: #
|
|
227
|
-
--db-text: #
|
|
252
|
+
--db-bg-selected: #433021;
|
|
253
|
+
--db-bg-selected-hover: #513625;
|
|
254
|
+
--db-border: #342e27;
|
|
255
|
+
--db-border-strong: #4a4238;
|
|
256
|
+
--db-text: #ece6d8;
|
|
228
257
|
--db-text-secondary: #d4ccb0;
|
|
229
|
-
--db-text-muted: #
|
|
258
|
+
--db-text-muted: #a39885;
|
|
230
259
|
--db-text-placeholder: #6b614a;
|
|
231
|
-
--db-accent: #
|
|
232
|
-
--db-accent-hover: #
|
|
260
|
+
--db-accent: #e0835a;
|
|
261
|
+
--db-accent-hover: #eb9a76;
|
|
233
262
|
--db-text-on-accent: #1a1812;
|
|
234
|
-
--db-text-on-selected: #
|
|
235
|
-
--db-
|
|
236
|
-
--db-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
--db-
|
|
241
|
-
--db-accent-
|
|
263
|
+
--db-text-on-selected: #ece6d8;
|
|
264
|
+
--db-selected-rule: #e0835a;
|
|
265
|
+
--db-focus: #ece6d8;
|
|
266
|
+
/* Dark mode reverses that: a floating surface must sit LIGHTER than the
|
|
267
|
+
panes it opens over, or a menu reads as a hole in the chrome. Derived
|
|
268
|
+
from the palette's own steps, so every accent palette gets one. */
|
|
269
|
+
--db-bg-raised: color-mix(in srgb, var(--db-bg-subtle), var(--db-bg-hover) 40%);
|
|
270
|
+
--db-accent-soft-08: rgba(224, 131, 90, 0.08);
|
|
271
|
+
--db-accent-soft-12: rgba(224, 131, 90, 0.12);
|
|
272
|
+
--db-accent-soft-15: rgba(224, 131, 90, 0.18);
|
|
273
|
+
--db-accent-soft-25: rgba(224, 131, 90, 0.28);
|
|
274
|
+
--db-accent-tint-strong: #533725;
|
|
275
|
+
--db-accent-deep: #f0c2aa;
|
|
242
276
|
--db-input-border: #c8b48f;
|
|
243
277
|
--db-danger: #f87171;
|
|
244
278
|
--db-danger-bg: #1c1917;
|
|
@@ -293,10 +327,11 @@
|
|
|
293
327
|
}
|
|
294
328
|
|
|
295
329
|
.db-explorer-title {
|
|
296
|
-
font-
|
|
297
|
-
font-
|
|
330
|
+
font-family: var(--db-meta-font);
|
|
331
|
+
font-weight: 500;
|
|
332
|
+
font-size: 11px;
|
|
298
333
|
text-transform: uppercase;
|
|
299
|
-
letter-spacing: 0.
|
|
334
|
+
letter-spacing: 0.06em;
|
|
300
335
|
color: var(--db-text-muted);
|
|
301
336
|
}
|
|
302
337
|
|
|
@@ -337,7 +372,7 @@
|
|
|
337
372
|
padding: 8px 10px 5px;
|
|
338
373
|
}
|
|
339
374
|
|
|
340
|
-
.db-pinned-documents-title
|
|
375
|
+
.db-pinned-documents-title svg {
|
|
341
376
|
font-size: 10px;
|
|
342
377
|
}
|
|
343
378
|
|
|
@@ -383,9 +418,9 @@
|
|
|
383
418
|
.db-pinned-document-row--selected,
|
|
384
419
|
.db-pinned-document-row--selected:hover,
|
|
385
420
|
.db-pinned-document-row--selected:has(:focus-visible) {
|
|
386
|
-
--db-focus: #ffffff;
|
|
387
421
|
background: var(--db-bg-selected);
|
|
388
422
|
color: var(--db-text-on-selected);
|
|
423
|
+
box-shadow: inset 2px 0 0 var(--db-selected-rule);
|
|
389
424
|
}
|
|
390
425
|
|
|
391
426
|
.db-pinned-document-more {
|
|
@@ -445,7 +480,7 @@
|
|
|
445
480
|
right: 4px;
|
|
446
481
|
left: 4px;
|
|
447
482
|
margin: 0;
|
|
448
|
-
background: var(--db-bg);
|
|
483
|
+
background: var(--db-bg-raised);
|
|
449
484
|
}
|
|
450
485
|
|
|
451
486
|
.db-explorer-btn {
|
|
@@ -695,6 +730,14 @@
|
|
|
695
730
|
opacity: 0.65;
|
|
696
731
|
}
|
|
697
732
|
|
|
733
|
+
/* What a non-Markdown type means: written in Markdown, saved as that format. */
|
|
734
|
+
.db-new-item-hint {
|
|
735
|
+
margin: 4px 8px 0;
|
|
736
|
+
color: var(--db-text-muted);
|
|
737
|
+
font-size: 12px;
|
|
738
|
+
line-height: 1.35;
|
|
739
|
+
}
|
|
740
|
+
|
|
698
741
|
/* ── Tree ────────────────────────────────────────────────────── */
|
|
699
742
|
|
|
700
743
|
.db-tree {
|
|
@@ -793,14 +836,6 @@
|
|
|
793
836
|
outline-offset: -2px;
|
|
794
837
|
}
|
|
795
838
|
|
|
796
|
-
/* A selected/drop-target row is filled with --db-bg-selected, which in
|
|
797
|
-
light mode *is* the accent brown — the default ring would disappear
|
|
798
|
-
into it. Re-point the token rather than duplicating the rule. */
|
|
799
|
-
.db-tree-row--selected,
|
|
800
|
-
.db-tree-row--drop-target {
|
|
801
|
-
--db-focus: #ffffff;
|
|
802
|
-
}
|
|
803
|
-
|
|
804
839
|
.db-tree-row--dragging {
|
|
805
840
|
opacity: 0.45;
|
|
806
841
|
}
|
|
@@ -816,6 +851,7 @@
|
|
|
816
851
|
.db-tree-row--selected {
|
|
817
852
|
background: var(--db-bg-selected);
|
|
818
853
|
color: var(--db-text-on-selected);
|
|
854
|
+
box-shadow: inset 2px 0 0 var(--db-selected-rule);
|
|
819
855
|
}
|
|
820
856
|
|
|
821
857
|
.db-tree-row--selected:hover {
|
|
@@ -846,7 +882,8 @@
|
|
|
846
882
|
margin-left: 8px;
|
|
847
883
|
overflow: hidden;
|
|
848
884
|
color: var(--db-text-secondary);
|
|
849
|
-
font-
|
|
885
|
+
font-family: var(--db-meta-font);
|
|
886
|
+
font-size: 10.5px;
|
|
850
887
|
font-variant-numeric: tabular-nums;
|
|
851
888
|
text-align: right;
|
|
852
889
|
text-overflow: ellipsis;
|
|
@@ -946,7 +983,7 @@
|
|
|
946
983
|
.db-tree-context {
|
|
947
984
|
position: fixed;
|
|
948
985
|
z-index: 1000;
|
|
949
|
-
background: var(--db-bg);
|
|
986
|
+
background: var(--db-bg-raised);
|
|
950
987
|
border: 1px solid var(--db-border);
|
|
951
988
|
border-radius: 4px;
|
|
952
989
|
box-shadow: 0 4px 12px var(--db-shadow);
|
|
@@ -1049,7 +1086,7 @@
|
|
|
1049
1086
|
z-index: 60;
|
|
1050
1087
|
min-width: calc(100% - 16px);
|
|
1051
1088
|
max-width: min(320px, 90vw);
|
|
1052
|
-
background: var(--db-bg);
|
|
1089
|
+
background: var(--db-bg-raised);
|
|
1053
1090
|
border: 1px solid var(--db-border);
|
|
1054
1091
|
border-radius: 4px;
|
|
1055
1092
|
box-shadow: 0 4px 12px var(--db-shadow);
|
|
@@ -1288,11 +1325,21 @@
|
|
|
1288
1325
|
display: block;
|
|
1289
1326
|
}
|
|
1290
1327
|
|
|
1291
|
-
/*
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
.db-shell[data-theme='dark'] .db-app-menu-logo {
|
|
1328
|
+
/* Hosts pass a light and a dark wordmark; the shell shows the one drawn for
|
|
1329
|
+
its resolved appearance. The dark one is painted as on a hull (white faces,
|
|
1330
|
+
black shade), which an inverted light logo can't reproduce. */
|
|
1331
|
+
.db-app-menu-logo--dark,
|
|
1332
|
+
.db-shell[data-theme='dark'] .db-app-menu-logo--light {
|
|
1333
|
+
display: none;
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1336
|
+
.db-shell[data-theme='dark'] .db-app-menu-logo--dark {
|
|
1337
|
+
display: block;
|
|
1338
|
+
}
|
|
1339
|
+
|
|
1340
|
+
/* A host with only one logo gets it inverted in dark mode — fine for a flat
|
|
1341
|
+
black-on-transparent mark, the case this fallback exists for. */
|
|
1342
|
+
.db-shell[data-theme='dark'] .db-app-menu-logo--invert {
|
|
1296
1343
|
filter: invert(1) brightness(0.88) sepia(0.15);
|
|
1297
1344
|
}
|
|
1298
1345
|
|
|
@@ -1318,7 +1365,7 @@
|
|
|
1318
1365
|
left: 0;
|
|
1319
1366
|
z-index: 70;
|
|
1320
1367
|
min-width: 200px;
|
|
1321
|
-
background: var(--db-bg);
|
|
1368
|
+
background: var(--db-bg-raised);
|
|
1322
1369
|
border: 1px solid var(--db-border);
|
|
1323
1370
|
border-radius: 4px;
|
|
1324
1371
|
box-shadow: 0 4px 12px var(--db-shadow);
|
|
@@ -1342,6 +1389,18 @@
|
|
|
1342
1389
|
background: var(--db-bg-hover);
|
|
1343
1390
|
}
|
|
1344
1391
|
|
|
1392
|
+
.db-app-menu-item--with-shortcut {
|
|
1393
|
+
display: flex;
|
|
1394
|
+
align-items: baseline;
|
|
1395
|
+
justify-content: space-between;
|
|
1396
|
+
gap: 16px;
|
|
1397
|
+
}
|
|
1398
|
+
|
|
1399
|
+
.db-app-menu-shortcut {
|
|
1400
|
+
color: var(--db-text-muted);
|
|
1401
|
+
font-size: 12px;
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1345
1404
|
.db-app-menu-item--danger {
|
|
1346
1405
|
color: var(--db-danger);
|
|
1347
1406
|
}
|
|
@@ -1392,7 +1451,7 @@
|
|
|
1392
1451
|
right: 0;
|
|
1393
1452
|
z-index: 100;
|
|
1394
1453
|
min-width: 200px;
|
|
1395
|
-
background: var(--db-bg);
|
|
1454
|
+
background: var(--db-bg-raised);
|
|
1396
1455
|
border: 1px solid var(--db-border);
|
|
1397
1456
|
border-radius: 6px;
|
|
1398
1457
|
box-shadow: 0 4px 12px var(--db-shadow);
|
|
@@ -1517,6 +1576,9 @@
|
|
|
1517
1576
|
|
|
1518
1577
|
.db-shell-sidebar {
|
|
1519
1578
|
width: 260px;
|
|
1579
|
+
/* The sidebar is chrome, so it shares the toolbar's paper; only the page
|
|
1580
|
+
itself is white. */
|
|
1581
|
+
background: var(--db-bg-subtle);
|
|
1520
1582
|
display: flex;
|
|
1521
1583
|
flex-direction: column;
|
|
1522
1584
|
overflow: hidden;
|
|
@@ -1539,7 +1601,7 @@
|
|
|
1539
1601
|
inset-block: 0;
|
|
1540
1602
|
inset-inline-start: 0;
|
|
1541
1603
|
z-index: 30;
|
|
1542
|
-
background: var(--db-bg);
|
|
1604
|
+
background: var(--db-bg-subtle);
|
|
1543
1605
|
width: var(--db-drawer-width);
|
|
1544
1606
|
padding-inline-start: var(--db-safe-left);
|
|
1545
1607
|
border-inline-end: 1px solid var(--db-border-strong);
|
|
@@ -1729,6 +1791,7 @@ body.db-resizing-sidebar * {
|
|
|
1729
1791
|
box here so both chrome regions are 25px everywhere. */
|
|
1730
1792
|
.db-shell .squisq-status-bar {
|
|
1731
1793
|
line-height: 16px;
|
|
1794
|
+
font-family: var(--db-meta-font);
|
|
1732
1795
|
}
|
|
1733
1796
|
|
|
1734
1797
|
.db-shell-sidebar-footer {
|
|
@@ -1761,8 +1824,7 @@ body.db-resizing-sidebar * {
|
|
|
1761
1824
|
text-decoration: underline;
|
|
1762
1825
|
}
|
|
1763
1826
|
|
|
1764
|
-
.db-shell-sidebar-footer-separator
|
|
1765
|
-
.db-shell-sidebar-footer-action {
|
|
1827
|
+
.db-shell-sidebar-footer-separator {
|
|
1766
1828
|
color: var(--db-text-muted);
|
|
1767
1829
|
}
|
|
1768
1830
|
|
|
@@ -1771,20 +1833,37 @@ body.db-resizing-sidebar * {
|
|
|
1771
1833
|
opacity: 0.65;
|
|
1772
1834
|
}
|
|
1773
1835
|
|
|
1836
|
+
/* The backup action is the footer's one control that protects work, so it is a
|
|
1837
|
+
bordered button with a 22px target (24px including the spacing around it)
|
|
1838
|
+
rather than another 11px text link. */
|
|
1774
1839
|
.db-shell-sidebar-footer-action {
|
|
1840
|
+
display: inline-flex;
|
|
1841
|
+
align-items: center;
|
|
1842
|
+
gap: 4px;
|
|
1775
1843
|
flex-shrink: 0;
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1844
|
+
min-height: 22px;
|
|
1845
|
+
margin-left: auto;
|
|
1846
|
+
padding: 0 8px;
|
|
1847
|
+
border: 1px solid var(--db-border-strong);
|
|
1848
|
+
border-radius: 999px;
|
|
1849
|
+
background: var(--db-bg);
|
|
1850
|
+
color: var(--db-text-secondary);
|
|
1779
1851
|
font: inherit;
|
|
1780
|
-
|
|
1781
|
-
|
|
1852
|
+
font-size: 12px;
|
|
1853
|
+
font-weight: 600;
|
|
1854
|
+
line-height: 1;
|
|
1782
1855
|
white-space: nowrap;
|
|
1783
1856
|
cursor: pointer;
|
|
1784
1857
|
}
|
|
1785
1858
|
|
|
1786
1859
|
.db-shell-sidebar-footer-action:hover {
|
|
1787
|
-
color: var(--db-
|
|
1860
|
+
border-color: var(--db-accent);
|
|
1861
|
+
color: var(--db-text);
|
|
1862
|
+
}
|
|
1863
|
+
|
|
1864
|
+
.db-shell-sidebar-footer-action:focus-visible {
|
|
1865
|
+
outline: 2px solid var(--db-focus);
|
|
1866
|
+
outline-offset: 1px;
|
|
1788
1867
|
}
|
|
1789
1868
|
|
|
1790
1869
|
.db-shell-empty {
|
|
@@ -1938,7 +2017,7 @@ body.db-resizing-sidebar * {
|
|
|
1938
2017
|
position: static;
|
|
1939
2018
|
}
|
|
1940
2019
|
|
|
1941
|
-
.db-shell--mobile .squisq-
|
|
2020
|
+
html:has(.db-shell--mobile) .squisq-toolbar-overflow-menu {
|
|
1942
2021
|
right: auto !important;
|
|
1943
2022
|
left: max(4px, env(safe-area-inset-left)) !important;
|
|
1944
2023
|
max-width: calc(100vw - 8px);
|
|
@@ -2184,7 +2263,7 @@ body.db-resizing-sidebar * {
|
|
|
2184
2263
|
|
|
2185
2264
|
.db-dialog {
|
|
2186
2265
|
box-sizing: border-box;
|
|
2187
|
-
background: var(--db-bg);
|
|
2266
|
+
background: var(--db-bg-raised);
|
|
2188
2267
|
border: 1px solid var(--db-border);
|
|
2189
2268
|
border-radius: 8px;
|
|
2190
2269
|
box-shadow: 0 8px 32px var(--db-shadow);
|
|
@@ -2297,7 +2376,7 @@ body.db-resizing-sidebar * {
|
|
|
2297
2376
|
|
|
2298
2377
|
.db-about-version code {
|
|
2299
2378
|
color: var(--db-text);
|
|
2300
|
-
font-family:
|
|
2379
|
+
font-family: var(--db-meta-font);
|
|
2301
2380
|
user-select: all;
|
|
2302
2381
|
}
|
|
2303
2382
|
|
|
@@ -2314,10 +2393,11 @@ body.db-resizing-sidebar * {
|
|
|
2314
2393
|
}
|
|
2315
2394
|
|
|
2316
2395
|
.db-settings-legend {
|
|
2317
|
-
font-
|
|
2318
|
-
font-
|
|
2396
|
+
font-family: var(--db-meta-font);
|
|
2397
|
+
font-size: 11px;
|
|
2398
|
+
font-weight: 500;
|
|
2319
2399
|
text-transform: uppercase;
|
|
2320
|
-
letter-spacing: 0.
|
|
2400
|
+
letter-spacing: 0.06em;
|
|
2321
2401
|
color: var(--db-text-muted);
|
|
2322
2402
|
margin-bottom: 8px;
|
|
2323
2403
|
}
|
|
@@ -2632,7 +2712,7 @@ body.db-resizing-sidebar * {
|
|
|
2632
2712
|
border: 1px solid var(--db-border-strong);
|
|
2633
2713
|
border-radius: 6px;
|
|
2634
2714
|
outline: none;
|
|
2635
|
-
background: var(--db-bg);
|
|
2715
|
+
background: var(--db-bg-raised);
|
|
2636
2716
|
color: var(--db-text);
|
|
2637
2717
|
box-shadow: 0 10px 28px var(--db-shadow);
|
|
2638
2718
|
}
|
|
@@ -2904,8 +2984,8 @@ body.db-resizing-sidebar * {
|
|
|
2904
2984
|
box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.18);
|
|
2905
2985
|
}
|
|
2906
2986
|
|
|
2907
|
-
.db-settings-accent-swatch--
|
|
2908
|
-
background: #
|
|
2987
|
+
.db-settings-accent-swatch--rust {
|
|
2988
|
+
background: #a0461f;
|
|
2909
2989
|
}
|
|
2910
2990
|
|
|
2911
2991
|
.db-settings-accent-swatch--green {
|
|
@@ -3133,7 +3213,7 @@ body.db-resizing-sidebar * {
|
|
|
3133
3213
|
margin-top: 4px;
|
|
3134
3214
|
z-index: 70;
|
|
3135
3215
|
min-width: 200px;
|
|
3136
|
-
background: var(--db-bg);
|
|
3216
|
+
background: var(--db-bg-raised);
|
|
3137
3217
|
border: 1px solid var(--db-border);
|
|
3138
3218
|
border-radius: 4px;
|
|
3139
3219
|
box-shadow: 0 4px 12px var(--db-shadow);
|
|
@@ -3598,6 +3678,7 @@ body.db-resizing-sidebar * {
|
|
|
3598
3678
|
--squisq-row-hover: var(--db-bg-hover);
|
|
3599
3679
|
--squisq-hover-bg: var(--db-bg-hover);
|
|
3600
3680
|
--squisq-panel-bg: var(--db-bg);
|
|
3681
|
+
--squisq-surface-overlay: var(--db-bg-raised);
|
|
3601
3682
|
|
|
3602
3683
|
/* The desk the editing page floats on — the WYSIWYG backing, the block
|
|
3603
3684
|
card and its preview panel, the outline pane, the Monaco margin. */
|
|
@@ -3755,31 +3836,30 @@ body.db-resizing-sidebar * {
|
|
|
3755
3836
|
background: var(--squisq-desk-bg);
|
|
3756
3837
|
}
|
|
3757
3838
|
|
|
3758
|
-
/* ── Inline preview gutter
|
|
3839
|
+
/* ── Inline preview gutter ──────────────────────────────────── */
|
|
3759
3840
|
/* Rebind squisq's `--squisq-preview-*` custom properties so the
|
|
3760
|
-
gutter chrome (vertical bracket, diagonal connector + dots
|
|
3761
|
-
|
|
3762
|
-
and the card surface tones harmonize with the rest of docblocks.
|
|
3763
|
-
|
|
3764
|
-
document-level concern, not chrome. */
|
|
3841
|
+
gutter chrome (vertical bracket, diagonal connector + dots)
|
|
3842
|
+
draws as hairlines in the rule color rather than in the accent,
|
|
3843
|
+
and the card surface tones harmonize with the rest of docblocks. The preview-block renderer's own theme is unaffected —
|
|
3844
|
+
that's a document-level concern, not chrome. */
|
|
3765
3845
|
.db-shell[data-theme='light'] .squisq-editor-shell[data-theme='light'] {
|
|
3766
|
-
--squisq-preview-accent: var(--db-
|
|
3767
|
-
--squisq-preview-accent-muted: var(--db-
|
|
3846
|
+
--squisq-preview-accent: var(--db-border-strong);
|
|
3847
|
+
--squisq-preview-accent-muted: var(--db-border);
|
|
3768
3848
|
--squisq-preview-gutter-bg: var(--db-gutter-bg);
|
|
3769
|
-
--squisq-preview-card-bg:
|
|
3849
|
+
--squisq-preview-card-bg: var(--db-bg);
|
|
3770
3850
|
--squisq-preview-card-border: var(--db-border);
|
|
3771
3851
|
--squisq-preview-card-shadow: 0 1px 2px rgba(40, 30, 15, 0.08);
|
|
3772
3852
|
--squisq-preview-card-title: var(--db-accent-deep);
|
|
3773
3853
|
--squisq-preview-card-svg-bg: var(--db-bg-subtle);
|
|
3774
3854
|
--squisq-preview-dot-halo: var(--db-gutter-bg);
|
|
3775
|
-
--squisq-preview-empty-bg:
|
|
3855
|
+
--squisq-preview-empty-bg: var(--db-bg);
|
|
3776
3856
|
--squisq-preview-empty-border: var(--db-border);
|
|
3777
3857
|
--squisq-preview-empty-text: var(--db-accent-deep);
|
|
3778
3858
|
}
|
|
3779
3859
|
|
|
3780
3860
|
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] {
|
|
3781
|
-
--squisq-preview-accent: var(--db-
|
|
3782
|
-
--squisq-preview-accent-muted: var(--db-
|
|
3861
|
+
--squisq-preview-accent: var(--db-border-strong);
|
|
3862
|
+
--squisq-preview-accent-muted: var(--db-border);
|
|
3783
3863
|
--squisq-preview-gutter-bg: var(--db-gutter-bg);
|
|
3784
3864
|
--squisq-preview-card-bg: var(--db-bg);
|
|
3785
3865
|
--squisq-preview-card-border: var(--db-border);
|
|
@@ -3792,6 +3872,24 @@ body.db-resizing-sidebar * {
|
|
|
3792
3872
|
--squisq-preview-empty-text: var(--db-text-muted);
|
|
3793
3873
|
}
|
|
3794
3874
|
|
|
3875
|
+
/* Squisq colors the card's template label with the same
|
|
3876
|
+
`--squisq-preview-accent` as the hairlines above, and a rule color is
|
|
3877
|
+
too faint for text. Keep the label at the muted text tone so it meets
|
|
3878
|
+
WCAG AA contrast on the card surface. */
|
|
3879
|
+
.db-shell .squisq-editor-shell .squisq-inline-preview-card-template {
|
|
3880
|
+
color: var(--db-text-muted);
|
|
3881
|
+
}
|
|
3882
|
+
|
|
3883
|
+
/* The extent bar shows a block's reach; at Squisq's 4px it read as a cable
|
|
3884
|
+
running beside the page. Squisq has no width token for it. */
|
|
3885
|
+
.db-shell .squisq-editor-shell .squisq-inline-preview-extent {
|
|
3886
|
+
width: 2px;
|
|
3887
|
+
}
|
|
3888
|
+
|
|
3889
|
+
.db-shell .squisq-editor-shell .squisq-inline-preview-extent--untagged {
|
|
3890
|
+
width: 1px;
|
|
3891
|
+
}
|
|
3892
|
+
|
|
3795
3893
|
/* ── Squisq dark-theme override ──────────────────────────────── */
|
|
3796
3894
|
/* Squisq has hardcoded slate-blue surfaces in its dark mode. We re-tone
|
|
3797
3895
|
them via the DocBlocks dark palette so the editor reads as warm dark
|
|
@@ -3956,7 +4054,7 @@ body.db-resizing-sidebar * {
|
|
|
3956
4054
|
}
|
|
3957
4055
|
|
|
3958
4056
|
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-context-menu {
|
|
3959
|
-
background: var(--db-bg);
|
|
4057
|
+
background: var(--db-bg-raised);
|
|
3960
4058
|
border-color: var(--db-border);
|
|
3961
4059
|
box-shadow: 0 12px 28px var(--db-shadow);
|
|
3962
4060
|
}
|
|
@@ -4088,38 +4186,15 @@ body.db-resizing-sidebar * {
|
|
|
4088
4186
|
border-color: var(--db-border-strong);
|
|
4089
4187
|
}
|
|
4090
4188
|
|
|
4091
|
-
/* ── Tooltips (portal): sans-serif +
|
|
4092
|
-
/* Tooltips
|
|
4093
|
-
|
|
4094
|
-
|
|
4095
|
-
`html:has(.db-shell)` and emit explicit colors per theme; using
|
|
4096
|
-
`var(--db-accent-…)` here drops to the squisq fallback (dark slate
|
|
4097
|
-
bg + near-white text) because the vars never resolve. */
|
|
4189
|
+
/* ── Tooltips (portal): sans-serif + ink chip ───────────────── */
|
|
4190
|
+
/* Tooltips portal into document.body, outside `.db-shell`; the palette is
|
|
4191
|
+
hoisted to the root, so the tokens resolve there. The chip inverts the
|
|
4192
|
+
chrome: ink on cream in light mode, light ink on espresso in dark. */
|
|
4098
4193
|
html:has(.db-shell) .squisq-tooltip {
|
|
4099
4194
|
font-family: var(--db-ui-font);
|
|
4100
4195
|
box-shadow: 0 2px 8px rgba(15, 30, 20, 0.35);
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
background: #3d3220;
|
|
4104
|
-
color: #f3eede;
|
|
4105
|
-
}
|
|
4106
|
-
|
|
4107
|
-
html:has(.db-shell[data-theme='dark']) .squisq-tooltip {
|
|
4108
|
-
/* Dark mode: cream chip, dark text — an inverted floating chip
|
|
4109
|
-
against the espresso UI. Contrast ratio ~12:1 between
|
|
4110
|
-
`#e6dcc0` and `#1f1a10`. */
|
|
4111
|
-
background: #e6dcc0;
|
|
4112
|
-
color: #1f1a10;
|
|
4113
|
-
}
|
|
4114
|
-
|
|
4115
|
-
@media (prefers-color-scheme: dark) {
|
|
4116
|
-
/* Shell defaults to system theme when `data-theme` is unset —
|
|
4117
|
-
mirror the dark-mode override so the tooltip stays readable
|
|
4118
|
-
without an explicit user choice. */
|
|
4119
|
-
html:has(.db-shell:not([data-theme='light'])) .squisq-tooltip {
|
|
4120
|
-
background: #e6dcc0;
|
|
4121
|
-
color: #1f1a10;
|
|
4122
|
-
}
|
|
4196
|
+
background: var(--db-text);
|
|
4197
|
+
color: var(--db-bg-subtle);
|
|
4123
4198
|
}
|
|
4124
4199
|
|
|
4125
4200
|
/* ── Template picker accents (dark): indigo → thematic green ─── */
|
|
@@ -4139,64 +4214,69 @@ html:has(.db-shell[data-theme='dark']) .squisq-tooltip {
|
|
|
4139
4214
|
|
|
4140
4215
|
/* The template gallery and file-tree context menu render into document.body
|
|
4141
4216
|
via createPortal, so they live outside `.db-shell`. Hoist the same
|
|
4142
|
-
|
|
4217
|
+
palette tokens onto the html element (gated by the resolved shell
|
|
4143
4218
|
theme) so every portaled surface keeps the DocBlocks palette. */
|
|
4144
4219
|
html:has(.db-shell[data-theme='dark']) {
|
|
4145
4220
|
--db-bg: #1a1812;
|
|
4146
4221
|
--db-bg-subtle: #262219;
|
|
4147
4222
|
--db-bg-hover: #3a3528;
|
|
4148
|
-
--db-border: #
|
|
4149
|
-
--db-border-strong: #
|
|
4150
|
-
--db-text: #
|
|
4223
|
+
--db-border: #342e27;
|
|
4224
|
+
--db-border-strong: #4a4238;
|
|
4225
|
+
--db-text: #ece6d8;
|
|
4151
4226
|
--db-text-secondary: #d4ccb0;
|
|
4152
|
-
--db-text-muted: #
|
|
4227
|
+
--db-text-muted: #a39885;
|
|
4153
4228
|
--db-danger: #f87171;
|
|
4154
4229
|
--db-danger-bg: #1c1917;
|
|
4155
4230
|
--db-text-on-danger: #1c1917;
|
|
4156
4231
|
--db-shadow: rgba(0, 0, 0, 0.4);
|
|
4157
|
-
--db-accent: #
|
|
4158
|
-
--db-accent-hover: #
|
|
4232
|
+
--db-accent: #e0835a;
|
|
4233
|
+
--db-accent-hover: #eb9a76;
|
|
4159
4234
|
--db-text-on-accent: #1a1812;
|
|
4160
|
-
--db-accent-soft-15: rgba(
|
|
4161
|
-
--db-accent-soft-25: rgba(
|
|
4162
|
-
--db-accent-tint-strong: #
|
|
4163
|
-
--db-accent-deep: #
|
|
4235
|
+
--db-accent-soft-15: rgba(224, 131, 90, 0.18);
|
|
4236
|
+
--db-accent-soft-25: rgba(224, 131, 90, 0.28);
|
|
4237
|
+
--db-accent-tint-strong: #533725;
|
|
4238
|
+
--db-accent-deep: #f0c2aa;
|
|
4164
4239
|
--db-gutter-bg: #16110b;
|
|
4240
|
+
--db-bg-raised: color-mix(in srgb, var(--db-bg-subtle), var(--db-bg-hover) 40%);
|
|
4165
4241
|
}
|
|
4166
4242
|
|
|
4167
4243
|
html:has(.db-shell[data-theme='light']) {
|
|
4168
|
-
--db-bg: #
|
|
4244
|
+
--db-bg: #fffdf9;
|
|
4169
4245
|
--db-bg-subtle: #f3eede;
|
|
4170
4246
|
--db-bg-hover: #e9e2cb;
|
|
4171
|
-
--db-border: #
|
|
4172
|
-
--db-border-strong: #
|
|
4173
|
-
--db-text: #
|
|
4247
|
+
--db-border: #ddd5c3;
|
|
4248
|
+
--db-border-strong: #c7bca3;
|
|
4249
|
+
--db-text: #231f18;
|
|
4174
4250
|
--db-text-secondary: #3d3528;
|
|
4175
|
-
--db-text-muted: #
|
|
4251
|
+
--db-text-muted: #6b6252;
|
|
4176
4252
|
--db-danger: #b22b1b;
|
|
4177
4253
|
--db-danger-bg: #fdf0ee;
|
|
4178
4254
|
--db-text-on-danger: #ffffff;
|
|
4179
4255
|
--db-shadow: rgba(40, 30, 15, 0.12);
|
|
4180
|
-
--db-accent: #
|
|
4181
|
-
--db-accent-hover: #
|
|
4182
|
-
--db-text-on-accent: #
|
|
4183
|
-
--db-accent-soft-15: rgba(
|
|
4184
|
-
--db-accent-soft-25: rgba(
|
|
4185
|
-
--db-accent-tint-strong: #
|
|
4186
|
-
--db-accent-deep: #
|
|
4256
|
+
--db-accent: #a0461f;
|
|
4257
|
+
--db-accent-hover: #8a3a1a;
|
|
4258
|
+
--db-text-on-accent: #fffdf9;
|
|
4259
|
+
--db-accent-soft-15: rgba(160, 70, 31, 0.15);
|
|
4260
|
+
--db-accent-soft-25: rgba(160, 70, 31, 0.25);
|
|
4261
|
+
--db-accent-tint-strong: #e8d2be;
|
|
4262
|
+
--db-accent-deep: #7a3418;
|
|
4187
4263
|
--db-gutter-bg: #efe8d4;
|
|
4188
4264
|
}
|
|
4189
4265
|
|
|
4190
|
-
/* Accent variants keep
|
|
4266
|
+
/* Accent variants keep Rust as the untouched default while recoloring the
|
|
4191
4267
|
full chrome palette for either appearance. The same tokens are hoisted to
|
|
4192
4268
|
`html` so Squisq portals and file-tree menus inherit the active variant. */
|
|
4193
|
-
.db-shell[data-theme='light']:not([data-accent='
|
|
4194
|
-
html:has(.db-shell[data-theme='light']:not([data-accent='
|
|
4269
|
+
.db-shell[data-theme='light']:not([data-accent='rust']),
|
|
4270
|
+
html:has(.db-shell[data-theme='light']:not([data-accent='rust'])) {
|
|
4195
4271
|
--db-accent-soft-08: rgb(var(--db-accent-rgb) / 8%);
|
|
4196
4272
|
--db-accent-soft-10: rgb(var(--db-accent-rgb) / 10%);
|
|
4197
4273
|
--db-accent-soft-12: rgb(var(--db-accent-rgb) / 12%);
|
|
4198
4274
|
--db-accent-soft-15: rgb(var(--db-accent-rgb) / 15%);
|
|
4199
4275
|
--db-accent-soft-25: rgb(var(--db-accent-rgb) / 25%);
|
|
4276
|
+
--db-text-on-selected: var(--db-text);
|
|
4277
|
+
--db-selected-rule: var(--db-accent);
|
|
4278
|
+
--db-bg: #ffffff;
|
|
4279
|
+
--db-editor-canvas: #ffffff;
|
|
4200
4280
|
--db-gallery-backdrop: rgba(30, 30, 30, 0.24);
|
|
4201
4281
|
--db-gallery-panel-bg: var(--db-bg);
|
|
4202
4282
|
--db-gallery-raised-bg: var(--db-bg);
|
|
@@ -4205,13 +4285,14 @@ html:has(.db-shell[data-theme='light']:not([data-accent='brown'])) {
|
|
|
4205
4285
|
--db-gallery-placeholder: var(--db-text-muted);
|
|
4206
4286
|
}
|
|
4207
4287
|
|
|
4208
|
-
.db-shell[data-theme='dark']:not([data-accent='
|
|
4209
|
-
html:has(.db-shell[data-theme='dark']:not([data-accent='
|
|
4288
|
+
.db-shell[data-theme='dark']:not([data-accent='rust']),
|
|
4289
|
+
html:has(.db-shell[data-theme='dark']:not([data-accent='rust'])) {
|
|
4210
4290
|
--db-accent-soft-08: rgb(var(--db-accent-rgb) / 8%);
|
|
4211
4291
|
--db-accent-soft-10: rgb(var(--db-accent-rgb) / 10%);
|
|
4212
4292
|
--db-accent-soft-12: rgb(var(--db-accent-rgb) / 12%);
|
|
4213
4293
|
--db-accent-soft-15: rgb(var(--db-accent-rgb) / 18%);
|
|
4214
4294
|
--db-accent-soft-25: rgb(var(--db-accent-rgb) / 28%);
|
|
4295
|
+
--db-selected-rule: var(--db-accent);
|
|
4215
4296
|
--db-gallery-backdrop: rgba(0, 0, 0, 0.58);
|
|
4216
4297
|
--db-gallery-panel-bg: var(--db-bg);
|
|
4217
4298
|
--db-gallery-header-bg: var(--db-editor-canvas);
|
|
@@ -4225,8 +4306,8 @@ html:has(.db-shell[data-theme='dark']:not([data-accent='brown'])) {
|
|
|
4225
4306
|
html:has(.db-shell[data-theme='light'][data-accent='green']) {
|
|
4226
4307
|
--db-bg-subtle: #edf4ef;
|
|
4227
4308
|
--db-bg-hover: #dfece3;
|
|
4228
|
-
--db-bg-selected: #
|
|
4229
|
-
--db-bg-selected-hover: #
|
|
4309
|
+
--db-bg-selected: #cfe0d3;
|
|
4310
|
+
--db-bg-selected-hover: #c2d6c7;
|
|
4230
4311
|
--db-border: #c6d8cb;
|
|
4231
4312
|
--db-border-strong: #98b3a1;
|
|
4232
4313
|
--db-text: #202a23;
|
|
@@ -4274,8 +4355,8 @@ html:has(.db-shell[data-theme='dark'][data-accent='green']) {
|
|
|
4274
4355
|
html:has(.db-shell[data-theme='light'][data-accent='blue']) {
|
|
4275
4356
|
--db-bg-subtle: #eef2f7;
|
|
4276
4357
|
--db-bg-hover: #e1e8f0;
|
|
4277
|
-
--db-bg-selected: #
|
|
4278
|
-
--db-bg-selected-hover: #
|
|
4358
|
+
--db-bg-selected: #d0dbe7;
|
|
4359
|
+
--db-bg-selected-hover: #c3d0de;
|
|
4279
4360
|
--db-border: #c7d1de;
|
|
4280
4361
|
--db-border-strong: #99aabd;
|
|
4281
4362
|
--db-text: #202733;
|
|
@@ -4323,8 +4404,8 @@ html:has(.db-shell[data-theme='dark'][data-accent='blue']) {
|
|
|
4323
4404
|
html:has(.db-shell[data-theme='light'][data-accent='purple']) {
|
|
4324
4405
|
--db-bg-subtle: #f3eff6;
|
|
4325
4406
|
--db-bg-hover: #e9e1ef;
|
|
4326
|
-
--db-bg-selected: #
|
|
4327
|
-
--db-bg-selected-hover: #
|
|
4407
|
+
--db-bg-selected: #ddd0e4;
|
|
4408
|
+
--db-bg-selected-hover: #d2c3db;
|
|
4328
4409
|
--db-border: #d5c8dd;
|
|
4329
4410
|
--db-border-strong: #b19cbe;
|
|
4330
4411
|
--db-text: #29222e;
|
|
@@ -4372,8 +4453,8 @@ html:has(.db-shell[data-theme='dark'][data-accent='purple']) {
|
|
|
4372
4453
|
html:has(.db-shell[data-theme='light'][data-accent='maroon']) {
|
|
4373
4454
|
--db-bg-subtle: #f7eff2;
|
|
4374
4455
|
--db-bg-hover: #eedfe5;
|
|
4375
|
-
--db-bg-selected: #
|
|
4376
|
-
--db-bg-selected-hover: #
|
|
4456
|
+
--db-bg-selected: #e6d0d8;
|
|
4457
|
+
--db-bg-selected-hover: #dcc3cd;
|
|
4377
4458
|
--db-border: #dec8d0;
|
|
4378
4459
|
--db-border-strong: #bd9ba8;
|
|
4379
4460
|
--db-text: #2f2227;
|
|
@@ -4421,8 +4502,8 @@ html:has(.db-shell[data-theme='dark'][data-accent='maroon']) {
|
|
|
4421
4502
|
html:has(.db-shell[data-theme='light'][data-accent='orange']) {
|
|
4422
4503
|
--db-bg-subtle: #f8f1e9;
|
|
4423
4504
|
--db-bg-hover: #f0e4d6;
|
|
4424
|
-
--db-bg-selected: #
|
|
4425
|
-
--db-bg-selected-hover: #
|
|
4505
|
+
--db-bg-selected: #ead8c5;
|
|
4506
|
+
--db-bg-selected-hover: #e1cbb4;
|
|
4426
4507
|
--db-border: #e0cfbc;
|
|
4427
4508
|
--db-border-strong: #c2a282;
|
|
4428
4509
|
--db-text: #30271f;
|
|
@@ -4470,8 +4551,8 @@ html:has(.db-shell[data-theme='dark'][data-accent='orange']) {
|
|
|
4470
4551
|
html:has(.db-shell[data-theme='light'][data-accent='gray']) {
|
|
4471
4552
|
--db-bg-subtle: #f2f2f2;
|
|
4472
4553
|
--db-bg-hover: #e6e6e6;
|
|
4473
|
-
--db-bg-selected: #
|
|
4474
|
-
--db-bg-selected-hover: #
|
|
4554
|
+
--db-bg-selected: #d8d8d8;
|
|
4555
|
+
--db-bg-selected-hover: #cdcdcd;
|
|
4475
4556
|
--db-border: #d1d1d1;
|
|
4476
4557
|
--db-border-strong: #a8a8a8;
|
|
4477
4558
|
--db-text: #252525;
|
|
@@ -4520,7 +4601,7 @@ html:has(.db-shell[data-theme='dark'][data-accent='gray']) {
|
|
|
4520
4601
|
above so its surface, states, icons, and text follow every DocBlocks theme
|
|
4521
4602
|
and accent instead of falling back to Squisq's standalone blue/slate UI. */
|
|
4522
4603
|
html:has(.db-shell) .squisq-use-mode-menu {
|
|
4523
|
-
background: var(--db-bg);
|
|
4604
|
+
background: var(--db-bg-raised);
|
|
4524
4605
|
border-color: var(--db-border);
|
|
4525
4606
|
box-shadow:
|
|
4526
4607
|
0 12px 32px var(--db-shadow),
|
|
@@ -4631,7 +4712,7 @@ html:has(.db-shell)
|
|
|
4631
4712
|
same menu surfaces as the rest of the shell. The selector also covers the
|
|
4632
4713
|
nested Mermaid and code-snippet menus, which share this portal class. */
|
|
4633
4714
|
html:has(.db-shell) .squisq-insert-menu {
|
|
4634
|
-
background: var(--db-bg);
|
|
4715
|
+
background: var(--db-bg-raised);
|
|
4635
4716
|
border-color: var(--db-border);
|
|
4636
4717
|
color: var(--db-text-secondary);
|
|
4637
4718
|
box-shadow: 0 4px 12px var(--db-shadow);
|
|
@@ -4654,12 +4735,12 @@ html:has(.db-shell) .squisq-insert-menu .squisq-insert-menu-header--separated {
|
|
|
4654
4735
|
border-top-color: var(--db-border);
|
|
4655
4736
|
}
|
|
4656
4737
|
|
|
4657
|
-
html:has(.db-shell[data-theme='light']:not([data-accent='
|
|
4738
|
+
html:has(.db-shell[data-theme='light']:not([data-accent='rust'])) .squisq-tooltip {
|
|
4658
4739
|
background: var(--db-accent-deep);
|
|
4659
4740
|
color: var(--db-bg-subtle);
|
|
4660
4741
|
}
|
|
4661
4742
|
|
|
4662
|
-
html:has(.db-shell[data-theme='dark']:not([data-accent='
|
|
4743
|
+
html:has(.db-shell[data-theme='dark']:not([data-accent='rust'])) .squisq-tooltip {
|
|
4663
4744
|
background: var(--db-accent-deep);
|
|
4664
4745
|
color: var(--db-bg);
|
|
4665
4746
|
}
|
|
@@ -4720,7 +4801,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
4720
4801
|
|
|
4721
4802
|
html:has(.db-shell[data-theme='light'])
|
|
4722
4803
|
.squisq-template-gallery-dialog[data-theme='light']:has([data-squisq-template-gallery-portal]) {
|
|
4723
|
-
--squisq-template-gallery-backdrop: var(--db-gallery-backdrop, rgba(
|
|
4804
|
+
--squisq-template-gallery-backdrop: var(--db-gallery-backdrop, rgba(35, 31, 24, 0.24));
|
|
4724
4805
|
--squisq-template-gallery-panel-bg: var(--db-gallery-panel-bg, #fffdf7);
|
|
4725
4806
|
--squisq-template-gallery-panel-border: var(--db-border);
|
|
4726
4807
|
--squisq-template-gallery-header-bg: var(--db-bg-subtle);
|
|
@@ -5283,13 +5364,13 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
5283
5364
|
}
|
|
5284
5365
|
|
|
5285
5366
|
.db-shell[data-theme='light'] .squisq-editor-shell[data-theme='light'] .squisq-toolbar-view-tabs {
|
|
5286
|
-
background: var(--db-
|
|
5367
|
+
background: var(--db-bg-subtle);
|
|
5287
5368
|
border-right-color: var(--db-border);
|
|
5288
5369
|
}
|
|
5289
5370
|
|
|
5290
5371
|
.db-shell[data-theme='light'] .squisq-editor-shell[data-theme='light'] .squisq-status-bar {
|
|
5291
5372
|
--squisq-text-muted: var(--db-text-secondary);
|
|
5292
|
-
background: var(--db-
|
|
5373
|
+
background: var(--db-bg-subtle);
|
|
5293
5374
|
border-top-color: var(--db-border-strong);
|
|
5294
5375
|
}
|
|
5295
5376
|
|
|
@@ -5330,48 +5411,49 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
5330
5411
|
border-left: 1px solid var(--db-border);
|
|
5331
5412
|
}
|
|
5332
5413
|
|
|
5333
|
-
/* Toolbar overflow menu. Squisq
|
|
5414
|
+
/* Toolbar overflow menu. Squisq portals it onto <body> (2.12+), outside the
|
|
5415
|
+
shell, so these rules reach it through `html:has(.db-shell)` like the
|
|
5416
|
+
Insert and Use mode menus. Squisq intentionally ships a neutral slate
|
|
5334
5417
|
palette; inside DocBlocks this popover should use the same surfaces,
|
|
5335
5418
|
borders, text, and interaction colors as our other shell menus. The
|
|
5336
5419
|
contextual template/transition controls need explicit treatment too,
|
|
5337
5420
|
since they bring their own Squisq surfaces into the popover. */
|
|
5338
|
-
.db-shell .squisq-
|
|
5339
|
-
background: var(--db-bg);
|
|
5421
|
+
html:has(.db-shell) .squisq-toolbar-overflow-menu {
|
|
5422
|
+
background: var(--db-bg-raised);
|
|
5340
5423
|
border-color: var(--db-border);
|
|
5341
5424
|
box-shadow: 0 4px 12px var(--db-shadow);
|
|
5342
5425
|
}
|
|
5343
5426
|
|
|
5344
|
-
.db-shell .squisq-
|
|
5427
|
+
html:has(.db-shell) .squisq-toolbar-overflow-menu--up {
|
|
5345
5428
|
box-shadow: 0 -4px 12px var(--db-shadow);
|
|
5346
5429
|
}
|
|
5347
5430
|
|
|
5348
|
-
.db-shell .squisq-
|
|
5431
|
+
html:has(.db-shell) .squisq-toolbar-overflow-item {
|
|
5349
5432
|
color: var(--db-text-secondary);
|
|
5350
5433
|
}
|
|
5351
5434
|
|
|
5352
|
-
.db-shell .squisq-
|
|
5435
|
+
html:has(.db-shell) .squisq-toolbar-overflow-item:hover {
|
|
5353
5436
|
background: var(--db-bg-hover);
|
|
5354
5437
|
}
|
|
5355
5438
|
|
|
5356
|
-
.db-shell .squisq-
|
|
5439
|
+
html:has(.db-shell) .squisq-toolbar-overflow-heading {
|
|
5357
5440
|
color: var(--db-text-muted);
|
|
5358
5441
|
}
|
|
5359
5442
|
|
|
5360
|
-
.db-shell .squisq-
|
|
5443
|
+
html:has(.db-shell) .squisq-toolbar-overflow-menu > .squisq-toolbar-separator {
|
|
5361
5444
|
background: var(--db-border);
|
|
5362
5445
|
}
|
|
5363
5446
|
|
|
5364
|
-
.db-shell .squisq-
|
|
5447
|
+
html:has(.db-shell) .squisq-toolbar-overflow-item--danger {
|
|
5365
5448
|
color: var(--db-danger);
|
|
5366
5449
|
}
|
|
5367
5450
|
|
|
5368
|
-
.db-shell .squisq-
|
|
5451
|
+
html:has(.db-shell) .squisq-toolbar-overflow-item--danger:hover {
|
|
5369
5452
|
background: var(--db-danger-bg);
|
|
5370
5453
|
color: var(--db-danger);
|
|
5371
5454
|
}
|
|
5372
5455
|
|
|
5373
|
-
.db-shell
|
|
5374
|
-
.squisq-editor-shell
|
|
5456
|
+
html:has(.db-shell)
|
|
5375
5457
|
.squisq-toolbar-overflow-menu
|
|
5376
5458
|
:is(.squisq-template-picker-trigger, .squisq-transition-picker-trigger) {
|
|
5377
5459
|
background: var(--db-bg-subtle);
|
|
@@ -5379,16 +5461,14 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
5379
5461
|
color: var(--db-text-secondary);
|
|
5380
5462
|
}
|
|
5381
5463
|
|
|
5382
|
-
.db-shell
|
|
5383
|
-
.squisq-editor-shell
|
|
5464
|
+
html:has(.db-shell)
|
|
5384
5465
|
.squisq-toolbar-overflow-menu
|
|
5385
5466
|
:is(.squisq-template-picker-trigger, .squisq-transition-picker-trigger):hover {
|
|
5386
5467
|
background: var(--db-bg-hover);
|
|
5387
5468
|
border-color: var(--db-border-strong);
|
|
5388
5469
|
}
|
|
5389
5470
|
|
|
5390
|
-
.db-shell
|
|
5391
|
-
.squisq-editor-shell
|
|
5471
|
+
html:has(.db-shell)
|
|
5392
5472
|
.squisq-toolbar-overflow-menu
|
|
5393
5473
|
:is(.squisq-template-picker-trigger--open, .squisq-transition-picker-trigger--open) {
|
|
5394
5474
|
background: var(--db-bg-hover);
|
|
@@ -5396,66 +5476,64 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
5396
5476
|
outline-color: var(--db-accent-soft-25);
|
|
5397
5477
|
}
|
|
5398
5478
|
|
|
5399
|
-
.db-shell
|
|
5400
|
-
.squisq-editor-shell
|
|
5479
|
+
html:has(.db-shell)
|
|
5401
5480
|
.squisq-toolbar-overflow-menu
|
|
5402
5481
|
:is(.squisq-template-picker-trigger-label, .squisq-transition-picker-trigger-label),
|
|
5403
|
-
.db-shell
|
|
5404
|
-
.squisq-editor-shell
|
|
5482
|
+
html:has(.db-shell)
|
|
5405
5483
|
.squisq-toolbar-overflow-menu
|
|
5406
5484
|
:is(.squisq-template-picker-trigger-caret, .squisq-transition-picker-trigger svg) {
|
|
5407
5485
|
color: var(--db-text-muted);
|
|
5408
5486
|
}
|
|
5409
5487
|
|
|
5410
|
-
.db-shell
|
|
5411
|
-
.squisq-editor-shell
|
|
5488
|
+
html:has(.db-shell)
|
|
5412
5489
|
.squisq-toolbar-overflow-menu
|
|
5413
5490
|
:is(.squisq-template-picker-trigger-value, .squisq-transition-picker-trigger-value) {
|
|
5414
5491
|
color: var(--db-text-secondary);
|
|
5415
5492
|
}
|
|
5416
5493
|
|
|
5417
|
-
.db-shell .squisq-
|
|
5494
|
+
html:has(.db-shell) .squisq-toolbar-overflow-menu .squisq-template-picker-trigger-thumb {
|
|
5418
5495
|
background: var(--db-bg);
|
|
5419
5496
|
border-color: var(--db-border);
|
|
5420
5497
|
}
|
|
5421
5498
|
|
|
5422
|
-
/* View menu
|
|
5423
|
-
|
|
5424
|
-
|
|
5425
|
-
|
|
5426
|
-
|
|
5427
|
-
|
|
5499
|
+
/* View menu — portaled onto <body> like the overflow menu, so reached
|
|
5500
|
+
through `html:has(.db-shell)`. Squisq's dark appearance otherwise
|
|
5501
|
+
replaces its generic variables with a fixed slate-blue palette. Keep the
|
|
5502
|
+
popover and its controls on the same host palette as the DocBlocks app
|
|
5503
|
+
and overflow menus, including the native radio/checkbox selection color. */
|
|
5504
|
+
html:has(.db-shell) .squisq-view-menu-popover {
|
|
5505
|
+
background: var(--db-bg-raised);
|
|
5428
5506
|
border-color: var(--db-border);
|
|
5429
5507
|
box-shadow: 0 4px 12px var(--db-shadow);
|
|
5430
5508
|
color: var(--db-text-secondary);
|
|
5431
5509
|
}
|
|
5432
5510
|
|
|
5433
|
-
.db-shell .squisq-
|
|
5434
|
-
.db-shell .squisq-
|
|
5511
|
+
html:has(.db-shell) .squisq-view-menu-row:hover,
|
|
5512
|
+
html:has(.db-shell) .squisq-view-menu-radio-row:hover {
|
|
5435
5513
|
background: var(--db-bg-hover);
|
|
5436
5514
|
}
|
|
5437
5515
|
|
|
5438
|
-
.db-shell .squisq-
|
|
5439
|
-
.db-shell .squisq-
|
|
5516
|
+
html:has(.db-shell) .squisq-view-menu-row--select:hover,
|
|
5517
|
+
html:has(.db-shell) .squisq-view-menu-row--radios:hover {
|
|
5440
5518
|
background: transparent;
|
|
5441
5519
|
}
|
|
5442
5520
|
|
|
5443
|
-
.db-shell .squisq-
|
|
5444
|
-
.db-shell .squisq-
|
|
5521
|
+
html:has(.db-shell) .squisq-view-menu-row--select .squisq-view-menu-label,
|
|
5522
|
+
html:has(.db-shell) .squisq-view-menu-row--radios > .squisq-view-menu-label {
|
|
5445
5523
|
color: var(--db-text-muted);
|
|
5446
5524
|
}
|
|
5447
5525
|
|
|
5448
|
-
.db-shell .squisq-
|
|
5526
|
+
html:has(.db-shell) .squisq-view-menu-select {
|
|
5449
5527
|
background: var(--db-bg-subtle);
|
|
5450
5528
|
border-color: var(--db-border);
|
|
5451
5529
|
color: var(--db-text-secondary);
|
|
5452
5530
|
}
|
|
5453
5531
|
|
|
5454
|
-
.db-shell .squisq-
|
|
5532
|
+
html:has(.db-shell) .squisq-view-menu-separator {
|
|
5455
5533
|
background: var(--db-border);
|
|
5456
5534
|
}
|
|
5457
5535
|
|
|
5458
|
-
.db-shell
|
|
5536
|
+
html:has(.db-shell) :is(.squisq-view-menu-checkbox, .squisq-view-menu-radio) {
|
|
5459
5537
|
accent-color: var(--db-accent);
|
|
5460
5538
|
}
|
|
5461
5539
|
|
|
@@ -5539,7 +5617,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
5539
5617
|
}
|
|
5540
5618
|
|
|
5541
5619
|
.db-shell[data-theme='dark'] .squisq-version-history-popover {
|
|
5542
|
-
background: var(--db-bg);
|
|
5620
|
+
background: var(--db-bg-raised);
|
|
5543
5621
|
border-color: var(--db-border);
|
|
5544
5622
|
color: var(--db-text);
|
|
5545
5623
|
}
|
|
@@ -5578,7 +5656,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
5578
5656
|
gap: 12px;
|
|
5579
5657
|
max-width: min(640px, calc(100% - 32px));
|
|
5580
5658
|
padding: 10px 10px 10px 16px;
|
|
5581
|
-
background: var(--db-bg);
|
|
5659
|
+
background: var(--db-bg-raised);
|
|
5582
5660
|
border: 1px solid var(--db-border-strong);
|
|
5583
5661
|
border-radius: 10px;
|
|
5584
5662
|
box-shadow: 0 10px 32px var(--db-shadow);
|
|
@@ -6229,7 +6307,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
6229
6307
|
box-sizing: border-box;
|
|
6230
6308
|
overflow-y: auto;
|
|
6231
6309
|
border-left: 1px solid var(--db-border-strong);
|
|
6232
|
-
background: var(--db-bg);
|
|
6310
|
+
background: var(--db-bg-raised);
|
|
6233
6311
|
color: var(--db-text-secondary);
|
|
6234
6312
|
font: 13px/1.45 var(--db-ui-font);
|
|
6235
6313
|
}
|
|
@@ -6252,7 +6330,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
6252
6330
|
gap: 12px;
|
|
6253
6331
|
padding: 14px 14px 10px;
|
|
6254
6332
|
border-bottom: 1px solid var(--db-border);
|
|
6255
|
-
background: var(--db-bg);
|
|
6333
|
+
background: var(--db-bg-raised);
|
|
6256
6334
|
}
|
|
6257
6335
|
|
|
6258
6336
|
.db-ai-review-header h2 {
|
|
@@ -6675,7 +6753,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
6675
6753
|
left: 8px;
|
|
6676
6754
|
right: 8px;
|
|
6677
6755
|
z-index: 100;
|
|
6678
|
-
background: var(--db-bg);
|
|
6756
|
+
background: var(--db-bg-raised);
|
|
6679
6757
|
border: 1px solid var(--db-border);
|
|
6680
6758
|
border-radius: 6px;
|
|
6681
6759
|
box-shadow: 0 4px 12px var(--db-shadow);
|
|
@@ -6884,6 +6962,91 @@ button.db-git-file-row:hover {
|
|
|
6884
6962
|
margin: 10px 0;
|
|
6885
6963
|
}
|
|
6886
6964
|
|
|
6965
|
+
.db-new-document-hint {
|
|
6966
|
+
grid-column: 2;
|
|
6967
|
+
margin: -4px 0 0;
|
|
6968
|
+
color: var(--db-text-muted);
|
|
6969
|
+
font-size: 12px;
|
|
6970
|
+
line-height: 1.4;
|
|
6971
|
+
}
|
|
6972
|
+
|
|
6973
|
+
/* ── Keyboard shortcut sheet ─────────────────────────────────── */
|
|
6974
|
+
|
|
6975
|
+
/* Two columns of sections on a desktop screen, so the sheet reads at a
|
|
6976
|
+
glance instead of scrolling; one column on narrow windows. */
|
|
6977
|
+
.db-dialog.db-shortcuts-dialog {
|
|
6978
|
+
width: 780px;
|
|
6979
|
+
max-height: min(calc(100dvh - 32px), 780px);
|
|
6980
|
+
}
|
|
6981
|
+
|
|
6982
|
+
.db-shortcuts {
|
|
6983
|
+
display: grid;
|
|
6984
|
+
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
6985
|
+
gap: 18px 32px;
|
|
6986
|
+
align-items: start;
|
|
6987
|
+
}
|
|
6988
|
+
|
|
6989
|
+
.db-shortcuts:focus-visible {
|
|
6990
|
+
outline: 2px solid var(--db-focus);
|
|
6991
|
+
outline-offset: 4px;
|
|
6992
|
+
}
|
|
6993
|
+
|
|
6994
|
+
.db-shortcuts-heading {
|
|
6995
|
+
margin: 0 0 6px;
|
|
6996
|
+
color: var(--db-text);
|
|
6997
|
+
font-size: 13px;
|
|
6998
|
+
font-weight: 600;
|
|
6999
|
+
}
|
|
7000
|
+
|
|
7001
|
+
.db-shortcuts-list {
|
|
7002
|
+
margin: 0;
|
|
7003
|
+
}
|
|
7004
|
+
|
|
7005
|
+
.db-shortcuts-row {
|
|
7006
|
+
display: flex;
|
|
7007
|
+
align-items: baseline;
|
|
7008
|
+
justify-content: space-between;
|
|
7009
|
+
gap: 12px;
|
|
7010
|
+
padding: 4px 0;
|
|
7011
|
+
border-bottom: 1px solid var(--db-border);
|
|
7012
|
+
}
|
|
7013
|
+
|
|
7014
|
+
.db-shortcuts-action {
|
|
7015
|
+
color: var(--db-text-secondary);
|
|
7016
|
+
font-size: 13px;
|
|
7017
|
+
}
|
|
7018
|
+
|
|
7019
|
+
.db-shortcuts-keys {
|
|
7020
|
+
display: flex;
|
|
7021
|
+
flex-wrap: wrap;
|
|
7022
|
+
align-items: baseline;
|
|
7023
|
+
justify-content: flex-end;
|
|
7024
|
+
gap: 4px;
|
|
7025
|
+
margin: 0;
|
|
7026
|
+
white-space: nowrap;
|
|
7027
|
+
}
|
|
7028
|
+
|
|
7029
|
+
.db-shortcuts-or {
|
|
7030
|
+
color: var(--db-text-muted);
|
|
7031
|
+
font-size: 12px;
|
|
7032
|
+
}
|
|
7033
|
+
|
|
7034
|
+
.db-shortcuts-chord kbd {
|
|
7035
|
+
display: inline-block;
|
|
7036
|
+
min-width: 1.6em;
|
|
7037
|
+
margin-left: 2px;
|
|
7038
|
+
padding: 1px 5px;
|
|
7039
|
+
border: 1px solid var(--db-border-strong);
|
|
7040
|
+
border-bottom-width: 2px;
|
|
7041
|
+
border-radius: 4px;
|
|
7042
|
+
background: var(--db-bg-subtle);
|
|
7043
|
+
color: var(--db-text);
|
|
7044
|
+
font: inherit;
|
|
7045
|
+
font-size: 12px;
|
|
7046
|
+
line-height: 1.4;
|
|
7047
|
+
text-align: center;
|
|
7048
|
+
}
|
|
7049
|
+
|
|
6887
7050
|
.db-git-form-error,
|
|
6888
7051
|
.db-export-error {
|
|
6889
7052
|
margin: 8px 0 0;
|
|
@@ -7419,6 +7582,42 @@ button.db-git-file-row:hover {
|
|
|
7419
7582
|
color: var(--db-text-muted);
|
|
7420
7583
|
overflow-wrap: anywhere;
|
|
7421
7584
|
}
|
|
7585
|
+
.db-presentation-beat-tags {
|
|
7586
|
+
display: flex;
|
|
7587
|
+
flex-wrap: wrap;
|
|
7588
|
+
gap: 6px;
|
|
7589
|
+
max-width: 100%;
|
|
7590
|
+
}
|
|
7591
|
+
/* Marks the slide a request is open for, then every slide with AI wording. */
|
|
7592
|
+
.db-presentation-beats small.db-presentation-beat-ai {
|
|
7593
|
+
display: inline-flex;
|
|
7594
|
+
align-items: center;
|
|
7595
|
+
gap: 5px;
|
|
7596
|
+
background: var(--db-accent-soft-12);
|
|
7597
|
+
color: var(--db-accent-deep);
|
|
7598
|
+
}
|
|
7599
|
+
.db-presentation-beat-ai .db-ai-spinner {
|
|
7600
|
+
width: 10px;
|
|
7601
|
+
height: 10px;
|
|
7602
|
+
flex-basis: 10px;
|
|
7603
|
+
}
|
|
7604
|
+
/* While slides are being suggested, this takes the Suggest button's place in
|
|
7605
|
+
the footer, with Stop beside it, so progress sits where the action started. */
|
|
7606
|
+
.db-presentation-progress {
|
|
7607
|
+
display: inline-flex;
|
|
7608
|
+
align-items: center;
|
|
7609
|
+
flex-wrap: wrap;
|
|
7610
|
+
gap: 8px;
|
|
7611
|
+
min-width: 0;
|
|
7612
|
+
min-height: var(--db-target-min);
|
|
7613
|
+
color: var(--db-text-secondary);
|
|
7614
|
+
font: 600 12px/1.2 var(--db-ui-font);
|
|
7615
|
+
}
|
|
7616
|
+
.db-presentation-progress progress {
|
|
7617
|
+
width: 120px;
|
|
7618
|
+
height: 6px;
|
|
7619
|
+
accent-color: var(--db-accent);
|
|
7620
|
+
}
|
|
7422
7621
|
.db-presentation label.db-presentation-toggle {
|
|
7423
7622
|
display: flex;
|
|
7424
7623
|
flex-direction: row;
|