@trdrs/quickcharts 3.0.0 → 4.1.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.
- package/CHANGELOG.md +117 -0
- package/README.md +270 -30
- package/dist/{ar-HLKX6L6O.js → ar-VILLYPAA.js} +208 -56
- package/dist/ar-VILLYPAA.js.map +1 -0
- package/dist/{assets-C1VjN7DP.d.ts → assets-BF-NDyHl.d.ts} +288 -60
- package/dist/{ca_ES-3ALUJ2FI.js → ca_ES-EJXLAXOA.js} +208 -56
- package/dist/ca_ES-EJXLAXOA.js.map +1 -0
- package/dist/chunk-TBOVLJAK.js +12091 -0
- package/dist/chunk-TBOVLJAK.js.map +1 -0
- package/dist/{de-GXKOZYHP.js → de-PHID4SVN.js} +208 -56
- package/dist/de-PHID4SVN.js.map +1 -0
- package/dist/drawings.d.ts +34 -12
- package/dist/drawings.js +11 -1
- package/dist/{es-R7WSUWO2.js → es-KD4FBLOP.js} +208 -56
- package/dist/es-KD4FBLOP.js.map +1 -0
- package/dist/feature-manifest.json +74 -11
- package/dist/{fr-EBUMQLPT.js → fr-KTTX3FF3.js} +208 -56
- package/dist/fr-KTTX3FF3.js.map +1 -0
- package/dist/{he_IL-GCAXKEWB.js → he_IL-Z3DXMAKZ.js} +208 -56
- package/dist/he_IL-Z3DXMAKZ.js.map +1 -0
- package/dist/{id_ID-6JYEEKEA.js → id_ID-FFX6X4C5.js} +208 -56
- package/dist/id_ID-FFX6X4C5.js.map +1 -0
- package/dist/index.d.ts +1852 -1720
- package/dist/index.js +4664 -1870
- package/dist/index.js.map +1 -1
- package/dist/{it-IMLHI5VO.js → it-X2GFCLGU.js} +208 -56
- package/dist/it-X2GFCLGU.js.map +1 -0
- package/dist/{ja-QDEQ2EYA.js → ja-TG3WO2KH.js} +208 -56
- package/dist/ja-TG3WO2KH.js.map +1 -0
- package/dist/{ko-MTA7BZI3.js → ko-4HHHO7KV.js} +208 -56
- package/dist/ko-4HHHO7KV.js.map +1 -0
- package/dist/{ms_MY-K4EAHE5J.js → ms_MY-HPVQKVPY.js} +208 -56
- package/dist/ms_MY-HPVQKVPY.js.map +1 -0
- package/dist/{pl-CIIDQ3SB.js → pl-2W2HP34O.js} +208 -56
- package/dist/pl-2W2HP34O.js.map +1 -0
- package/dist/{pt-3HA2PDUN.js → pt-XQUBSXO7.js} +208 -56
- package/dist/pt-XQUBSXO7.js.map +1 -0
- package/dist/quickcharts.css +1660 -424
- package/dist/{ru-2F2VGHMW.js → ru-XKFQPFDM.js} +208 -56
- package/dist/ru-XKFQPFDM.js.map +1 -0
- package/dist/{sv-HCBRKFRZ.js → sv-ZMEGAPCR.js} +208 -56
- package/dist/sv-ZMEGAPCR.js.map +1 -0
- package/dist/{th-WWPM2QKB.js → th-4735BUT4.js} +208 -56
- package/dist/th-4735BUT4.js.map +1 -0
- package/dist/theme-manifest.json +148 -14
- package/dist/{tr-M57AMCWK.js → tr-PG3CW2L3.js} +208 -56
- package/dist/tr-PG3CW2L3.js.map +1 -0
- package/dist/{vi-YJHN2OK7.js → vi-YPRIAJ33.js} +208 -56
- package/dist/vi-YPRIAJ33.js.map +1 -0
- package/dist/{zh-AIFC65OE.js → zh-RVHEWNSW.js} +208 -56
- package/dist/zh-RVHEWNSW.js.map +1 -0
- package/dist/{zh_TW-2LLLW4H6.js → zh_TW-ZFJMDA64.js} +208 -56
- package/dist/zh_TW-ZFJMDA64.js.map +1 -0
- package/package.json +1 -1
- package/dist/ar-HLKX6L6O.js.map +0 -1
- package/dist/ca_ES-3ALUJ2FI.js.map +0 -1
- package/dist/chunk-DBJQXHLQ.js +0 -7003
- package/dist/chunk-DBJQXHLQ.js.map +0 -1
- package/dist/de-GXKOZYHP.js.map +0 -1
- package/dist/es-R7WSUWO2.js.map +0 -1
- package/dist/fr-EBUMQLPT.js.map +0 -1
- package/dist/he_IL-GCAXKEWB.js.map +0 -1
- package/dist/id_ID-6JYEEKEA.js.map +0 -1
- package/dist/it-IMLHI5VO.js.map +0 -1
- package/dist/ja-QDEQ2EYA.js.map +0 -1
- package/dist/ko-MTA7BZI3.js.map +0 -1
- package/dist/ms_MY-K4EAHE5J.js.map +0 -1
- package/dist/pl-CIIDQ3SB.js.map +0 -1
- package/dist/pt-3HA2PDUN.js.map +0 -1
- package/dist/ru-2F2VGHMW.js.map +0 -1
- package/dist/sv-HCBRKFRZ.js.map +0 -1
- package/dist/th-WWPM2QKB.js.map +0 -1
- package/dist/tr-M57AMCWK.js.map +0 -1
- package/dist/vi-YJHN2OK7.js.map +0 -1
- package/dist/zh-AIFC65OE.js.map +0 -1
- package/dist/zh_TW-2LLLW4H6.js.map +0 -1
package/dist/quickcharts.css
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
--qc-canvas-paneBorder: #ebebeb;
|
|
15
15
|
--qc-chrome-border: #ebebeb;
|
|
16
16
|
--qc-chrome-borderStrong: #8c8c8c;
|
|
17
|
-
--qc-chrome-caret: #
|
|
17
|
+
--qc-chrome-caret: #707070;
|
|
18
18
|
--qc-chrome-fieldBorder: #dbdbdb;
|
|
19
19
|
--qc-chrome-grip: #b8b8b8;
|
|
20
20
|
--qc-chrome-radius: 6px;
|
|
@@ -27,12 +27,19 @@
|
|
|
27
27
|
--qc-control-fieldFill: #f2f2f2;
|
|
28
28
|
--qc-control-fieldInvalid: #f23645;
|
|
29
29
|
--qc-control-mark: #ffffff;
|
|
30
|
+
--qc-control-neutral: #f2f2f2;
|
|
31
|
+
--qc-control-neutralHover: #ebebeb;
|
|
32
|
+
--qc-control-neutralInk: #000000;
|
|
33
|
+
--qc-control-neutralPressed: #dbdbdb;
|
|
30
34
|
--qc-control-off: #9c9c9c;
|
|
31
35
|
--qc-control-offHover: #8c8c8c;
|
|
32
36
|
--qc-control-offPressed: #b8b8b8;
|
|
33
37
|
--qc-control-on: #2e2e2e;
|
|
34
38
|
--qc-control-onHover: #4a4a4a;
|
|
39
|
+
--qc-control-onInk: #ffffff;
|
|
35
40
|
--qc-control-onPressed: #707070;
|
|
41
|
+
--qc-control-outline: #2e2e2e;
|
|
42
|
+
--qc-control-selectEdgeHover: #a8a8a8;
|
|
36
43
|
--qc-drawing-fill: rgba(41, 98, 255, 0.15);
|
|
37
44
|
--qc-drawing-handle: #ffffff;
|
|
38
45
|
--qc-drawing-line: #2962ff;
|
|
@@ -43,15 +50,17 @@
|
|
|
43
50
|
--qc-illustration-ink: #1e222d;
|
|
44
51
|
--qc-motion-durationBase: 150ms;
|
|
45
52
|
--qc-motion-durationFast: 90ms;
|
|
53
|
+
--qc-motion-durationGlide: 100ms;
|
|
46
54
|
--qc-motion-durationModerate: 250ms;
|
|
47
55
|
--qc-motion-durationSlow: 350ms;
|
|
48
56
|
--qc-motion-durationSlower: 500ms;
|
|
57
|
+
--qc-motion-easingInOut: ease-in-out;
|
|
49
58
|
--qc-motion-easingLinear: linear;
|
|
50
59
|
--qc-motion-easingOut: ease-out;
|
|
51
60
|
--qc-motion-easingSpring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
52
61
|
--qc-motion-easingStandard: ease;
|
|
53
62
|
--qc-motion-scaleEnter: 0.97;
|
|
54
|
-
--qc-overlay-scrim: rgba(
|
|
63
|
+
--qc-overlay-scrim: rgba(156, 156, 156, 0.5);
|
|
55
64
|
--qc-overlay-separator: #ebebeb;
|
|
56
65
|
--qc-overlay-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
57
66
|
--qc-overlay-surface: #ffffff;
|
|
@@ -80,14 +89,14 @@
|
|
|
80
89
|
--qc-state-selection: rgba(31, 86, 238, 0.18);
|
|
81
90
|
--qc-status-info: #1160c4;
|
|
82
91
|
--qc-status-loading: #787b86;
|
|
83
|
-
--qc-status-negative: #
|
|
84
|
-
--qc-status-positive: #
|
|
92
|
+
--qc-status-negative: #df323f;
|
|
93
|
+
--qc-status-positive: #078671;
|
|
85
94
|
--qc-status-sessionAfterHours: #f5a623;
|
|
86
95
|
--qc-status-sessionClosed: rgba(0, 0, 0, 0.35);
|
|
87
96
|
--qc-status-sessionExtended: #4c98fb;
|
|
88
97
|
--qc-status-sessionOpen: #22c55e;
|
|
89
98
|
--qc-status-sessionPreMarket: #4c98fb;
|
|
90
|
-
--qc-status-warning: #
|
|
99
|
+
--qc-status-warning: #ac6600;
|
|
91
100
|
--qc-text-disabled: #b8b8b8;
|
|
92
101
|
--qc-text-fontFamily: -apple-system, BlinkMacSystemFont, "Trebuchet MS", Roboto, Ubuntu, sans-serif;
|
|
93
102
|
--qc-text-fontSizeAxis: 13px;
|
|
@@ -98,7 +107,7 @@
|
|
|
98
107
|
--qc-text-highlight: #2962ff;
|
|
99
108
|
--qc-text-inverse: #ffffff;
|
|
100
109
|
--qc-text-link: #2962ff;
|
|
101
|
-
--qc-text-muted: #
|
|
110
|
+
--qc-text-muted: #6a6a6a;
|
|
102
111
|
--qc-text-onCanvas: #0f0f0f;
|
|
103
112
|
--qc-text-primary: #0f0f0f;
|
|
104
113
|
--qc-text-secondary: #4a4a4a;
|
|
@@ -122,25 +131,34 @@
|
|
|
122
131
|
--qc-control-fieldFill: #2e2e2e;
|
|
123
132
|
--qc-control-fieldInvalid: #f23645;
|
|
124
133
|
--qc-control-mark: #2e2e2e;
|
|
134
|
+
--qc-control-neutral: #2e2e2e;
|
|
135
|
+
--qc-control-neutralHover: #3d3d3d;
|
|
136
|
+
--qc-control-neutralInk: #ffffff;
|
|
137
|
+
--qc-control-neutralPressed: #4a4a4a;
|
|
125
138
|
--qc-control-off: #636363;
|
|
126
139
|
--qc-control-offHover: #707070;
|
|
127
140
|
--qc-control-offPressed: #636363;
|
|
128
141
|
--qc-control-on: #f2f2f2;
|
|
129
142
|
--qc-control-onHover: #dbdbdb;
|
|
143
|
+
--qc-control-onInk: #000000;
|
|
130
144
|
--qc-control-onPressed: #8c8c8c;
|
|
131
|
-
--qc-
|
|
145
|
+
--qc-control-outline: #ffffff;
|
|
146
|
+
--qc-control-selectEdgeHover: #808080;
|
|
147
|
+
--qc-drawing-fill: rgba(41, 98, 255, 0.15);
|
|
132
148
|
--qc-drawing-handle: #0f0f0f;
|
|
133
|
-
--qc-drawing-line: #
|
|
134
|
-
--qc-drawing-selected: #
|
|
149
|
+
--qc-drawing-line: #2962ff;
|
|
150
|
+
--qc-drawing-selected: #1e53e5;
|
|
135
151
|
--qc-drawing-text: #dbdbdb;
|
|
136
152
|
--qc-illustration-accent: #1976d2;
|
|
137
153
|
--qc-illustration-accentInk: #d1d4dc;
|
|
138
154
|
--qc-illustration-ink: #d1d4dc;
|
|
139
155
|
--qc-motion-durationBase: 150ms;
|
|
140
156
|
--qc-motion-durationFast: 90ms;
|
|
157
|
+
--qc-motion-durationGlide: 100ms;
|
|
141
158
|
--qc-motion-durationModerate: 250ms;
|
|
142
159
|
--qc-motion-durationSlow: 350ms;
|
|
143
160
|
--qc-motion-durationSlower: 500ms;
|
|
161
|
+
--qc-motion-easingInOut: ease-in-out;
|
|
144
162
|
--qc-motion-easingLinear: linear;
|
|
145
163
|
--qc-motion-easingOut: ease-out;
|
|
146
164
|
--qc-motion-easingSpring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
@@ -175,14 +193,14 @@
|
|
|
175
193
|
--qc-state-selection: rgba(82, 160, 252, 0.22);
|
|
176
194
|
--qc-status-info: #68a5ff;
|
|
177
195
|
--qc-status-loading: #787b86;
|
|
178
|
-
--qc-status-negative: #
|
|
196
|
+
--qc-status-negative: #f34452;
|
|
179
197
|
--qc-status-positive: #089981;
|
|
180
198
|
--qc-status-sessionAfterHours: #f5a623;
|
|
181
199
|
--qc-status-sessionClosed: rgba(255, 255, 255, 0.35);
|
|
182
200
|
--qc-status-sessionExtended: #4c98fb;
|
|
183
201
|
--qc-status-sessionOpen: #22c55e;
|
|
184
202
|
--qc-status-sessionPreMarket: #4c98fb;
|
|
185
|
-
--qc-status-warning: #
|
|
203
|
+
--qc-status-warning: #ff9800;
|
|
186
204
|
--qc-text-disabled: #575757;
|
|
187
205
|
--qc-text-fontFamily: -apple-system, BlinkMacSystemFont, "Trebuchet MS", Roboto, Ubuntu, sans-serif;
|
|
188
206
|
--qc-text-fontSizeAxis: 13px;
|
|
@@ -193,7 +211,7 @@
|
|
|
193
211
|
--qc-text-highlight: #5280ff;
|
|
194
212
|
--qc-text-inverse: #0f0f0f;
|
|
195
213
|
--qc-text-link: #5b9cf6;
|
|
196
|
-
--qc-text-muted: #
|
|
214
|
+
--qc-text-muted: #9b9b9b;
|
|
197
215
|
--qc-text-onCanvas: #dbdbdb;
|
|
198
216
|
--qc-text-primary: #dbdbdb;
|
|
199
217
|
--qc-text-secondary: #b8b8b8;
|
|
@@ -203,6 +221,7 @@
|
|
|
203
221
|
[data-qc-theme] {
|
|
204
222
|
--qc-motion-durationBase: 0ms !important;
|
|
205
223
|
--qc-motion-durationFast: 0ms !important;
|
|
224
|
+
--qc-motion-durationGlide: 0ms !important;
|
|
206
225
|
--qc-motion-durationModerate: 0ms !important;
|
|
207
226
|
--qc-motion-durationSlow: 0ms !important;
|
|
208
227
|
--qc-motion-durationSlower: 0ms !important;
|
|
@@ -230,12 +249,35 @@
|
|
|
230
249
|
* each chrome surface keeps its own recipes beside it.
|
|
231
250
|
*/
|
|
232
251
|
|
|
252
|
+
/* The root states every inherited value the chart's measurements are built on: its box model, its
|
|
253
|
+
* font and size, and the line height, weight, spacing, alignment and wrapping its words are set in.
|
|
254
|
+
* The widget's root and its layer on the document body both carry it. The dialogs, menus and panels
|
|
255
|
+
* on that layer stand inside the page's body, which would hand them whatever the page sets there (a
|
|
256
|
+
* line height, a weight, letter spacing); stated here, none of it reaches anything the chart draws. */
|
|
233
257
|
[data-qc-theme] {
|
|
234
258
|
position: relative;
|
|
235
259
|
box-sizing: border-box;
|
|
236
260
|
color: var(--qc-text-primary);
|
|
237
261
|
font-family: var(--qc-text-fontFamily);
|
|
238
262
|
font-size: var(--qc-text-fontSizeBase);
|
|
263
|
+
font-style: normal;
|
|
264
|
+
font-weight: 400;
|
|
265
|
+
font-stretch: normal;
|
|
266
|
+
font-variant: normal;
|
|
267
|
+
font-feature-settings: normal;
|
|
268
|
+
font-variation-settings: normal;
|
|
269
|
+
font-kerning: auto;
|
|
270
|
+
line-height: normal;
|
|
271
|
+
letter-spacing: normal;
|
|
272
|
+
word-spacing: normal;
|
|
273
|
+
text-align: start;
|
|
274
|
+
text-indent: 0;
|
|
275
|
+
text-transform: none;
|
|
276
|
+
text-rendering: auto;
|
|
277
|
+
white-space: normal;
|
|
278
|
+
word-break: normal;
|
|
279
|
+
overflow-wrap: normal;
|
|
280
|
+
hyphens: manual;
|
|
239
281
|
background: var(--qc-canvas-background);
|
|
240
282
|
}
|
|
241
283
|
|
|
@@ -245,6 +287,16 @@
|
|
|
245
287
|
box-sizing: inherit;
|
|
246
288
|
}
|
|
247
289
|
|
|
290
|
+
/* Every control reads in the chart's font: a button, a field or a list takes the root's family rather
|
|
291
|
+
* than the browser's own control font, whatever words it shows or holds. A recipe that sets a size
|
|
292
|
+
* or a weight keeps it, and one that names a family of its own outranks this. */
|
|
293
|
+
[data-qc-theme] button,
|
|
294
|
+
[data-qc-theme] input,
|
|
295
|
+
[data-qc-theme] select,
|
|
296
|
+
[data-qc-theme] textarea {
|
|
297
|
+
font-family: inherit;
|
|
298
|
+
}
|
|
299
|
+
|
|
248
300
|
/* Surfaces ------------------------------------------------------------------------------------ */
|
|
249
301
|
|
|
250
302
|
[data-qc-theme] .qc-surface {
|
|
@@ -380,7 +432,7 @@
|
|
|
380
432
|
}
|
|
381
433
|
|
|
382
434
|
/* A field that cannot be edited stands on the read-only fill, its edge at rest under the pointer. A
|
|
383
|
-
* disabled one stands its words back too. */
|
|
435
|
+
* disabled one stands its words back too, in the disabled ink. */
|
|
384
436
|
[data-qc-theme] .qc-field[readonly] {
|
|
385
437
|
background: var(--qc-control-fieldFill);
|
|
386
438
|
border-color: var(--qc-control-fieldEdge);
|
|
@@ -388,7 +440,7 @@
|
|
|
388
440
|
|
|
389
441
|
[data-qc-theme] .qc-field:disabled,
|
|
390
442
|
[data-qc-theme] .qc-field[aria-disabled='true'] {
|
|
391
|
-
color: var(--qc-text-
|
|
443
|
+
color: var(--qc-text-disabled);
|
|
392
444
|
background: var(--qc-control-fieldFill);
|
|
393
445
|
border-color: var(--qc-control-fieldEdge);
|
|
394
446
|
cursor: default;
|
|
@@ -418,7 +470,7 @@
|
|
|
418
470
|
box-shadow: inset 0 0 0 1px var(--qc-control-fieldInvalid);
|
|
419
471
|
}
|
|
420
472
|
|
|
421
|
-
/* A select draws its own chevron: the 18px mark in the
|
|
473
|
+
/* A select draws its own chevron: the 18px mark in the caret ink, in a 20 by 28 slot 2px in from the
|
|
422
474
|
* end of the box. A native select gives up the slot's room and takes the press the slot lets
|
|
423
475
|
* through; a list button lays the slot out after its face and turns the mark while its list is open,
|
|
424
476
|
* keyed on its own state, so a list button inside some other open thing does not turn. */
|
|
@@ -442,7 +494,7 @@
|
|
|
442
494
|
justify-content: center;
|
|
443
495
|
width: 20px;
|
|
444
496
|
height: 28px;
|
|
445
|
-
color: var(--qc-
|
|
497
|
+
color: var(--qc-chrome-caret);
|
|
446
498
|
pointer-events: none;
|
|
447
499
|
}
|
|
448
500
|
|
|
@@ -453,7 +505,7 @@
|
|
|
453
505
|
}
|
|
454
506
|
|
|
455
507
|
[data-qc-theme] .qc-select-chevron > svg {
|
|
456
|
-
transition: rotate var(--qc-motion-durationSlow) var(--qc-motion-
|
|
508
|
+
transition: rotate var(--qc-motion-durationSlow) var(--qc-motion-easingStandard);
|
|
457
509
|
}
|
|
458
510
|
|
|
459
511
|
[data-qc-theme] [aria-expanded='true'] > .qc-select-chevron > svg {
|
|
@@ -1892,12 +1944,45 @@
|
|
|
1892
1944
|
|
|
1893
1945
|
/* The inline text editor over the pane, the glyph picker and the image picker. */
|
|
1894
1946
|
|
|
1895
|
-
/* The editor
|
|
1896
|
-
*
|
|
1897
|
-
* role, so it reads as the field it is without a fill hiding the chart. */
|
|
1947
|
+
/* The text editor over the pane. Its place, size and type are written by the editor, because they
|
|
1948
|
+
* are the words' own. */
|
|
1898
1949
|
[data-qc-theme] .qc-drawing-text-editor {
|
|
1899
1950
|
position: absolute;
|
|
1900
1951
|
z-index: 8;
|
|
1952
|
+
margin: 0;
|
|
1953
|
+
resize: none;
|
|
1954
|
+
pointer-events: auto;
|
|
1955
|
+
}
|
|
1956
|
+
|
|
1957
|
+
/* Over a drawing that types its words on the chart, the field is seen by nobody: the chart paints
|
|
1958
|
+
* the words, the caret, the selection and the placeholder, and the field only takes the keys. It
|
|
1959
|
+
* lies exactly over the painted words, 2px of padding around their block, in their own type with
|
|
1960
|
+
* nothing of its own (no spacing, features or decoration) that would part its caret from them. */
|
|
1961
|
+
[data-qc-theme] .qc-drawing-text-editor[data-qc-editor='inline'] {
|
|
1962
|
+
box-sizing: border-box;
|
|
1963
|
+
min-width: 0;
|
|
1964
|
+
max-width: none;
|
|
1965
|
+
padding: 2px;
|
|
1966
|
+
overflow: hidden;
|
|
1967
|
+
overflow-wrap: break-word;
|
|
1968
|
+
color: inherit;
|
|
1969
|
+
font-feature-settings: normal;
|
|
1970
|
+
font-kerning: auto;
|
|
1971
|
+
letter-spacing: normal;
|
|
1972
|
+
word-spacing: normal;
|
|
1973
|
+
text-indent: 0;
|
|
1974
|
+
text-transform: none;
|
|
1975
|
+
background: none;
|
|
1976
|
+
border: 0;
|
|
1977
|
+
outline: none;
|
|
1978
|
+
box-shadow: none;
|
|
1979
|
+
opacity: 0;
|
|
1980
|
+
}
|
|
1981
|
+
|
|
1982
|
+
/* Over any other drawing, the editor is a box at the drawing's own text position in the drawing's
|
|
1983
|
+
* own type, its size following the content. The ring is the focus role, so it reads as the field it
|
|
1984
|
+
* is without a fill hiding the chart. */
|
|
1985
|
+
[data-qc-theme] .qc-drawing-text-editor[data-qc-editor='box'] {
|
|
1901
1986
|
padding: 3px 6px;
|
|
1902
1987
|
overflow: hidden;
|
|
1903
1988
|
text-align: center;
|
|
@@ -1907,11 +1992,9 @@
|
|
|
1907
1992
|
border-radius: 2px;
|
|
1908
1993
|
outline: none;
|
|
1909
1994
|
box-shadow: 0 0 0 1px var(--qc-state-focusRing);
|
|
1910
|
-
resize: none;
|
|
1911
|
-
pointer-events: auto;
|
|
1912
1995
|
}
|
|
1913
1996
|
|
|
1914
|
-
[data-qc-theme] .qc-drawing-text-editor::placeholder {
|
|
1997
|
+
[data-qc-theme] .qc-drawing-text-editor[data-qc-editor='box']::placeholder {
|
|
1915
1998
|
color: var(--qc-text-muted);
|
|
1916
1999
|
}
|
|
1917
2000
|
|
|
@@ -2065,7 +2148,7 @@
|
|
|
2065
2148
|
color: var(--qc-text-primary);
|
|
2066
2149
|
background: var(--qc-chrome-surfaceRaised);
|
|
2067
2150
|
border: 1px dashed var(--qc-chrome-borderStrong);
|
|
2068
|
-
border-radius:
|
|
2151
|
+
border-radius: 4px;
|
|
2069
2152
|
cursor: pointer;
|
|
2070
2153
|
}
|
|
2071
2154
|
|
|
@@ -2081,16 +2164,21 @@
|
|
|
2081
2164
|
object-fit: contain;
|
|
2082
2165
|
}
|
|
2083
2166
|
|
|
2167
|
+
/* The words a drop box states: its call at 16 on 24 with 8px around it and 8px under it, then the
|
|
2168
|
+
* formats and the size at 14 on 21 in the secondary ink. */
|
|
2084
2169
|
[data-qc-theme] .qc-drawing-drop-words {
|
|
2085
2170
|
display: flex;
|
|
2086
2171
|
flex-direction: column;
|
|
2087
|
-
gap: 4px;
|
|
2088
2172
|
align-items: center;
|
|
2089
|
-
font-size: var(--qc-text-
|
|
2173
|
+
font-size: var(--qc-text-fontSizeBase);
|
|
2174
|
+
line-height: 21px;
|
|
2090
2175
|
}
|
|
2091
2176
|
|
|
2092
2177
|
[data-qc-theme] .qc-drawing-drop-title {
|
|
2093
|
-
|
|
2178
|
+
margin-bottom: 8px;
|
|
2179
|
+
padding: 8px;
|
|
2180
|
+
font-size: 16px;
|
|
2181
|
+
line-height: 24px;
|
|
2094
2182
|
}
|
|
2095
2183
|
|
|
2096
2184
|
[data-qc-theme] .qc-drawing-file {
|
|
@@ -2151,33 +2239,167 @@
|
|
|
2151
2239
|
cursor: default;
|
|
2152
2240
|
}
|
|
2153
2241
|
|
|
2154
|
-
/*
|
|
2155
|
-
*
|
|
2242
|
+
/* On a settings page a row lays out nothing of its own: its label and its controls are the grid's
|
|
2243
|
+
* two cells, each 50px tall around a 34px control. A label stands 20px clear of the controls and
|
|
2244
|
+
* wraps rather than cutting a word short; the controls stand 8px apart. */
|
|
2245
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-row {
|
|
2246
|
+
display: contents;
|
|
2247
|
+
}
|
|
2248
|
+
|
|
2249
|
+
[data-qc-theme] .qc-drawing-page .qc-drawing-row-label {
|
|
2250
|
+
display: flex;
|
|
2251
|
+
align-items: center;
|
|
2252
|
+
min-width: 0;
|
|
2253
|
+
min-height: 50px;
|
|
2254
|
+
padding: 8px 20px 8px 0;
|
|
2255
|
+
overflow: visible;
|
|
2256
|
+
color: var(--qc-text-primary);
|
|
2257
|
+
white-space: normal;
|
|
2258
|
+
overflow-wrap: break-word;
|
|
2259
|
+
}
|
|
2260
|
+
|
|
2261
|
+
[data-qc-theme] .qc-drawing-page .qc-drawing-row-controls {
|
|
2262
|
+
flex-wrap: nowrap;
|
|
2263
|
+
gap: 8px;
|
|
2264
|
+
min-width: 0;
|
|
2265
|
+
min-height: 50px;
|
|
2266
|
+
padding: 8px 0;
|
|
2267
|
+
}
|
|
2268
|
+
|
|
2269
|
+
/* A checkbox row: the 18px box 8px before its words, across both columns in a 50px row. */
|
|
2270
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-toggle {
|
|
2271
|
+
min-height: 50px;
|
|
2272
|
+
}
|
|
2273
|
+
|
|
2274
|
+
[data-qc-theme] .qc-drawing-row-full {
|
|
2275
|
+
display: flex;
|
|
2276
|
+
align-items: center;
|
|
2277
|
+
gap: 8px;
|
|
2278
|
+
min-height: 50px;
|
|
2279
|
+
padding: 8px 0;
|
|
2280
|
+
}
|
|
2281
|
+
|
|
2282
|
+
/* A section title: 11px capitals in the muted ink, in a 32px row, or in a field row's 50px where it
|
|
2283
|
+
* heads a list of inputs. */
|
|
2284
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-section {
|
|
2285
|
+
display: flex;
|
|
2286
|
+
align-items: center;
|
|
2287
|
+
height: 32px;
|
|
2288
|
+
padding: 0;
|
|
2289
|
+
letter-spacing: normal;
|
|
2290
|
+
}
|
|
2291
|
+
|
|
2292
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-section--row {
|
|
2293
|
+
height: 50px;
|
|
2294
|
+
}
|
|
2295
|
+
|
|
2296
|
+
/* A checkbox row in a list of inputs stands 34px, 8px around its box. */
|
|
2297
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-toggle--compact {
|
|
2298
|
+
min-height: 34px;
|
|
2299
|
+
}
|
|
2300
|
+
|
|
2301
|
+
/* A row nested under the switch before it sets its label, or its labelling checkbox, 26px in. */
|
|
2302
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-row--nested > .qc-drawing-row-label {
|
|
2303
|
+
padding-inline-start: 26px;
|
|
2304
|
+
}
|
|
2305
|
+
|
|
2306
|
+
/* A band on one line: its switch 16px before its name, then its multiplier 8px after the name. */
|
|
2307
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-band-row > .qc-drawing-toggle {
|
|
2308
|
+
gap: 16px;
|
|
2309
|
+
}
|
|
2310
|
+
|
|
2311
|
+
[data-qc-theme] .qc-drawing-group-gap {
|
|
2312
|
+
height: 16px;
|
|
2313
|
+
}
|
|
2314
|
+
|
|
2315
|
+
/* The text fields, list buttons and number fields are the chart's 34px field box; these rules give
|
|
2316
|
+
* them their widths and lay a list button's face out: its words 8px in, cut short with an ellipsis,
|
|
2317
|
+
* then the chevron's slot 2px from the end. */
|
|
2156
2318
|
[data-qc-theme] .qc-drawing-select {
|
|
2157
|
-
|
|
2319
|
+
display: inline-flex;
|
|
2320
|
+
flex: 0 0 auto;
|
|
2321
|
+
align-items: center;
|
|
2322
|
+
width: 100px;
|
|
2323
|
+
padding: 0 2px 0 7px;
|
|
2324
|
+
text-align: start;
|
|
2325
|
+
cursor: pointer;
|
|
2326
|
+
}
|
|
2327
|
+
|
|
2328
|
+
/* A list button's edge steps further under the pointer than another field's, below the states that
|
|
2329
|
+
* outrank the pointer: a field that cannot be used, a refused value and the keyboard's ring. */
|
|
2330
|
+
[data-qc-theme] .qc-drawing-select:hover:not(:disabled):not([aria-invalid='true']):not(:focus-visible) {
|
|
2331
|
+
border-color: var(--qc-control-selectEdgeHover);
|
|
2332
|
+
}
|
|
2333
|
+
|
|
2334
|
+
[data-qc-theme] .qc-drawing-select[data-width='medium'] {
|
|
2335
|
+
width: 150px;
|
|
2336
|
+
}
|
|
2337
|
+
|
|
2338
|
+
[data-qc-theme] .qc-drawing-select[data-width='wide'] {
|
|
2339
|
+
width: 180px;
|
|
2340
|
+
}
|
|
2341
|
+
|
|
2342
|
+
[data-qc-theme] .qc-drawing-select-value {
|
|
2343
|
+
flex: 1 1 auto;
|
|
2344
|
+
min-width: 0;
|
|
2345
|
+
padding-inline-end: 6px;
|
|
2346
|
+
overflow: hidden;
|
|
2347
|
+
text-overflow: ellipsis;
|
|
2348
|
+
white-space: nowrap;
|
|
2349
|
+
}
|
|
2350
|
+
|
|
2351
|
+
/* A list's rows: 32px, the words at 14 on 18 and 8px in; a row with a mark carries the 28px mark 4px
|
|
2352
|
+
* in and its name 6px after it; a row of a list of switches carries the settings rows' 18px checkbox
|
|
2353
|
+
* 8px in and its name 10px after it. The chosen row of a list of choices inverts; a ticked switch
|
|
2354
|
+
* keeps the list's ground, its box saying it is on. A list button's list is as wide as its
|
|
2355
|
+
* longest row, never narrower than the button that opened it (the button sets that floor, and a
|
|
2356
|
+
* list of switches is held to the button's own width). */
|
|
2357
|
+
[data-qc-theme] .qc-drawing-menu.qc-drawing-select-list {
|
|
2358
|
+
width: max-content;
|
|
2359
|
+
min-width: 0;
|
|
2360
|
+
}
|
|
2361
|
+
|
|
2362
|
+
[data-qc-theme] .qc-drawing-list-row {
|
|
2363
|
+
height: 32px;
|
|
2364
|
+
gap: 0;
|
|
2365
|
+
padding: 0 8px;
|
|
2366
|
+
line-height: 18px;
|
|
2367
|
+
border-radius: 6px;
|
|
2368
|
+
}
|
|
2369
|
+
|
|
2370
|
+
[data-qc-theme] .qc-drawing-list-row--mark {
|
|
2371
|
+
gap: 6px;
|
|
2372
|
+
padding: 0 14px 0 4px;
|
|
2373
|
+
}
|
|
2374
|
+
|
|
2375
|
+
[data-qc-theme] .qc-drawing-list-row--check {
|
|
2376
|
+
gap: 10px;
|
|
2377
|
+
padding: 0 8px;
|
|
2158
2378
|
}
|
|
2159
2379
|
|
|
2160
2380
|
[data-qc-theme] .qc-drawing-input[data-width='short'] {
|
|
2161
2381
|
width: 96px;
|
|
2162
2382
|
}
|
|
2163
2383
|
|
|
2164
|
-
|
|
2384
|
+
/* The text area is the field box 100px tall across the page, 172px for a tool that is its words (a
|
|
2385
|
+
* text, a note, a callout), its words 8px in from the sides and 5px from the top. */
|
|
2386
|
+
[data-qc-theme] .qc-drawing-textarea {
|
|
2165
2387
|
width: 100%;
|
|
2388
|
+
height: 100px;
|
|
2389
|
+
margin: 0;
|
|
2390
|
+
padding: 4px 7px;
|
|
2391
|
+
resize: none;
|
|
2166
2392
|
}
|
|
2167
2393
|
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
width: 100%;
|
|
2171
|
-
height: auto;
|
|
2172
|
-
min-height: 80px;
|
|
2173
|
-
margin-top: 4px;
|
|
2174
|
-
padding: 7px;
|
|
2175
|
-
resize: vertical;
|
|
2394
|
+
[data-qc-theme] .qc-drawing-textarea[data-size='tall'] {
|
|
2395
|
+
height: 172px;
|
|
2176
2396
|
}
|
|
2177
2397
|
|
|
2178
|
-
/* The number field
|
|
2179
|
-
*
|
|
2180
|
-
*
|
|
2398
|
+
/* The number field keeps the end of its box for its steppers whether they show or not: a 22 by 28
|
|
2399
|
+
* slot 2px in from the edge, the words stopping 2px short of it, the arrows revealed on hover or
|
|
2400
|
+
* focus. A field that cannot be used keeps no slot and shows no arrows, its words running to 4px
|
|
2401
|
+
* from its edge. The pointer on a stepper is on the field, so the edge steps up there too, at the
|
|
2402
|
+
* weight of the field's own pointer state. */
|
|
2181
2403
|
[data-qc-theme] .qc-drawing-number-wrap {
|
|
2182
2404
|
position: relative;
|
|
2183
2405
|
display: inline-flex;
|
|
@@ -2195,13 +2417,17 @@
|
|
|
2195
2417
|
width: 84px;
|
|
2196
2418
|
}
|
|
2197
2419
|
|
|
2420
|
+
[data-qc-theme] .qc-drawing-number-wrap[data-width='field'] {
|
|
2421
|
+
width: 100px;
|
|
2422
|
+
}
|
|
2423
|
+
|
|
2198
2424
|
[data-qc-theme] .qc-drawing-number-wrap[data-width='wide'] {
|
|
2199
2425
|
width: 112px;
|
|
2200
2426
|
}
|
|
2201
2427
|
|
|
2202
2428
|
[data-qc-theme] .qc-drawing-number {
|
|
2203
2429
|
width: 100%;
|
|
2204
|
-
padding-inline-end:
|
|
2430
|
+
padding-inline-end: 28px;
|
|
2205
2431
|
font-variant-numeric: tabular-nums;
|
|
2206
2432
|
appearance: textfield;
|
|
2207
2433
|
}
|
|
@@ -2225,6 +2451,14 @@
|
|
|
2225
2451
|
display: flex;
|
|
2226
2452
|
}
|
|
2227
2453
|
|
|
2454
|
+
[data-qc-theme] .qc-drawing-number:disabled {
|
|
2455
|
+
padding-inline-end: 4px;
|
|
2456
|
+
}
|
|
2457
|
+
|
|
2458
|
+
[data-qc-theme] .qc-drawing-number:disabled + .qc-drawing-steppers {
|
|
2459
|
+
display: none;
|
|
2460
|
+
}
|
|
2461
|
+
|
|
2228
2462
|
[data-qc-theme] .qc-drawing-stepper {
|
|
2229
2463
|
display: flex;
|
|
2230
2464
|
align-items: center;
|
|
@@ -2232,11 +2466,12 @@
|
|
|
2232
2466
|
width: 22px;
|
|
2233
2467
|
height: 14px;
|
|
2234
2468
|
padding: 0;
|
|
2235
|
-
color: var(--qc-
|
|
2469
|
+
color: var(--qc-chrome-caret);
|
|
2236
2470
|
background: none;
|
|
2237
2471
|
border: 0;
|
|
2238
|
-
border-radius:
|
|
2472
|
+
border-radius: 4px;
|
|
2239
2473
|
cursor: pointer;
|
|
2474
|
+
transition: color var(--qc-motion-durationSlow) var(--qc-motion-easingStandard), background-color var(--qc-motion-durationSlow) var(--qc-motion-easingStandard);
|
|
2240
2475
|
}
|
|
2241
2476
|
|
|
2242
2477
|
[data-qc-theme] .qc-drawing-stepper[data-up='true'] svg {
|
|
@@ -2245,29 +2480,63 @@
|
|
|
2245
2480
|
|
|
2246
2481
|
[data-qc-theme] .qc-drawing-stepper:hover {
|
|
2247
2482
|
color: var(--qc-text-primary);
|
|
2248
|
-
background: var(--qc-state-
|
|
2483
|
+
background: var(--qc-state-pressed);
|
|
2484
|
+
}
|
|
2485
|
+
|
|
2486
|
+
/* The color popover and the shared color control inside it.
|
|
2487
|
+
*
|
|
2488
|
+
* The popover hangs under the swatch button that opened it, as wide as what it holds wherever it
|
|
2489
|
+
* opens, a 6px corner on the overlay ground, its column 6px clear of its top and bottom: the
|
|
2490
|
+
* palette, then for a stroke the Thickness and Line style rows. It never narrows to the room it
|
|
2491
|
+
* finds: the placement moves it to stay inside the box instead. A color button holding its popover
|
|
2492
|
+
* open rings itself as a field with the keyboard does. */
|
|
2493
|
+
[data-qc-theme] .qc-drawing-popover--color {
|
|
2494
|
+
width: max-content;
|
|
2495
|
+
max-width: none;
|
|
2249
2496
|
}
|
|
2250
2497
|
|
|
2251
|
-
|
|
2498
|
+
[data-qc-theme] .qc-drawing-color-popover {
|
|
2499
|
+
padding: 6px 0;
|
|
2500
|
+
}
|
|
2501
|
+
|
|
2502
|
+
[data-qc-theme] .qc-drawing-swatch-button[aria-expanded='true'] {
|
|
2503
|
+
border-color: var(--qc-state-focusRing);
|
|
2504
|
+
box-shadow: inset 0 0 0 1px var(--qc-state-focusRing);
|
|
2505
|
+
}
|
|
2506
|
+
|
|
2507
|
+
/* The palette is 224px wide, 6px clear of what stands above and below it and 12px clear of either
|
|
2508
|
+
* side: a ten-wide grid of 17px cells, each carrying its own 3px gutter, in blocks that keep 6px
|
|
2509
|
+
* under them (the greys and the ten hues; the six ramps; the colors this viewer mixed with the plus
|
|
2510
|
+
* after them), a 1px rule 12px clear of the blocks either side, and the opacity under a 12px muted
|
|
2511
|
+
* title. The blocks pull their outer gutters back past the palette's sides, and the rule and the
|
|
2512
|
+
* title stand clear by their own margins, which take a block's in.
|
|
2513
|
+
*
|
|
2514
|
+
* The room either side is margin rather than padding, so the 224px is the palette's own box under
|
|
2515
|
+
* either box model. A page's unlayered rule outranks any box-sizing this layered sheet could state,
|
|
2516
|
+
* and a page that sizes every element by its border box would take padding out of the grid's 224px;
|
|
2517
|
+
* margin it leaves alone, so the palette, and every surface sized to what it holds around it, keeps
|
|
2518
|
+
* the whole grid. */
|
|
2252
2519
|
[data-qc-theme] .qc-drawing-palette {
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
padding:
|
|
2520
|
+
width: 224px;
|
|
2521
|
+
margin-inline: 12px;
|
|
2522
|
+
padding-block: 6px;
|
|
2256
2523
|
}
|
|
2257
2524
|
|
|
2258
|
-
/*
|
|
2259
|
-
|
|
2260
|
-
|
|
2525
|
+
/* A palette that is a popover's whole content keeps the popover column's 6px inside its own, and
|
|
2526
|
+
* inside a panel that pads already, the palette stands the rest of the way in rather than again. */
|
|
2527
|
+
[data-qc-theme] .qc-drawing-popover > .qc-drawing-palette {
|
|
2528
|
+
padding-block: 12px;
|
|
2529
|
+
}
|
|
2530
|
+
|
|
2531
|
+
[data-qc-theme] .qc-inline-panel .qc-drawing-palette {
|
|
2532
|
+
margin-inline: 6px;
|
|
2533
|
+
padding-block: 6px;
|
|
2261
2534
|
}
|
|
2262
2535
|
|
|
2263
2536
|
[data-qc-theme] .qc-drawing-swatches {
|
|
2264
|
-
display:
|
|
2265
|
-
flex-direction: column;
|
|
2537
|
+
display: block;
|
|
2266
2538
|
}
|
|
2267
2539
|
|
|
2268
|
-
/* A block is a group of rows that stand together; the gap falls between blocks, never between the
|
|
2269
|
-
* rows inside one, so the ten hues read as one field of colour rather than ten loose lines. The
|
|
2270
|
-
* negative inline margin pulls the outer cells' own gutters back off the panel's padding. */
|
|
2271
2540
|
[data-qc-theme] .qc-drawing-swatch-block {
|
|
2272
2541
|
margin: 0 -3px 6px;
|
|
2273
2542
|
}
|
|
@@ -2276,10 +2545,9 @@
|
|
|
2276
2545
|
display: flex;
|
|
2277
2546
|
}
|
|
2278
2547
|
|
|
2279
|
-
/* Each cell carries its own 3px gutter rather than the row spacing them, which leaves room inside
|
|
2280
|
-
* the cell for the ring a chosen colour wears without moving its neighbours. */
|
|
2281
2548
|
[data-qc-theme] .qc-drawing-swatch {
|
|
2282
2549
|
position: relative;
|
|
2550
|
+
flex: 0 0 17px;
|
|
2283
2551
|
width: 17px;
|
|
2284
2552
|
height: 17px;
|
|
2285
2553
|
margin: 3px;
|
|
@@ -2287,132 +2555,270 @@
|
|
|
2287
2555
|
background: var(--qcd-swatch);
|
|
2288
2556
|
border: 0;
|
|
2289
2557
|
border-radius: 2px;
|
|
2558
|
+
outline: none;
|
|
2290
2559
|
cursor: pointer;
|
|
2291
2560
|
}
|
|
2292
2561
|
|
|
2293
|
-
/* A cell
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
/* The chosen colour is ringed from OUTSIDE, so the swatch keeps its whole face: a ring drawn
|
|
2299
|
-
* inside would eat the colour it is pointing at, which is the one thing the reader is judging. */
|
|
2300
|
-
[data-qc-theme] .qc-drawing-swatch[data-qc-active='true']::after {
|
|
2562
|
+
/* A cell's ring stands 2px outside it, 2px wide on a 6px corner, and fades in and out: the field's
|
|
2563
|
+
* edge under the pointer, the primary ink around the chosen color (over its neighbours), and the
|
|
2564
|
+
* focus color where the keyboard stands. */
|
|
2565
|
+
[data-qc-theme] .qc-drawing-swatch::after {
|
|
2301
2566
|
position: absolute;
|
|
2302
2567
|
inset: -4px;
|
|
2303
|
-
border: 2px solid
|
|
2304
|
-
border-radius:
|
|
2568
|
+
border: 2px solid transparent;
|
|
2569
|
+
border-radius: 6px;
|
|
2305
2570
|
content: '';
|
|
2571
|
+
pointer-events: none;
|
|
2572
|
+
transition: border-color var(--qc-motion-durationSlow) var(--qc-motion-easingStandard);
|
|
2573
|
+
}
|
|
2574
|
+
|
|
2575
|
+
[data-qc-theme] .qc-drawing-swatch:hover::after {
|
|
2576
|
+
border-color: var(--qc-control-fieldEdge);
|
|
2577
|
+
}
|
|
2578
|
+
|
|
2579
|
+
[data-qc-theme] .qc-drawing-swatch[data-qc-active='true']::after {
|
|
2580
|
+
z-index: 1;
|
|
2581
|
+
border-color: var(--qc-text-primary);
|
|
2582
|
+
}
|
|
2583
|
+
|
|
2584
|
+
[data-qc-theme] .qc-drawing-swatch:focus-visible::after {
|
|
2585
|
+
border-color: var(--qc-state-focusRing);
|
|
2306
2586
|
}
|
|
2307
2587
|
|
|
2308
|
-
/*
|
|
2309
|
-
|
|
2588
|
+
/* On a light panel the palest cell takes the panel's own edge, where it would otherwise vanish. */
|
|
2589
|
+
[data-qc-theme='light'] .qc-drawing-swatch[data-qc-pale='true'] {
|
|
2590
|
+
box-shadow: inset 0 0 0 1px var(--qc-chrome-border);
|
|
2591
|
+
}
|
|
2592
|
+
|
|
2593
|
+
/* The plus: a cell with no fill of its own, crossed at its middle by two 13px hairlines in the
|
|
2594
|
+
* primary ink, washed in the hover fill under the pointer and ringed inside its own edge where the
|
|
2595
|
+
* keyboard stands. */
|
|
2310
2596
|
[data-qc-theme] .qc-drawing-swatch-plus {
|
|
2597
|
+
position: relative;
|
|
2598
|
+
flex: 0 0 17px;
|
|
2599
|
+
width: 17px;
|
|
2600
|
+
height: 17px;
|
|
2601
|
+
margin: 3px;
|
|
2602
|
+
padding: 0;
|
|
2311
2603
|
background: none;
|
|
2312
|
-
|
|
2604
|
+
border: 0;
|
|
2605
|
+
border-radius: 2px;
|
|
2606
|
+
outline: none;
|
|
2607
|
+
cursor: pointer;
|
|
2608
|
+
transition: background-color var(--qc-motion-durationSlow) var(--qc-motion-easingStandard);
|
|
2609
|
+
}
|
|
2610
|
+
|
|
2611
|
+
[data-qc-theme] .qc-drawing-swatch-plus:hover {
|
|
2612
|
+
background: var(--qc-state-hover);
|
|
2313
2613
|
}
|
|
2314
2614
|
|
|
2315
2615
|
[data-qc-theme] .qc-drawing-swatch-plus::before,
|
|
2316
2616
|
[data-qc-theme] .qc-drawing-swatch-plus::after {
|
|
2317
2617
|
position: absolute;
|
|
2318
|
-
inset: 8px 2px;
|
|
2319
2618
|
background: var(--qc-text-primary);
|
|
2320
2619
|
content: '';
|
|
2321
2620
|
}
|
|
2322
2621
|
|
|
2323
2622
|
[data-qc-theme] .qc-drawing-swatch-plus::before {
|
|
2324
|
-
|
|
2623
|
+
top: calc(50% - 6.5px);
|
|
2624
|
+
left: calc(50% - 0.5px);
|
|
2625
|
+
width: 1px;
|
|
2626
|
+
height: 13px;
|
|
2627
|
+
}
|
|
2628
|
+
|
|
2629
|
+
[data-qc-theme] .qc-drawing-swatch-plus::after {
|
|
2630
|
+
top: calc(50% - 0.5px);
|
|
2631
|
+
left: calc(50% - 6.5px);
|
|
2632
|
+
width: 13px;
|
|
2633
|
+
height: 1px;
|
|
2634
|
+
}
|
|
2635
|
+
|
|
2636
|
+
[data-qc-theme] .qc-drawing-swatch-plus:focus-visible {
|
|
2637
|
+
border: 2px solid var(--qc-state-focusRing);
|
|
2638
|
+
border-radius: 4px;
|
|
2325
2639
|
}
|
|
2326
2640
|
|
|
2327
|
-
/* The rule between the offered colours and the ones this viewer mixed. */
|
|
2328
2641
|
[data-qc-theme] .qc-drawing-separator {
|
|
2329
2642
|
height: 1px;
|
|
2330
|
-
margin:
|
|
2643
|
+
margin: 12px 0;
|
|
2331
2644
|
background: var(--qc-overlay-separator);
|
|
2332
2645
|
}
|
|
2333
2646
|
|
|
2334
|
-
/* A quiet label over a section of the panel: the room above it is its own, so the panel holding
|
|
2335
|
-
* it keeps no gap of its own to add to this. */
|
|
2336
2647
|
[data-qc-theme] .qc-drawing-section-title {
|
|
2337
2648
|
margin: 12px 0 4px;
|
|
2338
2649
|
color: var(--qc-text-muted);
|
|
2339
|
-
font-size:
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
[data-qc-theme] .qc-drawing-palette-opacity {
|
|
2343
|
-
display: flex;
|
|
2344
|
-
flex-direction: column;
|
|
2650
|
+
font-size: 12px;
|
|
2651
|
+
line-height: 14px;
|
|
2345
2652
|
}
|
|
2346
2653
|
|
|
2347
|
-
|
|
2654
|
+
/* The opacity: a 10px track filling the row beside the percent field. The track fades from nothing
|
|
2655
|
+
* into the color over the checked ground, inside a 1px edge of the color on a 4px corner; the 12px
|
|
2656
|
+
* knob travels it less its own width, a pixel proud of it above and below, and glides to a value
|
|
2657
|
+
* the keyboard or a press gives it but follows a drag at once. The keyboard's ring stands 4px
|
|
2658
|
+
* around the track. */
|
|
2659
|
+
[data-qc-theme] .qc-drawing-opacity-row {
|
|
2348
2660
|
display: flex;
|
|
2349
|
-
|
|
2350
|
-
gap: 12px;
|
|
2351
|
-
width: 224px;
|
|
2661
|
+
align-items: center;
|
|
2352
2662
|
}
|
|
2353
2663
|
|
|
2354
|
-
[data-qc-theme] .qc-drawing-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2664
|
+
[data-qc-theme] .qc-drawing-opacity {
|
|
2665
|
+
position: relative;
|
|
2666
|
+
flex: 1 0 auto;
|
|
2667
|
+
height: 10px;
|
|
2668
|
+
background: repeating-conic-gradient(from 270deg, var(--qcd-check) 0% 25%, transparent 0% 50%) 1px 50% / 8px 8px, var(--qcd-ground);
|
|
2669
|
+
border-radius: 5px;
|
|
2670
|
+
outline: none;
|
|
2671
|
+
touch-action: none;
|
|
2359
2672
|
}
|
|
2360
2673
|
|
|
2361
|
-
[data-qc-theme] .qc-drawing-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2674
|
+
[data-qc-theme] .qc-drawing-opacity-fade {
|
|
2675
|
+
position: absolute;
|
|
2676
|
+
inset: 0;
|
|
2677
|
+
background: linear-gradient(to right, transparent, var(--qcd-swatch));
|
|
2678
|
+
border: 1px solid var(--qcd-swatch);
|
|
2366
2679
|
border-radius: 4px;
|
|
2367
2680
|
}
|
|
2368
2681
|
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
[data-qc-theme] .qc-drawing-hex-wrap {
|
|
2373
|
-
display: flex;
|
|
2374
|
-
flex: 0 0 auto;
|
|
2375
|
-
align-items: center;
|
|
2376
|
-
width: 68px;
|
|
2377
|
-
min-width: 0;
|
|
2378
|
-
height: 26px;
|
|
2379
|
-
padding: 0 5px;
|
|
2380
|
-
border: 1px solid var(--qc-control-fieldEdge);
|
|
2381
|
-
border-radius: 6px;
|
|
2382
|
-
transition: border-color var(--qc-motion-durationFast) var(--qc-motion-easingLinear), box-shadow var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
|
|
2682
|
+
[data-qc-theme][dir='rtl'] .qc-drawing-opacity,
|
|
2683
|
+
[data-qc-theme] [dir='rtl'] .qc-drawing-opacity {
|
|
2684
|
+
background-position: right 1px top 50%;
|
|
2383
2685
|
}
|
|
2384
2686
|
|
|
2385
|
-
[data-qc-theme] .qc-drawing-
|
|
2386
|
-
|
|
2687
|
+
[data-qc-theme][dir='rtl'] .qc-drawing-opacity-fade,
|
|
2688
|
+
[data-qc-theme] [dir='rtl'] .qc-drawing-opacity-fade {
|
|
2689
|
+
background: linear-gradient(to left, transparent, var(--qcd-swatch));
|
|
2387
2690
|
}
|
|
2388
2691
|
|
|
2389
|
-
[data-qc-theme] .qc-drawing-
|
|
2390
|
-
|
|
2391
|
-
|
|
2692
|
+
[data-qc-theme] .qc-drawing-opacity-travel {
|
|
2693
|
+
position: absolute;
|
|
2694
|
+
top: 0;
|
|
2695
|
+
inset-inline-start: 0;
|
|
2696
|
+
width: calc(100% - 12px);
|
|
2392
2697
|
}
|
|
2393
2698
|
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2699
|
+
[data-qc-theme] .qc-drawing-opacity-knob {
|
|
2700
|
+
position: absolute;
|
|
2701
|
+
top: 0;
|
|
2702
|
+
width: 12px;
|
|
2703
|
+
height: 12px;
|
|
2704
|
+
margin-top: -1px;
|
|
2705
|
+
background: var(--qcd-black);
|
|
2706
|
+
border: 2px solid var(--qcd-white);
|
|
2707
|
+
border-radius: 50%;
|
|
2708
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
2709
|
+
pointer-events: none;
|
|
2710
|
+
}
|
|
2711
|
+
|
|
2712
|
+
[data-qc-theme] .qc-drawing-opacity:not([data-qc-dragging='true']) .qc-drawing-opacity-knob {
|
|
2713
|
+
transition: inset-inline-start var(--qc-motion-durationGlide) var(--qc-motion-easingStandard);
|
|
2714
|
+
}
|
|
2715
|
+
|
|
2716
|
+
[data-qc-theme] .qc-drawing-opacity:focus-visible::after {
|
|
2717
|
+
position: absolute;
|
|
2718
|
+
inset: -4px;
|
|
2719
|
+
border: 2px solid var(--qc-state-focusRing);
|
|
2720
|
+
border-radius: 6px;
|
|
2721
|
+
content: '';
|
|
2722
|
+
pointer-events: none;
|
|
2400
2723
|
}
|
|
2401
2724
|
|
|
2725
|
+
/* The popover's two fields are 26px boxes on a 4px corner, 1px edged in the field's own edge, which
|
|
2726
|
+
* turns the focus color while the field has the keyboard and the invalid color for a value the
|
|
2727
|
+
* field refuses. The percent field is 47px, 8px after the track, its figure set to the end and the
|
|
2728
|
+
* unit standing in the room it keeps there. */
|
|
2729
|
+
[data-qc-theme] .qc-drawing-opacity-field {
|
|
2730
|
+
position: relative;
|
|
2731
|
+
display: flex;
|
|
2732
|
+
flex: 0 0 auto;
|
|
2733
|
+
align-items: center;
|
|
2734
|
+
}
|
|
2735
|
+
|
|
2736
|
+
[data-qc-theme] .qc-drawing-opacity-readout,
|
|
2402
2737
|
[data-qc-theme] .qc-drawing-hex {
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2738
|
+
box-sizing: border-box;
|
|
2739
|
+
height: 26px;
|
|
2740
|
+
margin: 0;
|
|
2741
|
+
margin-inline-start: 8px;
|
|
2406
2742
|
color: var(--qc-text-primary);
|
|
2407
2743
|
font: inherit;
|
|
2408
|
-
font-
|
|
2744
|
+
font-size: 14px;
|
|
2745
|
+
line-height: 24px;
|
|
2409
2746
|
background: none;
|
|
2410
|
-
border:
|
|
2747
|
+
border: 1px solid var(--qc-control-fieldEdge);
|
|
2748
|
+
border-radius: 4px;
|
|
2411
2749
|
outline: none;
|
|
2412
2750
|
}
|
|
2413
2751
|
|
|
2414
|
-
|
|
2415
|
-
|
|
2752
|
+
[data-qc-theme] .qc-drawing-opacity-readout {
|
|
2753
|
+
width: 47px;
|
|
2754
|
+
padding: 0;
|
|
2755
|
+
padding-inline-start: 5px;
|
|
2756
|
+
padding-inline-end: 14px;
|
|
2757
|
+
text-align: end;
|
|
2758
|
+
}
|
|
2759
|
+
|
|
2760
|
+
[data-qc-theme] .qc-drawing-opacity-readout:focus,
|
|
2761
|
+
[data-qc-theme] .qc-drawing-hex:focus {
|
|
2762
|
+
border-color: var(--qc-state-focusRing);
|
|
2763
|
+
}
|
|
2764
|
+
|
|
2765
|
+
[data-qc-theme] .qc-drawing-hex[aria-invalid='true'] {
|
|
2766
|
+
border-color: var(--qc-control-fieldInvalid);
|
|
2767
|
+
}
|
|
2768
|
+
|
|
2769
|
+
[data-qc-theme] .qc-drawing-opacity-unit,
|
|
2770
|
+
[data-qc-theme] .qc-drawing-hex-mark {
|
|
2771
|
+
position: absolute;
|
|
2772
|
+
top: 5px;
|
|
2773
|
+
color: var(--qc-text-primary);
|
|
2774
|
+
line-height: 16px;
|
|
2775
|
+
pointer-events: none;
|
|
2776
|
+
}
|
|
2777
|
+
|
|
2778
|
+
[data-qc-theme] .qc-drawing-opacity-unit {
|
|
2779
|
+
inset-inline-start: 40px;
|
|
2780
|
+
}
|
|
2781
|
+
|
|
2782
|
+
/* The custom editor, standing alone in the popover in the palette's place: a 26px row of the held
|
|
2783
|
+
* color's 26px well, its hex and Add, 12px over a 184px area of saturation and brightness that
|
|
2784
|
+
* stands 7px before a 17px hue strip. The hash stands in the room the hex field keeps before its
|
|
2785
|
+
* digits; Add is the primary action at the row's end, a 28px button on an 8px corner. */
|
|
2786
|
+
[data-qc-theme] .qc-drawing-custom-row {
|
|
2787
|
+
display: flex;
|
|
2788
|
+
align-items: flex-start;
|
|
2789
|
+
height: 26px;
|
|
2790
|
+
margin-bottom: 12px;
|
|
2791
|
+
}
|
|
2792
|
+
|
|
2793
|
+
[data-qc-theme] .qc-drawing-custom-swatch {
|
|
2794
|
+
flex: 0 0 26px;
|
|
2795
|
+
width: 26px;
|
|
2796
|
+
height: 26px;
|
|
2797
|
+
background: var(--qcd-swatch);
|
|
2798
|
+
border-radius: 4px;
|
|
2799
|
+
}
|
|
2800
|
+
|
|
2801
|
+
[data-qc-theme] .qc-drawing-hex-wrap {
|
|
2802
|
+
position: relative;
|
|
2803
|
+
display: flex;
|
|
2804
|
+
flex: 0 0 auto;
|
|
2805
|
+
align-items: center;
|
|
2806
|
+
height: 26px;
|
|
2807
|
+
}
|
|
2808
|
+
|
|
2809
|
+
[data-qc-theme] .qc-drawing-hex-mark {
|
|
2810
|
+
inset-inline-start: 0;
|
|
2811
|
+
width: 21px;
|
|
2812
|
+
text-align: end;
|
|
2813
|
+
}
|
|
2814
|
+
|
|
2815
|
+
[data-qc-theme] .qc-drawing-hex {
|
|
2816
|
+
width: 68px;
|
|
2817
|
+
padding: 0;
|
|
2818
|
+
padding-inline-start: 12px;
|
|
2819
|
+
padding-inline-end: 5px;
|
|
2820
|
+
}
|
|
2821
|
+
|
|
2416
2822
|
[data-qc-theme] .qc-drawing-add {
|
|
2417
2823
|
display: inline-flex;
|
|
2418
2824
|
flex: 0 0 auto;
|
|
@@ -2421,6 +2827,9 @@
|
|
|
2421
2827
|
height: 28px;
|
|
2422
2828
|
margin-inline-start: auto;
|
|
2423
2829
|
padding: 0 7px;
|
|
2830
|
+
font-size: 14px;
|
|
2831
|
+
line-height: 18px;
|
|
2832
|
+
border-radius: 8px;
|
|
2424
2833
|
}
|
|
2425
2834
|
|
|
2426
2835
|
[data-qc-theme] .qc-drawing-custom-tracks {
|
|
@@ -2428,28 +2837,43 @@
|
|
|
2428
2837
|
gap: 7px;
|
|
2429
2838
|
}
|
|
2430
2839
|
|
|
2431
|
-
/* The
|
|
2432
|
-
*
|
|
2433
|
-
*
|
|
2840
|
+
/* The area is the hue under a fade to white across it and a fade to black down it, on a 2px corner
|
|
2841
|
+
* that clips its knob: a 14px ring standing a pixel past the point it marks. The strip runs the hue
|
|
2842
|
+
* wheel from top to bottom; its knob is a 9px bar 2px proud of either side, travelling the strip
|
|
2843
|
+
* less 3px at either end. Both knobs glide to a value the keyboard gives them and follow a drag at
|
|
2844
|
+
* once. */
|
|
2434
2845
|
[data-qc-theme] .qc-drawing-sv {
|
|
2435
2846
|
position: relative;
|
|
2436
2847
|
flex: 1 1 auto;
|
|
2437
2848
|
height: 184px;
|
|
2438
|
-
|
|
2849
|
+
overflow: hidden;
|
|
2850
|
+
background: linear-gradient(to top, var(--qcd-black), transparent), linear-gradient(to right, var(--qcd-white), transparent), var(--qcd-hue);
|
|
2851
|
+
border-radius: 2px;
|
|
2439
2852
|
cursor: crosshair;
|
|
2853
|
+
touch-action: none;
|
|
2854
|
+
}
|
|
2855
|
+
|
|
2856
|
+
[data-qc-theme][dir='rtl'] .qc-drawing-sv,
|
|
2857
|
+
[data-qc-theme] [dir='rtl'] .qc-drawing-sv {
|
|
2858
|
+
background: linear-gradient(to top, var(--qcd-black), transparent), linear-gradient(to left, var(--qcd-white), transparent), var(--qcd-hue);
|
|
2440
2859
|
}
|
|
2441
2860
|
|
|
2442
2861
|
[data-qc-theme] .qc-drawing-sv-dot {
|
|
2443
2862
|
position: absolute;
|
|
2444
|
-
width:
|
|
2445
|
-
height:
|
|
2863
|
+
width: 14px;
|
|
2864
|
+
height: 14px;
|
|
2865
|
+
margin-top: -6px;
|
|
2866
|
+
margin-inline-start: -6px;
|
|
2446
2867
|
border: 2px solid var(--qcd-white);
|
|
2447
2868
|
border-radius: 50%;
|
|
2448
|
-
box-shadow: var(--
|
|
2449
|
-
transform: translate(-50%, -50%);
|
|
2869
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
2450
2870
|
pointer-events: none;
|
|
2451
2871
|
}
|
|
2452
2872
|
|
|
2873
|
+
[data-qc-theme] .qc-drawing-sv:not([data-qc-dragging='true']) .qc-drawing-sv-dot {
|
|
2874
|
+
transition: inset-inline-start var(--qc-motion-durationFast) var(--qc-motion-easingStandard), top var(--qc-motion-durationFast) var(--qc-motion-easingStandard);
|
|
2875
|
+
}
|
|
2876
|
+
|
|
2453
2877
|
[data-qc-theme] .qc-drawing-hue {
|
|
2454
2878
|
position: relative;
|
|
2455
2879
|
flex: 0 0 17px;
|
|
@@ -2466,38 +2890,70 @@
|
|
|
2466
2890
|
);
|
|
2467
2891
|
border-radius: 2px;
|
|
2468
2892
|
cursor: pointer;
|
|
2893
|
+
touch-action: none;
|
|
2894
|
+
}
|
|
2895
|
+
|
|
2896
|
+
[data-qc-theme] .qc-drawing-hue-travel {
|
|
2897
|
+
position: absolute;
|
|
2898
|
+
inset: 3px 0;
|
|
2469
2899
|
}
|
|
2470
2900
|
|
|
2471
2901
|
[data-qc-theme] .qc-drawing-hue-dot {
|
|
2472
2902
|
position: absolute;
|
|
2473
2903
|
inset-inline: -2px;
|
|
2474
|
-
height:
|
|
2904
|
+
height: 9px;
|
|
2905
|
+
margin-top: -4px;
|
|
2475
2906
|
border: 2px solid var(--qcd-white);
|
|
2476
2907
|
border-radius: 2px;
|
|
2477
|
-
box-shadow: var(--
|
|
2478
|
-
transform: translateY(-50%);
|
|
2908
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
2479
2909
|
pointer-events: none;
|
|
2480
2910
|
}
|
|
2481
2911
|
|
|
2482
|
-
|
|
2483
|
-
|
|
2912
|
+
[data-qc-theme] .qc-drawing-hue:not([data-qc-dragging='true']) .qc-drawing-hue-dot {
|
|
2913
|
+
transition: top var(--qc-motion-durationFast) var(--qc-motion-easingStandard);
|
|
2914
|
+
}
|
|
2915
|
+
|
|
2916
|
+
/* The well a color button holds its color in: 24px on a 3px corner, the color at its opacity over
|
|
2917
|
+
* the checked ground the opacity track fades over, in 6px squares. */
|
|
2918
|
+
[data-qc-theme] .qc-drawing-well {
|
|
2919
|
+
display: block;
|
|
2920
|
+
width: 24px;
|
|
2921
|
+
height: 24px;
|
|
2922
|
+
overflow: hidden;
|
|
2923
|
+
background: repeating-conic-gradient(from 270deg, var(--qcd-check) 0% 25%, transparent 0% 50%) 0 0 / 12px 12px, var(--qcd-ground);
|
|
2924
|
+
border-radius: 3px;
|
|
2925
|
+
}
|
|
2926
|
+
|
|
2927
|
+
[data-qc-theme] .qc-drawing-well-fill {
|
|
2928
|
+
display: block;
|
|
2929
|
+
width: 100%;
|
|
2930
|
+
height: 100%;
|
|
2931
|
+
background: var(--qcd-swatch);
|
|
2932
|
+
}
|
|
2933
|
+
|
|
2934
|
+
/* Black and white are the poles of the value axis the area fades between, and the two the knobs
|
|
2935
|
+
* are drawn from. They are color arithmetic, not theme roles: every mode has them. */
|
|
2484
2936
|
[data-qc-theme] .qc-drawing-custom,
|
|
2485
|
-
[data-qc-theme] .qc-drawing-opacity-row
|
|
2937
|
+
[data-qc-theme] .qc-drawing-opacity-row,
|
|
2938
|
+
[data-qc-theme] .qc-drawing-well,
|
|
2939
|
+
[data-qc-theme] .qc-drawing-dual {
|
|
2486
2940
|
--qcd-angle-0: 0deg;
|
|
2487
2941
|
--qcd-black: hsl(var(--qcd-angle-0) 0% 0%);
|
|
2488
2942
|
--qcd-white: hsl(var(--qcd-angle-0) 0% 100%);
|
|
2489
2943
|
}
|
|
2490
2944
|
|
|
2491
|
-
/* What "see-through" is drawn as under
|
|
2492
|
-
*
|
|
2493
|
-
*
|
|
2494
|
-
[data-qc-theme] .qc-drawing-opacity-row
|
|
2945
|
+
/* What "see-through" is drawn as under a fade: a slate check at two fifths, the same in every mode,
|
|
2946
|
+
* on the mode's own pole. It is the checker every image editor uses for nothing-here, so a low
|
|
2947
|
+
* opacity reads as the color thinning out rather than as the track running out of paint. */
|
|
2948
|
+
[data-qc-theme] .qc-drawing-opacity-row,
|
|
2949
|
+
[data-qc-theme] .qc-drawing-well {
|
|
2495
2950
|
--qcd-check-hue: 224deg;
|
|
2496
2951
|
--qcd-check: hsl(var(--qcd-check-hue) 15% 19% / 0.4);
|
|
2497
2952
|
--qcd-ground: var(--qcd-black);
|
|
2498
2953
|
}
|
|
2499
2954
|
|
|
2500
|
-
[data-qc-theme='light'] .qc-drawing-opacity-row
|
|
2955
|
+
[data-qc-theme='light'] .qc-drawing-opacity-row,
|
|
2956
|
+
[data-qc-theme='light'] .qc-drawing-well {
|
|
2501
2957
|
--qcd-ground: var(--qcd-white);
|
|
2502
2958
|
}
|
|
2503
2959
|
|
|
@@ -2516,239 +2972,248 @@
|
|
|
2516
2972
|
--qcd-hue-300: hsl(var(--qcd-angle-300) 100% 50%);
|
|
2517
2973
|
}
|
|
2518
2974
|
|
|
2519
|
-
/* The
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2975
|
+
/* The Thickness and Line style rows, 12px in: a muted title, then a row of joined 32px segments,
|
|
2976
|
+
* each a radio wearing its mark in the on fill. The one chosen takes that fill, its mark cut from
|
|
2977
|
+
* it in the inverse ink; a segment under the pointer washes in the hover fill, and the keyboard's
|
|
2978
|
+
* ring stands 4px around the segment it is on. A thickness mark is a line across its segment as
|
|
2979
|
+
* heavy as the width it stands for; a line style's is drawn on a 30 by 24 cell, a 30px line, four
|
|
2980
|
+
* 5px dashes or six 2px dots 3px apart. */
|
|
2981
|
+
[data-qc-theme] .qc-drawing-stroke-section {
|
|
2982
|
+
padding: 0 12px;
|
|
2524
2983
|
}
|
|
2525
2984
|
|
|
2526
|
-
[data-qc-theme] .qc-drawing-
|
|
2527
|
-
|
|
2528
|
-
width: auto;
|
|
2529
|
-
height: 10px;
|
|
2530
|
-
margin: 0;
|
|
2531
|
-
/* Three layers, top down: the fade into the color, the 8px check it fades over (two 4px squares
|
|
2532
|
-
* to a tile, top left and bottom right), and the ground the check stands on. */
|
|
2533
|
-
background:
|
|
2534
|
-
linear-gradient(to right, transparent, var(--qcd-swatch)),
|
|
2535
|
-
repeating-conic-gradient(from 270deg, var(--qcd-check) 0% 25%, transparent 0% 50%) 1px 50% / 8px 8px,
|
|
2536
|
-
var(--qcd-ground);
|
|
2537
|
-
border: 1px solid var(--qcd-swatch);
|
|
2538
|
-
border-radius: 5px;
|
|
2539
|
-
outline: none;
|
|
2540
|
-
appearance: none;
|
|
2541
|
-
accent-color: var(--qc-state-accent);
|
|
2985
|
+
[data-qc-theme] .qc-drawing-stroke-section > .qc-drawing-section-title {
|
|
2986
|
+
margin: 6px 0 4px;
|
|
2542
2987
|
}
|
|
2543
2988
|
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
[data-qc-theme] .qc-drawing-opacity::-webkit-slider-thumb {
|
|
2547
|
-
width: 12px;
|
|
2548
|
-
height: 12px;
|
|
2549
|
-
background: var(--qcd-black);
|
|
2550
|
-
border: 2px solid var(--qcd-white);
|
|
2551
|
-
border-radius: 50%;
|
|
2552
|
-
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
2553
|
-
cursor: pointer;
|
|
2554
|
-
appearance: none;
|
|
2989
|
+
[data-qc-theme] .qc-drawing-stroke-section--style {
|
|
2990
|
+
margin-top: 12px;
|
|
2555
2991
|
}
|
|
2556
2992
|
|
|
2557
|
-
[data-qc-theme] .qc-drawing-
|
|
2558
|
-
|
|
2559
|
-
height: 12px;
|
|
2560
|
-
background: var(--qcd-black);
|
|
2561
|
-
border: 2px solid var(--qcd-white);
|
|
2562
|
-
border-radius: 50%;
|
|
2563
|
-
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
2564
|
-
cursor: pointer;
|
|
2993
|
+
[data-qc-theme] .qc-drawing-stroke-section--style > .qc-drawing-section-title {
|
|
2994
|
+
margin-top: 0;
|
|
2565
2995
|
}
|
|
2566
2996
|
|
|
2567
|
-
|
|
2568
|
-
|
|
2569
|
-
[data-qc-theme] .qc-drawing-opacity-field {
|
|
2570
|
-
position: relative;
|
|
2571
|
-
flex: 0 0 auto;
|
|
2997
|
+
[data-qc-theme] .qc-drawing-segments {
|
|
2998
|
+
display: flex;
|
|
2572
2999
|
}
|
|
2573
3000
|
|
|
2574
|
-
[data-qc-theme] .qc-drawing-
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
3001
|
+
[data-qc-theme] .qc-drawing-segment {
|
|
3002
|
+
position: relative;
|
|
3003
|
+
display: inline-flex;
|
|
3004
|
+
flex: 1 1 0;
|
|
3005
|
+
align-items: center;
|
|
3006
|
+
justify-content: center;
|
|
3007
|
+
box-sizing: border-box;
|
|
3008
|
+
height: 32px;
|
|
3009
|
+
margin: 0;
|
|
3010
|
+
padding: 0 12px;
|
|
3011
|
+
color: var(--qc-control-on);
|
|
2581
3012
|
background: none;
|
|
2582
3013
|
border: 1px solid var(--qc-control-fieldEdge);
|
|
2583
|
-
border-radius:
|
|
3014
|
+
border-radius: 0;
|
|
2584
3015
|
outline: none;
|
|
2585
|
-
|
|
3016
|
+
cursor: pointer;
|
|
2586
3017
|
}
|
|
2587
3018
|
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
position: absolute;
|
|
2591
|
-
inset-block: 0;
|
|
2592
|
-
inset-inline-end: 5px;
|
|
2593
|
-
display: flex;
|
|
2594
|
-
align-items: center;
|
|
2595
|
-
color: var(--qc-text-primary);
|
|
2596
|
-
pointer-events: none;
|
|
3019
|
+
[data-qc-theme] .qc-drawing-segment--wide {
|
|
3020
|
+
padding: 0 22px;
|
|
2597
3021
|
}
|
|
2598
3022
|
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
display: flex;
|
|
2602
|
-
gap: 6px;
|
|
2603
|
-
align-items: center;
|
|
2604
|
-
justify-content: center;
|
|
2605
|
-
height: 34px;
|
|
2606
|
-
padding: 0 8px;
|
|
2607
|
-
cursor: pointer;
|
|
3023
|
+
[data-qc-theme] .qc-drawing-segment + .qc-drawing-segment {
|
|
3024
|
+
margin-inline-start: -1px;
|
|
2608
3025
|
}
|
|
2609
3026
|
|
|
2610
|
-
[data-qc-theme] .qc-drawing-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
height: 24px;
|
|
2614
|
-
overflow: hidden;
|
|
2615
|
-
background: repeating-conic-gradient(var(--qc-chrome-border) 0% 25%, var(--qc-chrome-surfaceRaised) 0% 50%) 0 0 / 8px 8px;
|
|
2616
|
-
border-radius: 3px;
|
|
3027
|
+
[data-qc-theme] .qc-drawing-segment:first-child {
|
|
3028
|
+
border-start-start-radius: 3px;
|
|
3029
|
+
border-end-start-radius: 3px;
|
|
2617
3030
|
}
|
|
2618
3031
|
|
|
2619
|
-
[data-qc-theme] .qc-drawing-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
height: 100%;
|
|
2623
|
-
background: var(--qcd-swatch);
|
|
3032
|
+
[data-qc-theme] .qc-drawing-segment:last-child {
|
|
3033
|
+
border-start-end-radius: 3px;
|
|
3034
|
+
border-end-end-radius: 3px;
|
|
2624
3035
|
}
|
|
2625
3036
|
|
|
2626
|
-
[data-qc-theme] .qc-drawing-
|
|
2627
|
-
|
|
2628
|
-
flex-direction: column;
|
|
2629
|
-
gap: 6px;
|
|
2630
|
-
padding-bottom: 8px;
|
|
3037
|
+
[data-qc-theme] .qc-drawing-segment:hover {
|
|
3038
|
+
background: var(--qc-state-hover);
|
|
2631
3039
|
}
|
|
2632
3040
|
|
|
2633
|
-
[data-qc-theme] .qc-drawing-
|
|
2634
|
-
|
|
3041
|
+
[data-qc-theme] .qc-drawing-segment[aria-checked='true'] {
|
|
3042
|
+
z-index: 1;
|
|
3043
|
+
color: var(--qc-control-onInk);
|
|
3044
|
+
background: var(--qc-control-on);
|
|
3045
|
+
border-color: var(--qc-control-on);
|
|
2635
3046
|
}
|
|
2636
3047
|
|
|
2637
|
-
[data-qc-theme] .qc-drawing-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
3048
|
+
[data-qc-theme] .qc-drawing-segment:focus-visible::after {
|
|
3049
|
+
position: absolute;
|
|
3050
|
+
inset: -4px;
|
|
3051
|
+
z-index: 1;
|
|
3052
|
+
border: 2px solid var(--qc-state-focusRing);
|
|
3053
|
+
border-radius: 4px;
|
|
3054
|
+
content: '';
|
|
3055
|
+
pointer-events: none;
|
|
2641
3056
|
}
|
|
2642
3057
|
|
|
2643
|
-
[data-qc-theme] .qc-drawing-
|
|
2644
|
-
display:
|
|
3058
|
+
[data-qc-theme] .qc-drawing-thickness-mark {
|
|
3059
|
+
display: block;
|
|
2645
3060
|
flex: 1 1 auto;
|
|
2646
|
-
|
|
2647
|
-
justify-content: center;
|
|
2648
|
-
height: 30px;
|
|
2649
|
-
padding: 0;
|
|
3061
|
+
background: currentColor;
|
|
2650
3062
|
}
|
|
2651
3063
|
|
|
2652
|
-
|
|
2653
|
-
[data-qc-theme] .qc-drawing-stroke {
|
|
3064
|
+
[data-qc-theme] .qc-drawing-style-mark {
|
|
2654
3065
|
display: flex;
|
|
2655
|
-
flex: 0 0
|
|
3066
|
+
flex: 0 0 30px;
|
|
2656
3067
|
gap: 3px;
|
|
2657
3068
|
align-items: center;
|
|
3069
|
+
justify-content: center;
|
|
2658
3070
|
width: 30px;
|
|
3071
|
+
height: 24px;
|
|
3072
|
+
overflow: hidden;
|
|
2659
3073
|
}
|
|
2660
3074
|
|
|
2661
|
-
[data-qc-theme] .qc-drawing-
|
|
2662
|
-
|
|
3075
|
+
[data-qc-theme] .qc-drawing-style-seg {
|
|
3076
|
+
flex: 0 0 auto;
|
|
3077
|
+
width: 5px;
|
|
3078
|
+
height: 1px;
|
|
3079
|
+
background: currentColor;
|
|
2663
3080
|
}
|
|
2664
3081
|
|
|
2665
|
-
[data-qc-theme] .qc-drawing-
|
|
2666
|
-
|
|
2667
|
-
background: var(--qcd-swatch, currentColor);
|
|
3082
|
+
[data-qc-theme] .qc-drawing-style-mark[data-style='solid'] > .qc-drawing-style-seg {
|
|
3083
|
+
width: 30px;
|
|
2668
3084
|
}
|
|
2669
3085
|
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
align-items: center;
|
|
2674
|
-
padding: 0 2px;
|
|
2675
|
-
cursor: pointer;
|
|
3086
|
+
[data-qc-theme] .qc-drawing-style-mark[data-style='dotted'] > .qc-drawing-style-seg {
|
|
3087
|
+
width: 2px;
|
|
3088
|
+
height: 2px;
|
|
2676
3089
|
}
|
|
2677
3090
|
|
|
2678
|
-
/*
|
|
2679
|
-
[data-qc-theme] .qc-drawing-
|
|
2680
|
-
|
|
2681
|
-
|
|
3091
|
+
/* The line-end list is as wide as its rows. A row it does not hold dims its ink under the pointer. */
|
|
3092
|
+
[data-qc-theme] .qc-drawing-menu.qc-drawing-line-ends {
|
|
3093
|
+
width: max-content;
|
|
3094
|
+
min-width: 0;
|
|
2682
3095
|
}
|
|
2683
3096
|
|
|
2684
|
-
/* The
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
3097
|
+
/* The keyboard rings a list's row inside the row's own edge, where the list's rounded corners cannot
|
|
3098
|
+
* cut it. A row of a list of choices or of switches rings its edge on a 6px corner, with 2px of the
|
|
3099
|
+
* list's ground inside the ring, so the ring stands clear of a chosen row's fill; a row of a list of
|
|
3100
|
+
* marks (a line end, a thickness, a line style) rings 2px inside its edge on a 9px corner. */
|
|
3101
|
+
[data-qc-theme] .qc-drawing-list .qc-drawing-list-row {
|
|
3102
|
+
position: relative;
|
|
3103
|
+
outline: none;
|
|
2689
3104
|
}
|
|
2690
3105
|
|
|
2691
|
-
[data-qc-theme] .qc-drawing-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
background: none;
|
|
2701
|
-
border: 0;
|
|
2702
|
-
cursor: pointer;
|
|
3106
|
+
[data-qc-theme] .qc-drawing-select-list:not(.qc-drawing-mark-list) .qc-drawing-list-row:focus-visible::before,
|
|
3107
|
+
[data-qc-theme] .qc-drawing-select-list:not(.qc-drawing-mark-list) .qc-drawing-list-row:focus-visible::after {
|
|
3108
|
+
position: absolute;
|
|
3109
|
+
z-index: 1;
|
|
3110
|
+
box-sizing: border-box;
|
|
3111
|
+
border-style: solid;
|
|
3112
|
+
border-width: 2px;
|
|
3113
|
+
content: '';
|
|
3114
|
+
pointer-events: none;
|
|
2703
3115
|
}
|
|
2704
3116
|
|
|
2705
|
-
[data-qc-theme] .qc-drawing-
|
|
2706
|
-
|
|
3117
|
+
[data-qc-theme] .qc-drawing-select-list:not(.qc-drawing-mark-list) .qc-drawing-list-row:focus-visible::after {
|
|
3118
|
+
inset: 0;
|
|
3119
|
+
border-color: var(--qc-state-focusRing);
|
|
3120
|
+
border-radius: 6px;
|
|
2707
3121
|
}
|
|
2708
3122
|
|
|
2709
|
-
[data-qc-theme] .qc-drawing-
|
|
2710
|
-
|
|
3123
|
+
[data-qc-theme] .qc-drawing-select-list:not(.qc-drawing-mark-list) .qc-drawing-list-row:focus-visible::before {
|
|
3124
|
+
inset: 2px;
|
|
3125
|
+
border-color: var(--qc-overlay-surface);
|
|
3126
|
+
border-radius: 4px;
|
|
2711
3127
|
}
|
|
2712
3128
|
|
|
2713
|
-
[data-qc-theme] .qc-drawing-
|
|
2714
|
-
|
|
2715
|
-
background: var(--qc-chrome-border);
|
|
3129
|
+
[data-qc-theme] .qc-drawing-line-ends .qc-drawing-list-row[aria-selected='true'] {
|
|
3130
|
+
color: var(--qc-control-onInk);
|
|
2716
3131
|
}
|
|
2717
3132
|
|
|
2718
|
-
[data-qc-theme] .qc-drawing-
|
|
2719
|
-
|
|
2720
|
-
border-end-start-radius: 2px;
|
|
3133
|
+
[data-qc-theme] .qc-drawing-line-ends .qc-drawing-list-row:not([aria-selected='true']):hover {
|
|
3134
|
+
color: var(--qc-state-hoverInk);
|
|
2721
3135
|
}
|
|
2722
3136
|
|
|
2723
|
-
[data-qc-theme] .qc-drawing-
|
|
2724
|
-
|
|
2725
|
-
|
|
3137
|
+
[data-qc-theme] .qc-drawing-line-ends .qc-drawing-list-row:focus-visible::after,
|
|
3138
|
+
[data-qc-theme] .qc-drawing-mark-list .qc-drawing-list-row:focus-visible::after {
|
|
3139
|
+
position: absolute;
|
|
3140
|
+
inset: 2px;
|
|
3141
|
+
z-index: 1;
|
|
3142
|
+
border: 2px solid var(--qc-state-focusRing);
|
|
3143
|
+
border-radius: 9px;
|
|
3144
|
+
content: '';
|
|
3145
|
+
pointer-events: none;
|
|
2726
3146
|
}
|
|
2727
3147
|
|
|
2728
|
-
|
|
2729
|
-
|
|
3148
|
+
/* The swatch button: a well holding the color, and for a stroke, the stroke at its thickness. */
|
|
3149
|
+
[data-qc-theme] .qc-drawing-swatch-button {
|
|
3150
|
+
display: flex;
|
|
3151
|
+
gap: 6px;
|
|
3152
|
+
align-items: center;
|
|
3153
|
+
justify-content: center;
|
|
3154
|
+
height: 34px;
|
|
3155
|
+
padding: 0 8px;
|
|
3156
|
+
cursor: pointer;
|
|
2730
3157
|
}
|
|
2731
3158
|
|
|
2732
|
-
/*
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
gap:
|
|
3159
|
+
/* On a settings page the swatch button is the 34px field with a 6px corner around its 24px well, 4px
|
|
3160
|
+
* in; with a stroke the preview stands 8px after the well and 3px clear of the end, 75px in all. */
|
|
3161
|
+
[data-qc-theme] .qc-drawing-page .qc-drawing-swatch-button {
|
|
3162
|
+
flex: 0 0 auto;
|
|
3163
|
+
gap: 8px;
|
|
3164
|
+
min-width: 34px;
|
|
3165
|
+
padding: 0 4px;
|
|
3166
|
+
border-radius: 6px;
|
|
3167
|
+
}
|
|
3168
|
+
|
|
3169
|
+
[data-qc-theme] .qc-drawing-page .qc-drawing-swatch-button > .qc-drawing-stroke {
|
|
3170
|
+
margin-inline-end: 3px;
|
|
3171
|
+
}
|
|
3172
|
+
|
|
3173
|
+
/* The stroke preview: segments at the thickness, in currentColor or the drawing's own color. */
|
|
3174
|
+
[data-qc-theme] .qc-drawing-stroke {
|
|
3175
|
+
display: flex;
|
|
3176
|
+
flex: 0 0 auto;
|
|
3177
|
+
gap: 3px;
|
|
2737
3178
|
align-items: center;
|
|
2738
|
-
|
|
3179
|
+
width: 30px;
|
|
3180
|
+
}
|
|
3181
|
+
|
|
3182
|
+
[data-qc-theme] .qc-drawing-stroke[data-dotted='tight'] {
|
|
3183
|
+
gap: 2px;
|
|
3184
|
+
}
|
|
3185
|
+
|
|
3186
|
+
[data-qc-theme] .qc-drawing-stroke-seg {
|
|
3187
|
+
flex: 0 0 auto;
|
|
3188
|
+
background: var(--qcd-swatch, currentColor);
|
|
2739
3189
|
}
|
|
2740
3190
|
|
|
2741
|
-
|
|
3191
|
+
/* A line-end picker is a 34px field whose face is the end's own 28px mark. */
|
|
3192
|
+
[data-qc-theme] .qc-drawing-line-end {
|
|
2742
3193
|
display: flex;
|
|
2743
|
-
|
|
3194
|
+
flex: 0 0 34px;
|
|
2744
3195
|
align-items: center;
|
|
3196
|
+
justify-content: center;
|
|
3197
|
+
width: 34px;
|
|
3198
|
+
padding: 0;
|
|
3199
|
+
cursor: pointer;
|
|
2745
3200
|
}
|
|
2746
3201
|
|
|
3202
|
+
/* A line end's glyph is drawn for the left end; the right end's picker wears it mirrored. */
|
|
3203
|
+
[data-qc-theme] .qc-drawing-line-end[data-qc-end='right'] > svg,
|
|
3204
|
+
[data-qc-theme] .qc-drawing-menu[data-qc-end='right'] .qc-menu-row > svg {
|
|
3205
|
+
transform: scaleX(-1);
|
|
3206
|
+
}
|
|
3207
|
+
|
|
3208
|
+
/* One visibility bucket: the checkbox and the name as the label, then from, the two-thumb range and
|
|
3209
|
+
* to. The range is a 10px track 100px wide, 9px after from and 8px before to, its span between the
|
|
3210
|
+
* two thumbs filled. */
|
|
2747
3211
|
[data-qc-theme] .qc-drawing-dual {
|
|
2748
3212
|
position: relative;
|
|
2749
|
-
flex:
|
|
2750
|
-
|
|
2751
|
-
height:
|
|
3213
|
+
flex: 0 0 100px;
|
|
3214
|
+
width: 100px;
|
|
3215
|
+
height: 12px;
|
|
3216
|
+
margin-inline-start: 1px;
|
|
2752
3217
|
}
|
|
2753
3218
|
|
|
2754
3219
|
[data-qc-theme] .qc-drawing-dual-track {
|
|
@@ -2756,18 +3221,22 @@
|
|
|
2756
3221
|
inset-inline: 0;
|
|
2757
3222
|
top: 50%;
|
|
2758
3223
|
height: 10px;
|
|
2759
|
-
background: var(--qc-
|
|
3224
|
+
background: var(--qc-state-pressed);
|
|
2760
3225
|
border-radius: 5px;
|
|
2761
3226
|
transform: translateY(-50%);
|
|
2762
3227
|
}
|
|
2763
3228
|
|
|
3229
|
+
/* The span the thumbs travel: the track less half a thumb at either end. */
|
|
3230
|
+
[data-qc-theme] .qc-drawing-dual-span {
|
|
3231
|
+
position: absolute;
|
|
3232
|
+
inset: 0 6px;
|
|
3233
|
+
}
|
|
3234
|
+
|
|
2764
3235
|
[data-qc-theme] .qc-drawing-dual-fill {
|
|
2765
3236
|
position: absolute;
|
|
2766
|
-
top:
|
|
2767
|
-
|
|
2768
|
-
background: var(--qc-text-
|
|
2769
|
-
border-radius: 5px;
|
|
2770
|
-
transform: translateY(-50%);
|
|
3237
|
+
top: 0;
|
|
3238
|
+
bottom: 0;
|
|
3239
|
+
background: var(--qc-text-primary);
|
|
2771
3240
|
}
|
|
2772
3241
|
|
|
2773
3242
|
[data-qc-theme] .qc-drawing-dual-input {
|
|
@@ -2781,22 +3250,29 @@
|
|
|
2781
3250
|
pointer-events: none;
|
|
2782
3251
|
}
|
|
2783
3252
|
|
|
3253
|
+
/* The two-thumb range's thumbs are the opacity knob: a dark disc with a 2px light rim, drawn from
|
|
3254
|
+
* the two poles so they read at both ends of the track in either mode. */
|
|
2784
3255
|
[data-qc-theme] .qc-drawing-dual-input::-webkit-slider-thumb {
|
|
2785
3256
|
width: 12px;
|
|
2786
3257
|
height: 12px;
|
|
2787
|
-
background: var(--
|
|
2788
|
-
border: 2px solid var(--
|
|
3258
|
+
background: var(--qcd-black);
|
|
3259
|
+
border: 2px solid var(--qcd-white);
|
|
2789
3260
|
border-radius: 50%;
|
|
3261
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
3262
|
+
cursor: pointer;
|
|
2790
3263
|
appearance: none;
|
|
2791
3264
|
pointer-events: auto;
|
|
2792
3265
|
}
|
|
2793
3266
|
|
|
2794
3267
|
[data-qc-theme] .qc-drawing-dual-input::-moz-range-thumb {
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
3268
|
+
box-sizing: border-box;
|
|
3269
|
+
width: 12px;
|
|
3270
|
+
height: 12px;
|
|
3271
|
+
background: var(--qcd-black);
|
|
3272
|
+
border: 2px solid var(--qcd-white);
|
|
2799
3273
|
border-radius: 50%;
|
|
3274
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
3275
|
+
cursor: pointer;
|
|
2800
3276
|
pointer-events: auto;
|
|
2801
3277
|
}
|
|
2802
3278
|
|
|
@@ -2812,45 +3288,27 @@
|
|
|
2812
3288
|
align-items: center;
|
|
2813
3289
|
}
|
|
2814
3290
|
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
padding: 0;
|
|
2819
|
-
}
|
|
2820
|
-
|
|
2821
|
-
/* A row of cells wider than the dialog slides sideways under the pointer already on it; a bar
|
|
2822
|
-
* beneath it would be chrome the table does not own. */
|
|
2823
|
-
[data-qc-theme] .qc-drawing-table {
|
|
2824
|
-
display: flex;
|
|
2825
|
-
flex-direction: column;
|
|
2826
|
-
gap: 4px;
|
|
2827
|
-
overflow-x: auto;
|
|
2828
|
-
scrollbar-width: none;
|
|
2829
|
-
}
|
|
2830
|
-
|
|
2831
|
-
[data-qc-theme] .qc-drawing-table::-webkit-scrollbar {
|
|
2832
|
-
display: none;
|
|
2833
|
-
}
|
|
2834
|
-
|
|
2835
|
-
[data-qc-theme] .qc-drawing-table-row {
|
|
2836
|
-
display: flex;
|
|
2837
|
-
gap: 4px;
|
|
2838
|
-
}
|
|
2839
|
-
|
|
2840
|
-
[data-qc-theme] .qc-drawing-table-actions {
|
|
3291
|
+
/* The weight and slant toggles: a 34px field with a 6px corner around the 28px mark, filled while
|
|
3292
|
+
* held, the mark cut from the fill in the inverse ink. */
|
|
3293
|
+
[data-qc-theme] .qc-drawing-font-toggle {
|
|
2841
3294
|
display: flex;
|
|
2842
|
-
flex
|
|
2843
|
-
|
|
2844
|
-
|
|
3295
|
+
flex: 0 0 34px;
|
|
3296
|
+
align-items: center;
|
|
3297
|
+
justify-content: center;
|
|
3298
|
+
width: 34px;
|
|
3299
|
+
padding: 0;
|
|
3300
|
+
border-radius: 6px;
|
|
3301
|
+
cursor: pointer;
|
|
2845
3302
|
}
|
|
2846
3303
|
|
|
2847
|
-
[data-qc-theme] .qc-drawing-
|
|
2848
|
-
|
|
2849
|
-
|
|
3304
|
+
[data-qc-theme] .qc-drawing-font-toggle[aria-pressed='true'] {
|
|
3305
|
+
color: var(--qc-text-inverse);
|
|
3306
|
+
background: var(--qc-control-onPressed);
|
|
3307
|
+
border-color: var(--qc-control-onPressed);
|
|
2850
3308
|
}
|
|
2851
3309
|
|
|
2852
|
-
/* Forced colors: a swatch IS its color, so it keeps it, with a system border to stand on. The
|
|
2853
|
-
* compact fields
|
|
3310
|
+
/* Forced colors: a swatch IS its color, so it keeps it, with a system border to stand on. The color
|
|
3311
|
+
* popover's compact fields edge their focus in the system highlight. */
|
|
2854
3312
|
@media (forced-colors: active) {
|
|
2855
3313
|
[data-qc-theme] .qc-drawing-swatch,
|
|
2856
3314
|
[data-qc-theme] .qc-drawing-color-strip {
|
|
@@ -2858,11 +3316,10 @@
|
|
|
2858
3316
|
border: 1px solid ButtonText;
|
|
2859
3317
|
}
|
|
2860
3318
|
|
|
2861
|
-
[data-qc-theme] .qc-drawing-hex
|
|
3319
|
+
[data-qc-theme] .qc-drawing-hex:focus,
|
|
2862
3320
|
[data-qc-theme] .qc-drawing-opacity-readout:focus {
|
|
2863
3321
|
forced-color-adjust: none;
|
|
2864
3322
|
border-color: Highlight;
|
|
2865
|
-
box-shadow: inset 0 0 0 1px Highlight;
|
|
2866
3323
|
}
|
|
2867
3324
|
}
|
|
2868
3325
|
|
|
@@ -3061,42 +3518,82 @@
|
|
|
3061
3518
|
max-height: calc(100% - 16px);
|
|
3062
3519
|
}
|
|
3063
3520
|
|
|
3064
|
-
|
|
3521
|
+
/* The header: the name at 20 on 28 in a 68px band 20px in, then what the dialog adds after it (the
|
|
3522
|
+
* settings dialog's pencil), and the close 34px at the far end, 3px past the padding so its mark
|
|
3523
|
+
* lines up with the page's edge. The header is the handle the dialog is carried by. */
|
|
3524
|
+
[data-qc-theme] .qc-drawing-dialog .qc-drawing-dialog-header {
|
|
3065
3525
|
display: flex;
|
|
3526
|
+
flex: 0 0 auto;
|
|
3066
3527
|
align-items: center;
|
|
3067
|
-
justify-content:
|
|
3068
|
-
gap:
|
|
3069
|
-
|
|
3070
|
-
|
|
3528
|
+
justify-content: flex-start;
|
|
3529
|
+
gap: 0;
|
|
3530
|
+
height: 68px;
|
|
3531
|
+
padding: 0 20px;
|
|
3532
|
+
cursor: grab;
|
|
3071
3533
|
user-select: none;
|
|
3072
3534
|
}
|
|
3073
3535
|
|
|
3074
3536
|
[data-qc-theme] .qc-drawing-dialog-title {
|
|
3537
|
+
min-width: 0;
|
|
3075
3538
|
overflow: hidden;
|
|
3539
|
+
font-size: 20px;
|
|
3540
|
+
font-weight: 600;
|
|
3541
|
+
line-height: 28px;
|
|
3076
3542
|
text-overflow: ellipsis;
|
|
3077
3543
|
white-space: nowrap;
|
|
3078
3544
|
}
|
|
3079
3545
|
|
|
3546
|
+
[data-qc-theme] .qc-drawing-dialog .qc-dialog-close {
|
|
3547
|
+
flex: 0 0 34px;
|
|
3548
|
+
margin-inline-start: auto;
|
|
3549
|
+
margin-inline-end: -3px;
|
|
3550
|
+
border-radius: 8px;
|
|
3551
|
+
}
|
|
3552
|
+
|
|
3553
|
+
/* The body 20px in from the sides; a drop box stands 8px under the header. */
|
|
3080
3554
|
[data-qc-theme] .qc-drawing-dialog-body {
|
|
3081
3555
|
display: flex;
|
|
3082
3556
|
flex: 1 1 auto;
|
|
3083
3557
|
flex-direction: column;
|
|
3084
|
-
gap: 4px;
|
|
3085
3558
|
min-height: 0;
|
|
3086
|
-
padding: 0
|
|
3559
|
+
padding: 0 20px;
|
|
3087
3560
|
overflow-y: auto;
|
|
3088
3561
|
}
|
|
3089
3562
|
|
|
3090
|
-
[data-qc-theme] .qc-drawing-dialog-
|
|
3563
|
+
[data-qc-theme] .qc-drawing-dialog-body > .qc-drawing-drop {
|
|
3564
|
+
margin-top: 8px;
|
|
3565
|
+
}
|
|
3566
|
+
|
|
3567
|
+
/* The image picker's transparency: its name at the start and its 180px track at the end of a 46px
|
|
3568
|
+
* line, each 10px down the line's 26px middle, 24px above the footer. */
|
|
3569
|
+
[data-qc-theme] .qc-drawing-picker-opacity {
|
|
3091
3570
|
display: flex;
|
|
3092
3571
|
align-items: center;
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3572
|
+
justify-content: space-between;
|
|
3573
|
+
margin-bottom: 24px;
|
|
3574
|
+
padding: 10px 0;
|
|
3575
|
+
}
|
|
3576
|
+
|
|
3577
|
+
[data-qc-theme] .qc-drawing-picker-opacity > * {
|
|
3578
|
+
margin-top: 10px;
|
|
3096
3579
|
}
|
|
3097
3580
|
|
|
3098
|
-
[data-qc-theme] .qc-drawing-
|
|
3099
|
-
|
|
3581
|
+
[data-qc-theme] .qc-drawing-picker-opacity > .qc-drawing-band-opacity {
|
|
3582
|
+
flex: 0 0 180px;
|
|
3583
|
+
width: 180px;
|
|
3584
|
+
margin-top: 10px;
|
|
3585
|
+
}
|
|
3586
|
+
|
|
3587
|
+
/* A drawing dialog's footer: what it leads with at the start (the settings dialog's Template list
|
|
3588
|
+
* button), then Cancel and the primary action 12px apart at the end, all 34px with an 8px corner,
|
|
3589
|
+
* over a 1px rule. Cancel is outlined in the outline role and takes the emphasis fill under the
|
|
3590
|
+
* pointer; the primary action wears the fill. */
|
|
3591
|
+
[data-qc-theme] .qc-drawing-dialog-footer {
|
|
3592
|
+
display: flex;
|
|
3593
|
+
align-items: center;
|
|
3594
|
+
justify-content: flex-end;
|
|
3595
|
+
padding: 16px 20px;
|
|
3596
|
+
border-top: 1px solid var(--qc-overlay-separator);
|
|
3100
3597
|
}
|
|
3101
3598
|
|
|
3102
3599
|
[data-qc-theme] .qc-drawing-footer-gap {
|
|
@@ -3112,31 +3609,225 @@
|
|
|
3112
3609
|
margin: 6px 0 4px;
|
|
3113
3610
|
}
|
|
3114
3611
|
|
|
3612
|
+
/* The settings dialog: a card at least 380px wide that grows to the widest page it shows, its
|
|
3613
|
+
* header, the page strip, the page and the footer stacked. */
|
|
3115
3614
|
[data-qc-theme] .qc-drawing-settings-dialog {
|
|
3116
|
-
width:
|
|
3117
|
-
|
|
3615
|
+
width: max-content;
|
|
3616
|
+
min-width: min(380px, calc(100% - 16px));
|
|
3617
|
+
max-width: calc(100% - 16px);
|
|
3118
3618
|
}
|
|
3119
3619
|
|
|
3120
|
-
|
|
3620
|
+
/* The settings dialog's pencil stands 5px after the name in a 34px cell. */
|
|
3621
|
+
[data-qc-theme] .qc-drawing-rename {
|
|
3121
3622
|
display: flex;
|
|
3122
|
-
flex
|
|
3123
|
-
|
|
3124
|
-
|
|
3623
|
+
flex: 0 0 34px;
|
|
3624
|
+
align-items: center;
|
|
3625
|
+
justify-content: center;
|
|
3626
|
+
width: 34px;
|
|
3627
|
+
height: 34px;
|
|
3628
|
+
margin-inline-start: 5px;
|
|
3629
|
+
padding: 0;
|
|
3630
|
+
color: var(--qc-text-primary);
|
|
3631
|
+
background: none;
|
|
3632
|
+
border: 0;
|
|
3633
|
+
border-radius: 2px;
|
|
3634
|
+
cursor: pointer;
|
|
3635
|
+
}
|
|
3636
|
+
|
|
3637
|
+
[data-qc-theme] .qc-drawing-rename:hover {
|
|
3638
|
+
background: var(--qc-state-hover);
|
|
3639
|
+
}
|
|
3640
|
+
|
|
3641
|
+
/* Renaming, the header is the name's field alone, as wide as the header and in the name's own type. */
|
|
3642
|
+
[data-qc-theme] .qc-drawing-dialog-header[data-qc-renaming='true'] > :not(.qc-drawing-rename-field) {
|
|
3643
|
+
display: none;
|
|
3644
|
+
}
|
|
3645
|
+
|
|
3646
|
+
[data-qc-theme] .qc-drawing-rename-field {
|
|
3647
|
+
flex: 1 1 auto;
|
|
3648
|
+
min-width: 0;
|
|
3649
|
+
font-size: 20px;
|
|
3650
|
+
font-weight: 600;
|
|
3651
|
+
line-height: 28px;
|
|
3652
|
+
}
|
|
3653
|
+
|
|
3654
|
+
/* The page strip: the tabs at 16 on 24, 12px apart, over a 4px track as wide as the page; the bar
|
|
3655
|
+
* standing on the track under the shown page glides to the next one. A tab under the pointer that
|
|
3656
|
+
* is not shown dims to the muted ink. */
|
|
3657
|
+
[data-qc-theme] .qc-drawing-tabs-slot {
|
|
3658
|
+
position: relative;
|
|
3659
|
+
flex: 0 0 auto;
|
|
3660
|
+
padding: 0 20px;
|
|
3661
|
+
}
|
|
3662
|
+
|
|
3663
|
+
[data-qc-theme] .qc-drawing-tabs-track {
|
|
3664
|
+
position: absolute;
|
|
3665
|
+
inset-inline: 20px;
|
|
3666
|
+
bottom: 0;
|
|
3667
|
+
height: 4px;
|
|
3668
|
+
background: var(--qc-overlay-separator);
|
|
3669
|
+
border-radius: 2px;
|
|
3670
|
+
}
|
|
3671
|
+
|
|
3672
|
+
[data-qc-theme] .qc-drawing-tabs {
|
|
3673
|
+
position: relative;
|
|
3674
|
+
display: inline-flex;
|
|
3675
|
+
vertical-align: top;
|
|
3676
|
+
white-space: nowrap;
|
|
3677
|
+
}
|
|
3678
|
+
|
|
3679
|
+
[data-qc-theme] .qc-drawing-tab {
|
|
3680
|
+
position: relative;
|
|
3681
|
+
margin: 0 12px;
|
|
3682
|
+
padding: 0 0 8px;
|
|
3683
|
+
color: var(--qc-text-primary);
|
|
3684
|
+
font: inherit;
|
|
3685
|
+
font-size: 16px;
|
|
3686
|
+
font-weight: 600;
|
|
3687
|
+
line-height: 24px;
|
|
3688
|
+
background: none;
|
|
3689
|
+
border: 0;
|
|
3690
|
+
border-radius: 4px;
|
|
3691
|
+
outline: none;
|
|
3692
|
+
cursor: pointer;
|
|
3693
|
+
}
|
|
3694
|
+
|
|
3695
|
+
[data-qc-theme] .qc-drawing-tab:first-of-type {
|
|
3696
|
+
margin-inline-start: 0;
|
|
3697
|
+
}
|
|
3698
|
+
|
|
3699
|
+
[data-qc-theme] .qc-drawing-tab:last-of-type {
|
|
3700
|
+
margin-inline-end: 0;
|
|
3701
|
+
}
|
|
3702
|
+
|
|
3703
|
+
[data-qc-theme] .qc-drawing-tab:not([aria-selected='true']):hover {
|
|
3704
|
+
color: var(--qc-text-muted);
|
|
3705
|
+
}
|
|
3706
|
+
|
|
3707
|
+
/* The keyboard's ring stands 10px out to either side of the label and over the bar's height. */
|
|
3708
|
+
[data-qc-theme] .qc-drawing-tab:focus-visible::after {
|
|
3709
|
+
position: absolute;
|
|
3710
|
+
inset: -2px -10px 0;
|
|
3711
|
+
border: 2px solid var(--qc-state-focusRing);
|
|
3712
|
+
border-radius: 8px;
|
|
3713
|
+
content: '';
|
|
3714
|
+
pointer-events: none;
|
|
3715
|
+
}
|
|
3716
|
+
|
|
3717
|
+
[data-qc-theme] .qc-drawing-tab-bar {
|
|
3718
|
+
position: absolute;
|
|
3719
|
+
bottom: 0;
|
|
3720
|
+
left: 0;
|
|
3721
|
+
height: 4px;
|
|
3722
|
+
background: var(--qc-control-on);
|
|
3723
|
+
border-radius: 2px;
|
|
3724
|
+
pointer-events: none;
|
|
3725
|
+
}
|
|
3726
|
+
|
|
3727
|
+
[data-qc-theme] .qc-drawing-tabs[data-qc-placed='true'] > .qc-drawing-tab-bar {
|
|
3728
|
+
transition: transform var(--qc-motion-durationGlide) var(--qc-motion-easingInOut), width var(--qc-motion-durationGlide) var(--qc-motion-easingInOut);
|
|
3729
|
+
}
|
|
3730
|
+
|
|
3731
|
+
/* The body scrolls the page alone, and keeps room for a short one. */
|
|
3732
|
+
[data-qc-theme] .qc-drawing-settings-dialog .qc-drawing-dialog-body {
|
|
3733
|
+
display: block;
|
|
3734
|
+
min-height: 145px;
|
|
3735
|
+
padding: 0;
|
|
3736
|
+
}
|
|
3737
|
+
|
|
3738
|
+
/* The page: a two-column grid inside 16px by 20px, the labels' column as wide as the widest label
|
|
3739
|
+
* and its 20px gap, the controls' column the rest. Everything on the page that is not a labelled
|
|
3740
|
+
* row stands across both columns. */
|
|
3741
|
+
[data-qc-theme] .qc-drawing-page {
|
|
3742
|
+
display: grid;
|
|
3743
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
3744
|
+
padding: 16px 20px;
|
|
3745
|
+
}
|
|
3746
|
+
|
|
3747
|
+
[data-qc-theme] .qc-drawing-page > :not(.qc-drawing-row) {
|
|
3748
|
+
grid-column: 1 / -1;
|
|
3749
|
+
}
|
|
3750
|
+
|
|
3751
|
+
[data-qc-theme] .qc-drawing-page > .qc-button {
|
|
3752
|
+
justify-self: start;
|
|
3125
3753
|
}
|
|
3126
3754
|
|
|
3127
3755
|
[data-qc-theme] .qc-drawing-template-button {
|
|
3128
|
-
display: flex;
|
|
3756
|
+
display: inline-flex;
|
|
3757
|
+
flex: 0 0 auto;
|
|
3129
3758
|
align-items: center;
|
|
3130
|
-
|
|
3759
|
+
width: 100px;
|
|
3760
|
+
padding: 0 2px 0 8px;
|
|
3761
|
+
cursor: pointer;
|
|
3131
3762
|
}
|
|
3132
3763
|
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3764
|
+
/* While its menu is open the Template button keeps the focus ring, and its chevron points up. */
|
|
3765
|
+
[data-qc-theme] .qc-drawing-template-button[aria-expanded='true'] {
|
|
3766
|
+
border-color: var(--qc-state-focusRing);
|
|
3767
|
+
box-shadow: inset 0 0 0 1px var(--qc-state-focusRing);
|
|
3136
3768
|
}
|
|
3137
3769
|
|
|
3138
|
-
[data-qc-theme] .qc-drawing-
|
|
3139
|
-
|
|
3770
|
+
[data-qc-theme] .qc-drawing-footer-button {
|
|
3771
|
+
display: inline-flex;
|
|
3772
|
+
align-items: center;
|
|
3773
|
+
justify-content: center;
|
|
3774
|
+
height: 34px;
|
|
3775
|
+
padding: 0 11px;
|
|
3776
|
+
font-size: 16px;
|
|
3777
|
+
line-height: 24px;
|
|
3778
|
+
border-radius: 8px;
|
|
3779
|
+
}
|
|
3780
|
+
|
|
3781
|
+
[data-qc-theme] .qc-drawing-footer-button + .qc-drawing-footer-button {
|
|
3782
|
+
margin-inline-start: 12px;
|
|
3783
|
+
}
|
|
3784
|
+
|
|
3785
|
+
[data-qc-theme] .qc-drawing-cancel {
|
|
3786
|
+
color: var(--qc-control-outline);
|
|
3787
|
+
border-color: var(--qc-control-outline);
|
|
3788
|
+
}
|
|
3789
|
+
|
|
3790
|
+
[data-qc-theme] .qc-drawing-cancel:hover:not([disabled]) {
|
|
3791
|
+
color: var(--qc-text-inverse);
|
|
3792
|
+
background: var(--qc-control-on);
|
|
3793
|
+
border-color: var(--qc-control-on);
|
|
3794
|
+
}
|
|
3795
|
+
|
|
3796
|
+
[data-qc-theme] .qc-drawing-cancel:active:not([disabled]) {
|
|
3797
|
+
color: var(--qc-text-inverse);
|
|
3798
|
+
background: var(--qc-control-onPressed);
|
|
3799
|
+
border-color: var(--qc-control-onPressed);
|
|
3800
|
+
}
|
|
3801
|
+
|
|
3802
|
+
/* The lists the dialog opens stand on a 10px corner; the Template menu is as wide as its words. */
|
|
3803
|
+
[data-qc-theme] .qc-drawing-popover--list {
|
|
3804
|
+
border-radius: 10px;
|
|
3805
|
+
}
|
|
3806
|
+
|
|
3807
|
+
[data-qc-theme] .qc-drawing-menu.qc-drawing-template-menu {
|
|
3808
|
+
width: max-content;
|
|
3809
|
+
min-width: 0;
|
|
3810
|
+
}
|
|
3811
|
+
|
|
3812
|
+
/* A saved template's row: its name, then the 26px slot at the end where its remove control
|
|
3813
|
+
* stands. The whole row lifts under the pointer. */
|
|
3814
|
+
[data-qc-theme] .qc-drawing-template-menu .qc-drawing-flyout-row {
|
|
3815
|
+
height: 32px;
|
|
3816
|
+
border-radius: 6px;
|
|
3817
|
+
}
|
|
3818
|
+
|
|
3819
|
+
[data-qc-theme] .qc-drawing-template-menu .qc-drawing-flyout-row > .qc-drawing-list-row {
|
|
3820
|
+
flex: 1 1 auto;
|
|
3821
|
+
width: auto;
|
|
3822
|
+
min-width: 0;
|
|
3823
|
+
}
|
|
3824
|
+
|
|
3825
|
+
[data-qc-theme] .qc-drawing-template-menu .qc-drawing-star {
|
|
3826
|
+
position: static;
|
|
3827
|
+
flex: 0 0 22px;
|
|
3828
|
+
width: 22px;
|
|
3829
|
+
height: 22px;
|
|
3830
|
+
margin-inline-end: 4px;
|
|
3140
3831
|
}
|
|
3141
3832
|
|
|
3142
3833
|
[data-qc-theme] .qc-drawing-note {
|
|
@@ -3144,15 +3835,216 @@
|
|
|
3144
3835
|
font-size: var(--qc-text-fontSizeSmall);
|
|
3145
3836
|
}
|
|
3146
3837
|
|
|
3147
|
-
/* The plane's live region: read by assistive technology, never seen. Clipped rather than hidden,
|
|
3148
|
-
* because a hidden node is not announced. */
|
|
3149
|
-
[data-qc-theme] .qc-drawing-status {
|
|
3150
|
-
position: absolute;
|
|
3151
|
-
width: 1px;
|
|
3152
|
-
height: 1px;
|
|
3153
|
-
overflow: hidden;
|
|
3154
|
-
clip-path: inset(50%);
|
|
3155
|
-
white-space: nowrap;
|
|
3838
|
+
/* The plane's live region: read by assistive technology, never seen. Clipped rather than hidden,
|
|
3839
|
+
* because a hidden node is not announced. */
|
|
3840
|
+
[data-qc-theme] .qc-drawing-status {
|
|
3841
|
+
position: absolute;
|
|
3842
|
+
width: 1px;
|
|
3843
|
+
height: 1px;
|
|
3844
|
+
overflow: hidden;
|
|
3845
|
+
clip-path: inset(50%);
|
|
3846
|
+
white-space: nowrap;
|
|
3847
|
+
}
|
|
3848
|
+
|
|
3849
|
+
/* A leveled tool's level grid: two levels to a 34px line, 8px between lines and 8px above the
|
|
3850
|
+
* first, each level its 18px switch, its 100px value and its 34px well 8px apart, the second level
|
|
3851
|
+
* 48px after the first's well, the line 412px across whatever its levels hold. A level switched off
|
|
3852
|
+
* keeps its well, and its stroke where it shows one, on the read-only fill, dimmed. */
|
|
3853
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-level-row {
|
|
3854
|
+
min-width: 412px;
|
|
3855
|
+
min-height: 34px;
|
|
3856
|
+
margin-bottom: 8px;
|
|
3857
|
+
padding: 0;
|
|
3858
|
+
}
|
|
3859
|
+
|
|
3860
|
+
[data-qc-theme] .qc-drawing-page > :not(.qc-drawing-level-row) + .qc-drawing-level-row {
|
|
3861
|
+
margin-top: 8px;
|
|
3862
|
+
}
|
|
3863
|
+
|
|
3864
|
+
[data-qc-theme] .qc-drawing-level-row > :nth-child(4) {
|
|
3865
|
+
margin-inline-start: 40px;
|
|
3866
|
+
}
|
|
3867
|
+
|
|
3868
|
+
/* A gann grid: two lines to a 34px line, 8px between lines and 8px above the first, each line its
|
|
3869
|
+
* switch with its place or its ratio, 78px across so every well stands in line, then its well 8px
|
|
3870
|
+
* after; the second line 48px after the first's well, the line 412px across. A fan's rays stand one
|
|
3871
|
+
* to a 50px line. */
|
|
3872
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-ratio-row {
|
|
3873
|
+
min-width: 412px;
|
|
3874
|
+
min-height: 34px;
|
|
3875
|
+
margin-bottom: 8px;
|
|
3876
|
+
padding: 0;
|
|
3877
|
+
}
|
|
3878
|
+
|
|
3879
|
+
[data-qc-theme] .qc-drawing-page > :not(.qc-drawing-ratio-row) + .qc-drawing-ratio-row {
|
|
3880
|
+
margin-top: 8px;
|
|
3881
|
+
}
|
|
3882
|
+
|
|
3883
|
+
[data-qc-theme] .qc-drawing-ratio-row > :nth-child(3) {
|
|
3884
|
+
margin-inline-start: 40px;
|
|
3885
|
+
}
|
|
3886
|
+
|
|
3887
|
+
[data-qc-theme] .qc-drawing-ratio-switch {
|
|
3888
|
+
flex: 0 0 78px;
|
|
3889
|
+
min-width: 0;
|
|
3890
|
+
min-height: 34px;
|
|
3891
|
+
}
|
|
3892
|
+
|
|
3893
|
+
/* An image's page: its caption across the page over the box that chooses the picture, 8px above it. */
|
|
3894
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-row--caption > .qc-drawing-row-label {
|
|
3895
|
+
grid-column: 1 / -1;
|
|
3896
|
+
min-height: 0;
|
|
3897
|
+
padding: 0;
|
|
3898
|
+
}
|
|
3899
|
+
|
|
3900
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-row--caption > .qc-drawing-row-controls {
|
|
3901
|
+
display: none;
|
|
3902
|
+
}
|
|
3903
|
+
|
|
3904
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-drop {
|
|
3905
|
+
margin-top: 8px;
|
|
3906
|
+
}
|
|
3907
|
+
|
|
3908
|
+
/* A signpost's emoji: a field-sized button wearing the glyph's artwork, or the glyph itself where
|
|
3909
|
+
* the artwork has not come. */
|
|
3910
|
+
[data-qc-theme] .qc-drawing-emoji-button {
|
|
3911
|
+
display: inline-flex;
|
|
3912
|
+
align-items: center;
|
|
3913
|
+
justify-content: center;
|
|
3914
|
+
width: 36px;
|
|
3915
|
+
height: 34px;
|
|
3916
|
+
padding: 0;
|
|
3917
|
+
border-radius: 6px;
|
|
3918
|
+
}
|
|
3919
|
+
|
|
3920
|
+
[data-qc-theme] .qc-drawing-emoji-button .qc-drawing-glyph-art {
|
|
3921
|
+
width: 24px;
|
|
3922
|
+
height: 24px;
|
|
3923
|
+
}
|
|
3924
|
+
|
|
3925
|
+
/* An emoji well beside a switch that is off stands dimmed on the field's fill, as a color well does. */
|
|
3926
|
+
[data-qc-theme] .qc-drawing-emoji-button[data-qc-dim='true'] {
|
|
3927
|
+
background: var(--qc-control-fieldFill);
|
|
3928
|
+
}
|
|
3929
|
+
|
|
3930
|
+
[data-qc-theme] .qc-drawing-emoji-button[data-qc-dim='true'] > * {
|
|
3931
|
+
opacity: 0.5;
|
|
3932
|
+
}
|
|
3933
|
+
|
|
3934
|
+
[data-qc-theme] .qc-drawing-emoji-face {
|
|
3935
|
+
font-size: 20px;
|
|
3936
|
+
line-height: 1;
|
|
3937
|
+
}
|
|
3938
|
+
|
|
3939
|
+
[data-qc-theme] .qc-drawing-swatch-button[data-qc-dim='true'] {
|
|
3940
|
+
background: var(--qc-control-fieldFill);
|
|
3941
|
+
}
|
|
3942
|
+
|
|
3943
|
+
[data-qc-theme] .qc-drawing-swatch-button[data-qc-dim='true'] > .qc-drawing-well,
|
|
3944
|
+
[data-qc-theme] .qc-drawing-swatch-button[data-qc-dim='true'] > .qc-drawing-stroke {
|
|
3945
|
+
opacity: 0.5;
|
|
3946
|
+
}
|
|
3947
|
+
|
|
3948
|
+
/* The one color while the levels differ: the well split corner to corner between the color it
|
|
3949
|
+
* offers and a second hue, so it reads as several colors rather than one. */
|
|
3950
|
+
[data-qc-theme] .qc-drawing-swatch-button[data-qc-mixed='true'] .qc-drawing-well-fill {
|
|
3951
|
+
background: linear-gradient(to top right, var(--qcd-swatch) 50%, var(--qcd-paired) 50%);
|
|
3952
|
+
}
|
|
3953
|
+
|
|
3954
|
+
/* A list button whose face is a mark: 76px around a 50px bar of the chosen thickness, or 34px
|
|
3955
|
+
* around the chosen style's 28px mark. A thickness list stands 12px wider than its button, each
|
|
3956
|
+
* choice its bar alone; a style list is as wide as its words. */
|
|
3957
|
+
[data-qc-theme] .qc-drawing-select--mark {
|
|
3958
|
+
justify-content: center;
|
|
3959
|
+
padding: 0;
|
|
3960
|
+
}
|
|
3961
|
+
|
|
3962
|
+
[data-qc-theme] .qc-drawing-select--mark[data-mark='thickness'] {
|
|
3963
|
+
width: 76px;
|
|
3964
|
+
}
|
|
3965
|
+
|
|
3966
|
+
[data-qc-theme] .qc-drawing-select--mark[data-mark='style'] {
|
|
3967
|
+
width: 34px;
|
|
3968
|
+
}
|
|
3969
|
+
|
|
3970
|
+
[data-qc-theme] .qc-drawing-thickness-bar {
|
|
3971
|
+
display: block;
|
|
3972
|
+
flex: 0 0 auto;
|
|
3973
|
+
width: 50px;
|
|
3974
|
+
background: currentColor;
|
|
3975
|
+
}
|
|
3976
|
+
|
|
3977
|
+
[data-qc-theme] .qc-drawing-mark-list[data-mark='thickness'] {
|
|
3978
|
+
width: 88px;
|
|
3979
|
+
}
|
|
3980
|
+
|
|
3981
|
+
[data-qc-theme] .qc-drawing-mark-list[data-mark='style'] {
|
|
3982
|
+
width: max-content;
|
|
3983
|
+
}
|
|
3984
|
+
|
|
3985
|
+
[data-qc-theme] .qc-drawing-list-row--bar {
|
|
3986
|
+
justify-content: center;
|
|
3987
|
+
}
|
|
3988
|
+
|
|
3989
|
+
/* The chosen thickness or style is cut from the emphasis fill in the ink of a mark. */
|
|
3990
|
+
[data-qc-theme] .qc-drawing-mark-list .qc-drawing-list-row[aria-selected='true'] {
|
|
3991
|
+
color: var(--qc-control-onInk);
|
|
3992
|
+
}
|
|
3993
|
+
|
|
3994
|
+
/* The bands' opacity: a 148px track 10px tall on a 5px corner that fades from nothing into the
|
|
3995
|
+
* drawings' line color over the checked ground the color popover's track stands on, inside a 1px
|
|
3996
|
+
* edge of that color; its 12px knob is the popover's, a dark disc with a light rim, a pixel proud
|
|
3997
|
+
* of the track above and below. */
|
|
3998
|
+
[data-qc-theme] .qc-drawing-band-opacity {
|
|
3999
|
+
--qcd-angle-0: 0deg;
|
|
4000
|
+
--qcd-black: hsl(var(--qcd-angle-0) 0% 0%);
|
|
4001
|
+
--qcd-white: hsl(var(--qcd-angle-0) 0% 100%);
|
|
4002
|
+
--qcd-check-hue: 224deg;
|
|
4003
|
+
--qcd-check: hsl(var(--qcd-check-hue) 15% 19% / 0.4);
|
|
4004
|
+
--qcd-ground: var(--qcd-black);
|
|
4005
|
+
flex: 0 0 148px;
|
|
4006
|
+
width: 148px;
|
|
4007
|
+
height: 10px;
|
|
4008
|
+
margin: 0;
|
|
4009
|
+
background:
|
|
4010
|
+
linear-gradient(to right, transparent, var(--qc-drawing-line)),
|
|
4011
|
+
repeating-conic-gradient(from 270deg, var(--qcd-check) 0% 25%, transparent 0% 50%) 1px 50% / 8px 8px,
|
|
4012
|
+
var(--qcd-ground);
|
|
4013
|
+
border: 1px solid var(--qc-drawing-line);
|
|
4014
|
+
border-radius: 5px;
|
|
4015
|
+
outline: none;
|
|
4016
|
+
cursor: pointer;
|
|
4017
|
+
appearance: none;
|
|
4018
|
+
}
|
|
4019
|
+
|
|
4020
|
+
[data-qc-theme='light'] .qc-drawing-band-opacity {
|
|
4021
|
+
--qcd-ground: var(--qcd-white);
|
|
4022
|
+
}
|
|
4023
|
+
|
|
4024
|
+
[data-qc-theme] .qc-drawing-band-opacity:focus-visible {
|
|
4025
|
+
box-shadow: 0 0 0 2px var(--qc-state-focusRing);
|
|
4026
|
+
}
|
|
4027
|
+
|
|
4028
|
+
[data-qc-theme] .qc-drawing-band-opacity::-webkit-slider-thumb {
|
|
4029
|
+
width: 12px;
|
|
4030
|
+
height: 12px;
|
|
4031
|
+
background: var(--qcd-black);
|
|
4032
|
+
border: 2px solid var(--qcd-white);
|
|
4033
|
+
border-radius: 50%;
|
|
4034
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
4035
|
+
cursor: pointer;
|
|
4036
|
+
appearance: none;
|
|
4037
|
+
}
|
|
4038
|
+
|
|
4039
|
+
[data-qc-theme] .qc-drawing-band-opacity::-moz-range-thumb {
|
|
4040
|
+
box-sizing: border-box;
|
|
4041
|
+
width: 12px;
|
|
4042
|
+
height: 12px;
|
|
4043
|
+
background: var(--qcd-black);
|
|
4044
|
+
border: 2px solid var(--qcd-white);
|
|
4045
|
+
border-radius: 50%;
|
|
4046
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
4047
|
+
cursor: pointer;
|
|
3156
4048
|
}
|
|
3157
4049
|
|
|
3158
4050
|
/* The drawing toolbar: the column down the chart's inline-start edge, its split cells, its flyouts
|
|
@@ -4491,8 +5383,9 @@
|
|
|
4491
5383
|
|
|
4492
5384
|
/* A chosen row inverts, the emphasis fill behind the inverse ink, and carries nothing else: no
|
|
4493
5385
|
* accent tint, no decorative dot. The row's own `aria-checked` is what a reader is told. A row that
|
|
4494
|
-
* IS a switch is not a choice among rows: its track says it is on, and the
|
|
4495
|
-
|
|
5386
|
+
* IS a switch or a checkbox is not a choice among rows: its track or its box says it is on, and the
|
|
5387
|
+
* row stays as it is. */
|
|
5388
|
+
[data-qc-theme] .qc-menu-row[aria-checked='true']:not([role='switch']):not([role='menuitemcheckbox']) {
|
|
4496
5389
|
color: var(--qc-text-inverse);
|
|
4497
5390
|
background: var(--qc-control-on);
|
|
4498
5391
|
}
|
|
@@ -4586,6 +5479,12 @@
|
|
|
4586
5479
|
pointer-events: auto;
|
|
4587
5480
|
}
|
|
4588
5481
|
|
|
5482
|
+
/* A dialog that edits what it stands over leaves it undimmed: the backdrop still takes the press
|
|
5483
|
+
* that closes the dialog, and paints nothing. */
|
|
5484
|
+
[data-qc-theme] .qc-dialog-scrim[data-qc-veil='none'] {
|
|
5485
|
+
background: transparent;
|
|
5486
|
+
}
|
|
5487
|
+
|
|
4589
5488
|
[data-qc-theme] .qc-dialog {
|
|
4590
5489
|
display: flex;
|
|
4591
5490
|
flex-direction: column;
|
|
@@ -4928,6 +5827,12 @@
|
|
|
4928
5827
|
color: var(--qc-text-inverse);
|
|
4929
5828
|
}
|
|
4930
5829
|
|
|
5830
|
+
/* The current starting point wears its mark and its words in the ink cut from the emphasis fill. */
|
|
5831
|
+
[data-qc-theme] .qc-replay-start-menu .qc-menu-row[aria-checked='true'],
|
|
5832
|
+
[data-qc-theme] .qc-replay-start-menu .qc-menu-row[aria-checked='true']:hover {
|
|
5833
|
+
color: var(--qc-control-onInk);
|
|
5834
|
+
}
|
|
5835
|
+
|
|
4931
5836
|
[data-qc-theme] .qc-replay-menu .qc-menu-row--marked {
|
|
4932
5837
|
height: 34px;
|
|
4933
5838
|
padding-inline-start: 8px;
|
|
@@ -5043,73 +5948,404 @@
|
|
|
5043
5948
|
}
|
|
5044
5949
|
|
|
5045
5950
|
/* The date picker. */
|
|
5951
|
+
|
|
5952
|
+
/* The card stands 302px wide over the undimmed chart: a 68px header, the fields, the calendar and the
|
|
5953
|
+
* chip, and a 67px footer. The header carries the title at 20 on 28, which is the handle the card is
|
|
5954
|
+
* carried by, and the close in a 34px cell whose mark stands 3px past the header's padding. */
|
|
5955
|
+
[data-qc-theme] .qc-date-header {
|
|
5956
|
+
display: flex;
|
|
5957
|
+
flex: 0 0 auto;
|
|
5958
|
+
align-items: center;
|
|
5959
|
+
height: 68px;
|
|
5960
|
+
padding: 0 20px;
|
|
5961
|
+
}
|
|
5962
|
+
|
|
5963
|
+
[data-qc-theme] .qc-date-title {
|
|
5964
|
+
flex: 1 1 auto;
|
|
5965
|
+
min-width: 0;
|
|
5966
|
+
padding: 17px 0;
|
|
5967
|
+
cursor: grab;
|
|
5968
|
+
user-select: none;
|
|
5969
|
+
}
|
|
5970
|
+
|
|
5971
|
+
[data-qc-theme] .qc-date-title-text {
|
|
5972
|
+
display: block;
|
|
5973
|
+
overflow: hidden;
|
|
5974
|
+
color: var(--qc-text-primary);
|
|
5975
|
+
font-size: 20px;
|
|
5976
|
+
font-weight: 600;
|
|
5977
|
+
line-height: 28px;
|
|
5978
|
+
text-overflow: ellipsis;
|
|
5979
|
+
white-space: nowrap;
|
|
5980
|
+
}
|
|
5981
|
+
|
|
5982
|
+
[data-qc-theme] .qc-date-dialog .qc-dialog-close {
|
|
5983
|
+
flex: 0 0 34px;
|
|
5984
|
+
margin-inline-end: -3px;
|
|
5985
|
+
border-radius: 8px;
|
|
5986
|
+
}
|
|
5987
|
+
|
|
5988
|
+
/* The body is a dialog body that sits 17px under the header, edge to edge, and scrolls only in a
|
|
5989
|
+
* viewport shorter than the card. */
|
|
5990
|
+
[data-qc-theme] .qc-date-content {
|
|
5991
|
+
gap: 0;
|
|
5992
|
+
padding: 17px 0 0;
|
|
5993
|
+
}
|
|
5994
|
+
|
|
5995
|
+
/* The fields stand side by side, 150px and 100px with 12px between, 16px over the calendar. Each is
|
|
5996
|
+
* the chart's 34px field box with a 28px mark 3px in from its end, in the caret's ink and the field's
|
|
5997
|
+
* own ink under the pointer: the date's page of days, and the clock that opens the time list. */
|
|
5046
5998
|
[data-qc-theme] .qc-date-fields {
|
|
5999
|
+
display: grid;
|
|
6000
|
+
grid-template-columns: 150px 100px;
|
|
6001
|
+
grid-template-rows: 34px;
|
|
6002
|
+
gap: 12px;
|
|
6003
|
+
margin-bottom: 16px;
|
|
6004
|
+
padding: 0 20px;
|
|
6005
|
+
}
|
|
6006
|
+
|
|
6007
|
+
[data-qc-theme] .qc-date-box {
|
|
6008
|
+
position: relative;
|
|
5047
6009
|
display: flex;
|
|
5048
|
-
gap: 8px;
|
|
5049
6010
|
}
|
|
5050
6011
|
|
|
5051
|
-
|
|
5052
|
-
[data-qc-theme] .qc-date-field {
|
|
6012
|
+
[data-qc-theme] .qc-date-box > .qc-field {
|
|
5053
6013
|
flex: 1 1 auto;
|
|
6014
|
+
width: 100%;
|
|
5054
6015
|
min-width: 0;
|
|
6016
|
+
padding-inline-end: 33px;
|
|
5055
6017
|
font-variant-numeric: tabular-nums;
|
|
5056
6018
|
}
|
|
5057
6019
|
|
|
5058
|
-
[data-qc-theme] .qc-date-
|
|
5059
|
-
|
|
5060
|
-
|
|
6020
|
+
[data-qc-theme] .qc-date-box-mark {
|
|
6021
|
+
position: absolute;
|
|
6022
|
+
inset-block-start: 3px;
|
|
6023
|
+
inset-inline-end: 3px;
|
|
6024
|
+
display: flex;
|
|
6025
|
+
align-items: center;
|
|
6026
|
+
justify-content: center;
|
|
6027
|
+
width: 28px;
|
|
6028
|
+
height: 28px;
|
|
6029
|
+
padding: 0;
|
|
6030
|
+
color: var(--qc-chrome-caret);
|
|
6031
|
+
background: none;
|
|
6032
|
+
border: 0;
|
|
6033
|
+
pointer-events: none;
|
|
6034
|
+
}
|
|
6035
|
+
|
|
6036
|
+
[data-qc-theme] .qc-date-box:hover > .qc-date-box-mark {
|
|
6037
|
+
color: var(--qc-text-primary);
|
|
6038
|
+
}
|
|
6039
|
+
|
|
6040
|
+
[data-qc-theme] .qc-date-clock {
|
|
6041
|
+
cursor: pointer;
|
|
6042
|
+
pointer-events: auto;
|
|
6043
|
+
}
|
|
6044
|
+
|
|
6045
|
+
/* The calendar: 286px on 8px margins, its 262px of content inside 12px, a 34px row of the arrows
|
|
6046
|
+
* around the heading, a 22px band 12px either side, and a 226px view, the whole at least 332px tall.
|
|
6047
|
+
* It reads left to right in every language, as a calendar's columns do. */
|
|
6048
|
+
[data-qc-theme] .qc-date-calendar {
|
|
6049
|
+
display: flex;
|
|
6050
|
+
flex-direction: column;
|
|
6051
|
+
min-height: 332px;
|
|
6052
|
+
margin: 0 8px;
|
|
6053
|
+
padding: 1px 12px 15px;
|
|
6054
|
+
direction: ltr;
|
|
6055
|
+
user-select: none;
|
|
5061
6056
|
}
|
|
5062
6057
|
|
|
5063
6058
|
[data-qc-theme] .qc-date-nav {
|
|
5064
6059
|
display: flex;
|
|
6060
|
+
flex: 0 0 34px;
|
|
5065
6061
|
align-items: center;
|
|
5066
6062
|
justify-content: space-between;
|
|
5067
|
-
padding:
|
|
6063
|
+
padding: 0 3px;
|
|
5068
6064
|
}
|
|
5069
6065
|
|
|
5070
|
-
|
|
5071
|
-
|
|
6066
|
+
/* Every press in the calendar is a 34px cell on an 8px corner with its words at 16 on 24. Under the
|
|
6067
|
+
* pointer it takes the hover fill and its words and mark brighten to the quiet ink; a day or a cell
|
|
6068
|
+
* that cannot be chosen keeps the disabled ink and takes no fill. */
|
|
6069
|
+
[data-qc-theme] .qc-date-step,
|
|
6070
|
+
[data-qc-theme] .qc-date-heading,
|
|
6071
|
+
[data-qc-theme] .qc-date-day,
|
|
6072
|
+
[data-qc-theme] .qc-date-cell {
|
|
6073
|
+
display: flex;
|
|
5072
6074
|
align-items: center;
|
|
5073
6075
|
justify-content: center;
|
|
5074
|
-
|
|
5075
|
-
|
|
5076
|
-
|
|
6076
|
+
height: 34px;
|
|
6077
|
+
font-size: 16px;
|
|
6078
|
+
line-height: 24px;
|
|
6079
|
+
white-space: nowrap;
|
|
5077
6080
|
border-color: transparent;
|
|
6081
|
+
border-radius: 8px;
|
|
6082
|
+
}
|
|
6083
|
+
|
|
6084
|
+
[data-qc-theme] .qc-date-step {
|
|
6085
|
+
flex: 0 0 34px;
|
|
6086
|
+
width: 34px;
|
|
6087
|
+
padding: 0;
|
|
6088
|
+
}
|
|
6089
|
+
|
|
6090
|
+
[data-qc-theme] .qc-date-heading {
|
|
6091
|
+
padding: 0 11px;
|
|
5078
6092
|
}
|
|
5079
6093
|
|
|
5080
|
-
[data-qc-theme] .qc-date-
|
|
6094
|
+
[data-qc-theme] .qc-date-dialog .qc-dialog-close:hover,
|
|
6095
|
+
[data-qc-theme] .qc-date-step:hover:not([disabled]),
|
|
6096
|
+
[data-qc-theme] .qc-date-heading:hover,
|
|
6097
|
+
[data-qc-theme] .qc-date-day:hover:not([disabled]):not([aria-selected='true']),
|
|
6098
|
+
[data-qc-theme] .qc-date-cell:hover:not([disabled]):not([aria-selected='true']) {
|
|
6099
|
+
color: var(--qc-control-neutralInk);
|
|
6100
|
+
}
|
|
6101
|
+
|
|
6102
|
+
/* The band over the grid, on the quiet fill: the weekdays spread across it in the muted ink, or the
|
|
6103
|
+
* word for the months or the years. */
|
|
6104
|
+
[data-qc-theme] .qc-date-band {
|
|
6105
|
+
display: flex;
|
|
6106
|
+
flex: 0 0 22px;
|
|
6107
|
+
align-items: center;
|
|
6108
|
+
justify-content: space-around;
|
|
6109
|
+
margin: 12px 0;
|
|
6110
|
+
padding: 2px 0;
|
|
6111
|
+
color: var(--qc-text-muted);
|
|
6112
|
+
font-size: 14px;
|
|
6113
|
+
line-height: 18px;
|
|
6114
|
+
background: var(--qc-control-neutral);
|
|
6115
|
+
border-radius: 6px;
|
|
6116
|
+
}
|
|
6117
|
+
|
|
6118
|
+
[data-qc-theme] .qc-date-view {
|
|
6119
|
+
flex: 0 0 226px;
|
|
6120
|
+
}
|
|
6121
|
+
|
|
6122
|
+
/* The days: weeks of seven 34px cells 4px apart, the first week against the end and the last against
|
|
6123
|
+
* the start, so each column is one weekday and no day of another month stands in a gap. The chosen day
|
|
6124
|
+
* is on the emphasis fill in the ink cut from it, and today wears a 2px bar under its number in the
|
|
6125
|
+
* number's own ink. */
|
|
6126
|
+
[data-qc-theme] .qc-date-weeks {
|
|
5081
6127
|
display: flex;
|
|
5082
6128
|
flex-direction: column;
|
|
5083
|
-
gap:
|
|
6129
|
+
gap: 4px;
|
|
5084
6130
|
}
|
|
5085
6131
|
|
|
5086
|
-
[data-qc-theme] .qc-date-
|
|
6132
|
+
[data-qc-theme] .qc-date-week {
|
|
6133
|
+
display: flex;
|
|
6134
|
+
justify-content: space-between;
|
|
6135
|
+
}
|
|
6136
|
+
|
|
6137
|
+
[data-qc-theme] .qc-date-week:first-child {
|
|
6138
|
+
justify-content: flex-end;
|
|
6139
|
+
}
|
|
6140
|
+
|
|
6141
|
+
[data-qc-theme] .qc-date-week:last-child {
|
|
6142
|
+
justify-content: flex-start;
|
|
6143
|
+
}
|
|
6144
|
+
|
|
6145
|
+
[data-qc-theme] .qc-date-week:first-child > .qc-date-day + .qc-date-day,
|
|
6146
|
+
[data-qc-theme] .qc-date-week:last-child > .qc-date-day + .qc-date-day {
|
|
6147
|
+
margin-inline-start: 4px;
|
|
6148
|
+
}
|
|
6149
|
+
|
|
6150
|
+
[data-qc-theme] .qc-date-day {
|
|
6151
|
+
position: relative;
|
|
6152
|
+
flex: 0 0 34px;
|
|
6153
|
+
width: 34px;
|
|
6154
|
+
padding: 0;
|
|
6155
|
+
}
|
|
6156
|
+
|
|
6157
|
+
[data-qc-theme] .qc-date-day[aria-selected='true']:not([disabled]) {
|
|
6158
|
+
color: var(--qc-control-onInk);
|
|
6159
|
+
background: var(--qc-control-on);
|
|
6160
|
+
border-color: var(--qc-control-on);
|
|
6161
|
+
}
|
|
6162
|
+
|
|
6163
|
+
[data-qc-theme] .qc-date-day[aria-current='date']::before {
|
|
6164
|
+
position: absolute;
|
|
6165
|
+
inset-inline: 6px;
|
|
6166
|
+
top: 100%;
|
|
6167
|
+
height: 2px;
|
|
6168
|
+
margin-top: -6px;
|
|
6169
|
+
background: currentColor;
|
|
6170
|
+
border-radius: 1px;
|
|
6171
|
+
content: '';
|
|
6172
|
+
}
|
|
6173
|
+
|
|
6174
|
+
/* The months, three to a row 30px apart, and the years, four to a row 14px apart, 3px between
|
|
6175
|
+
* columns. The chosen month or year stands on the quiet fill, a step up under the pointer. */
|
|
6176
|
+
[data-qc-theme] .qc-date-months,
|
|
6177
|
+
[data-qc-theme] .qc-date-years {
|
|
5087
6178
|
display: grid;
|
|
5088
|
-
grid-
|
|
5089
|
-
gap:
|
|
6179
|
+
grid-auto-rows: 34px;
|
|
6180
|
+
column-gap: 3px;
|
|
6181
|
+
}
|
|
6182
|
+
|
|
6183
|
+
[data-qc-theme] .qc-date-months {
|
|
6184
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
6185
|
+
row-gap: 30px;
|
|
6186
|
+
}
|
|
6187
|
+
|
|
6188
|
+
[data-qc-theme] .qc-date-years {
|
|
6189
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
6190
|
+
row-gap: 14px;
|
|
6191
|
+
}
|
|
6192
|
+
|
|
6193
|
+
[data-qc-theme] .qc-date-row {
|
|
6194
|
+
display: contents;
|
|
6195
|
+
}
|
|
6196
|
+
|
|
6197
|
+
[data-qc-theme] .qc-date-cell {
|
|
6198
|
+
min-width: 0;
|
|
6199
|
+
padding: 0 11px;
|
|
6200
|
+
}
|
|
6201
|
+
|
|
6202
|
+
[data-qc-theme] .qc-date-years .qc-date-cell {
|
|
6203
|
+
padding: 0 4px;
|
|
6204
|
+
}
|
|
6205
|
+
|
|
6206
|
+
[data-qc-theme] .qc-date-cell[aria-selected='true']:not([disabled]) {
|
|
6207
|
+
color: var(--qc-control-neutralInk);
|
|
6208
|
+
background: var(--qc-control-neutral);
|
|
6209
|
+
border-color: var(--qc-control-neutral);
|
|
6210
|
+
}
|
|
6211
|
+
|
|
6212
|
+
[data-qc-theme] .qc-date-cell[aria-selected='true']:not([disabled]):hover {
|
|
6213
|
+
background: var(--qc-control-neutralHover);
|
|
6214
|
+
border-color: var(--qc-control-neutralHover);
|
|
5090
6215
|
}
|
|
5091
6216
|
|
|
5092
|
-
|
|
6217
|
+
/* The chip under the calendar: 40px tall, its words at 16 on 24 and 15px in, centred and 10px over
|
|
6218
|
+
* the footer, on the quiet fill a step up under the pointer and another while pressed. */
|
|
6219
|
+
[data-qc-theme] .qc-date-first-row {
|
|
5093
6220
|
display: flex;
|
|
6221
|
+
justify-content: center;
|
|
6222
|
+
}
|
|
6223
|
+
|
|
6224
|
+
[data-qc-theme] .qc-date-first {
|
|
6225
|
+
display: inline-flex;
|
|
5094
6226
|
align-items: center;
|
|
5095
6227
|
justify-content: center;
|
|
5096
|
-
height:
|
|
6228
|
+
height: 40px;
|
|
6229
|
+
margin-bottom: 10px;
|
|
6230
|
+
padding: 0 15px;
|
|
6231
|
+
color: var(--qc-control-neutralInk);
|
|
6232
|
+
font-size: 16px;
|
|
6233
|
+
line-height: 24px;
|
|
6234
|
+
white-space: nowrap;
|
|
6235
|
+
background: var(--qc-control-neutral);
|
|
6236
|
+
border-color: var(--qc-control-neutral);
|
|
6237
|
+
border-radius: 8px;
|
|
5097
6238
|
}
|
|
5098
6239
|
|
|
5099
|
-
[data-qc-theme] .qc-date-
|
|
6240
|
+
[data-qc-theme] .qc-date-first:hover {
|
|
6241
|
+
background: var(--qc-control-neutralHover);
|
|
6242
|
+
border-color: var(--qc-control-neutralHover);
|
|
6243
|
+
}
|
|
6244
|
+
|
|
6245
|
+
[data-qc-theme] .qc-date-first:active {
|
|
6246
|
+
background: var(--qc-control-neutralPressed);
|
|
6247
|
+
border-color: var(--qc-control-neutralPressed);
|
|
6248
|
+
}
|
|
6249
|
+
|
|
6250
|
+
/* The footer under a 1px rule: Cancel and Select at its end, 34px tall and 12px apart, their words at
|
|
6251
|
+
* 16 on 24 and 11px in. Cancel is outlined in the outline role and takes the emphasis fill under the
|
|
6252
|
+
* pointer; Select wears the fill. */
|
|
6253
|
+
[data-qc-theme] .qc-date-footer {
|
|
5100
6254
|
display: flex;
|
|
6255
|
+
flex: 0 0 auto;
|
|
6256
|
+
justify-content: flex-end;
|
|
6257
|
+
padding: 16px 20px;
|
|
6258
|
+
border-top: 1px solid var(--qc-overlay-separator);
|
|
6259
|
+
}
|
|
6260
|
+
|
|
6261
|
+
[data-qc-theme] .qc-date-footer .qc-button {
|
|
6262
|
+
display: inline-flex;
|
|
5101
6263
|
align-items: center;
|
|
5102
6264
|
justify-content: center;
|
|
5103
|
-
height:
|
|
5104
|
-
padding: 0;
|
|
6265
|
+
height: 34px;
|
|
6266
|
+
padding: 0 11px;
|
|
6267
|
+
font-size: 16px;
|
|
6268
|
+
line-height: 24px;
|
|
6269
|
+
white-space: nowrap;
|
|
6270
|
+
border-radius: 8px;
|
|
6271
|
+
}
|
|
6272
|
+
|
|
6273
|
+
[data-qc-theme] .qc-date-footer .qc-button + .qc-button {
|
|
6274
|
+
margin-inline-start: 12px;
|
|
6275
|
+
}
|
|
6276
|
+
|
|
6277
|
+
[data-qc-theme] .qc-date-cancel {
|
|
6278
|
+
color: var(--qc-control-outline);
|
|
6279
|
+
border-color: var(--qc-control-outline);
|
|
6280
|
+
}
|
|
6281
|
+
|
|
6282
|
+
[data-qc-theme] .qc-date-cancel:hover:not([disabled]) {
|
|
6283
|
+
color: var(--qc-text-inverse);
|
|
6284
|
+
background: var(--qc-control-on);
|
|
6285
|
+
border-color: var(--qc-control-on);
|
|
6286
|
+
}
|
|
6287
|
+
|
|
6288
|
+
[data-qc-theme] .qc-date-cancel:active:not([disabled]) {
|
|
6289
|
+
color: var(--qc-text-inverse);
|
|
6290
|
+
background: var(--qc-control-onPressed);
|
|
6291
|
+
border-color: var(--qc-control-onPressed);
|
|
6292
|
+
}
|
|
6293
|
+
|
|
6294
|
+
/* The time list stands on the dialog's backdrop directly under the time field and as wide as it, at
|
|
6295
|
+
* most 231px tall over a scroll of its own: the day in quarter hours on 32px rows with their words
|
|
6296
|
+
* 12px in. The time the field holds is on the emphasis fill; the row under the pointer, or the one
|
|
6297
|
+
* the keyboard walked to, takes the hover fill and dims its words. */
|
|
6298
|
+
[data-qc-theme] .qc-date-times {
|
|
6299
|
+
position: absolute;
|
|
6300
|
+
z-index: 1;
|
|
6301
|
+
display: flex;
|
|
6302
|
+
flex-direction: column;
|
|
6303
|
+
max-height: 231px;
|
|
6304
|
+
overflow: hidden;
|
|
6305
|
+
}
|
|
6306
|
+
|
|
6307
|
+
[data-qc-theme] .qc-date-times-body {
|
|
6308
|
+
position: relative;
|
|
6309
|
+
}
|
|
6310
|
+
|
|
6311
|
+
[data-qc-theme] .qc-date-times-rows {
|
|
6312
|
+
padding: 6px 0;
|
|
6313
|
+
}
|
|
6314
|
+
|
|
6315
|
+
[data-qc-theme] .qc-date-time-option {
|
|
6316
|
+
display: flex;
|
|
6317
|
+
align-items: center;
|
|
6318
|
+
height: 32px;
|
|
6319
|
+
padding-block: 0;
|
|
6320
|
+
padding-inline: 12px 10px;
|
|
6321
|
+
color: var(--qc-text-primary);
|
|
6322
|
+
font-size: 14px;
|
|
6323
|
+
line-height: 16px;
|
|
5105
6324
|
font-variant-numeric: tabular-nums;
|
|
5106
|
-
|
|
6325
|
+
cursor: default;
|
|
6326
|
+
user-select: none;
|
|
5107
6327
|
}
|
|
5108
6328
|
|
|
5109
|
-
[data-qc-theme] .qc-date-
|
|
5110
|
-
|
|
5111
|
-
|
|
5112
|
-
|
|
6329
|
+
[data-qc-theme] .qc-date-time-option:hover,
|
|
6330
|
+
[data-qc-theme] .qc-date-time-option[data-qc-active='true'] {
|
|
6331
|
+
color: var(--qc-state-hoverInk);
|
|
6332
|
+
background: var(--qc-state-hover);
|
|
6333
|
+
}
|
|
6334
|
+
|
|
6335
|
+
[data-qc-theme] .qc-date-time-option[aria-selected='true'] {
|
|
6336
|
+
color: var(--qc-control-onInk);
|
|
6337
|
+
background: var(--qc-control-on);
|
|
6338
|
+
}
|
|
6339
|
+
|
|
6340
|
+
/* Forced colors: what is chosen in the calendar and the time list stands in the system highlight. */
|
|
6341
|
+
@media (forced-colors: active) {
|
|
6342
|
+
[data-qc-theme] .qc-date-day[aria-selected='true'],
|
|
6343
|
+
[data-qc-theme] .qc-date-cell[aria-selected='true'],
|
|
6344
|
+
[data-qc-theme] .qc-date-time-option[aria-selected='true'] {
|
|
6345
|
+
forced-color-adjust: none;
|
|
6346
|
+
color: HighlightText;
|
|
6347
|
+
background: Highlight;
|
|
6348
|
+
}
|
|
5113
6349
|
}
|
|
5114
6350
|
|
|
5115
6351
|
/* The thin bar beside a list the viewer scrolls to find something: the search results, the
|