@trdrs/quickcharts 3.0.0 → 4.0.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 +101 -0
- package/README.md +234 -23
- package/dist/adapters/rest.d.ts +1 -1
- package/dist/{ar-HLKX6L6O.js → ar-FXZ5QJUR.js} +205 -56
- package/dist/ar-FXZ5QJUR.js.map +1 -0
- package/dist/{assets-C1VjN7DP.d.ts → assets-Gg-UquDA.d.ts} +284 -61
- package/dist/{ca_ES-3ALUJ2FI.js → ca_ES-3WVKFBIF.js} +205 -56
- package/dist/ca_ES-3WVKFBIF.js.map +1 -0
- package/dist/chunk-C4MEVUNK.js +11449 -0
- package/dist/chunk-C4MEVUNK.js.map +1 -0
- package/dist/{de-GXKOZYHP.js → de-V72Q3OI7.js} +205 -56
- package/dist/de-V72Q3OI7.js.map +1 -0
- package/dist/drawings.d.ts +24 -13
- package/dist/drawings.js +5 -1
- package/dist/{es-R7WSUWO2.js → es-CNQ3OJ6E.js} +205 -56
- package/dist/es-CNQ3OJ6E.js.map +1 -0
- package/dist/feature-manifest.json +74 -11
- package/dist/{fr-EBUMQLPT.js → fr-5WQBCGR4.js} +205 -56
- package/dist/fr-5WQBCGR4.js.map +1 -0
- package/dist/{he_IL-GCAXKEWB.js → he_IL-WXKA77UE.js} +205 -56
- package/dist/he_IL-WXKA77UE.js.map +1 -0
- package/dist/{id_ID-6JYEEKEA.js → id_ID-XPBAYSWK.js} +205 -56
- package/dist/id_ID-XPBAYSWK.js.map +1 -0
- package/dist/index.d.ts +1775 -1660
- package/dist/index.js +4513 -1815
- package/dist/index.js.map +1 -1
- package/dist/{it-IMLHI5VO.js → it-DR2EBNWX.js} +205 -56
- package/dist/it-DR2EBNWX.js.map +1 -0
- package/dist/{ja-QDEQ2EYA.js → ja-URB2CPXO.js} +205 -56
- package/dist/ja-URB2CPXO.js.map +1 -0
- package/dist/{ko-MTA7BZI3.js → ko-OE47NYVP.js} +205 -56
- package/dist/ko-OE47NYVP.js.map +1 -0
- package/dist/{ms_MY-K4EAHE5J.js → ms_MY-BKCFRK2K.js} +205 -56
- package/dist/ms_MY-BKCFRK2K.js.map +1 -0
- package/dist/{pl-CIIDQ3SB.js → pl-3IKQRG3Y.js} +205 -56
- package/dist/pl-3IKQRG3Y.js.map +1 -0
- package/dist/{pt-3HA2PDUN.js → pt-PZHV5EZE.js} +205 -56
- package/dist/pt-PZHV5EZE.js.map +1 -0
- package/dist/quickcharts.css +1627 -422
- package/dist/{resources-C0cYryO9.d.ts → resources-Le6flcEn.d.ts} +1 -1
- package/dist/{ru-2F2VGHMW.js → ru-BAL6RQUV.js} +205 -56
- package/dist/ru-BAL6RQUV.js.map +1 -0
- package/dist/{sv-HCBRKFRZ.js → sv-Y6GBGDHM.js} +205 -56
- package/dist/sv-Y6GBGDHM.js.map +1 -0
- package/dist/{th-WWPM2QKB.js → th-MAMLMZKU.js} +205 -56
- package/dist/th-MAMLMZKU.js.map +1 -0
- package/dist/theme-manifest.json +148 -14
- package/dist/{tr-M57AMCWK.js → tr-3LQHINUZ.js} +205 -56
- package/dist/tr-3LQHINUZ.js.map +1 -0
- package/dist/{vi-YJHN2OK7.js → vi-GR4PSDKP.js} +205 -56
- package/dist/vi-GR4PSDKP.js.map +1 -0
- package/dist/{zh-AIFC65OE.js → zh-2RJ5VNAI.js} +205 -56
- package/dist/zh-2RJ5VNAI.js.map +1 -0
- package/dist/{zh_TW-2LLLW4H6.js → zh_TW-XEBSACHU.js} +205 -56
- package/dist/zh_TW-XEBSACHU.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;
|
|
@@ -245,6 +264,16 @@
|
|
|
245
264
|
box-sizing: inherit;
|
|
246
265
|
}
|
|
247
266
|
|
|
267
|
+
/* Every control reads in the chart's font: a button, a field or a list takes the root's family rather
|
|
268
|
+
* than the browser's own control font, whatever words it shows or holds. A recipe that sets a size
|
|
269
|
+
* or a weight keeps it, and one that names a family of its own outranks this. */
|
|
270
|
+
[data-qc-theme] button,
|
|
271
|
+
[data-qc-theme] input,
|
|
272
|
+
[data-qc-theme] select,
|
|
273
|
+
[data-qc-theme] textarea {
|
|
274
|
+
font-family: inherit;
|
|
275
|
+
}
|
|
276
|
+
|
|
248
277
|
/* Surfaces ------------------------------------------------------------------------------------ */
|
|
249
278
|
|
|
250
279
|
[data-qc-theme] .qc-surface {
|
|
@@ -380,7 +409,7 @@
|
|
|
380
409
|
}
|
|
381
410
|
|
|
382
411
|
/* 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. */
|
|
412
|
+
* disabled one stands its words back too, in the disabled ink. */
|
|
384
413
|
[data-qc-theme] .qc-field[readonly] {
|
|
385
414
|
background: var(--qc-control-fieldFill);
|
|
386
415
|
border-color: var(--qc-control-fieldEdge);
|
|
@@ -388,7 +417,7 @@
|
|
|
388
417
|
|
|
389
418
|
[data-qc-theme] .qc-field:disabled,
|
|
390
419
|
[data-qc-theme] .qc-field[aria-disabled='true'] {
|
|
391
|
-
color: var(--qc-text-
|
|
420
|
+
color: var(--qc-text-disabled);
|
|
392
421
|
background: var(--qc-control-fieldFill);
|
|
393
422
|
border-color: var(--qc-control-fieldEdge);
|
|
394
423
|
cursor: default;
|
|
@@ -418,7 +447,7 @@
|
|
|
418
447
|
box-shadow: inset 0 0 0 1px var(--qc-control-fieldInvalid);
|
|
419
448
|
}
|
|
420
449
|
|
|
421
|
-
/* A select draws its own chevron: the 18px mark in the
|
|
450
|
+
/* A select draws its own chevron: the 18px mark in the caret ink, in a 20 by 28 slot 2px in from the
|
|
422
451
|
* end of the box. A native select gives up the slot's room and takes the press the slot lets
|
|
423
452
|
* through; a list button lays the slot out after its face and turns the mark while its list is open,
|
|
424
453
|
* keyed on its own state, so a list button inside some other open thing does not turn. */
|
|
@@ -442,7 +471,7 @@
|
|
|
442
471
|
justify-content: center;
|
|
443
472
|
width: 20px;
|
|
444
473
|
height: 28px;
|
|
445
|
-
color: var(--qc-
|
|
474
|
+
color: var(--qc-chrome-caret);
|
|
446
475
|
pointer-events: none;
|
|
447
476
|
}
|
|
448
477
|
|
|
@@ -453,7 +482,7 @@
|
|
|
453
482
|
}
|
|
454
483
|
|
|
455
484
|
[data-qc-theme] .qc-select-chevron > svg {
|
|
456
|
-
transition: rotate var(--qc-motion-durationSlow) var(--qc-motion-
|
|
485
|
+
transition: rotate var(--qc-motion-durationSlow) var(--qc-motion-easingStandard);
|
|
457
486
|
}
|
|
458
487
|
|
|
459
488
|
[data-qc-theme] [aria-expanded='true'] > .qc-select-chevron > svg {
|
|
@@ -1892,12 +1921,45 @@
|
|
|
1892
1921
|
|
|
1893
1922
|
/* The inline text editor over the pane, the glyph picker and the image picker. */
|
|
1894
1923
|
|
|
1895
|
-
/* The editor
|
|
1896
|
-
*
|
|
1897
|
-
* role, so it reads as the field it is without a fill hiding the chart. */
|
|
1924
|
+
/* The text editor over the pane. Its place, size and type are written by the editor, because they
|
|
1925
|
+
* are the words' own. */
|
|
1898
1926
|
[data-qc-theme] .qc-drawing-text-editor {
|
|
1899
1927
|
position: absolute;
|
|
1900
1928
|
z-index: 8;
|
|
1929
|
+
margin: 0;
|
|
1930
|
+
resize: none;
|
|
1931
|
+
pointer-events: auto;
|
|
1932
|
+
}
|
|
1933
|
+
|
|
1934
|
+
/* Over a drawing that types its words on the chart, the field is seen by nobody: the chart paints
|
|
1935
|
+
* the words, the caret, the selection and the placeholder, and the field only takes the keys. It
|
|
1936
|
+
* lies exactly over the painted words, 2px of padding around their block, in their own type with
|
|
1937
|
+
* nothing of its own (no spacing, features or decoration) that would part its caret from them. */
|
|
1938
|
+
[data-qc-theme] .qc-drawing-text-editor[data-qc-editor='inline'] {
|
|
1939
|
+
box-sizing: border-box;
|
|
1940
|
+
min-width: 0;
|
|
1941
|
+
max-width: none;
|
|
1942
|
+
padding: 2px;
|
|
1943
|
+
overflow: hidden;
|
|
1944
|
+
overflow-wrap: break-word;
|
|
1945
|
+
color: inherit;
|
|
1946
|
+
font-feature-settings: normal;
|
|
1947
|
+
font-kerning: auto;
|
|
1948
|
+
letter-spacing: normal;
|
|
1949
|
+
word-spacing: normal;
|
|
1950
|
+
text-indent: 0;
|
|
1951
|
+
text-transform: none;
|
|
1952
|
+
background: none;
|
|
1953
|
+
border: 0;
|
|
1954
|
+
outline: none;
|
|
1955
|
+
box-shadow: none;
|
|
1956
|
+
opacity: 0;
|
|
1957
|
+
}
|
|
1958
|
+
|
|
1959
|
+
/* Over any other drawing, the editor is a box at the drawing's own text position in the drawing's
|
|
1960
|
+
* own type, its size following the content. The ring is the focus role, so it reads as the field it
|
|
1961
|
+
* is without a fill hiding the chart. */
|
|
1962
|
+
[data-qc-theme] .qc-drawing-text-editor[data-qc-editor='box'] {
|
|
1901
1963
|
padding: 3px 6px;
|
|
1902
1964
|
overflow: hidden;
|
|
1903
1965
|
text-align: center;
|
|
@@ -1907,11 +1969,9 @@
|
|
|
1907
1969
|
border-radius: 2px;
|
|
1908
1970
|
outline: none;
|
|
1909
1971
|
box-shadow: 0 0 0 1px var(--qc-state-focusRing);
|
|
1910
|
-
resize: none;
|
|
1911
|
-
pointer-events: auto;
|
|
1912
1972
|
}
|
|
1913
1973
|
|
|
1914
|
-
[data-qc-theme] .qc-drawing-text-editor::placeholder {
|
|
1974
|
+
[data-qc-theme] .qc-drawing-text-editor[data-qc-editor='box']::placeholder {
|
|
1915
1975
|
color: var(--qc-text-muted);
|
|
1916
1976
|
}
|
|
1917
1977
|
|
|
@@ -2065,7 +2125,7 @@
|
|
|
2065
2125
|
color: var(--qc-text-primary);
|
|
2066
2126
|
background: var(--qc-chrome-surfaceRaised);
|
|
2067
2127
|
border: 1px dashed var(--qc-chrome-borderStrong);
|
|
2068
|
-
border-radius:
|
|
2128
|
+
border-radius: 4px;
|
|
2069
2129
|
cursor: pointer;
|
|
2070
2130
|
}
|
|
2071
2131
|
|
|
@@ -2081,16 +2141,21 @@
|
|
|
2081
2141
|
object-fit: contain;
|
|
2082
2142
|
}
|
|
2083
2143
|
|
|
2144
|
+
/* The words a drop box states: its call at 16 on 24 with 8px around it and 8px under it, then the
|
|
2145
|
+
* formats and the size at 14 on 21 in the secondary ink. */
|
|
2084
2146
|
[data-qc-theme] .qc-drawing-drop-words {
|
|
2085
2147
|
display: flex;
|
|
2086
2148
|
flex-direction: column;
|
|
2087
|
-
gap: 4px;
|
|
2088
2149
|
align-items: center;
|
|
2089
|
-
font-size: var(--qc-text-
|
|
2150
|
+
font-size: var(--qc-text-fontSizeBase);
|
|
2151
|
+
line-height: 21px;
|
|
2090
2152
|
}
|
|
2091
2153
|
|
|
2092
2154
|
[data-qc-theme] .qc-drawing-drop-title {
|
|
2093
|
-
|
|
2155
|
+
margin-bottom: 8px;
|
|
2156
|
+
padding: 8px;
|
|
2157
|
+
font-size: 16px;
|
|
2158
|
+
line-height: 24px;
|
|
2094
2159
|
}
|
|
2095
2160
|
|
|
2096
2161
|
[data-qc-theme] .qc-drawing-file {
|
|
@@ -2151,33 +2216,167 @@
|
|
|
2151
2216
|
cursor: default;
|
|
2152
2217
|
}
|
|
2153
2218
|
|
|
2154
|
-
/*
|
|
2155
|
-
*
|
|
2219
|
+
/* On a settings page a row lays out nothing of its own: its label and its controls are the grid's
|
|
2220
|
+
* two cells, each 50px tall around a 34px control. A label stands 20px clear of the controls and
|
|
2221
|
+
* wraps rather than cutting a word short; the controls stand 8px apart. */
|
|
2222
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-row {
|
|
2223
|
+
display: contents;
|
|
2224
|
+
}
|
|
2225
|
+
|
|
2226
|
+
[data-qc-theme] .qc-drawing-page .qc-drawing-row-label {
|
|
2227
|
+
display: flex;
|
|
2228
|
+
align-items: center;
|
|
2229
|
+
min-width: 0;
|
|
2230
|
+
min-height: 50px;
|
|
2231
|
+
padding: 8px 20px 8px 0;
|
|
2232
|
+
overflow: visible;
|
|
2233
|
+
color: var(--qc-text-primary);
|
|
2234
|
+
white-space: normal;
|
|
2235
|
+
overflow-wrap: break-word;
|
|
2236
|
+
}
|
|
2237
|
+
|
|
2238
|
+
[data-qc-theme] .qc-drawing-page .qc-drawing-row-controls {
|
|
2239
|
+
flex-wrap: nowrap;
|
|
2240
|
+
gap: 8px;
|
|
2241
|
+
min-width: 0;
|
|
2242
|
+
min-height: 50px;
|
|
2243
|
+
padding: 8px 0;
|
|
2244
|
+
}
|
|
2245
|
+
|
|
2246
|
+
/* A checkbox row: the 18px box 8px before its words, across both columns in a 50px row. */
|
|
2247
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-toggle {
|
|
2248
|
+
min-height: 50px;
|
|
2249
|
+
}
|
|
2250
|
+
|
|
2251
|
+
[data-qc-theme] .qc-drawing-row-full {
|
|
2252
|
+
display: flex;
|
|
2253
|
+
align-items: center;
|
|
2254
|
+
gap: 8px;
|
|
2255
|
+
min-height: 50px;
|
|
2256
|
+
padding: 8px 0;
|
|
2257
|
+
}
|
|
2258
|
+
|
|
2259
|
+
/* A section title: 11px capitals in the muted ink, in a 32px row, or in a field row's 50px where it
|
|
2260
|
+
* heads a list of inputs. */
|
|
2261
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-section {
|
|
2262
|
+
display: flex;
|
|
2263
|
+
align-items: center;
|
|
2264
|
+
height: 32px;
|
|
2265
|
+
padding: 0;
|
|
2266
|
+
letter-spacing: normal;
|
|
2267
|
+
}
|
|
2268
|
+
|
|
2269
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-section--row {
|
|
2270
|
+
height: 50px;
|
|
2271
|
+
}
|
|
2272
|
+
|
|
2273
|
+
/* A checkbox row in a list of inputs stands 34px, 8px around its box. */
|
|
2274
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-toggle--compact {
|
|
2275
|
+
min-height: 34px;
|
|
2276
|
+
}
|
|
2277
|
+
|
|
2278
|
+
/* A row nested under the switch before it sets its label, or its labelling checkbox, 26px in. */
|
|
2279
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-row--nested > .qc-drawing-row-label {
|
|
2280
|
+
padding-inline-start: 26px;
|
|
2281
|
+
}
|
|
2282
|
+
|
|
2283
|
+
/* A band on one line: its switch 16px before its name, then its multiplier 8px after the name. */
|
|
2284
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-band-row > .qc-drawing-toggle {
|
|
2285
|
+
gap: 16px;
|
|
2286
|
+
}
|
|
2287
|
+
|
|
2288
|
+
[data-qc-theme] .qc-drawing-group-gap {
|
|
2289
|
+
height: 16px;
|
|
2290
|
+
}
|
|
2291
|
+
|
|
2292
|
+
/* The text fields, list buttons and number fields are the chart's 34px field box; these rules give
|
|
2293
|
+
* them their widths and lay a list button's face out: its words 8px in, cut short with an ellipsis,
|
|
2294
|
+
* then the chevron's slot 2px from the end. */
|
|
2156
2295
|
[data-qc-theme] .qc-drawing-select {
|
|
2157
|
-
|
|
2296
|
+
display: inline-flex;
|
|
2297
|
+
flex: 0 0 auto;
|
|
2298
|
+
align-items: center;
|
|
2299
|
+
width: 100px;
|
|
2300
|
+
padding: 0 2px 0 7px;
|
|
2301
|
+
text-align: start;
|
|
2302
|
+
cursor: pointer;
|
|
2303
|
+
}
|
|
2304
|
+
|
|
2305
|
+
/* A list button's edge steps further under the pointer than another field's, below the states that
|
|
2306
|
+
* outrank the pointer: a field that cannot be used, a refused value and the keyboard's ring. */
|
|
2307
|
+
[data-qc-theme] .qc-drawing-select:hover:not(:disabled):not([aria-invalid='true']):not(:focus-visible) {
|
|
2308
|
+
border-color: var(--qc-control-selectEdgeHover);
|
|
2309
|
+
}
|
|
2310
|
+
|
|
2311
|
+
[data-qc-theme] .qc-drawing-select[data-width='medium'] {
|
|
2312
|
+
width: 150px;
|
|
2313
|
+
}
|
|
2314
|
+
|
|
2315
|
+
[data-qc-theme] .qc-drawing-select[data-width='wide'] {
|
|
2316
|
+
width: 180px;
|
|
2317
|
+
}
|
|
2318
|
+
|
|
2319
|
+
[data-qc-theme] .qc-drawing-select-value {
|
|
2320
|
+
flex: 1 1 auto;
|
|
2321
|
+
min-width: 0;
|
|
2322
|
+
padding-inline-end: 6px;
|
|
2323
|
+
overflow: hidden;
|
|
2324
|
+
text-overflow: ellipsis;
|
|
2325
|
+
white-space: nowrap;
|
|
2326
|
+
}
|
|
2327
|
+
|
|
2328
|
+
/* A list's rows: 32px, the words at 14 on 18 and 8px in; a row with a mark carries the 28px mark 4px
|
|
2329
|
+
* in and its name 6px after it; a row of a list of switches carries the settings rows' 18px checkbox
|
|
2330
|
+
* 8px in and its name 10px after it. The chosen row of a list of choices inverts; a ticked switch
|
|
2331
|
+
* keeps the list's ground, its box saying it is on. A list button's list is as wide as its
|
|
2332
|
+
* longest row, never narrower than the button that opened it (the button sets that floor, and a
|
|
2333
|
+
* list of switches is held to the button's own width). */
|
|
2334
|
+
[data-qc-theme] .qc-drawing-menu.qc-drawing-select-list {
|
|
2335
|
+
width: max-content;
|
|
2336
|
+
min-width: 0;
|
|
2337
|
+
}
|
|
2338
|
+
|
|
2339
|
+
[data-qc-theme] .qc-drawing-list-row {
|
|
2340
|
+
height: 32px;
|
|
2341
|
+
gap: 0;
|
|
2342
|
+
padding: 0 8px;
|
|
2343
|
+
line-height: 18px;
|
|
2344
|
+
border-radius: 6px;
|
|
2345
|
+
}
|
|
2346
|
+
|
|
2347
|
+
[data-qc-theme] .qc-drawing-list-row--mark {
|
|
2348
|
+
gap: 6px;
|
|
2349
|
+
padding: 0 14px 0 4px;
|
|
2350
|
+
}
|
|
2351
|
+
|
|
2352
|
+
[data-qc-theme] .qc-drawing-list-row--check {
|
|
2353
|
+
gap: 10px;
|
|
2354
|
+
padding: 0 8px;
|
|
2158
2355
|
}
|
|
2159
2356
|
|
|
2160
2357
|
[data-qc-theme] .qc-drawing-input[data-width='short'] {
|
|
2161
2358
|
width: 96px;
|
|
2162
2359
|
}
|
|
2163
2360
|
|
|
2164
|
-
|
|
2361
|
+
/* The text area is the field box 100px tall across the page, 172px for a tool that is its words (a
|
|
2362
|
+
* text, a note, a callout), its words 8px in from the sides and 5px from the top. */
|
|
2363
|
+
[data-qc-theme] .qc-drawing-textarea {
|
|
2165
2364
|
width: 100%;
|
|
2365
|
+
height: 100px;
|
|
2366
|
+
margin: 0;
|
|
2367
|
+
padding: 4px 7px;
|
|
2368
|
+
resize: none;
|
|
2166
2369
|
}
|
|
2167
2370
|
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
width: 100%;
|
|
2171
|
-
height: auto;
|
|
2172
|
-
min-height: 80px;
|
|
2173
|
-
margin-top: 4px;
|
|
2174
|
-
padding: 7px;
|
|
2175
|
-
resize: vertical;
|
|
2371
|
+
[data-qc-theme] .qc-drawing-textarea[data-size='tall'] {
|
|
2372
|
+
height: 172px;
|
|
2176
2373
|
}
|
|
2177
2374
|
|
|
2178
|
-
/* The number field
|
|
2179
|
-
*
|
|
2180
|
-
*
|
|
2375
|
+
/* The number field keeps the end of its box for its steppers whether they show or not: a 22 by 28
|
|
2376
|
+
* slot 2px in from the edge, the words stopping 2px short of it, the arrows revealed on hover or
|
|
2377
|
+
* focus. A field that cannot be used keeps no slot and shows no arrows, its words running to 4px
|
|
2378
|
+
* from its edge. The pointer on a stepper is on the field, so the edge steps up there too, at the
|
|
2379
|
+
* weight of the field's own pointer state. */
|
|
2181
2380
|
[data-qc-theme] .qc-drawing-number-wrap {
|
|
2182
2381
|
position: relative;
|
|
2183
2382
|
display: inline-flex;
|
|
@@ -2195,13 +2394,17 @@
|
|
|
2195
2394
|
width: 84px;
|
|
2196
2395
|
}
|
|
2197
2396
|
|
|
2397
|
+
[data-qc-theme] .qc-drawing-number-wrap[data-width='field'] {
|
|
2398
|
+
width: 100px;
|
|
2399
|
+
}
|
|
2400
|
+
|
|
2198
2401
|
[data-qc-theme] .qc-drawing-number-wrap[data-width='wide'] {
|
|
2199
2402
|
width: 112px;
|
|
2200
2403
|
}
|
|
2201
2404
|
|
|
2202
2405
|
[data-qc-theme] .qc-drawing-number {
|
|
2203
2406
|
width: 100%;
|
|
2204
|
-
padding-inline-end:
|
|
2407
|
+
padding-inline-end: 28px;
|
|
2205
2408
|
font-variant-numeric: tabular-nums;
|
|
2206
2409
|
appearance: textfield;
|
|
2207
2410
|
}
|
|
@@ -2225,6 +2428,14 @@
|
|
|
2225
2428
|
display: flex;
|
|
2226
2429
|
}
|
|
2227
2430
|
|
|
2431
|
+
[data-qc-theme] .qc-drawing-number:disabled {
|
|
2432
|
+
padding-inline-end: 4px;
|
|
2433
|
+
}
|
|
2434
|
+
|
|
2435
|
+
[data-qc-theme] .qc-drawing-number:disabled + .qc-drawing-steppers {
|
|
2436
|
+
display: none;
|
|
2437
|
+
}
|
|
2438
|
+
|
|
2228
2439
|
[data-qc-theme] .qc-drawing-stepper {
|
|
2229
2440
|
display: flex;
|
|
2230
2441
|
align-items: center;
|
|
@@ -2232,11 +2443,12 @@
|
|
|
2232
2443
|
width: 22px;
|
|
2233
2444
|
height: 14px;
|
|
2234
2445
|
padding: 0;
|
|
2235
|
-
color: var(--qc-
|
|
2446
|
+
color: var(--qc-chrome-caret);
|
|
2236
2447
|
background: none;
|
|
2237
2448
|
border: 0;
|
|
2238
|
-
border-radius:
|
|
2449
|
+
border-radius: 4px;
|
|
2239
2450
|
cursor: pointer;
|
|
2451
|
+
transition: color var(--qc-motion-durationSlow) var(--qc-motion-easingStandard), background-color var(--qc-motion-durationSlow) var(--qc-motion-easingStandard);
|
|
2240
2452
|
}
|
|
2241
2453
|
|
|
2242
2454
|
[data-qc-theme] .qc-drawing-stepper[data-up='true'] svg {
|
|
@@ -2245,29 +2457,55 @@
|
|
|
2245
2457
|
|
|
2246
2458
|
[data-qc-theme] .qc-drawing-stepper:hover {
|
|
2247
2459
|
color: var(--qc-text-primary);
|
|
2248
|
-
background: var(--qc-state-
|
|
2460
|
+
background: var(--qc-state-pressed);
|
|
2461
|
+
}
|
|
2462
|
+
|
|
2463
|
+
/* The color popover and the shared color control inside it.
|
|
2464
|
+
*
|
|
2465
|
+
* The popover hangs under the swatch button that opened it, as wide as what it holds wherever it
|
|
2466
|
+
* opens, a 6px corner on the overlay ground, its column 6px clear of its top and bottom: the
|
|
2467
|
+
* palette, then for a stroke the Thickness and Line style rows. It never narrows to the room it
|
|
2468
|
+
* finds: the placement moves it to stay inside the box instead. A color button holding its popover
|
|
2469
|
+
* open rings itself as a field with the keyboard does. */
|
|
2470
|
+
[data-qc-theme] .qc-drawing-popover--color {
|
|
2471
|
+
width: max-content;
|
|
2472
|
+
max-width: none;
|
|
2473
|
+
}
|
|
2474
|
+
|
|
2475
|
+
[data-qc-theme] .qc-drawing-color-popover {
|
|
2476
|
+
padding: 6px 0;
|
|
2477
|
+
}
|
|
2478
|
+
|
|
2479
|
+
[data-qc-theme] .qc-drawing-swatch-button[aria-expanded='true'] {
|
|
2480
|
+
border-color: var(--qc-state-focusRing);
|
|
2481
|
+
box-shadow: inset 0 0 0 1px var(--qc-state-focusRing);
|
|
2249
2482
|
}
|
|
2250
2483
|
|
|
2251
|
-
/*
|
|
2484
|
+
/* The palette is 224px wide inside 6px by 12px: a ten-wide grid of 17px cells, each carrying its own
|
|
2485
|
+
* 3px gutter, in blocks that keep 6px under them (the greys and the ten hues; the six ramps; the
|
|
2486
|
+
* colors this viewer mixed with the plus after them), a 1px rule 12px clear of the blocks either
|
|
2487
|
+
* side, and the opacity under a 12px muted title. The blocks pull their outer gutters back off the
|
|
2488
|
+
* padding, and the rule and the title stand clear by their own margins, which take a block's in. */
|
|
2252
2489
|
[data-qc-theme] .qc-drawing-palette {
|
|
2253
|
-
|
|
2254
|
-
|
|
2490
|
+
box-sizing: content-box;
|
|
2491
|
+
width: 224px;
|
|
2492
|
+
padding: 6px 12px;
|
|
2493
|
+
}
|
|
2494
|
+
|
|
2495
|
+
/* A palette that is a popover's whole content keeps the popover column's 6px inside its own, and
|
|
2496
|
+
* inside a panel that pads already, the palette pads the rest of the way rather than again. */
|
|
2497
|
+
[data-qc-theme] .qc-drawing-popover > .qc-drawing-palette {
|
|
2255
2498
|
padding: 12px;
|
|
2256
2499
|
}
|
|
2257
2500
|
|
|
2258
|
-
|
|
2259
|
-
[data-qc-theme] .qc-inline-panel > .qc-drawing-palette {
|
|
2501
|
+
[data-qc-theme] .qc-inline-panel .qc-drawing-palette {
|
|
2260
2502
|
padding: 6px;
|
|
2261
2503
|
}
|
|
2262
2504
|
|
|
2263
2505
|
[data-qc-theme] .qc-drawing-swatches {
|
|
2264
|
-
display:
|
|
2265
|
-
flex-direction: column;
|
|
2506
|
+
display: block;
|
|
2266
2507
|
}
|
|
2267
2508
|
|
|
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
2509
|
[data-qc-theme] .qc-drawing-swatch-block {
|
|
2272
2510
|
margin: 0 -3px 6px;
|
|
2273
2511
|
}
|
|
@@ -2276,10 +2514,9 @@
|
|
|
2276
2514
|
display: flex;
|
|
2277
2515
|
}
|
|
2278
2516
|
|
|
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
2517
|
[data-qc-theme] .qc-drawing-swatch {
|
|
2282
2518
|
position: relative;
|
|
2519
|
+
flex: 0 0 17px;
|
|
2283
2520
|
width: 17px;
|
|
2284
2521
|
height: 17px;
|
|
2285
2522
|
margin: 3px;
|
|
@@ -2287,132 +2524,270 @@
|
|
|
2287
2524
|
background: var(--qcd-swatch);
|
|
2288
2525
|
border: 0;
|
|
2289
2526
|
border-radius: 2px;
|
|
2527
|
+
outline: none;
|
|
2290
2528
|
cursor: pointer;
|
|
2291
2529
|
}
|
|
2292
2530
|
|
|
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 {
|
|
2531
|
+
/* A cell's ring stands 2px outside it, 2px wide on a 6px corner, and fades in and out: the field's
|
|
2532
|
+
* edge under the pointer, the primary ink around the chosen color (over its neighbours), and the
|
|
2533
|
+
* focus color where the keyboard stands. */
|
|
2534
|
+
[data-qc-theme] .qc-drawing-swatch::after {
|
|
2301
2535
|
position: absolute;
|
|
2302
2536
|
inset: -4px;
|
|
2303
|
-
border: 2px solid
|
|
2304
|
-
border-radius:
|
|
2537
|
+
border: 2px solid transparent;
|
|
2538
|
+
border-radius: 6px;
|
|
2305
2539
|
content: '';
|
|
2540
|
+
pointer-events: none;
|
|
2541
|
+
transition: border-color var(--qc-motion-durationSlow) var(--qc-motion-easingStandard);
|
|
2542
|
+
}
|
|
2543
|
+
|
|
2544
|
+
[data-qc-theme] .qc-drawing-swatch:hover::after {
|
|
2545
|
+
border-color: var(--qc-control-fieldEdge);
|
|
2546
|
+
}
|
|
2547
|
+
|
|
2548
|
+
[data-qc-theme] .qc-drawing-swatch[data-qc-active='true']::after {
|
|
2549
|
+
z-index: 1;
|
|
2550
|
+
border-color: var(--qc-text-primary);
|
|
2551
|
+
}
|
|
2552
|
+
|
|
2553
|
+
[data-qc-theme] .qc-drawing-swatch:focus-visible::after {
|
|
2554
|
+
border-color: var(--qc-state-focusRing);
|
|
2555
|
+
}
|
|
2556
|
+
|
|
2557
|
+
/* On a light panel the palest cell takes the panel's own edge, where it would otherwise vanish. */
|
|
2558
|
+
[data-qc-theme='light'] .qc-drawing-swatch[data-qc-pale='true'] {
|
|
2559
|
+
box-shadow: inset 0 0 0 1px var(--qc-chrome-border);
|
|
2306
2560
|
}
|
|
2307
2561
|
|
|
2308
|
-
/* The plus
|
|
2309
|
-
*
|
|
2562
|
+
/* The plus: a cell with no fill of its own, crossed at its middle by two 13px hairlines in the
|
|
2563
|
+
* primary ink, washed in the hover fill under the pointer and ringed inside its own edge where the
|
|
2564
|
+
* keyboard stands. */
|
|
2310
2565
|
[data-qc-theme] .qc-drawing-swatch-plus {
|
|
2566
|
+
position: relative;
|
|
2567
|
+
flex: 0 0 17px;
|
|
2568
|
+
width: 17px;
|
|
2569
|
+
height: 17px;
|
|
2570
|
+
margin: 3px;
|
|
2571
|
+
padding: 0;
|
|
2311
2572
|
background: none;
|
|
2312
|
-
|
|
2573
|
+
border: 0;
|
|
2574
|
+
border-radius: 2px;
|
|
2575
|
+
outline: none;
|
|
2576
|
+
cursor: pointer;
|
|
2577
|
+
transition: background-color var(--qc-motion-durationSlow) var(--qc-motion-easingStandard);
|
|
2578
|
+
}
|
|
2579
|
+
|
|
2580
|
+
[data-qc-theme] .qc-drawing-swatch-plus:hover {
|
|
2581
|
+
background: var(--qc-state-hover);
|
|
2313
2582
|
}
|
|
2314
2583
|
|
|
2315
2584
|
[data-qc-theme] .qc-drawing-swatch-plus::before,
|
|
2316
2585
|
[data-qc-theme] .qc-drawing-swatch-plus::after {
|
|
2317
2586
|
position: absolute;
|
|
2318
|
-
inset: 8px 2px;
|
|
2319
2587
|
background: var(--qc-text-primary);
|
|
2320
2588
|
content: '';
|
|
2321
2589
|
}
|
|
2322
2590
|
|
|
2323
2591
|
[data-qc-theme] .qc-drawing-swatch-plus::before {
|
|
2324
|
-
|
|
2592
|
+
top: calc(50% - 6.5px);
|
|
2593
|
+
left: calc(50% - 0.5px);
|
|
2594
|
+
width: 1px;
|
|
2595
|
+
height: 13px;
|
|
2596
|
+
}
|
|
2597
|
+
|
|
2598
|
+
[data-qc-theme] .qc-drawing-swatch-plus::after {
|
|
2599
|
+
top: calc(50% - 0.5px);
|
|
2600
|
+
left: calc(50% - 6.5px);
|
|
2601
|
+
width: 13px;
|
|
2602
|
+
height: 1px;
|
|
2603
|
+
}
|
|
2604
|
+
|
|
2605
|
+
[data-qc-theme] .qc-drawing-swatch-plus:focus-visible {
|
|
2606
|
+
border: 2px solid var(--qc-state-focusRing);
|
|
2607
|
+
border-radius: 4px;
|
|
2325
2608
|
}
|
|
2326
2609
|
|
|
2327
|
-
/* The rule between the offered colours and the ones this viewer mixed. */
|
|
2328
2610
|
[data-qc-theme] .qc-drawing-separator {
|
|
2329
2611
|
height: 1px;
|
|
2330
|
-
margin:
|
|
2612
|
+
margin: 12px 0;
|
|
2331
2613
|
background: var(--qc-overlay-separator);
|
|
2332
2614
|
}
|
|
2333
2615
|
|
|
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
2616
|
[data-qc-theme] .qc-drawing-section-title {
|
|
2337
2617
|
margin: 12px 0 4px;
|
|
2338
2618
|
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;
|
|
2619
|
+
font-size: 12px;
|
|
2620
|
+
line-height: 14px;
|
|
2345
2621
|
}
|
|
2346
2622
|
|
|
2347
|
-
|
|
2623
|
+
/* The opacity: a 10px track filling the row beside the percent field. The track fades from nothing
|
|
2624
|
+
* into the color over the checked ground, inside a 1px edge of the color on a 4px corner; the 12px
|
|
2625
|
+
* knob travels it less its own width, a pixel proud of it above and below, and glides to a value
|
|
2626
|
+
* the keyboard or a press gives it but follows a drag at once. The keyboard's ring stands 4px
|
|
2627
|
+
* around the track. */
|
|
2628
|
+
[data-qc-theme] .qc-drawing-opacity-row {
|
|
2348
2629
|
display: flex;
|
|
2349
|
-
|
|
2350
|
-
gap: 12px;
|
|
2351
|
-
width: 224px;
|
|
2630
|
+
align-items: center;
|
|
2352
2631
|
}
|
|
2353
2632
|
|
|
2354
|
-
[data-qc-theme] .qc-drawing-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2633
|
+
[data-qc-theme] .qc-drawing-opacity {
|
|
2634
|
+
position: relative;
|
|
2635
|
+
flex: 1 0 auto;
|
|
2636
|
+
height: 10px;
|
|
2637
|
+
background: repeating-conic-gradient(from 270deg, var(--qcd-check) 0% 25%, transparent 0% 50%) 1px 50% / 8px 8px, var(--qcd-ground);
|
|
2638
|
+
border-radius: 5px;
|
|
2639
|
+
outline: none;
|
|
2640
|
+
touch-action: none;
|
|
2359
2641
|
}
|
|
2360
2642
|
|
|
2361
|
-
[data-qc-theme] .qc-drawing-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2643
|
+
[data-qc-theme] .qc-drawing-opacity-fade {
|
|
2644
|
+
position: absolute;
|
|
2645
|
+
inset: 0;
|
|
2646
|
+
background: linear-gradient(to right, transparent, var(--qcd-swatch));
|
|
2647
|
+
border: 1px solid var(--qcd-swatch);
|
|
2366
2648
|
border-radius: 4px;
|
|
2367
2649
|
}
|
|
2368
2650
|
|
|
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);
|
|
2651
|
+
[data-qc-theme][dir='rtl'] .qc-drawing-opacity,
|
|
2652
|
+
[data-qc-theme] [dir='rtl'] .qc-drawing-opacity {
|
|
2653
|
+
background-position: right 1px top 50%;
|
|
2383
2654
|
}
|
|
2384
2655
|
|
|
2385
|
-
[data-qc-theme] .qc-drawing-
|
|
2386
|
-
|
|
2656
|
+
[data-qc-theme][dir='rtl'] .qc-drawing-opacity-fade,
|
|
2657
|
+
[data-qc-theme] [dir='rtl'] .qc-drawing-opacity-fade {
|
|
2658
|
+
background: linear-gradient(to left, transparent, var(--qcd-swatch));
|
|
2387
2659
|
}
|
|
2388
2660
|
|
|
2389
|
-
[data-qc-theme] .qc-drawing-
|
|
2390
|
-
|
|
2391
|
-
|
|
2661
|
+
[data-qc-theme] .qc-drawing-opacity-travel {
|
|
2662
|
+
position: absolute;
|
|
2663
|
+
top: 0;
|
|
2664
|
+
inset-inline-start: 0;
|
|
2665
|
+
width: calc(100% - 12px);
|
|
2392
2666
|
}
|
|
2393
2667
|
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2668
|
+
[data-qc-theme] .qc-drawing-opacity-knob {
|
|
2669
|
+
position: absolute;
|
|
2670
|
+
top: 0;
|
|
2671
|
+
width: 12px;
|
|
2672
|
+
height: 12px;
|
|
2673
|
+
margin-top: -1px;
|
|
2674
|
+
background: var(--qcd-black);
|
|
2675
|
+
border: 2px solid var(--qcd-white);
|
|
2676
|
+
border-radius: 50%;
|
|
2677
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
2678
|
+
pointer-events: none;
|
|
2679
|
+
}
|
|
2680
|
+
|
|
2681
|
+
[data-qc-theme] .qc-drawing-opacity:not([data-qc-dragging='true']) .qc-drawing-opacity-knob {
|
|
2682
|
+
transition: inset-inline-start var(--qc-motion-durationGlide) var(--qc-motion-easingStandard);
|
|
2683
|
+
}
|
|
2684
|
+
|
|
2685
|
+
[data-qc-theme] .qc-drawing-opacity:focus-visible::after {
|
|
2686
|
+
position: absolute;
|
|
2687
|
+
inset: -4px;
|
|
2688
|
+
border: 2px solid var(--qc-state-focusRing);
|
|
2689
|
+
border-radius: 6px;
|
|
2690
|
+
content: '';
|
|
2691
|
+
pointer-events: none;
|
|
2692
|
+
}
|
|
2693
|
+
|
|
2694
|
+
/* The popover's two fields are 26px boxes on a 4px corner, 1px edged in the field's own edge, which
|
|
2695
|
+
* turns the focus color while the field has the keyboard and the invalid color for a value the
|
|
2696
|
+
* field refuses. The percent field is 47px, 8px after the track, its figure set to the end and the
|
|
2697
|
+
* unit standing in the room it keeps there. */
|
|
2698
|
+
[data-qc-theme] .qc-drawing-opacity-field {
|
|
2699
|
+
position: relative;
|
|
2700
|
+
display: flex;
|
|
2701
|
+
flex: 0 0 auto;
|
|
2702
|
+
align-items: center;
|
|
2400
2703
|
}
|
|
2401
2704
|
|
|
2705
|
+
[data-qc-theme] .qc-drawing-opacity-readout,
|
|
2402
2706
|
[data-qc-theme] .qc-drawing-hex {
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2707
|
+
box-sizing: border-box;
|
|
2708
|
+
height: 26px;
|
|
2709
|
+
margin: 0;
|
|
2710
|
+
margin-inline-start: 8px;
|
|
2406
2711
|
color: var(--qc-text-primary);
|
|
2407
2712
|
font: inherit;
|
|
2408
|
-
font-
|
|
2713
|
+
font-size: 14px;
|
|
2714
|
+
line-height: 24px;
|
|
2409
2715
|
background: none;
|
|
2410
|
-
border:
|
|
2716
|
+
border: 1px solid var(--qc-control-fieldEdge);
|
|
2717
|
+
border-radius: 4px;
|
|
2411
2718
|
outline: none;
|
|
2412
2719
|
}
|
|
2413
2720
|
|
|
2414
|
-
|
|
2415
|
-
|
|
2721
|
+
[data-qc-theme] .qc-drawing-opacity-readout {
|
|
2722
|
+
width: 47px;
|
|
2723
|
+
padding: 0;
|
|
2724
|
+
padding-inline-start: 5px;
|
|
2725
|
+
padding-inline-end: 14px;
|
|
2726
|
+
text-align: end;
|
|
2727
|
+
}
|
|
2728
|
+
|
|
2729
|
+
[data-qc-theme] .qc-drawing-opacity-readout:focus,
|
|
2730
|
+
[data-qc-theme] .qc-drawing-hex:focus {
|
|
2731
|
+
border-color: var(--qc-state-focusRing);
|
|
2732
|
+
}
|
|
2733
|
+
|
|
2734
|
+
[data-qc-theme] .qc-drawing-hex[aria-invalid='true'] {
|
|
2735
|
+
border-color: var(--qc-control-fieldInvalid);
|
|
2736
|
+
}
|
|
2737
|
+
|
|
2738
|
+
[data-qc-theme] .qc-drawing-opacity-unit,
|
|
2739
|
+
[data-qc-theme] .qc-drawing-hex-mark {
|
|
2740
|
+
position: absolute;
|
|
2741
|
+
top: 5px;
|
|
2742
|
+
color: var(--qc-text-primary);
|
|
2743
|
+
line-height: 16px;
|
|
2744
|
+
pointer-events: none;
|
|
2745
|
+
}
|
|
2746
|
+
|
|
2747
|
+
[data-qc-theme] .qc-drawing-opacity-unit {
|
|
2748
|
+
inset-inline-start: 40px;
|
|
2749
|
+
}
|
|
2750
|
+
|
|
2751
|
+
/* The custom editor, standing alone in the popover in the palette's place: a 26px row of the held
|
|
2752
|
+
* color's 26px well, its hex and Add, 12px over a 184px area of saturation and brightness that
|
|
2753
|
+
* stands 7px before a 17px hue strip. The hash stands in the room the hex field keeps before its
|
|
2754
|
+
* digits; Add is the primary action at the row's end, a 28px button on an 8px corner. */
|
|
2755
|
+
[data-qc-theme] .qc-drawing-custom-row {
|
|
2756
|
+
display: flex;
|
|
2757
|
+
align-items: flex-start;
|
|
2758
|
+
height: 26px;
|
|
2759
|
+
margin-bottom: 12px;
|
|
2760
|
+
}
|
|
2761
|
+
|
|
2762
|
+
[data-qc-theme] .qc-drawing-custom-swatch {
|
|
2763
|
+
flex: 0 0 26px;
|
|
2764
|
+
width: 26px;
|
|
2765
|
+
height: 26px;
|
|
2766
|
+
background: var(--qcd-swatch);
|
|
2767
|
+
border-radius: 4px;
|
|
2768
|
+
}
|
|
2769
|
+
|
|
2770
|
+
[data-qc-theme] .qc-drawing-hex-wrap {
|
|
2771
|
+
position: relative;
|
|
2772
|
+
display: flex;
|
|
2773
|
+
flex: 0 0 auto;
|
|
2774
|
+
align-items: center;
|
|
2775
|
+
height: 26px;
|
|
2776
|
+
}
|
|
2777
|
+
|
|
2778
|
+
[data-qc-theme] .qc-drawing-hex-mark {
|
|
2779
|
+
inset-inline-start: 0;
|
|
2780
|
+
width: 21px;
|
|
2781
|
+
text-align: end;
|
|
2782
|
+
}
|
|
2783
|
+
|
|
2784
|
+
[data-qc-theme] .qc-drawing-hex {
|
|
2785
|
+
width: 68px;
|
|
2786
|
+
padding: 0;
|
|
2787
|
+
padding-inline-start: 12px;
|
|
2788
|
+
padding-inline-end: 5px;
|
|
2789
|
+
}
|
|
2790
|
+
|
|
2416
2791
|
[data-qc-theme] .qc-drawing-add {
|
|
2417
2792
|
display: inline-flex;
|
|
2418
2793
|
flex: 0 0 auto;
|
|
@@ -2421,6 +2796,9 @@
|
|
|
2421
2796
|
height: 28px;
|
|
2422
2797
|
margin-inline-start: auto;
|
|
2423
2798
|
padding: 0 7px;
|
|
2799
|
+
font-size: 14px;
|
|
2800
|
+
line-height: 18px;
|
|
2801
|
+
border-radius: 8px;
|
|
2424
2802
|
}
|
|
2425
2803
|
|
|
2426
2804
|
[data-qc-theme] .qc-drawing-custom-tracks {
|
|
@@ -2428,28 +2806,43 @@
|
|
|
2428
2806
|
gap: 7px;
|
|
2429
2807
|
}
|
|
2430
2808
|
|
|
2431
|
-
/* The
|
|
2432
|
-
*
|
|
2433
|
-
*
|
|
2809
|
+
/* The area is the hue under a fade to white across it and a fade to black down it, on a 2px corner
|
|
2810
|
+
* that clips its knob: a 14px ring standing a pixel past the point it marks. The strip runs the hue
|
|
2811
|
+
* wheel from top to bottom; its knob is a 9px bar 2px proud of either side, travelling the strip
|
|
2812
|
+
* less 3px at either end. Both knobs glide to a value the keyboard gives them and follow a drag at
|
|
2813
|
+
* once. */
|
|
2434
2814
|
[data-qc-theme] .qc-drawing-sv {
|
|
2435
2815
|
position: relative;
|
|
2436
2816
|
flex: 1 1 auto;
|
|
2437
2817
|
height: 184px;
|
|
2438
|
-
|
|
2818
|
+
overflow: hidden;
|
|
2819
|
+
background: linear-gradient(to top, var(--qcd-black), transparent), linear-gradient(to right, var(--qcd-white), transparent), var(--qcd-hue);
|
|
2820
|
+
border-radius: 2px;
|
|
2439
2821
|
cursor: crosshair;
|
|
2822
|
+
touch-action: none;
|
|
2823
|
+
}
|
|
2824
|
+
|
|
2825
|
+
[data-qc-theme][dir='rtl'] .qc-drawing-sv,
|
|
2826
|
+
[data-qc-theme] [dir='rtl'] .qc-drawing-sv {
|
|
2827
|
+
background: linear-gradient(to top, var(--qcd-black), transparent), linear-gradient(to left, var(--qcd-white), transparent), var(--qcd-hue);
|
|
2440
2828
|
}
|
|
2441
2829
|
|
|
2442
2830
|
[data-qc-theme] .qc-drawing-sv-dot {
|
|
2443
2831
|
position: absolute;
|
|
2444
|
-
width:
|
|
2445
|
-
height:
|
|
2832
|
+
width: 14px;
|
|
2833
|
+
height: 14px;
|
|
2834
|
+
margin-top: -6px;
|
|
2835
|
+
margin-inline-start: -6px;
|
|
2446
2836
|
border: 2px solid var(--qcd-white);
|
|
2447
2837
|
border-radius: 50%;
|
|
2448
|
-
box-shadow: var(--
|
|
2449
|
-
transform: translate(-50%, -50%);
|
|
2838
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
2450
2839
|
pointer-events: none;
|
|
2451
2840
|
}
|
|
2452
2841
|
|
|
2842
|
+
[data-qc-theme] .qc-drawing-sv:not([data-qc-dragging='true']) .qc-drawing-sv-dot {
|
|
2843
|
+
transition: inset-inline-start var(--qc-motion-durationFast) var(--qc-motion-easingStandard), top var(--qc-motion-durationFast) var(--qc-motion-easingStandard);
|
|
2844
|
+
}
|
|
2845
|
+
|
|
2453
2846
|
[data-qc-theme] .qc-drawing-hue {
|
|
2454
2847
|
position: relative;
|
|
2455
2848
|
flex: 0 0 17px;
|
|
@@ -2466,38 +2859,70 @@
|
|
|
2466
2859
|
);
|
|
2467
2860
|
border-radius: 2px;
|
|
2468
2861
|
cursor: pointer;
|
|
2862
|
+
touch-action: none;
|
|
2863
|
+
}
|
|
2864
|
+
|
|
2865
|
+
[data-qc-theme] .qc-drawing-hue-travel {
|
|
2866
|
+
position: absolute;
|
|
2867
|
+
inset: 3px 0;
|
|
2469
2868
|
}
|
|
2470
2869
|
|
|
2471
2870
|
[data-qc-theme] .qc-drawing-hue-dot {
|
|
2472
2871
|
position: absolute;
|
|
2473
2872
|
inset-inline: -2px;
|
|
2474
|
-
height:
|
|
2873
|
+
height: 9px;
|
|
2874
|
+
margin-top: -4px;
|
|
2475
2875
|
border: 2px solid var(--qcd-white);
|
|
2476
2876
|
border-radius: 2px;
|
|
2477
|
-
box-shadow: var(--
|
|
2478
|
-
transform: translateY(-50%);
|
|
2877
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
2479
2878
|
pointer-events: none;
|
|
2480
2879
|
}
|
|
2481
2880
|
|
|
2482
|
-
|
|
2483
|
-
|
|
2881
|
+
[data-qc-theme] .qc-drawing-hue:not([data-qc-dragging='true']) .qc-drawing-hue-dot {
|
|
2882
|
+
transition: top var(--qc-motion-durationFast) var(--qc-motion-easingStandard);
|
|
2883
|
+
}
|
|
2884
|
+
|
|
2885
|
+
/* The well a color button holds its color in: 24px on a 3px corner, the color at its opacity over
|
|
2886
|
+
* the checked ground the opacity track fades over, in 6px squares. */
|
|
2887
|
+
[data-qc-theme] .qc-drawing-well {
|
|
2888
|
+
display: block;
|
|
2889
|
+
width: 24px;
|
|
2890
|
+
height: 24px;
|
|
2891
|
+
overflow: hidden;
|
|
2892
|
+
background: repeating-conic-gradient(from 270deg, var(--qcd-check) 0% 25%, transparent 0% 50%) 0 0 / 12px 12px, var(--qcd-ground);
|
|
2893
|
+
border-radius: 3px;
|
|
2894
|
+
}
|
|
2895
|
+
|
|
2896
|
+
[data-qc-theme] .qc-drawing-well-fill {
|
|
2897
|
+
display: block;
|
|
2898
|
+
width: 100%;
|
|
2899
|
+
height: 100%;
|
|
2900
|
+
background: var(--qcd-swatch);
|
|
2901
|
+
}
|
|
2902
|
+
|
|
2903
|
+
/* Black and white are the poles of the value axis the area fades between, and the two the knobs
|
|
2904
|
+
* are drawn from. They are color arithmetic, not theme roles: every mode has them. */
|
|
2484
2905
|
[data-qc-theme] .qc-drawing-custom,
|
|
2485
|
-
[data-qc-theme] .qc-drawing-opacity-row
|
|
2906
|
+
[data-qc-theme] .qc-drawing-opacity-row,
|
|
2907
|
+
[data-qc-theme] .qc-drawing-well,
|
|
2908
|
+
[data-qc-theme] .qc-drawing-dual {
|
|
2486
2909
|
--qcd-angle-0: 0deg;
|
|
2487
2910
|
--qcd-black: hsl(var(--qcd-angle-0) 0% 0%);
|
|
2488
2911
|
--qcd-white: hsl(var(--qcd-angle-0) 0% 100%);
|
|
2489
2912
|
}
|
|
2490
2913
|
|
|
2491
|
-
/* What "see-through" is drawn as under
|
|
2492
|
-
*
|
|
2493
|
-
*
|
|
2494
|
-
[data-qc-theme] .qc-drawing-opacity-row
|
|
2914
|
+
/* What "see-through" is drawn as under a fade: a slate check at two fifths, the same in every mode,
|
|
2915
|
+
* on the mode's own pole. It is the checker every image editor uses for nothing-here, so a low
|
|
2916
|
+
* opacity reads as the color thinning out rather than as the track running out of paint. */
|
|
2917
|
+
[data-qc-theme] .qc-drawing-opacity-row,
|
|
2918
|
+
[data-qc-theme] .qc-drawing-well {
|
|
2495
2919
|
--qcd-check-hue: 224deg;
|
|
2496
2920
|
--qcd-check: hsl(var(--qcd-check-hue) 15% 19% / 0.4);
|
|
2497
2921
|
--qcd-ground: var(--qcd-black);
|
|
2498
2922
|
}
|
|
2499
2923
|
|
|
2500
|
-
[data-qc-theme='light'] .qc-drawing-opacity-row
|
|
2924
|
+
[data-qc-theme='light'] .qc-drawing-opacity-row,
|
|
2925
|
+
[data-qc-theme='light'] .qc-drawing-well {
|
|
2501
2926
|
--qcd-ground: var(--qcd-white);
|
|
2502
2927
|
}
|
|
2503
2928
|
|
|
@@ -2516,239 +2941,248 @@
|
|
|
2516
2941
|
--qcd-hue-300: hsl(var(--qcd-angle-300) 100% 50%);
|
|
2517
2942
|
}
|
|
2518
2943
|
|
|
2519
|
-
/* The
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2944
|
+
/* The Thickness and Line style rows, 12px in: a muted title, then a row of joined 32px segments,
|
|
2945
|
+
* each a radio wearing its mark in the on fill. The one chosen takes that fill, its mark cut from
|
|
2946
|
+
* it in the inverse ink; a segment under the pointer washes in the hover fill, and the keyboard's
|
|
2947
|
+
* ring stands 4px around the segment it is on. A thickness mark is a line across its segment as
|
|
2948
|
+
* heavy as the width it stands for; a line style's is drawn on a 30 by 24 cell, a 30px line, four
|
|
2949
|
+
* 5px dashes or six 2px dots 3px apart. */
|
|
2950
|
+
[data-qc-theme] .qc-drawing-stroke-section {
|
|
2951
|
+
padding: 0 12px;
|
|
2524
2952
|
}
|
|
2525
2953
|
|
|
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);
|
|
2954
|
+
[data-qc-theme] .qc-drawing-stroke-section > .qc-drawing-section-title {
|
|
2955
|
+
margin: 6px 0 4px;
|
|
2542
2956
|
}
|
|
2543
2957
|
|
|
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;
|
|
2958
|
+
[data-qc-theme] .qc-drawing-stroke-section--style {
|
|
2959
|
+
margin-top: 12px;
|
|
2555
2960
|
}
|
|
2556
2961
|
|
|
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;
|
|
2962
|
+
[data-qc-theme] .qc-drawing-stroke-section--style > .qc-drawing-section-title {
|
|
2963
|
+
margin-top: 0;
|
|
2565
2964
|
}
|
|
2566
2965
|
|
|
2567
|
-
|
|
2568
|
-
|
|
2569
|
-
[data-qc-theme] .qc-drawing-opacity-field {
|
|
2570
|
-
position: relative;
|
|
2571
|
-
flex: 0 0 auto;
|
|
2966
|
+
[data-qc-theme] .qc-drawing-segments {
|
|
2967
|
+
display: flex;
|
|
2572
2968
|
}
|
|
2573
2969
|
|
|
2574
|
-
[data-qc-theme] .qc-drawing-
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
2970
|
+
[data-qc-theme] .qc-drawing-segment {
|
|
2971
|
+
position: relative;
|
|
2972
|
+
display: inline-flex;
|
|
2973
|
+
flex: 1 1 0;
|
|
2974
|
+
align-items: center;
|
|
2975
|
+
justify-content: center;
|
|
2976
|
+
box-sizing: border-box;
|
|
2977
|
+
height: 32px;
|
|
2978
|
+
margin: 0;
|
|
2979
|
+
padding: 0 12px;
|
|
2980
|
+
color: var(--qc-control-on);
|
|
2581
2981
|
background: none;
|
|
2582
2982
|
border: 1px solid var(--qc-control-fieldEdge);
|
|
2583
|
-
border-radius:
|
|
2983
|
+
border-radius: 0;
|
|
2584
2984
|
outline: none;
|
|
2585
|
-
|
|
2985
|
+
cursor: pointer;
|
|
2586
2986
|
}
|
|
2587
2987
|
|
|
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;
|
|
2988
|
+
[data-qc-theme] .qc-drawing-segment--wide {
|
|
2989
|
+
padding: 0 22px;
|
|
2597
2990
|
}
|
|
2598
2991
|
|
|
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;
|
|
2992
|
+
[data-qc-theme] .qc-drawing-segment + .qc-drawing-segment {
|
|
2993
|
+
margin-inline-start: -1px;
|
|
2608
2994
|
}
|
|
2609
2995
|
|
|
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;
|
|
2996
|
+
[data-qc-theme] .qc-drawing-segment:first-child {
|
|
2997
|
+
border-start-start-radius: 3px;
|
|
2998
|
+
border-end-start-radius: 3px;
|
|
2617
2999
|
}
|
|
2618
3000
|
|
|
2619
|
-
[data-qc-theme] .qc-drawing-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
height: 100%;
|
|
2623
|
-
background: var(--qcd-swatch);
|
|
3001
|
+
[data-qc-theme] .qc-drawing-segment:last-child {
|
|
3002
|
+
border-start-end-radius: 3px;
|
|
3003
|
+
border-end-end-radius: 3px;
|
|
2624
3004
|
}
|
|
2625
3005
|
|
|
2626
|
-
[data-qc-theme] .qc-drawing-
|
|
2627
|
-
|
|
2628
|
-
flex-direction: column;
|
|
2629
|
-
gap: 6px;
|
|
2630
|
-
padding-bottom: 8px;
|
|
3006
|
+
[data-qc-theme] .qc-drawing-segment:hover {
|
|
3007
|
+
background: var(--qc-state-hover);
|
|
2631
3008
|
}
|
|
2632
3009
|
|
|
2633
|
-
[data-qc-theme] .qc-drawing-
|
|
2634
|
-
|
|
3010
|
+
[data-qc-theme] .qc-drawing-segment[aria-checked='true'] {
|
|
3011
|
+
z-index: 1;
|
|
3012
|
+
color: var(--qc-control-onInk);
|
|
3013
|
+
background: var(--qc-control-on);
|
|
3014
|
+
border-color: var(--qc-control-on);
|
|
2635
3015
|
}
|
|
2636
3016
|
|
|
2637
|
-
[data-qc-theme] .qc-drawing-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
3017
|
+
[data-qc-theme] .qc-drawing-segment:focus-visible::after {
|
|
3018
|
+
position: absolute;
|
|
3019
|
+
inset: -4px;
|
|
3020
|
+
z-index: 1;
|
|
3021
|
+
border: 2px solid var(--qc-state-focusRing);
|
|
3022
|
+
border-radius: 4px;
|
|
3023
|
+
content: '';
|
|
3024
|
+
pointer-events: none;
|
|
2641
3025
|
}
|
|
2642
3026
|
|
|
2643
|
-
[data-qc-theme] .qc-drawing-
|
|
2644
|
-
display:
|
|
3027
|
+
[data-qc-theme] .qc-drawing-thickness-mark {
|
|
3028
|
+
display: block;
|
|
2645
3029
|
flex: 1 1 auto;
|
|
2646
|
-
|
|
2647
|
-
justify-content: center;
|
|
2648
|
-
height: 30px;
|
|
2649
|
-
padding: 0;
|
|
3030
|
+
background: currentColor;
|
|
2650
3031
|
}
|
|
2651
3032
|
|
|
2652
|
-
|
|
2653
|
-
[data-qc-theme] .qc-drawing-stroke {
|
|
3033
|
+
[data-qc-theme] .qc-drawing-style-mark {
|
|
2654
3034
|
display: flex;
|
|
2655
|
-
flex: 0 0
|
|
3035
|
+
flex: 0 0 30px;
|
|
2656
3036
|
gap: 3px;
|
|
2657
3037
|
align-items: center;
|
|
3038
|
+
justify-content: center;
|
|
2658
3039
|
width: 30px;
|
|
3040
|
+
height: 24px;
|
|
3041
|
+
overflow: hidden;
|
|
2659
3042
|
}
|
|
2660
3043
|
|
|
2661
|
-
[data-qc-theme] .qc-drawing-
|
|
2662
|
-
|
|
3044
|
+
[data-qc-theme] .qc-drawing-style-seg {
|
|
3045
|
+
flex: 0 0 auto;
|
|
3046
|
+
width: 5px;
|
|
3047
|
+
height: 1px;
|
|
3048
|
+
background: currentColor;
|
|
2663
3049
|
}
|
|
2664
3050
|
|
|
2665
|
-
[data-qc-theme] .qc-drawing-
|
|
2666
|
-
|
|
2667
|
-
background: var(--qcd-swatch, currentColor);
|
|
3051
|
+
[data-qc-theme] .qc-drawing-style-mark[data-style='solid'] > .qc-drawing-style-seg {
|
|
3052
|
+
width: 30px;
|
|
2668
3053
|
}
|
|
2669
3054
|
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
align-items: center;
|
|
2674
|
-
padding: 0 2px;
|
|
2675
|
-
cursor: pointer;
|
|
3055
|
+
[data-qc-theme] .qc-drawing-style-mark[data-style='dotted'] > .qc-drawing-style-seg {
|
|
3056
|
+
width: 2px;
|
|
3057
|
+
height: 2px;
|
|
2676
3058
|
}
|
|
2677
3059
|
|
|
2678
|
-
/*
|
|
2679
|
-
[data-qc-theme] .qc-drawing-
|
|
2680
|
-
|
|
2681
|
-
|
|
3060
|
+
/* The line-end list is as wide as its rows. A row it does not hold dims its ink under the pointer. */
|
|
3061
|
+
[data-qc-theme] .qc-drawing-menu.qc-drawing-line-ends {
|
|
3062
|
+
width: max-content;
|
|
3063
|
+
min-width: 0;
|
|
2682
3064
|
}
|
|
2683
3065
|
|
|
2684
|
-
/* The
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
3066
|
+
/* The keyboard rings a list's row inside the row's own edge, where the list's rounded corners cannot
|
|
3067
|
+
* cut it. A row of a list of choices or of switches rings its edge on a 6px corner, with 2px of the
|
|
3068
|
+
* list's ground inside the ring, so the ring stands clear of a chosen row's fill; a row of a list of
|
|
3069
|
+
* marks (a line end, a thickness, a line style) rings 2px inside its edge on a 9px corner. */
|
|
3070
|
+
[data-qc-theme] .qc-drawing-list .qc-drawing-list-row {
|
|
3071
|
+
position: relative;
|
|
3072
|
+
outline: none;
|
|
2689
3073
|
}
|
|
2690
3074
|
|
|
2691
|
-
[data-qc-theme] .qc-drawing-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
background: none;
|
|
2701
|
-
border: 0;
|
|
2702
|
-
cursor: pointer;
|
|
3075
|
+
[data-qc-theme] .qc-drawing-select-list:not(.qc-drawing-mark-list) .qc-drawing-list-row:focus-visible::before,
|
|
3076
|
+
[data-qc-theme] .qc-drawing-select-list:not(.qc-drawing-mark-list) .qc-drawing-list-row:focus-visible::after {
|
|
3077
|
+
position: absolute;
|
|
3078
|
+
z-index: 1;
|
|
3079
|
+
box-sizing: border-box;
|
|
3080
|
+
border-style: solid;
|
|
3081
|
+
border-width: 2px;
|
|
3082
|
+
content: '';
|
|
3083
|
+
pointer-events: none;
|
|
2703
3084
|
}
|
|
2704
3085
|
|
|
2705
|
-
[data-qc-theme] .qc-drawing-
|
|
2706
|
-
|
|
3086
|
+
[data-qc-theme] .qc-drawing-select-list:not(.qc-drawing-mark-list) .qc-drawing-list-row:focus-visible::after {
|
|
3087
|
+
inset: 0;
|
|
3088
|
+
border-color: var(--qc-state-focusRing);
|
|
3089
|
+
border-radius: 6px;
|
|
2707
3090
|
}
|
|
2708
3091
|
|
|
2709
|
-
[data-qc-theme] .qc-drawing-
|
|
2710
|
-
|
|
3092
|
+
[data-qc-theme] .qc-drawing-select-list:not(.qc-drawing-mark-list) .qc-drawing-list-row:focus-visible::before {
|
|
3093
|
+
inset: 2px;
|
|
3094
|
+
border-color: var(--qc-overlay-surface);
|
|
3095
|
+
border-radius: 4px;
|
|
2711
3096
|
}
|
|
2712
3097
|
|
|
2713
|
-
[data-qc-theme] .qc-drawing-
|
|
2714
|
-
|
|
2715
|
-
background: var(--qc-chrome-border);
|
|
3098
|
+
[data-qc-theme] .qc-drawing-line-ends .qc-drawing-list-row[aria-selected='true'] {
|
|
3099
|
+
color: var(--qc-control-onInk);
|
|
2716
3100
|
}
|
|
2717
3101
|
|
|
2718
|
-
[data-qc-theme] .qc-drawing-
|
|
2719
|
-
|
|
2720
|
-
border-end-start-radius: 2px;
|
|
3102
|
+
[data-qc-theme] .qc-drawing-line-ends .qc-drawing-list-row:not([aria-selected='true']):hover {
|
|
3103
|
+
color: var(--qc-state-hoverInk);
|
|
2721
3104
|
}
|
|
2722
3105
|
|
|
2723
|
-
[data-qc-theme] .qc-drawing-
|
|
2724
|
-
|
|
2725
|
-
|
|
3106
|
+
[data-qc-theme] .qc-drawing-line-ends .qc-drawing-list-row:focus-visible::after,
|
|
3107
|
+
[data-qc-theme] .qc-drawing-mark-list .qc-drawing-list-row:focus-visible::after {
|
|
3108
|
+
position: absolute;
|
|
3109
|
+
inset: 2px;
|
|
3110
|
+
z-index: 1;
|
|
3111
|
+
border: 2px solid var(--qc-state-focusRing);
|
|
3112
|
+
border-radius: 9px;
|
|
3113
|
+
content: '';
|
|
3114
|
+
pointer-events: none;
|
|
2726
3115
|
}
|
|
2727
3116
|
|
|
2728
|
-
|
|
2729
|
-
|
|
3117
|
+
/* The swatch button: a well holding the color, and for a stroke, the stroke at its thickness. */
|
|
3118
|
+
[data-qc-theme] .qc-drawing-swatch-button {
|
|
3119
|
+
display: flex;
|
|
3120
|
+
gap: 6px;
|
|
3121
|
+
align-items: center;
|
|
3122
|
+
justify-content: center;
|
|
3123
|
+
height: 34px;
|
|
3124
|
+
padding: 0 8px;
|
|
3125
|
+
cursor: pointer;
|
|
2730
3126
|
}
|
|
2731
3127
|
|
|
2732
|
-
/*
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
gap:
|
|
3128
|
+
/* On a settings page the swatch button is the 34px field with a 6px corner around its 24px well, 4px
|
|
3129
|
+
* in; with a stroke the preview stands 8px after the well and 3px clear of the end, 75px in all. */
|
|
3130
|
+
[data-qc-theme] .qc-drawing-page .qc-drawing-swatch-button {
|
|
3131
|
+
flex: 0 0 auto;
|
|
3132
|
+
gap: 8px;
|
|
3133
|
+
min-width: 34px;
|
|
3134
|
+
padding: 0 4px;
|
|
3135
|
+
border-radius: 6px;
|
|
3136
|
+
}
|
|
3137
|
+
|
|
3138
|
+
[data-qc-theme] .qc-drawing-page .qc-drawing-swatch-button > .qc-drawing-stroke {
|
|
3139
|
+
margin-inline-end: 3px;
|
|
3140
|
+
}
|
|
3141
|
+
|
|
3142
|
+
/* The stroke preview: segments at the thickness, in currentColor or the drawing's own color. */
|
|
3143
|
+
[data-qc-theme] .qc-drawing-stroke {
|
|
3144
|
+
display: flex;
|
|
3145
|
+
flex: 0 0 auto;
|
|
3146
|
+
gap: 3px;
|
|
2737
3147
|
align-items: center;
|
|
2738
|
-
|
|
3148
|
+
width: 30px;
|
|
3149
|
+
}
|
|
3150
|
+
|
|
3151
|
+
[data-qc-theme] .qc-drawing-stroke[data-dotted='tight'] {
|
|
3152
|
+
gap: 2px;
|
|
3153
|
+
}
|
|
3154
|
+
|
|
3155
|
+
[data-qc-theme] .qc-drawing-stroke-seg {
|
|
3156
|
+
flex: 0 0 auto;
|
|
3157
|
+
background: var(--qcd-swatch, currentColor);
|
|
2739
3158
|
}
|
|
2740
3159
|
|
|
2741
|
-
|
|
3160
|
+
/* A line-end picker is a 34px field whose face is the end's own 28px mark. */
|
|
3161
|
+
[data-qc-theme] .qc-drawing-line-end {
|
|
2742
3162
|
display: flex;
|
|
2743
|
-
|
|
3163
|
+
flex: 0 0 34px;
|
|
2744
3164
|
align-items: center;
|
|
3165
|
+
justify-content: center;
|
|
3166
|
+
width: 34px;
|
|
3167
|
+
padding: 0;
|
|
3168
|
+
cursor: pointer;
|
|
3169
|
+
}
|
|
3170
|
+
|
|
3171
|
+
/* A line end's glyph is drawn for the left end; the right end's picker wears it mirrored. */
|
|
3172
|
+
[data-qc-theme] .qc-drawing-line-end[data-qc-end='right'] > svg,
|
|
3173
|
+
[data-qc-theme] .qc-drawing-menu[data-qc-end='right'] .qc-menu-row > svg {
|
|
3174
|
+
transform: scaleX(-1);
|
|
2745
3175
|
}
|
|
2746
3176
|
|
|
3177
|
+
/* One visibility bucket: the checkbox and the name as the label, then from, the two-thumb range and
|
|
3178
|
+
* to. The range is a 10px track 100px wide, 9px after from and 8px before to, its span between the
|
|
3179
|
+
* two thumbs filled. */
|
|
2747
3180
|
[data-qc-theme] .qc-drawing-dual {
|
|
2748
3181
|
position: relative;
|
|
2749
|
-
flex:
|
|
2750
|
-
|
|
2751
|
-
height:
|
|
3182
|
+
flex: 0 0 100px;
|
|
3183
|
+
width: 100px;
|
|
3184
|
+
height: 12px;
|
|
3185
|
+
margin-inline-start: 1px;
|
|
2752
3186
|
}
|
|
2753
3187
|
|
|
2754
3188
|
[data-qc-theme] .qc-drawing-dual-track {
|
|
@@ -2756,18 +3190,22 @@
|
|
|
2756
3190
|
inset-inline: 0;
|
|
2757
3191
|
top: 50%;
|
|
2758
3192
|
height: 10px;
|
|
2759
|
-
background: var(--qc-
|
|
3193
|
+
background: var(--qc-state-pressed);
|
|
2760
3194
|
border-radius: 5px;
|
|
2761
3195
|
transform: translateY(-50%);
|
|
2762
3196
|
}
|
|
2763
3197
|
|
|
3198
|
+
/* The span the thumbs travel: the track less half a thumb at either end. */
|
|
3199
|
+
[data-qc-theme] .qc-drawing-dual-span {
|
|
3200
|
+
position: absolute;
|
|
3201
|
+
inset: 0 6px;
|
|
3202
|
+
}
|
|
3203
|
+
|
|
2764
3204
|
[data-qc-theme] .qc-drawing-dual-fill {
|
|
2765
3205
|
position: absolute;
|
|
2766
|
-
top:
|
|
2767
|
-
|
|
2768
|
-
background: var(--qc-text-
|
|
2769
|
-
border-radius: 5px;
|
|
2770
|
-
transform: translateY(-50%);
|
|
3206
|
+
top: 0;
|
|
3207
|
+
bottom: 0;
|
|
3208
|
+
background: var(--qc-text-primary);
|
|
2771
3209
|
}
|
|
2772
3210
|
|
|
2773
3211
|
[data-qc-theme] .qc-drawing-dual-input {
|
|
@@ -2781,22 +3219,29 @@
|
|
|
2781
3219
|
pointer-events: none;
|
|
2782
3220
|
}
|
|
2783
3221
|
|
|
3222
|
+
/* The two-thumb range's thumbs are the opacity knob: a dark disc with a 2px light rim, drawn from
|
|
3223
|
+
* the two poles so they read at both ends of the track in either mode. */
|
|
2784
3224
|
[data-qc-theme] .qc-drawing-dual-input::-webkit-slider-thumb {
|
|
2785
3225
|
width: 12px;
|
|
2786
3226
|
height: 12px;
|
|
2787
|
-
background: var(--
|
|
2788
|
-
border: 2px solid var(--
|
|
3227
|
+
background: var(--qcd-black);
|
|
3228
|
+
border: 2px solid var(--qcd-white);
|
|
2789
3229
|
border-radius: 50%;
|
|
3230
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
3231
|
+
cursor: pointer;
|
|
2790
3232
|
appearance: none;
|
|
2791
3233
|
pointer-events: auto;
|
|
2792
3234
|
}
|
|
2793
3235
|
|
|
2794
3236
|
[data-qc-theme] .qc-drawing-dual-input::-moz-range-thumb {
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
3237
|
+
box-sizing: border-box;
|
|
3238
|
+
width: 12px;
|
|
3239
|
+
height: 12px;
|
|
3240
|
+
background: var(--qcd-black);
|
|
3241
|
+
border: 2px solid var(--qcd-white);
|
|
2799
3242
|
border-radius: 50%;
|
|
3243
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
3244
|
+
cursor: pointer;
|
|
2800
3245
|
pointer-events: auto;
|
|
2801
3246
|
}
|
|
2802
3247
|
|
|
@@ -2812,45 +3257,27 @@
|
|
|
2812
3257
|
align-items: center;
|
|
2813
3258
|
}
|
|
2814
3259
|
|
|
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 {
|
|
3260
|
+
/* The weight and slant toggles: a 34px field with a 6px corner around the 28px mark, filled while
|
|
3261
|
+
* held, the mark cut from the fill in the inverse ink. */
|
|
3262
|
+
[data-qc-theme] .qc-drawing-font-toggle {
|
|
2836
3263
|
display: flex;
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
padding-top: 4px;
|
|
3264
|
+
flex: 0 0 34px;
|
|
3265
|
+
align-items: center;
|
|
3266
|
+
justify-content: center;
|
|
3267
|
+
width: 34px;
|
|
3268
|
+
padding: 0;
|
|
3269
|
+
border-radius: 6px;
|
|
3270
|
+
cursor: pointer;
|
|
2845
3271
|
}
|
|
2846
3272
|
|
|
2847
|
-
[data-qc-theme] .qc-drawing-
|
|
2848
|
-
|
|
2849
|
-
|
|
3273
|
+
[data-qc-theme] .qc-drawing-font-toggle[aria-pressed='true'] {
|
|
3274
|
+
color: var(--qc-text-inverse);
|
|
3275
|
+
background: var(--qc-control-onPressed);
|
|
3276
|
+
border-color: var(--qc-control-onPressed);
|
|
2850
3277
|
}
|
|
2851
3278
|
|
|
2852
|
-
/* Forced colors: a swatch IS its color, so it keeps it, with a system border to stand on. The
|
|
2853
|
-
* compact fields
|
|
3279
|
+
/* Forced colors: a swatch IS its color, so it keeps it, with a system border to stand on. The color
|
|
3280
|
+
* popover's compact fields edge their focus in the system highlight. */
|
|
2854
3281
|
@media (forced-colors: active) {
|
|
2855
3282
|
[data-qc-theme] .qc-drawing-swatch,
|
|
2856
3283
|
[data-qc-theme] .qc-drawing-color-strip {
|
|
@@ -2858,11 +3285,10 @@
|
|
|
2858
3285
|
border: 1px solid ButtonText;
|
|
2859
3286
|
}
|
|
2860
3287
|
|
|
2861
|
-
[data-qc-theme] .qc-drawing-hex
|
|
3288
|
+
[data-qc-theme] .qc-drawing-hex:focus,
|
|
2862
3289
|
[data-qc-theme] .qc-drawing-opacity-readout:focus {
|
|
2863
3290
|
forced-color-adjust: none;
|
|
2864
3291
|
border-color: Highlight;
|
|
2865
|
-
box-shadow: inset 0 0 0 1px Highlight;
|
|
2866
3292
|
}
|
|
2867
3293
|
}
|
|
2868
3294
|
|
|
@@ -3061,42 +3487,82 @@
|
|
|
3061
3487
|
max-height: calc(100% - 16px);
|
|
3062
3488
|
}
|
|
3063
3489
|
|
|
3064
|
-
|
|
3490
|
+
/* The header: the name at 20 on 28 in a 68px band 20px in, then what the dialog adds after it (the
|
|
3491
|
+
* settings dialog's pencil), and the close 34px at the far end, 3px past the padding so its mark
|
|
3492
|
+
* lines up with the page's edge. The header is the handle the dialog is carried by. */
|
|
3493
|
+
[data-qc-theme] .qc-drawing-dialog .qc-drawing-dialog-header {
|
|
3065
3494
|
display: flex;
|
|
3495
|
+
flex: 0 0 auto;
|
|
3066
3496
|
align-items: center;
|
|
3067
|
-
justify-content:
|
|
3068
|
-
gap:
|
|
3069
|
-
|
|
3070
|
-
|
|
3497
|
+
justify-content: flex-start;
|
|
3498
|
+
gap: 0;
|
|
3499
|
+
height: 68px;
|
|
3500
|
+
padding: 0 20px;
|
|
3501
|
+
cursor: grab;
|
|
3071
3502
|
user-select: none;
|
|
3072
3503
|
}
|
|
3073
3504
|
|
|
3074
3505
|
[data-qc-theme] .qc-drawing-dialog-title {
|
|
3506
|
+
min-width: 0;
|
|
3075
3507
|
overflow: hidden;
|
|
3508
|
+
font-size: 20px;
|
|
3509
|
+
font-weight: 600;
|
|
3510
|
+
line-height: 28px;
|
|
3076
3511
|
text-overflow: ellipsis;
|
|
3077
3512
|
white-space: nowrap;
|
|
3078
3513
|
}
|
|
3079
3514
|
|
|
3515
|
+
[data-qc-theme] .qc-drawing-dialog .qc-dialog-close {
|
|
3516
|
+
flex: 0 0 34px;
|
|
3517
|
+
margin-inline-start: auto;
|
|
3518
|
+
margin-inline-end: -3px;
|
|
3519
|
+
border-radius: 8px;
|
|
3520
|
+
}
|
|
3521
|
+
|
|
3522
|
+
/* The body 20px in from the sides; a drop box stands 8px under the header. */
|
|
3080
3523
|
[data-qc-theme] .qc-drawing-dialog-body {
|
|
3081
3524
|
display: flex;
|
|
3082
3525
|
flex: 1 1 auto;
|
|
3083
3526
|
flex-direction: column;
|
|
3084
|
-
gap: 4px;
|
|
3085
3527
|
min-height: 0;
|
|
3086
|
-
padding: 0
|
|
3528
|
+
padding: 0 20px;
|
|
3087
3529
|
overflow-y: auto;
|
|
3088
3530
|
}
|
|
3089
3531
|
|
|
3090
|
-
[data-qc-theme] .qc-drawing-dialog-
|
|
3532
|
+
[data-qc-theme] .qc-drawing-dialog-body > .qc-drawing-drop {
|
|
3533
|
+
margin-top: 8px;
|
|
3534
|
+
}
|
|
3535
|
+
|
|
3536
|
+
/* The image picker's transparency: its name at the start and its 180px track at the end of a 46px
|
|
3537
|
+
* line, each 10px down the line's 26px middle, 24px above the footer. */
|
|
3538
|
+
[data-qc-theme] .qc-drawing-picker-opacity {
|
|
3091
3539
|
display: flex;
|
|
3092
3540
|
align-items: center;
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3541
|
+
justify-content: space-between;
|
|
3542
|
+
margin-bottom: 24px;
|
|
3543
|
+
padding: 10px 0;
|
|
3544
|
+
}
|
|
3545
|
+
|
|
3546
|
+
[data-qc-theme] .qc-drawing-picker-opacity > * {
|
|
3547
|
+
margin-top: 10px;
|
|
3096
3548
|
}
|
|
3097
3549
|
|
|
3098
|
-
[data-qc-theme] .qc-drawing-
|
|
3099
|
-
|
|
3550
|
+
[data-qc-theme] .qc-drawing-picker-opacity > .qc-drawing-band-opacity {
|
|
3551
|
+
flex: 0 0 180px;
|
|
3552
|
+
width: 180px;
|
|
3553
|
+
margin-top: 10px;
|
|
3554
|
+
}
|
|
3555
|
+
|
|
3556
|
+
/* A drawing dialog's footer: what it leads with at the start (the settings dialog's Template list
|
|
3557
|
+
* button), then Cancel and the primary action 12px apart at the end, all 34px with an 8px corner,
|
|
3558
|
+
* over a 1px rule. Cancel is outlined in the outline role and takes the emphasis fill under the
|
|
3559
|
+
* pointer; the primary action wears the fill. */
|
|
3560
|
+
[data-qc-theme] .qc-drawing-dialog-footer {
|
|
3561
|
+
display: flex;
|
|
3562
|
+
align-items: center;
|
|
3563
|
+
justify-content: flex-end;
|
|
3564
|
+
padding: 16px 20px;
|
|
3565
|
+
border-top: 1px solid var(--qc-overlay-separator);
|
|
3100
3566
|
}
|
|
3101
3567
|
|
|
3102
3568
|
[data-qc-theme] .qc-drawing-footer-gap {
|
|
@@ -3112,31 +3578,225 @@
|
|
|
3112
3578
|
margin: 6px 0 4px;
|
|
3113
3579
|
}
|
|
3114
3580
|
|
|
3581
|
+
/* The settings dialog: a card at least 380px wide that grows to the widest page it shows, its
|
|
3582
|
+
* header, the page strip, the page and the footer stacked. */
|
|
3115
3583
|
[data-qc-theme] .qc-drawing-settings-dialog {
|
|
3116
|
-
width:
|
|
3117
|
-
|
|
3584
|
+
width: max-content;
|
|
3585
|
+
min-width: min(380px, calc(100% - 16px));
|
|
3586
|
+
max-width: calc(100% - 16px);
|
|
3118
3587
|
}
|
|
3119
3588
|
|
|
3120
|
-
|
|
3589
|
+
/* The settings dialog's pencil stands 5px after the name in a 34px cell. */
|
|
3590
|
+
[data-qc-theme] .qc-drawing-rename {
|
|
3121
3591
|
display: flex;
|
|
3122
|
-
flex
|
|
3123
|
-
|
|
3124
|
-
|
|
3592
|
+
flex: 0 0 34px;
|
|
3593
|
+
align-items: center;
|
|
3594
|
+
justify-content: center;
|
|
3595
|
+
width: 34px;
|
|
3596
|
+
height: 34px;
|
|
3597
|
+
margin-inline-start: 5px;
|
|
3598
|
+
padding: 0;
|
|
3599
|
+
color: var(--qc-text-primary);
|
|
3600
|
+
background: none;
|
|
3601
|
+
border: 0;
|
|
3602
|
+
border-radius: 2px;
|
|
3603
|
+
cursor: pointer;
|
|
3604
|
+
}
|
|
3605
|
+
|
|
3606
|
+
[data-qc-theme] .qc-drawing-rename:hover {
|
|
3607
|
+
background: var(--qc-state-hover);
|
|
3608
|
+
}
|
|
3609
|
+
|
|
3610
|
+
/* Renaming, the header is the name's field alone, as wide as the header and in the name's own type. */
|
|
3611
|
+
[data-qc-theme] .qc-drawing-dialog-header[data-qc-renaming='true'] > :not(.qc-drawing-rename-field) {
|
|
3612
|
+
display: none;
|
|
3613
|
+
}
|
|
3614
|
+
|
|
3615
|
+
[data-qc-theme] .qc-drawing-rename-field {
|
|
3616
|
+
flex: 1 1 auto;
|
|
3617
|
+
min-width: 0;
|
|
3618
|
+
font-size: 20px;
|
|
3619
|
+
font-weight: 600;
|
|
3620
|
+
line-height: 28px;
|
|
3621
|
+
}
|
|
3622
|
+
|
|
3623
|
+
/* The page strip: the tabs at 16 on 24, 12px apart, over a 4px track as wide as the page; the bar
|
|
3624
|
+
* standing on the track under the shown page glides to the next one. A tab under the pointer that
|
|
3625
|
+
* is not shown dims to the muted ink. */
|
|
3626
|
+
[data-qc-theme] .qc-drawing-tabs-slot {
|
|
3627
|
+
position: relative;
|
|
3628
|
+
flex: 0 0 auto;
|
|
3629
|
+
padding: 0 20px;
|
|
3630
|
+
}
|
|
3631
|
+
|
|
3632
|
+
[data-qc-theme] .qc-drawing-tabs-track {
|
|
3633
|
+
position: absolute;
|
|
3634
|
+
inset-inline: 20px;
|
|
3635
|
+
bottom: 0;
|
|
3636
|
+
height: 4px;
|
|
3637
|
+
background: var(--qc-overlay-separator);
|
|
3638
|
+
border-radius: 2px;
|
|
3639
|
+
}
|
|
3640
|
+
|
|
3641
|
+
[data-qc-theme] .qc-drawing-tabs {
|
|
3642
|
+
position: relative;
|
|
3643
|
+
display: inline-flex;
|
|
3644
|
+
vertical-align: top;
|
|
3645
|
+
white-space: nowrap;
|
|
3646
|
+
}
|
|
3647
|
+
|
|
3648
|
+
[data-qc-theme] .qc-drawing-tab {
|
|
3649
|
+
position: relative;
|
|
3650
|
+
margin: 0 12px;
|
|
3651
|
+
padding: 0 0 8px;
|
|
3652
|
+
color: var(--qc-text-primary);
|
|
3653
|
+
font: inherit;
|
|
3654
|
+
font-size: 16px;
|
|
3655
|
+
font-weight: 600;
|
|
3656
|
+
line-height: 24px;
|
|
3657
|
+
background: none;
|
|
3658
|
+
border: 0;
|
|
3659
|
+
border-radius: 4px;
|
|
3660
|
+
outline: none;
|
|
3661
|
+
cursor: pointer;
|
|
3662
|
+
}
|
|
3663
|
+
|
|
3664
|
+
[data-qc-theme] .qc-drawing-tab:first-of-type {
|
|
3665
|
+
margin-inline-start: 0;
|
|
3666
|
+
}
|
|
3667
|
+
|
|
3668
|
+
[data-qc-theme] .qc-drawing-tab:last-of-type {
|
|
3669
|
+
margin-inline-end: 0;
|
|
3670
|
+
}
|
|
3671
|
+
|
|
3672
|
+
[data-qc-theme] .qc-drawing-tab:not([aria-selected='true']):hover {
|
|
3673
|
+
color: var(--qc-text-muted);
|
|
3674
|
+
}
|
|
3675
|
+
|
|
3676
|
+
/* The keyboard's ring stands 10px out to either side of the label and over the bar's height. */
|
|
3677
|
+
[data-qc-theme] .qc-drawing-tab:focus-visible::after {
|
|
3678
|
+
position: absolute;
|
|
3679
|
+
inset: -2px -10px 0;
|
|
3680
|
+
border: 2px solid var(--qc-state-focusRing);
|
|
3681
|
+
border-radius: 8px;
|
|
3682
|
+
content: '';
|
|
3683
|
+
pointer-events: none;
|
|
3684
|
+
}
|
|
3685
|
+
|
|
3686
|
+
[data-qc-theme] .qc-drawing-tab-bar {
|
|
3687
|
+
position: absolute;
|
|
3688
|
+
bottom: 0;
|
|
3689
|
+
left: 0;
|
|
3690
|
+
height: 4px;
|
|
3691
|
+
background: var(--qc-control-on);
|
|
3692
|
+
border-radius: 2px;
|
|
3693
|
+
pointer-events: none;
|
|
3694
|
+
}
|
|
3695
|
+
|
|
3696
|
+
[data-qc-theme] .qc-drawing-tabs[data-qc-placed='true'] > .qc-drawing-tab-bar {
|
|
3697
|
+
transition: transform var(--qc-motion-durationGlide) var(--qc-motion-easingInOut), width var(--qc-motion-durationGlide) var(--qc-motion-easingInOut);
|
|
3698
|
+
}
|
|
3699
|
+
|
|
3700
|
+
/* The body scrolls the page alone, and keeps room for a short one. */
|
|
3701
|
+
[data-qc-theme] .qc-drawing-settings-dialog .qc-drawing-dialog-body {
|
|
3702
|
+
display: block;
|
|
3703
|
+
min-height: 145px;
|
|
3704
|
+
padding: 0;
|
|
3705
|
+
}
|
|
3706
|
+
|
|
3707
|
+
/* The page: a two-column grid inside 16px by 20px, the labels' column as wide as the widest label
|
|
3708
|
+
* and its 20px gap, the controls' column the rest. Everything on the page that is not a labelled
|
|
3709
|
+
* row stands across both columns. */
|
|
3710
|
+
[data-qc-theme] .qc-drawing-page {
|
|
3711
|
+
display: grid;
|
|
3712
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
3713
|
+
padding: 16px 20px;
|
|
3714
|
+
}
|
|
3715
|
+
|
|
3716
|
+
[data-qc-theme] .qc-drawing-page > :not(.qc-drawing-row) {
|
|
3717
|
+
grid-column: 1 / -1;
|
|
3718
|
+
}
|
|
3719
|
+
|
|
3720
|
+
[data-qc-theme] .qc-drawing-page > .qc-button {
|
|
3721
|
+
justify-self: start;
|
|
3125
3722
|
}
|
|
3126
3723
|
|
|
3127
3724
|
[data-qc-theme] .qc-drawing-template-button {
|
|
3128
|
-
display: flex;
|
|
3725
|
+
display: inline-flex;
|
|
3726
|
+
flex: 0 0 auto;
|
|
3129
3727
|
align-items: center;
|
|
3130
|
-
|
|
3728
|
+
width: 100px;
|
|
3729
|
+
padding: 0 2px 0 8px;
|
|
3730
|
+
cursor: pointer;
|
|
3131
3731
|
}
|
|
3132
3732
|
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3733
|
+
/* While its menu is open the Template button keeps the focus ring, and its chevron points up. */
|
|
3734
|
+
[data-qc-theme] .qc-drawing-template-button[aria-expanded='true'] {
|
|
3735
|
+
border-color: var(--qc-state-focusRing);
|
|
3736
|
+
box-shadow: inset 0 0 0 1px var(--qc-state-focusRing);
|
|
3136
3737
|
}
|
|
3137
3738
|
|
|
3138
|
-
[data-qc-theme] .qc-drawing-
|
|
3139
|
-
|
|
3739
|
+
[data-qc-theme] .qc-drawing-footer-button {
|
|
3740
|
+
display: inline-flex;
|
|
3741
|
+
align-items: center;
|
|
3742
|
+
justify-content: center;
|
|
3743
|
+
height: 34px;
|
|
3744
|
+
padding: 0 11px;
|
|
3745
|
+
font-size: 16px;
|
|
3746
|
+
line-height: 24px;
|
|
3747
|
+
border-radius: 8px;
|
|
3748
|
+
}
|
|
3749
|
+
|
|
3750
|
+
[data-qc-theme] .qc-drawing-footer-button + .qc-drawing-footer-button {
|
|
3751
|
+
margin-inline-start: 12px;
|
|
3752
|
+
}
|
|
3753
|
+
|
|
3754
|
+
[data-qc-theme] .qc-drawing-cancel {
|
|
3755
|
+
color: var(--qc-control-outline);
|
|
3756
|
+
border-color: var(--qc-control-outline);
|
|
3757
|
+
}
|
|
3758
|
+
|
|
3759
|
+
[data-qc-theme] .qc-drawing-cancel:hover:not([disabled]) {
|
|
3760
|
+
color: var(--qc-text-inverse);
|
|
3761
|
+
background: var(--qc-control-on);
|
|
3762
|
+
border-color: var(--qc-control-on);
|
|
3763
|
+
}
|
|
3764
|
+
|
|
3765
|
+
[data-qc-theme] .qc-drawing-cancel:active:not([disabled]) {
|
|
3766
|
+
color: var(--qc-text-inverse);
|
|
3767
|
+
background: var(--qc-control-onPressed);
|
|
3768
|
+
border-color: var(--qc-control-onPressed);
|
|
3769
|
+
}
|
|
3770
|
+
|
|
3771
|
+
/* The lists the dialog opens stand on a 10px corner; the Template menu is as wide as its words. */
|
|
3772
|
+
[data-qc-theme] .qc-drawing-popover--list {
|
|
3773
|
+
border-radius: 10px;
|
|
3774
|
+
}
|
|
3775
|
+
|
|
3776
|
+
[data-qc-theme] .qc-drawing-menu.qc-drawing-template-menu {
|
|
3777
|
+
width: max-content;
|
|
3778
|
+
min-width: 0;
|
|
3779
|
+
}
|
|
3780
|
+
|
|
3781
|
+
/* A saved template's row: its name, then the 26px slot at the end where its remove control
|
|
3782
|
+
* stands. The whole row lifts under the pointer. */
|
|
3783
|
+
[data-qc-theme] .qc-drawing-template-menu .qc-drawing-flyout-row {
|
|
3784
|
+
height: 32px;
|
|
3785
|
+
border-radius: 6px;
|
|
3786
|
+
}
|
|
3787
|
+
|
|
3788
|
+
[data-qc-theme] .qc-drawing-template-menu .qc-drawing-flyout-row > .qc-drawing-list-row {
|
|
3789
|
+
flex: 1 1 auto;
|
|
3790
|
+
width: auto;
|
|
3791
|
+
min-width: 0;
|
|
3792
|
+
}
|
|
3793
|
+
|
|
3794
|
+
[data-qc-theme] .qc-drawing-template-menu .qc-drawing-star {
|
|
3795
|
+
position: static;
|
|
3796
|
+
flex: 0 0 22px;
|
|
3797
|
+
width: 22px;
|
|
3798
|
+
height: 22px;
|
|
3799
|
+
margin-inline-end: 4px;
|
|
3140
3800
|
}
|
|
3141
3801
|
|
|
3142
3802
|
[data-qc-theme] .qc-drawing-note {
|
|
@@ -3144,15 +3804,216 @@
|
|
|
3144
3804
|
font-size: var(--qc-text-fontSizeSmall);
|
|
3145
3805
|
}
|
|
3146
3806
|
|
|
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;
|
|
3807
|
+
/* The plane's live region: read by assistive technology, never seen. Clipped rather than hidden,
|
|
3808
|
+
* because a hidden node is not announced. */
|
|
3809
|
+
[data-qc-theme] .qc-drawing-status {
|
|
3810
|
+
position: absolute;
|
|
3811
|
+
width: 1px;
|
|
3812
|
+
height: 1px;
|
|
3813
|
+
overflow: hidden;
|
|
3814
|
+
clip-path: inset(50%);
|
|
3815
|
+
white-space: nowrap;
|
|
3816
|
+
}
|
|
3817
|
+
|
|
3818
|
+
/* A leveled tool's level grid: two levels to a 34px line, 8px between lines and 8px above the
|
|
3819
|
+
* first, each level its 18px switch, its 100px value and its 34px well 8px apart, the second level
|
|
3820
|
+
* 48px after the first's well, the line 412px across whatever its levels hold. A level switched off
|
|
3821
|
+
* keeps its well, and its stroke where it shows one, on the read-only fill, dimmed. */
|
|
3822
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-level-row {
|
|
3823
|
+
min-width: 412px;
|
|
3824
|
+
min-height: 34px;
|
|
3825
|
+
margin-bottom: 8px;
|
|
3826
|
+
padding: 0;
|
|
3827
|
+
}
|
|
3828
|
+
|
|
3829
|
+
[data-qc-theme] .qc-drawing-page > :not(.qc-drawing-level-row) + .qc-drawing-level-row {
|
|
3830
|
+
margin-top: 8px;
|
|
3831
|
+
}
|
|
3832
|
+
|
|
3833
|
+
[data-qc-theme] .qc-drawing-level-row > :nth-child(4) {
|
|
3834
|
+
margin-inline-start: 40px;
|
|
3835
|
+
}
|
|
3836
|
+
|
|
3837
|
+
/* A gann grid: two lines to a 34px line, 8px between lines and 8px above the first, each line its
|
|
3838
|
+
* switch with its place or its ratio, 78px across so every well stands in line, then its well 8px
|
|
3839
|
+
* after; the second line 48px after the first's well, the line 412px across. A fan's rays stand one
|
|
3840
|
+
* to a 50px line. */
|
|
3841
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-ratio-row {
|
|
3842
|
+
min-width: 412px;
|
|
3843
|
+
min-height: 34px;
|
|
3844
|
+
margin-bottom: 8px;
|
|
3845
|
+
padding: 0;
|
|
3846
|
+
}
|
|
3847
|
+
|
|
3848
|
+
[data-qc-theme] .qc-drawing-page > :not(.qc-drawing-ratio-row) + .qc-drawing-ratio-row {
|
|
3849
|
+
margin-top: 8px;
|
|
3850
|
+
}
|
|
3851
|
+
|
|
3852
|
+
[data-qc-theme] .qc-drawing-ratio-row > :nth-child(3) {
|
|
3853
|
+
margin-inline-start: 40px;
|
|
3854
|
+
}
|
|
3855
|
+
|
|
3856
|
+
[data-qc-theme] .qc-drawing-ratio-switch {
|
|
3857
|
+
flex: 0 0 78px;
|
|
3858
|
+
min-width: 0;
|
|
3859
|
+
min-height: 34px;
|
|
3860
|
+
}
|
|
3861
|
+
|
|
3862
|
+
/* An image's page: its caption across the page over the box that chooses the picture, 8px above it. */
|
|
3863
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-row--caption > .qc-drawing-row-label {
|
|
3864
|
+
grid-column: 1 / -1;
|
|
3865
|
+
min-height: 0;
|
|
3866
|
+
padding: 0;
|
|
3867
|
+
}
|
|
3868
|
+
|
|
3869
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-row--caption > .qc-drawing-row-controls {
|
|
3870
|
+
display: none;
|
|
3871
|
+
}
|
|
3872
|
+
|
|
3873
|
+
[data-qc-theme] .qc-drawing-page > .qc-drawing-drop {
|
|
3874
|
+
margin-top: 8px;
|
|
3875
|
+
}
|
|
3876
|
+
|
|
3877
|
+
/* A signpost's emoji: a field-sized button wearing the glyph's artwork, or the glyph itself where
|
|
3878
|
+
* the artwork has not come. */
|
|
3879
|
+
[data-qc-theme] .qc-drawing-emoji-button {
|
|
3880
|
+
display: inline-flex;
|
|
3881
|
+
align-items: center;
|
|
3882
|
+
justify-content: center;
|
|
3883
|
+
width: 36px;
|
|
3884
|
+
height: 34px;
|
|
3885
|
+
padding: 0;
|
|
3886
|
+
border-radius: 6px;
|
|
3887
|
+
}
|
|
3888
|
+
|
|
3889
|
+
[data-qc-theme] .qc-drawing-emoji-button .qc-drawing-glyph-art {
|
|
3890
|
+
width: 24px;
|
|
3891
|
+
height: 24px;
|
|
3892
|
+
}
|
|
3893
|
+
|
|
3894
|
+
/* An emoji well beside a switch that is off stands dimmed on the field's fill, as a color well does. */
|
|
3895
|
+
[data-qc-theme] .qc-drawing-emoji-button[data-qc-dim='true'] {
|
|
3896
|
+
background: var(--qc-control-fieldFill);
|
|
3897
|
+
}
|
|
3898
|
+
|
|
3899
|
+
[data-qc-theme] .qc-drawing-emoji-button[data-qc-dim='true'] > * {
|
|
3900
|
+
opacity: 0.5;
|
|
3901
|
+
}
|
|
3902
|
+
|
|
3903
|
+
[data-qc-theme] .qc-drawing-emoji-face {
|
|
3904
|
+
font-size: 20px;
|
|
3905
|
+
line-height: 1;
|
|
3906
|
+
}
|
|
3907
|
+
|
|
3908
|
+
[data-qc-theme] .qc-drawing-swatch-button[data-qc-dim='true'] {
|
|
3909
|
+
background: var(--qc-control-fieldFill);
|
|
3910
|
+
}
|
|
3911
|
+
|
|
3912
|
+
[data-qc-theme] .qc-drawing-swatch-button[data-qc-dim='true'] > .qc-drawing-well,
|
|
3913
|
+
[data-qc-theme] .qc-drawing-swatch-button[data-qc-dim='true'] > .qc-drawing-stroke {
|
|
3914
|
+
opacity: 0.5;
|
|
3915
|
+
}
|
|
3916
|
+
|
|
3917
|
+
/* The one color while the levels differ: the well split corner to corner between the color it
|
|
3918
|
+
* offers and a second hue, so it reads as several colors rather than one. */
|
|
3919
|
+
[data-qc-theme] .qc-drawing-swatch-button[data-qc-mixed='true'] .qc-drawing-well-fill {
|
|
3920
|
+
background: linear-gradient(to top right, var(--qcd-swatch) 50%, var(--qcd-paired) 50%);
|
|
3921
|
+
}
|
|
3922
|
+
|
|
3923
|
+
/* A list button whose face is a mark: 76px around a 50px bar of the chosen thickness, or 34px
|
|
3924
|
+
* around the chosen style's 28px mark. A thickness list stands 12px wider than its button, each
|
|
3925
|
+
* choice its bar alone; a style list is as wide as its words. */
|
|
3926
|
+
[data-qc-theme] .qc-drawing-select--mark {
|
|
3927
|
+
justify-content: center;
|
|
3928
|
+
padding: 0;
|
|
3929
|
+
}
|
|
3930
|
+
|
|
3931
|
+
[data-qc-theme] .qc-drawing-select--mark[data-mark='thickness'] {
|
|
3932
|
+
width: 76px;
|
|
3933
|
+
}
|
|
3934
|
+
|
|
3935
|
+
[data-qc-theme] .qc-drawing-select--mark[data-mark='style'] {
|
|
3936
|
+
width: 34px;
|
|
3937
|
+
}
|
|
3938
|
+
|
|
3939
|
+
[data-qc-theme] .qc-drawing-thickness-bar {
|
|
3940
|
+
display: block;
|
|
3941
|
+
flex: 0 0 auto;
|
|
3942
|
+
width: 50px;
|
|
3943
|
+
background: currentColor;
|
|
3944
|
+
}
|
|
3945
|
+
|
|
3946
|
+
[data-qc-theme] .qc-drawing-mark-list[data-mark='thickness'] {
|
|
3947
|
+
width: 88px;
|
|
3948
|
+
}
|
|
3949
|
+
|
|
3950
|
+
[data-qc-theme] .qc-drawing-mark-list[data-mark='style'] {
|
|
3951
|
+
width: max-content;
|
|
3952
|
+
}
|
|
3953
|
+
|
|
3954
|
+
[data-qc-theme] .qc-drawing-list-row--bar {
|
|
3955
|
+
justify-content: center;
|
|
3956
|
+
}
|
|
3957
|
+
|
|
3958
|
+
/* The chosen thickness or style is cut from the emphasis fill in the ink of a mark. */
|
|
3959
|
+
[data-qc-theme] .qc-drawing-mark-list .qc-drawing-list-row[aria-selected='true'] {
|
|
3960
|
+
color: var(--qc-control-onInk);
|
|
3961
|
+
}
|
|
3962
|
+
|
|
3963
|
+
/* The bands' opacity: a 148px track 10px tall on a 5px corner that fades from nothing into the
|
|
3964
|
+
* drawings' line color over the checked ground the color popover's track stands on, inside a 1px
|
|
3965
|
+
* edge of that color; its 12px knob is the popover's, a dark disc with a light rim, a pixel proud
|
|
3966
|
+
* of the track above and below. */
|
|
3967
|
+
[data-qc-theme] .qc-drawing-band-opacity {
|
|
3968
|
+
--qcd-angle-0: 0deg;
|
|
3969
|
+
--qcd-black: hsl(var(--qcd-angle-0) 0% 0%);
|
|
3970
|
+
--qcd-white: hsl(var(--qcd-angle-0) 0% 100%);
|
|
3971
|
+
--qcd-check-hue: 224deg;
|
|
3972
|
+
--qcd-check: hsl(var(--qcd-check-hue) 15% 19% / 0.4);
|
|
3973
|
+
--qcd-ground: var(--qcd-black);
|
|
3974
|
+
flex: 0 0 148px;
|
|
3975
|
+
width: 148px;
|
|
3976
|
+
height: 10px;
|
|
3977
|
+
margin: 0;
|
|
3978
|
+
background:
|
|
3979
|
+
linear-gradient(to right, transparent, var(--qc-drawing-line)),
|
|
3980
|
+
repeating-conic-gradient(from 270deg, var(--qcd-check) 0% 25%, transparent 0% 50%) 1px 50% / 8px 8px,
|
|
3981
|
+
var(--qcd-ground);
|
|
3982
|
+
border: 1px solid var(--qc-drawing-line);
|
|
3983
|
+
border-radius: 5px;
|
|
3984
|
+
outline: none;
|
|
3985
|
+
cursor: pointer;
|
|
3986
|
+
appearance: none;
|
|
3987
|
+
}
|
|
3988
|
+
|
|
3989
|
+
[data-qc-theme='light'] .qc-drawing-band-opacity {
|
|
3990
|
+
--qcd-ground: var(--qcd-white);
|
|
3991
|
+
}
|
|
3992
|
+
|
|
3993
|
+
[data-qc-theme] .qc-drawing-band-opacity:focus-visible {
|
|
3994
|
+
box-shadow: 0 0 0 2px var(--qc-state-focusRing);
|
|
3995
|
+
}
|
|
3996
|
+
|
|
3997
|
+
[data-qc-theme] .qc-drawing-band-opacity::-webkit-slider-thumb {
|
|
3998
|
+
width: 12px;
|
|
3999
|
+
height: 12px;
|
|
4000
|
+
background: var(--qcd-black);
|
|
4001
|
+
border: 2px solid var(--qcd-white);
|
|
4002
|
+
border-radius: 50%;
|
|
4003
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
4004
|
+
cursor: pointer;
|
|
4005
|
+
appearance: none;
|
|
4006
|
+
}
|
|
4007
|
+
|
|
4008
|
+
[data-qc-theme] .qc-drawing-band-opacity::-moz-range-thumb {
|
|
4009
|
+
box-sizing: border-box;
|
|
4010
|
+
width: 12px;
|
|
4011
|
+
height: 12px;
|
|
4012
|
+
background: var(--qcd-black);
|
|
4013
|
+
border: 2px solid var(--qcd-white);
|
|
4014
|
+
border-radius: 50%;
|
|
4015
|
+
box-shadow: 0 1px 2px hsl(var(--qcd-angle-0) 0% 0% / 0.5);
|
|
4016
|
+
cursor: pointer;
|
|
3156
4017
|
}
|
|
3157
4018
|
|
|
3158
4019
|
/* The drawing toolbar: the column down the chart's inline-start edge, its split cells, its flyouts
|
|
@@ -4491,8 +5352,9 @@
|
|
|
4491
5352
|
|
|
4492
5353
|
/* A chosen row inverts, the emphasis fill behind the inverse ink, and carries nothing else: no
|
|
4493
5354
|
* 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
|
-
|
|
5355
|
+
* IS a switch or a checkbox is not a choice among rows: its track or its box says it is on, and the
|
|
5356
|
+
* row stays as it is. */
|
|
5357
|
+
[data-qc-theme] .qc-menu-row[aria-checked='true']:not([role='switch']):not([role='menuitemcheckbox']) {
|
|
4496
5358
|
color: var(--qc-text-inverse);
|
|
4497
5359
|
background: var(--qc-control-on);
|
|
4498
5360
|
}
|
|
@@ -4586,6 +5448,12 @@
|
|
|
4586
5448
|
pointer-events: auto;
|
|
4587
5449
|
}
|
|
4588
5450
|
|
|
5451
|
+
/* A dialog that edits what it stands over leaves it undimmed: the backdrop still takes the press
|
|
5452
|
+
* that closes the dialog, and paints nothing. */
|
|
5453
|
+
[data-qc-theme] .qc-dialog-scrim[data-qc-veil='none'] {
|
|
5454
|
+
background: transparent;
|
|
5455
|
+
}
|
|
5456
|
+
|
|
4589
5457
|
[data-qc-theme] .qc-dialog {
|
|
4590
5458
|
display: flex;
|
|
4591
5459
|
flex-direction: column;
|
|
@@ -4928,6 +5796,12 @@
|
|
|
4928
5796
|
color: var(--qc-text-inverse);
|
|
4929
5797
|
}
|
|
4930
5798
|
|
|
5799
|
+
/* The current starting point wears its mark and its words in the ink cut from the emphasis fill. */
|
|
5800
|
+
[data-qc-theme] .qc-replay-start-menu .qc-menu-row[aria-checked='true'],
|
|
5801
|
+
[data-qc-theme] .qc-replay-start-menu .qc-menu-row[aria-checked='true']:hover {
|
|
5802
|
+
color: var(--qc-control-onInk);
|
|
5803
|
+
}
|
|
5804
|
+
|
|
4931
5805
|
[data-qc-theme] .qc-replay-menu .qc-menu-row--marked {
|
|
4932
5806
|
height: 34px;
|
|
4933
5807
|
padding-inline-start: 8px;
|
|
@@ -5043,73 +5917,404 @@
|
|
|
5043
5917
|
}
|
|
5044
5918
|
|
|
5045
5919
|
/* The date picker. */
|
|
5920
|
+
|
|
5921
|
+
/* The card stands 302px wide over the undimmed chart: a 68px header, the fields, the calendar and the
|
|
5922
|
+
* chip, and a 67px footer. The header carries the title at 20 on 28, which is the handle the card is
|
|
5923
|
+
* carried by, and the close in a 34px cell whose mark stands 3px past the header's padding. */
|
|
5924
|
+
[data-qc-theme] .qc-date-header {
|
|
5925
|
+
display: flex;
|
|
5926
|
+
flex: 0 0 auto;
|
|
5927
|
+
align-items: center;
|
|
5928
|
+
height: 68px;
|
|
5929
|
+
padding: 0 20px;
|
|
5930
|
+
}
|
|
5931
|
+
|
|
5932
|
+
[data-qc-theme] .qc-date-title {
|
|
5933
|
+
flex: 1 1 auto;
|
|
5934
|
+
min-width: 0;
|
|
5935
|
+
padding: 17px 0;
|
|
5936
|
+
cursor: grab;
|
|
5937
|
+
user-select: none;
|
|
5938
|
+
}
|
|
5939
|
+
|
|
5940
|
+
[data-qc-theme] .qc-date-title-text {
|
|
5941
|
+
display: block;
|
|
5942
|
+
overflow: hidden;
|
|
5943
|
+
color: var(--qc-text-primary);
|
|
5944
|
+
font-size: 20px;
|
|
5945
|
+
font-weight: 600;
|
|
5946
|
+
line-height: 28px;
|
|
5947
|
+
text-overflow: ellipsis;
|
|
5948
|
+
white-space: nowrap;
|
|
5949
|
+
}
|
|
5950
|
+
|
|
5951
|
+
[data-qc-theme] .qc-date-dialog .qc-dialog-close {
|
|
5952
|
+
flex: 0 0 34px;
|
|
5953
|
+
margin-inline-end: -3px;
|
|
5954
|
+
border-radius: 8px;
|
|
5955
|
+
}
|
|
5956
|
+
|
|
5957
|
+
/* The body is a dialog body that sits 17px under the header, edge to edge, and scrolls only in a
|
|
5958
|
+
* viewport shorter than the card. */
|
|
5959
|
+
[data-qc-theme] .qc-date-content {
|
|
5960
|
+
gap: 0;
|
|
5961
|
+
padding: 17px 0 0;
|
|
5962
|
+
}
|
|
5963
|
+
|
|
5964
|
+
/* The fields stand side by side, 150px and 100px with 12px between, 16px over the calendar. Each is
|
|
5965
|
+
* the chart's 34px field box with a 28px mark 3px in from its end, in the caret's ink and the field's
|
|
5966
|
+
* own ink under the pointer: the date's page of days, and the clock that opens the time list. */
|
|
5046
5967
|
[data-qc-theme] .qc-date-fields {
|
|
5968
|
+
display: grid;
|
|
5969
|
+
grid-template-columns: 150px 100px;
|
|
5970
|
+
grid-template-rows: 34px;
|
|
5971
|
+
gap: 12px;
|
|
5972
|
+
margin-bottom: 16px;
|
|
5973
|
+
padding: 0 20px;
|
|
5974
|
+
}
|
|
5975
|
+
|
|
5976
|
+
[data-qc-theme] .qc-date-box {
|
|
5977
|
+
position: relative;
|
|
5047
5978
|
display: flex;
|
|
5048
|
-
gap: 8px;
|
|
5049
5979
|
}
|
|
5050
5980
|
|
|
5051
|
-
|
|
5052
|
-
[data-qc-theme] .qc-date-field {
|
|
5981
|
+
[data-qc-theme] .qc-date-box > .qc-field {
|
|
5053
5982
|
flex: 1 1 auto;
|
|
5983
|
+
width: 100%;
|
|
5054
5984
|
min-width: 0;
|
|
5985
|
+
padding-inline-end: 33px;
|
|
5055
5986
|
font-variant-numeric: tabular-nums;
|
|
5056
5987
|
}
|
|
5057
5988
|
|
|
5058
|
-
[data-qc-theme] .qc-date-
|
|
5059
|
-
|
|
5060
|
-
|
|
5989
|
+
[data-qc-theme] .qc-date-box-mark {
|
|
5990
|
+
position: absolute;
|
|
5991
|
+
inset-block-start: 3px;
|
|
5992
|
+
inset-inline-end: 3px;
|
|
5993
|
+
display: flex;
|
|
5994
|
+
align-items: center;
|
|
5995
|
+
justify-content: center;
|
|
5996
|
+
width: 28px;
|
|
5997
|
+
height: 28px;
|
|
5998
|
+
padding: 0;
|
|
5999
|
+
color: var(--qc-chrome-caret);
|
|
6000
|
+
background: none;
|
|
6001
|
+
border: 0;
|
|
6002
|
+
pointer-events: none;
|
|
6003
|
+
}
|
|
6004
|
+
|
|
6005
|
+
[data-qc-theme] .qc-date-box:hover > .qc-date-box-mark {
|
|
6006
|
+
color: var(--qc-text-primary);
|
|
6007
|
+
}
|
|
6008
|
+
|
|
6009
|
+
[data-qc-theme] .qc-date-clock {
|
|
6010
|
+
cursor: pointer;
|
|
6011
|
+
pointer-events: auto;
|
|
6012
|
+
}
|
|
6013
|
+
|
|
6014
|
+
/* The calendar: 286px on 8px margins, its 262px of content inside 12px, a 34px row of the arrows
|
|
6015
|
+
* around the heading, a 22px band 12px either side, and a 226px view, the whole at least 332px tall.
|
|
6016
|
+
* It reads left to right in every language, as a calendar's columns do. */
|
|
6017
|
+
[data-qc-theme] .qc-date-calendar {
|
|
6018
|
+
display: flex;
|
|
6019
|
+
flex-direction: column;
|
|
6020
|
+
min-height: 332px;
|
|
6021
|
+
margin: 0 8px;
|
|
6022
|
+
padding: 1px 12px 15px;
|
|
6023
|
+
direction: ltr;
|
|
6024
|
+
user-select: none;
|
|
5061
6025
|
}
|
|
5062
6026
|
|
|
5063
6027
|
[data-qc-theme] .qc-date-nav {
|
|
5064
6028
|
display: flex;
|
|
6029
|
+
flex: 0 0 34px;
|
|
5065
6030
|
align-items: center;
|
|
5066
6031
|
justify-content: space-between;
|
|
5067
|
-
padding:
|
|
6032
|
+
padding: 0 3px;
|
|
5068
6033
|
}
|
|
5069
6034
|
|
|
5070
|
-
|
|
5071
|
-
|
|
6035
|
+
/* Every press in the calendar is a 34px cell on an 8px corner with its words at 16 on 24. Under the
|
|
6036
|
+
* pointer it takes the hover fill and its words and mark brighten to the quiet ink; a day or a cell
|
|
6037
|
+
* that cannot be chosen keeps the disabled ink and takes no fill. */
|
|
6038
|
+
[data-qc-theme] .qc-date-step,
|
|
6039
|
+
[data-qc-theme] .qc-date-heading,
|
|
6040
|
+
[data-qc-theme] .qc-date-day,
|
|
6041
|
+
[data-qc-theme] .qc-date-cell {
|
|
6042
|
+
display: flex;
|
|
5072
6043
|
align-items: center;
|
|
5073
6044
|
justify-content: center;
|
|
5074
|
-
|
|
5075
|
-
|
|
5076
|
-
|
|
6045
|
+
height: 34px;
|
|
6046
|
+
font-size: 16px;
|
|
6047
|
+
line-height: 24px;
|
|
6048
|
+
white-space: nowrap;
|
|
5077
6049
|
border-color: transparent;
|
|
6050
|
+
border-radius: 8px;
|
|
6051
|
+
}
|
|
6052
|
+
|
|
6053
|
+
[data-qc-theme] .qc-date-step {
|
|
6054
|
+
flex: 0 0 34px;
|
|
6055
|
+
width: 34px;
|
|
6056
|
+
padding: 0;
|
|
6057
|
+
}
|
|
6058
|
+
|
|
6059
|
+
[data-qc-theme] .qc-date-heading {
|
|
6060
|
+
padding: 0 11px;
|
|
5078
6061
|
}
|
|
5079
6062
|
|
|
5080
|
-
[data-qc-theme] .qc-date-
|
|
6063
|
+
[data-qc-theme] .qc-date-dialog .qc-dialog-close:hover,
|
|
6064
|
+
[data-qc-theme] .qc-date-step:hover:not([disabled]),
|
|
6065
|
+
[data-qc-theme] .qc-date-heading:hover,
|
|
6066
|
+
[data-qc-theme] .qc-date-day:hover:not([disabled]):not([aria-selected='true']),
|
|
6067
|
+
[data-qc-theme] .qc-date-cell:hover:not([disabled]):not([aria-selected='true']) {
|
|
6068
|
+
color: var(--qc-control-neutralInk);
|
|
6069
|
+
}
|
|
6070
|
+
|
|
6071
|
+
/* The band over the grid, on the quiet fill: the weekdays spread across it in the muted ink, or the
|
|
6072
|
+
* word for the months or the years. */
|
|
6073
|
+
[data-qc-theme] .qc-date-band {
|
|
6074
|
+
display: flex;
|
|
6075
|
+
flex: 0 0 22px;
|
|
6076
|
+
align-items: center;
|
|
6077
|
+
justify-content: space-around;
|
|
6078
|
+
margin: 12px 0;
|
|
6079
|
+
padding: 2px 0;
|
|
6080
|
+
color: var(--qc-text-muted);
|
|
6081
|
+
font-size: 14px;
|
|
6082
|
+
line-height: 18px;
|
|
6083
|
+
background: var(--qc-control-neutral);
|
|
6084
|
+
border-radius: 6px;
|
|
6085
|
+
}
|
|
6086
|
+
|
|
6087
|
+
[data-qc-theme] .qc-date-view {
|
|
6088
|
+
flex: 0 0 226px;
|
|
6089
|
+
}
|
|
6090
|
+
|
|
6091
|
+
/* The days: weeks of seven 34px cells 4px apart, the first week against the end and the last against
|
|
6092
|
+
* the start, so each column is one weekday and no day of another month stands in a gap. The chosen day
|
|
6093
|
+
* is on the emphasis fill in the ink cut from it, and today wears a 2px bar under its number in the
|
|
6094
|
+
* number's own ink. */
|
|
6095
|
+
[data-qc-theme] .qc-date-weeks {
|
|
5081
6096
|
display: flex;
|
|
5082
6097
|
flex-direction: column;
|
|
5083
|
-
gap:
|
|
6098
|
+
gap: 4px;
|
|
5084
6099
|
}
|
|
5085
6100
|
|
|
5086
|
-
[data-qc-theme] .qc-date-
|
|
6101
|
+
[data-qc-theme] .qc-date-week {
|
|
6102
|
+
display: flex;
|
|
6103
|
+
justify-content: space-between;
|
|
6104
|
+
}
|
|
6105
|
+
|
|
6106
|
+
[data-qc-theme] .qc-date-week:first-child {
|
|
6107
|
+
justify-content: flex-end;
|
|
6108
|
+
}
|
|
6109
|
+
|
|
6110
|
+
[data-qc-theme] .qc-date-week:last-child {
|
|
6111
|
+
justify-content: flex-start;
|
|
6112
|
+
}
|
|
6113
|
+
|
|
6114
|
+
[data-qc-theme] .qc-date-week:first-child > .qc-date-day + .qc-date-day,
|
|
6115
|
+
[data-qc-theme] .qc-date-week:last-child > .qc-date-day + .qc-date-day {
|
|
6116
|
+
margin-inline-start: 4px;
|
|
6117
|
+
}
|
|
6118
|
+
|
|
6119
|
+
[data-qc-theme] .qc-date-day {
|
|
6120
|
+
position: relative;
|
|
6121
|
+
flex: 0 0 34px;
|
|
6122
|
+
width: 34px;
|
|
6123
|
+
padding: 0;
|
|
6124
|
+
}
|
|
6125
|
+
|
|
6126
|
+
[data-qc-theme] .qc-date-day[aria-selected='true']:not([disabled]) {
|
|
6127
|
+
color: var(--qc-control-onInk);
|
|
6128
|
+
background: var(--qc-control-on);
|
|
6129
|
+
border-color: var(--qc-control-on);
|
|
6130
|
+
}
|
|
6131
|
+
|
|
6132
|
+
[data-qc-theme] .qc-date-day[aria-current='date']::before {
|
|
6133
|
+
position: absolute;
|
|
6134
|
+
inset-inline: 6px;
|
|
6135
|
+
top: 100%;
|
|
6136
|
+
height: 2px;
|
|
6137
|
+
margin-top: -6px;
|
|
6138
|
+
background: currentColor;
|
|
6139
|
+
border-radius: 1px;
|
|
6140
|
+
content: '';
|
|
6141
|
+
}
|
|
6142
|
+
|
|
6143
|
+
/* The months, three to a row 30px apart, and the years, four to a row 14px apart, 3px between
|
|
6144
|
+
* columns. The chosen month or year stands on the quiet fill, a step up under the pointer. */
|
|
6145
|
+
[data-qc-theme] .qc-date-months,
|
|
6146
|
+
[data-qc-theme] .qc-date-years {
|
|
5087
6147
|
display: grid;
|
|
5088
|
-
grid-
|
|
5089
|
-
gap:
|
|
6148
|
+
grid-auto-rows: 34px;
|
|
6149
|
+
column-gap: 3px;
|
|
6150
|
+
}
|
|
6151
|
+
|
|
6152
|
+
[data-qc-theme] .qc-date-months {
|
|
6153
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
6154
|
+
row-gap: 30px;
|
|
6155
|
+
}
|
|
6156
|
+
|
|
6157
|
+
[data-qc-theme] .qc-date-years {
|
|
6158
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
6159
|
+
row-gap: 14px;
|
|
6160
|
+
}
|
|
6161
|
+
|
|
6162
|
+
[data-qc-theme] .qc-date-row {
|
|
6163
|
+
display: contents;
|
|
6164
|
+
}
|
|
6165
|
+
|
|
6166
|
+
[data-qc-theme] .qc-date-cell {
|
|
6167
|
+
min-width: 0;
|
|
6168
|
+
padding: 0 11px;
|
|
6169
|
+
}
|
|
6170
|
+
|
|
6171
|
+
[data-qc-theme] .qc-date-years .qc-date-cell {
|
|
6172
|
+
padding: 0 4px;
|
|
6173
|
+
}
|
|
6174
|
+
|
|
6175
|
+
[data-qc-theme] .qc-date-cell[aria-selected='true']:not([disabled]) {
|
|
6176
|
+
color: var(--qc-control-neutralInk);
|
|
6177
|
+
background: var(--qc-control-neutral);
|
|
6178
|
+
border-color: var(--qc-control-neutral);
|
|
6179
|
+
}
|
|
6180
|
+
|
|
6181
|
+
[data-qc-theme] .qc-date-cell[aria-selected='true']:not([disabled]):hover {
|
|
6182
|
+
background: var(--qc-control-neutralHover);
|
|
6183
|
+
border-color: var(--qc-control-neutralHover);
|
|
5090
6184
|
}
|
|
5091
6185
|
|
|
5092
|
-
|
|
6186
|
+
/* The chip under the calendar: 40px tall, its words at 16 on 24 and 15px in, centred and 10px over
|
|
6187
|
+
* the footer, on the quiet fill a step up under the pointer and another while pressed. */
|
|
6188
|
+
[data-qc-theme] .qc-date-first-row {
|
|
5093
6189
|
display: flex;
|
|
6190
|
+
justify-content: center;
|
|
6191
|
+
}
|
|
6192
|
+
|
|
6193
|
+
[data-qc-theme] .qc-date-first {
|
|
6194
|
+
display: inline-flex;
|
|
5094
6195
|
align-items: center;
|
|
5095
6196
|
justify-content: center;
|
|
5096
|
-
height:
|
|
6197
|
+
height: 40px;
|
|
6198
|
+
margin-bottom: 10px;
|
|
6199
|
+
padding: 0 15px;
|
|
6200
|
+
color: var(--qc-control-neutralInk);
|
|
6201
|
+
font-size: 16px;
|
|
6202
|
+
line-height: 24px;
|
|
6203
|
+
white-space: nowrap;
|
|
6204
|
+
background: var(--qc-control-neutral);
|
|
6205
|
+
border-color: var(--qc-control-neutral);
|
|
6206
|
+
border-radius: 8px;
|
|
5097
6207
|
}
|
|
5098
6208
|
|
|
5099
|
-
[data-qc-theme] .qc-date-
|
|
6209
|
+
[data-qc-theme] .qc-date-first:hover {
|
|
6210
|
+
background: var(--qc-control-neutralHover);
|
|
6211
|
+
border-color: var(--qc-control-neutralHover);
|
|
6212
|
+
}
|
|
6213
|
+
|
|
6214
|
+
[data-qc-theme] .qc-date-first:active {
|
|
6215
|
+
background: var(--qc-control-neutralPressed);
|
|
6216
|
+
border-color: var(--qc-control-neutralPressed);
|
|
6217
|
+
}
|
|
6218
|
+
|
|
6219
|
+
/* The footer under a 1px rule: Cancel and Select at its end, 34px tall and 12px apart, their words at
|
|
6220
|
+
* 16 on 24 and 11px in. Cancel is outlined in the outline role and takes the emphasis fill under the
|
|
6221
|
+
* pointer; Select wears the fill. */
|
|
6222
|
+
[data-qc-theme] .qc-date-footer {
|
|
5100
6223
|
display: flex;
|
|
6224
|
+
flex: 0 0 auto;
|
|
6225
|
+
justify-content: flex-end;
|
|
6226
|
+
padding: 16px 20px;
|
|
6227
|
+
border-top: 1px solid var(--qc-overlay-separator);
|
|
6228
|
+
}
|
|
6229
|
+
|
|
6230
|
+
[data-qc-theme] .qc-date-footer .qc-button {
|
|
6231
|
+
display: inline-flex;
|
|
5101
6232
|
align-items: center;
|
|
5102
6233
|
justify-content: center;
|
|
5103
|
-
height:
|
|
5104
|
-
padding: 0;
|
|
6234
|
+
height: 34px;
|
|
6235
|
+
padding: 0 11px;
|
|
6236
|
+
font-size: 16px;
|
|
6237
|
+
line-height: 24px;
|
|
6238
|
+
white-space: nowrap;
|
|
6239
|
+
border-radius: 8px;
|
|
6240
|
+
}
|
|
6241
|
+
|
|
6242
|
+
[data-qc-theme] .qc-date-footer .qc-button + .qc-button {
|
|
6243
|
+
margin-inline-start: 12px;
|
|
6244
|
+
}
|
|
6245
|
+
|
|
6246
|
+
[data-qc-theme] .qc-date-cancel {
|
|
6247
|
+
color: var(--qc-control-outline);
|
|
6248
|
+
border-color: var(--qc-control-outline);
|
|
6249
|
+
}
|
|
6250
|
+
|
|
6251
|
+
[data-qc-theme] .qc-date-cancel:hover:not([disabled]) {
|
|
6252
|
+
color: var(--qc-text-inverse);
|
|
6253
|
+
background: var(--qc-control-on);
|
|
6254
|
+
border-color: var(--qc-control-on);
|
|
6255
|
+
}
|
|
6256
|
+
|
|
6257
|
+
[data-qc-theme] .qc-date-cancel:active:not([disabled]) {
|
|
6258
|
+
color: var(--qc-text-inverse);
|
|
6259
|
+
background: var(--qc-control-onPressed);
|
|
6260
|
+
border-color: var(--qc-control-onPressed);
|
|
6261
|
+
}
|
|
6262
|
+
|
|
6263
|
+
/* The time list stands on the dialog's backdrop directly under the time field and as wide as it, at
|
|
6264
|
+
* most 231px tall over a scroll of its own: the day in quarter hours on 32px rows with their words
|
|
6265
|
+
* 12px in. The time the field holds is on the emphasis fill; the row under the pointer, or the one
|
|
6266
|
+
* the keyboard walked to, takes the hover fill and dims its words. */
|
|
6267
|
+
[data-qc-theme] .qc-date-times {
|
|
6268
|
+
position: absolute;
|
|
6269
|
+
z-index: 1;
|
|
6270
|
+
display: flex;
|
|
6271
|
+
flex-direction: column;
|
|
6272
|
+
max-height: 231px;
|
|
6273
|
+
overflow: hidden;
|
|
6274
|
+
}
|
|
6275
|
+
|
|
6276
|
+
[data-qc-theme] .qc-date-times-body {
|
|
6277
|
+
position: relative;
|
|
6278
|
+
}
|
|
6279
|
+
|
|
6280
|
+
[data-qc-theme] .qc-date-times-rows {
|
|
6281
|
+
padding: 6px 0;
|
|
6282
|
+
}
|
|
6283
|
+
|
|
6284
|
+
[data-qc-theme] .qc-date-time-option {
|
|
6285
|
+
display: flex;
|
|
6286
|
+
align-items: center;
|
|
6287
|
+
height: 32px;
|
|
6288
|
+
padding-block: 0;
|
|
6289
|
+
padding-inline: 12px 10px;
|
|
6290
|
+
color: var(--qc-text-primary);
|
|
6291
|
+
font-size: 14px;
|
|
6292
|
+
line-height: 16px;
|
|
5105
6293
|
font-variant-numeric: tabular-nums;
|
|
5106
|
-
|
|
6294
|
+
cursor: default;
|
|
6295
|
+
user-select: none;
|
|
5107
6296
|
}
|
|
5108
6297
|
|
|
5109
|
-
[data-qc-theme] .qc-date-
|
|
5110
|
-
|
|
5111
|
-
|
|
5112
|
-
|
|
6298
|
+
[data-qc-theme] .qc-date-time-option:hover,
|
|
6299
|
+
[data-qc-theme] .qc-date-time-option[data-qc-active='true'] {
|
|
6300
|
+
color: var(--qc-state-hoverInk);
|
|
6301
|
+
background: var(--qc-state-hover);
|
|
6302
|
+
}
|
|
6303
|
+
|
|
6304
|
+
[data-qc-theme] .qc-date-time-option[aria-selected='true'] {
|
|
6305
|
+
color: var(--qc-control-onInk);
|
|
6306
|
+
background: var(--qc-control-on);
|
|
6307
|
+
}
|
|
6308
|
+
|
|
6309
|
+
/* Forced colors: what is chosen in the calendar and the time list stands in the system highlight. */
|
|
6310
|
+
@media (forced-colors: active) {
|
|
6311
|
+
[data-qc-theme] .qc-date-day[aria-selected='true'],
|
|
6312
|
+
[data-qc-theme] .qc-date-cell[aria-selected='true'],
|
|
6313
|
+
[data-qc-theme] .qc-date-time-option[aria-selected='true'] {
|
|
6314
|
+
forced-color-adjust: none;
|
|
6315
|
+
color: HighlightText;
|
|
6316
|
+
background: Highlight;
|
|
6317
|
+
}
|
|
5113
6318
|
}
|
|
5114
6319
|
|
|
5115
6320
|
/* The thin bar beside a list the viewer scrolls to find something: the search results, the
|