@punkfairie/98.css 1.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/.devenv/load-exports +1 -0
  2. package/.devenv/root +1 -0
  3. package/.devenv/tasks.db +0 -0
  4. package/.devenv/tasks.db-shm +0 -0
  5. package/.devenv/tasks.db-wal +0 -0
  6. package/.direnv/bin/nix-direnv-reload +19 -0
  7. package/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc +2228 -0
  8. package/.editorconfig +18 -0
  9. package/.envrc +17 -0
  10. package/LICENSE +7 -0
  11. package/README.md +76 -0
  12. package/build.js +81 -0
  13. package/dist/98.css +2 -0
  14. package/dist/98.css.map +1 -0
  15. package/dist/docs.css +152 -0
  16. package/dist/icon.png +0 -0
  17. package/dist/index.html +1673 -0
  18. package/dist/index.html.ejs +1129 -0
  19. package/dist/ms_sans_serif.woff +0 -0
  20. package/dist/ms_sans_serif.woff2 +0 -0
  21. package/dist/ms_sans_serif_bold.woff +0 -0
  22. package/dist/ms_sans_serif_bold.woff2 +0 -0
  23. package/dist/vs.css +67 -0
  24. package/dist/window.png +0 -0
  25. package/dist/zoom.png +0 -0
  26. package/docs/docs.css +152 -0
  27. package/docs/icon.png +0 -0
  28. package/docs/index.html.ejs +1129 -0
  29. package/docs/vs.css +67 -0
  30. package/docs/window.png +0 -0
  31. package/docs/zoom.png +0 -0
  32. package/flake.nix +60 -0
  33. package/fonts/converted/ms_sans_serif.woff +0 -0
  34. package/fonts/converted/ms_sans_serif.woff2 +0 -0
  35. package/fonts/converted/ms_sans_serif_bold.woff +0 -0
  36. package/fonts/converted/ms_sans_serif_bold.woff2 +0 -0
  37. package/fonts/src/ms-sans-serif/MS Sans Serif.ttf +0 -0
  38. package/fonts/src/ms-sans-serif/license.txt +4 -0
  39. package/fonts/src/ms-sans-serif/readme.txt +26 -0
  40. package/fonts/src/ms-sans-serif-bold/MS Sans Serif Bold.ttf +0 -0
  41. package/fonts/src/ms-sans-serif-bold/license.txt +4 -0
  42. package/fonts/src/ms-sans-serif-bold/readme.txt +26 -0
  43. package/icon/button-down-active.svg +5 -0
  44. package/icon/button-down.svg +8 -0
  45. package/icon/button-left.svg +8 -0
  46. package/icon/button-right.svg +8 -0
  47. package/icon/button-up.svg +8 -0
  48. package/icon/checkmark-disabled.svg +3 -0
  49. package/icon/checkmark.svg +3 -0
  50. package/icon/close.svg +3 -0
  51. package/icon/groupbox-border.svg +4 -0
  52. package/icon/help.svg +8 -0
  53. package/icon/indicator-horizontal.svg +6 -0
  54. package/icon/indicator-rectangle-horizontal.svg +6 -0
  55. package/icon/maximize-disabled.svg +4 -0
  56. package/icon/maximize.svg +3 -0
  57. package/icon/minimize.svg +3 -0
  58. package/icon/radio-border-disabled.svg +7 -0
  59. package/icon/radio-border.svg +8 -0
  60. package/icon/radio-dot-disabled.svg +3 -0
  61. package/icon/radio-dot.svg +3 -0
  62. package/icon/restore.svg +10 -0
  63. package/icon/scrollbar-background.svg +4 -0
  64. package/icon/sunken-panel-border.svg +10 -0
  65. package/now.json +4 -0
  66. package/package.json +48 -0
  67. package/server.js +16 -0
  68. package/style.css +1052 -0
package/style.css ADDED
@@ -0,0 +1,1052 @@
1
+ /**
2
+ * 98.css
3
+ * Copyright (c) 2020 Jordan Scales <thatjdanisso.cool>
4
+ * https://github.com/jdan/98.css/blob/main/LICENSE
5
+ */
6
+
7
+ :root {
8
+ /* Color */
9
+ --active-border: rgb(192 192 192);
10
+ --active-title: rgb(10 36 106);
11
+ --app-workspace: rgb(128 128 128);
12
+ --background: rgb(58 110 165);
13
+ --button-alternate-face: rgb(181 181 181);
14
+ --button-dk-shadow: rgb(64 64 64);
15
+ --button-face: rgb(192 192 192);
16
+ --button-hilight: rgb(255 255 255);
17
+ --button-light: rgb(192 192 192);
18
+ --button-shadow: rgb(128 128 128);
19
+ --button-text: rgb(0 0 0);
20
+ --gradient-active-title: rgb(16 128 206);
21
+ --gradient-inactive-title: rgb(128 128 128);
22
+ --gray-text: rgb(128 128 128);
23
+ --hilight: rgb(10 36 106);
24
+ --hilight-text: rgb(255 255 255);
25
+ --hot-tracking-color: rgb(0 0 128);
26
+ --inactive-border: rgb(192 192 192);
27
+ --inactive-title: rgb(128 128 128);
28
+ --inactive-title-text: rgb(192 192 192);
29
+ --info-text: rgb(0 0 0);
30
+ --info-window: rgb(255 255 255);
31
+ --menu: rgb(192 192 192);
32
+ --menu-hilight: rgb(10 36 106);
33
+ --menu-text: rgb(0 0 0);
34
+ --scrollbar: rgb(192 192 192);
35
+ --title-text: rgb(255 255 255);
36
+ --window: rgb(255 255 255);
37
+ --window-frame: rgb(0 0 0);
38
+ --window-text: rgb(0 0 0);
39
+
40
+ /* Spacing */
41
+ --element-spacing: 8px;
42
+ --grouped-button-spacing: 4px;
43
+ --grouped-element-spacing: 6px;
44
+ --radio-width: 12px;
45
+ --checkbox-width: 13px;
46
+ --radio-label-spacing: 6px;
47
+ --range-track-height: 4px;
48
+ --range-spacing: 10px;
49
+
50
+ /* Some detailed computations for radio buttons and checkboxes */
51
+ --radio-total-width-precalc: var(--radio-width) + var(--radio-label-spacing);
52
+ --radio-total-width: calc(var(--radio-total-width-precalc));
53
+ --radio-left: calc(-1 * var(--radio-total-width-precalc));
54
+ --radio-dot-width: 4px;
55
+ --radio-dot-top: calc(var(--radio-width) / 2 - var(--radio-dot-width) / 2);
56
+ --radio-dot-left: calc(
57
+ -1 * (var(--radio-total-width-precalc)) + var(--radio-width) / 2 - var(--radio-dot-width) / 2
58
+ );
59
+
60
+ --checkbox-total-width-precalc: var(--checkbox-width) + var(--radio-label-spacing);
61
+ --checkbox-total-width: calc(var(--checkbox-total-width-precalc));
62
+ --checkbox-left: calc(-1 * var(--checkbox-total-width-precalc));
63
+ --checkmark-width: 7px;
64
+ --checkmark-left: 3px;
65
+
66
+ /* Borders */
67
+ --border-width: 1px;
68
+
69
+ --border-raised-outer: inset -1px -1px var(--button-dk-shadow),
70
+ inset 1px 1px var(--button-hilight);
71
+ --border-raised-inner: inset -2px -2px var(--button-shadow),
72
+ inset 2px 2px var(--button-light);
73
+
74
+ --border-sunken-outer: inset -1px -1px var(--button-hilight),
75
+ inset 1px 1px var(--button-shadow);
76
+ --border-sunken-inner: inset -2px -2px var(--button-light),
77
+ inset 2px 2px var(--button-dk-shadow);
78
+
79
+ --default-button-border-raised-outer: inset -2px -2px var(--button-dk-shadow),
80
+ inset 2px 2px var(--button-hilight);
81
+ --default-button-border-raised-inner: inset -3px -3px var(--button-shadow),
82
+ inset 3px 3px var(--button-light);
83
+
84
+ --default-button-border-sunken-outer: inset 2px 2px var(--button-dk-shadow),
85
+ inset -1px -1px var(--button-dk-shadow);
86
+ --default-button-border-sunken-inner: inset -2px -2px var(--button-hilight),
87
+ inset -3px -3px var(--button-light),
88
+ inset 3px 3px var(--button-dk-shadow);
89
+
90
+
91
+ /* Window borders flip button-light and button-hilight */
92
+ --border-window-outer: inset -1px -1px var(--button-dk-shadow),
93
+ inset 1px 1px var(--button-light);
94
+ --border-window-inner: inset -2px -2px var(--button-shadow),
95
+ inset 2px 2px var(--button-hilight);
96
+
97
+ /* Field borders (checkbox, input, etc) flip button-dk-shadow and button-shadow of sunken */
98
+ --border-field: inset -1px -1px var(--button-hilight),
99
+ inset 1px 1px var(--button-shadow),
100
+ inset -2px -2px var(--button-light),
101
+ inset 2px 2px var(--button-dk-shadow);
102
+ --border-status-field: inset -1px -1px var(--button-hilight),
103
+ inset 1px 1px var(--button-shadow);
104
+
105
+ /* Tabs */
106
+ --border-tab: inset -1px 0 var(--button-dk-shadow),
107
+ inset 1px 1px var(--button-hilight),
108
+ inset -2px 0 var(--button-shadow),
109
+ inset 2px 2px var(--button-light);
110
+ }
111
+
112
+ @font-face {
113
+ font-family: "Pixelated MS Sans Serif";
114
+ src: url("fonts/converted/ms_sans_serif.woff") format("woff");
115
+ src: url("fonts/converted/ms_sans_serif.woff2") format("woff2");
116
+ font-weight: normal;
117
+ font-style: normal;
118
+ }
119
+
120
+ @font-face {
121
+ font-family: "Pixelated MS Sans Serif";
122
+ src: url("fonts/converted/ms_sans_serif_bold.woff") format("woff");
123
+ src: url("fonts/converted/ms_sans_serif_bold.woff2") format("woff2");
124
+ font-weight: bold;
125
+ font-style: normal;
126
+ }
127
+
128
+ body {
129
+ font-family: Arial, sans-serif;
130
+ font-size: 12px;
131
+ color: var(--window-text);
132
+ }
133
+
134
+ button,
135
+ .button,
136
+ label,
137
+ input,
138
+ legend,
139
+ textarea,
140
+ select,
141
+ option,
142
+ table,
143
+ ul.tree-view,
144
+ .window,
145
+ .title-bar,
146
+ li[role=tab] {
147
+ font-family: "Pixelated MS Sans Serif", Arial, sans-serif;
148
+ -webkit-font-smoothing: none;
149
+ font-size: 11px;
150
+ }
151
+
152
+ h1 {
153
+ font-size: 5rem;
154
+ }
155
+
156
+ h2 {
157
+ font-size: 2.5rem;
158
+ }
159
+
160
+ h3 {
161
+ font-size: 2rem;
162
+ }
163
+
164
+ h4 {
165
+ font-size: 1.5rem;
166
+ }
167
+
168
+ u {
169
+ text-decoration: none;
170
+ /*noinspection CssNonIntegerLengthInPixels*/
171
+ border-bottom: 0.5px solid var(--window-text);
172
+ }
173
+
174
+ button,
175
+ .button,
176
+ input[type="submit"],
177
+ input[type="reset"] {
178
+ box-sizing: border-box;
179
+ border: none;
180
+ color: transparent;
181
+ text-shadow: 0 0 var(--window-text);
182
+ background: var(--button-face);
183
+ box-shadow: var(--border-raised-outer), var(--border-raised-inner);
184
+ border-radius: 0;
185
+
186
+ min-width: 75px;
187
+ min-height: 23px;
188
+ padding: 0 12px;
189
+ }
190
+
191
+ button.default,
192
+ .button.default,
193
+ input[type="submit"].default,
194
+ input[type="reset"].default {
195
+ box-shadow: inset 0 0 0 1px var(--button-text), var(--default-button-border-raised-outer), var(--default-button-border-raised-inner);
196
+ }
197
+
198
+ .vertical-bar {
199
+ width: 4px;
200
+ height: 20px;
201
+ background: #c0c0c0;
202
+ box-shadow: var(--border-raised-outer), var(--border-raised-inner);
203
+ }
204
+
205
+ button:not(:disabled):active,
206
+ .button:not(:disabled):active,
207
+ input[type="submit"]:not(:disabled):active,
208
+ input[type="reset"]:not(:disabled):active {
209
+ box-shadow: var(--border-sunken-outer), var(--border-sunken-inner);
210
+ text-shadow: 1px 1px var(--window-text);
211
+ }
212
+
213
+ button.default:not(:disabled):active,
214
+ .button.default:not(:disabled):active,
215
+ input[type="submit"].default:not(:disabled):active,
216
+ input[type="reset"].default:not(:disabled):active {
217
+ box-shadow: var(--default-button-border-sunken-outer), var(--default-button-border-sunken-inner);
218
+ }
219
+
220
+ /* @formatter:off */
221
+ @media (not(hover)) {
222
+ button:not(:disabled):hover,
223
+ .button:not(:disabled):hover,
224
+ input[type="submit"]:not(:disabled):hover,
225
+ input[type="reset"]:not(:disabled):hover {
226
+ /*noinspection CssUnknownProperty*/
227
+ box-shadow: var(--border-sunken-outer), var(--border-sunken-inner);
228
+ }
229
+ }
230
+ /* @formatter:on */
231
+
232
+ button:focus,
233
+ .button:focus,
234
+ input[type="submit"]:focus,
235
+ input[type="reset"]:focus {
236
+ outline: 1px dotted var(--window-frame);
237
+ outline-offset: -4px;
238
+ }
239
+
240
+ button::-moz-focus-inner,
241
+ .button::-moz-focus-inner,
242
+ input[type="submit"]::-moz-focus-inner,
243
+ input[type="reset"]::-moz-focus-inner {
244
+ border: 0;
245
+ }
246
+
247
+ :disabled,
248
+ :disabled + label,
249
+ input[readonly],
250
+ input[readonly] + label {
251
+ color: var(--button-shadow);
252
+ }
253
+
254
+ button:disabled,
255
+ .button:disabled,
256
+ input[type="submit"]:disabled,
257
+ input[type="reset"]:disabled,
258
+ :disabled + label {
259
+ text-shadow: 1px 1px 0 var(--button-hilight);
260
+ }
261
+
262
+ .window {
263
+ box-shadow: var(--border-window-outer), var(--border-window-inner);
264
+ background: var(--button-face);
265
+ padding: 3px;
266
+ }
267
+
268
+ .title-bar {
269
+ background: linear-gradient(
270
+ 90deg,
271
+ var(--active-title),
272
+ var(--gradient-active-title)
273
+ );
274
+ padding: 3px 2px 3px 3px;
275
+ display: flex;
276
+ justify-content: space-between;
277
+ align-items: center;
278
+ }
279
+
280
+ .title-bar.inactive {
281
+ background: linear-gradient(
282
+ 90deg,
283
+ var(--inactive-title),
284
+ var(--gradient-inactive-title)
285
+ );
286
+ }
287
+
288
+ .title-bar-text {
289
+ font-weight: bold;
290
+ color: white;
291
+ letter-spacing: 0;
292
+ margin-right: 24px;
293
+ }
294
+
295
+ .title-bar-controls {
296
+ display: flex;
297
+ }
298
+
299
+ .title-bar-controls button {
300
+ padding: 0;
301
+ display: block;
302
+ min-width: 16px;
303
+ min-height: 14px;
304
+ }
305
+
306
+ .title-bar-controls button:active {
307
+ padding: 0;
308
+ }
309
+
310
+ .title-bar-controls button:focus {
311
+ outline: none;
312
+ }
313
+
314
+ .title-bar-controls button[aria-label="Minimize"],
315
+ .title-bar-controls button.minimize {
316
+ background-image: svg-load("./icon/minimize.svg");
317
+ background-repeat: no-repeat;
318
+ background-position: bottom 3px left 4px;
319
+ }
320
+
321
+ .title-bar-controls button[aria-label="Maximize"],
322
+ .title-bar-controls button.maximize {
323
+ background-image: svg-load("./icon/maximize.svg");
324
+ background-repeat: no-repeat;
325
+ background-position: top 2px left 3px;
326
+ }
327
+
328
+ .title-bar-controls button[aria-label="Maximize"]:disabled,
329
+ .title-bar-controls button.maximize:disabled {
330
+ background-image: svg-load("./icon/maximize-disabled.svg");
331
+ background-repeat: no-repeat;
332
+ background-position: top 2px left 3px;
333
+ }
334
+
335
+ .title-bar-controls button[aria-label="Restore"],
336
+ .title-bar-controls button.restore {
337
+ background-image: svg-load("./icon/restore.svg");
338
+ background-repeat: no-repeat;
339
+ background-position: top 2px left 3px;
340
+ }
341
+
342
+ .title-bar-controls button[aria-label="Help"],
343
+ .title-bar-controls button.help {
344
+ background-image: svg-load("./icon/help.svg");
345
+ background-repeat: no-repeat;
346
+ background-position: top 2px left 5px;
347
+ }
348
+
349
+ .title-bar-controls button[aria-label="Close"],
350
+ .title-bar-controls button.close {
351
+ margin-left: 2px;
352
+ background-image: svg-load("./icon/close.svg");
353
+ background-repeat: no-repeat;
354
+ background-position: top 3px left 4px;
355
+ }
356
+
357
+ .status-bar {
358
+ margin: 0 1px;
359
+ display: flex;
360
+ gap: 1px;
361
+ }
362
+
363
+ .status-bar-field {
364
+ box-shadow: var(--border-status-field);
365
+ flex-grow: 1;
366
+ padding: 2px 3px;
367
+ margin: 0;
368
+ }
369
+
370
+ .window-body {
371
+ margin: var(--element-spacing);
372
+ }
373
+
374
+ fieldset {
375
+ /*noinspection CssInvalidFunction*/
376
+ border-image: svg-load("./icon/groupbox-border.svg");
377
+ padding: calc(2 * var(--border-width) + var(--element-spacing));
378
+ padding-block-start: var(--element-spacing);
379
+ margin: 0;
380
+ }
381
+
382
+ legend {
383
+ background: var(--button-face);
384
+ }
385
+
386
+ .field-row {
387
+ display: flex;
388
+ align-items: center;
389
+ }
390
+
391
+ [class^="field-row"] + [class^="field-row"] {
392
+ margin-top: var(--grouped-element-spacing);
393
+ }
394
+
395
+ .field-row > * + * {
396
+ margin-left: var(--grouped-element-spacing);
397
+ }
398
+
399
+ .field-row-stacked {
400
+ display: flex;
401
+ flex-direction: column;
402
+ }
403
+
404
+ .field-row-stacked * + * {
405
+ margin-top: var(--grouped-element-spacing);
406
+ }
407
+
408
+ label {
409
+ display: inline-flex;
410
+ align-items: center;
411
+ user-select: none;
412
+ }
413
+
414
+ input[type="radio"],
415
+ input[type="checkbox"] {
416
+ appearance: none;
417
+ -webkit-appearance: none;
418
+ -moz-appearance: none;
419
+ margin: 0;
420
+ background: 0;
421
+ position: fixed;
422
+ opacity: 0;
423
+ border: none;
424
+ }
425
+
426
+ input[type="radio"] + label,
427
+ input[type="checkbox"] + label {
428
+ line-height: 13px;
429
+ }
430
+
431
+ input[type="radio"] + label {
432
+ position: relative;
433
+ margin-left: var(--radio-total-width);
434
+ }
435
+
436
+ input[type="radio"] + label::before {
437
+ content: "";
438
+ position: absolute;
439
+ top: 0;
440
+ left: calc(-1 * (var(--radio-total-width-precalc)));
441
+ display: inline-block;
442
+ width: var(--radio-width);
443
+ height: var(--radio-width);
444
+ margin-right: var(--radio-label-spacing);
445
+ background: svg-load("./icon/radio-border.svg");
446
+ }
447
+
448
+ input[type="radio"]:active + label::before {
449
+ background: svg-load("./icon/radio-border-disabled.svg");
450
+ }
451
+
452
+ input[type="radio"]:checked + label::after {
453
+ content: "";
454
+ display: block;
455
+ width: var(--radio-dot-width);
456
+ height: var(--radio-dot-width);
457
+ top: var(--radio-dot-top);
458
+ left: var(--radio-dot-left);
459
+ position: absolute;
460
+ background: svg-load("./icon/radio-dot.svg");
461
+ }
462
+
463
+ input[type="radio"]:focus + label,
464
+ input[type="checkbox"]:focus + label {
465
+ outline: 1px dotted var(--window-frame);
466
+ }
467
+
468
+ input[type="radio"][disabled] + label::before {
469
+ background: svg-load("./icon/radio-border-disabled.svg");
470
+ }
471
+
472
+ input[type="radio"][disabled]:checked + label::after {
473
+ background: svg-load("./icon/radio-dot-disabled.svg");
474
+ }
475
+
476
+ input[type="checkbox"] + label {
477
+ position: relative;
478
+ margin-left: var(--checkbox-total-width);
479
+ }
480
+
481
+ input[type="checkbox"] + label::before {
482
+ content: "";
483
+ position: absolute;
484
+ left: calc(-1 * (var(--checkbox-total-width-precalc)));
485
+ display: inline-block;
486
+ width: var(--checkbox-width);
487
+ height: var(--checkbox-width);
488
+ background: var(--window);
489
+ box-shadow: var(--border-field);
490
+ margin-right: var(--radio-label-spacing);
491
+ }
492
+
493
+ input[type="checkbox"]:active + label::before {
494
+ background: var(--button-face);
495
+ }
496
+
497
+ input[type="checkbox"]:checked + label::after {
498
+ content: "";
499
+ display: block;
500
+ width: var(--checkmark-width);
501
+ height: var(--checkmark-width);
502
+ position: absolute;
503
+ left: calc(
504
+ -1 * (var(--checkbox-total-width-precalc)) + var(--checkmark-left)
505
+ );
506
+ background: svg-load("./icon/checkmark.svg");
507
+ }
508
+
509
+ input[type="checkbox"][disabled] + label::before {
510
+ background: var(--button-face);
511
+ }
512
+
513
+ input[type="checkbox"][disabled]:checked + label::after {
514
+ background: svg-load("./icon/checkmark-disabled.svg");
515
+ }
516
+
517
+ input[type="text"],
518
+ input[type="password"],
519
+ input[type="email"],
520
+ input[type="url"],
521
+ input[type="tel"],
522
+ input[type="number"],
523
+ input[type="search"],
524
+ select,
525
+ textarea {
526
+ padding: 3px 4px;
527
+ border: none;
528
+ box-shadow: var(--border-field);
529
+ background-color: var(--window);
530
+ box-sizing: border-box;
531
+ -webkit-appearance: none;
532
+ -moz-appearance: none;
533
+ appearance: none;
534
+ border-radius: 0;
535
+ }
536
+
537
+ input[type="text"],
538
+ input[type="password"],
539
+ input[type="email"],
540
+ input[type="url"],
541
+ input[type="tel"],
542
+ input[type="search"],
543
+ select {
544
+ height: 21px;
545
+ }
546
+
547
+ input[type="number"] {
548
+ /* need this 1 pixel to fit the spinner controls in box */
549
+ height: 22px;
550
+ }
551
+
552
+ /* clears the ‘X’ from Internet Explorer */
553
+ input[type=search]::-ms-clear {
554
+ display: none;
555
+ width: 0;
556
+ height: 0;
557
+ }
558
+
559
+ input[type=search]::-ms-reveal {
560
+ display: none;
561
+ width: 0;
562
+ height: 0;
563
+ }
564
+
565
+ /* clears the ‘X’ from Chrome */
566
+ input[type="search"]::-webkit-search-decoration,
567
+ input[type="search"]::-webkit-search-cancel-button,
568
+ input[type="search"]::-webkit-search-results-button,
569
+ input[type="search"]::-webkit-search-results-decoration {
570
+ display: none;
571
+ }
572
+
573
+ input[type="text"],
574
+ input[type="password"],
575
+ input[type="email"],
576
+ input[type="url"],
577
+ input[type="tel"],
578
+ input[type="number"],
579
+ input[type="search"] {
580
+ /* For some reason descenders are getting cut off without this */
581
+ line-height: 2;
582
+ }
583
+
584
+ input[type="email"]:disabled,
585
+ input[type="url"]:disabled,
586
+ input[type="tel"]:disabled,
587
+ input[type="password"]:disabled,
588
+ input[type="text"]:disabled,
589
+ input[type="number"]:disabled,
590
+ input[type="search"]:disabled,
591
+ input[type="email"]:read-only,
592
+ input[type="url"]:read-only,
593
+ input[type="tel"]:read-only,
594
+ input[type="password"]:read-only,
595
+ input[type="text"]:read-only,
596
+ input[type="number"]:read-only,
597
+ input[type="search"]:read-only,
598
+ textarea:disabled {
599
+ background-color: var(--button-face);
600
+ }
601
+
602
+ select {
603
+ appearance: none;
604
+ -webkit-appearance: none;
605
+ -moz-appearance: none;
606
+ position: relative;
607
+ padding-right: 32px;
608
+ background-image: svg-load("./icon/button-down.svg");
609
+ background-position: top 2px right 2px;
610
+ background-repeat: no-repeat;
611
+ border-radius: 0;
612
+ }
613
+
614
+ select:focus,
615
+ input[type="text"]:focus,
616
+ input[type="password"]:focus,
617
+ input[type="email"]:focus,
618
+ input[type="url"]:focus,
619
+ input[type="tel"]:focus,
620
+ input[type="number"]:focus,
621
+ input[type="search"]:focus,
622
+ textarea:focus {
623
+ outline: none;
624
+ }
625
+
626
+ input[type="range"] {
627
+ -webkit-appearance: none;
628
+ width: 100%;
629
+ background: transparent;
630
+ }
631
+
632
+ input[type="range"]:focus {
633
+ outline: none;
634
+ }
635
+
636
+ input[type="range"]::-webkit-slider-thumb {
637
+ -webkit-appearance: none;
638
+ height: 21px;
639
+ width: 11px;
640
+ background: svg-load("./icon/indicator-horizontal.svg");
641
+ transform: translateY(-8px);
642
+ box-shadow: none;
643
+ border: none;
644
+ }
645
+
646
+ input[type="range"].has-box-indicator::-webkit-slider-thumb {
647
+ background: svg-load("./icon/indicator-rectangle-horizontal.svg");
648
+ transform: translateY(-10px);
649
+ }
650
+
651
+ input[type="range"]::-moz-range-thumb {
652
+ height: 21px;
653
+ width: 11px;
654
+ border: 0;
655
+ border-radius: 0;
656
+ background: svg-load("./icon/indicator-horizontal.svg");
657
+ transform: translateY(2px);
658
+ }
659
+
660
+ input[type="range"].has-box-indicator::-moz-range-thumb {
661
+ background: url("../images/./icon/indicator-rectangle-horizontal.svg");
662
+ transform: translateY(0px);
663
+ }
664
+
665
+ input[type="range"]::-webkit-slider-runnable-track,
666
+ input[type="range"]::-moz-range-track {
667
+ width: 100%;
668
+ height: 2px;
669
+ box-sizing: border-box;
670
+ background: var(--button-dk-shadow);
671
+ border-right: 1px solid var(--button-light);
672
+ border-bottom: 1px solid var(--button-light);
673
+ box-shadow: 1px 0 0 var(--button-hilight),
674
+ 1px 1px 0 var(--button-hilight),
675
+ 0 1px 0 var(--button-hilight),
676
+ -1px 0 0 var(--button-shadow),
677
+ -1px -1px 0 var(--button-shadow),
678
+ 0 -1px 0 var(--button-shadow),
679
+ -1px 1px 0 var(--button-hilight),
680
+ 1px -1px var(--button-hilight);
681
+ }
682
+
683
+ .is-vertical {
684
+ display: inline-block;
685
+ width: 4px;
686
+ height: 150px;
687
+ transform: translateY(50%);
688
+ }
689
+
690
+ .is-vertical > input[type="range"] {
691
+ width: 150px;
692
+ height: 4px;
693
+ margin: 0 calc(var(--grouped-element-spacing) + var(--range-spacing)) 0 var(--range-spacing);
694
+ transform-origin: left;
695
+ transform: rotate(270deg) translateX(calc(-50% + var(--element-spacing)));
696
+ }
697
+
698
+ .is-vertical > input[type="range"]::-webkit-slider-runnable-track,
699
+ .is-vertical > input[type="range"]::-webkit-slider-runnable-track {
700
+ border-left: 1px solid var(--button-light);
701
+ border-right: 0;
702
+ border-bottom: 1px solid var(--button-light);
703
+ box-shadow: -1px 0 0 var(--button-hilight),
704
+ -1px 1px 0 var(--button-hilight),
705
+ 0 1px 0 var(--button-hilight),
706
+ 1px 0 0 var(--button-shadow),
707
+ 1px -1px 0 var(--button-shadow),
708
+ 0 -1px 0 var(--button-shadow),
709
+ 1px 1px 0 var(--button-hilight),
710
+ -1px -1px var(--button-hilight);
711
+ }
712
+
713
+ .is-vertical > input[type="range"]::-webkit-slider-thumb {
714
+ transform: translateY(-8px) scaleX(-1);
715
+ }
716
+
717
+ .is-vertical > input[type="range"].has-box-indicator::-webkit-slider-thumb {
718
+ transform: translateY(-10px) scaleX(-1);
719
+ }
720
+
721
+ .is-vertical > input[type="range"]::-moz-range-thumb {
722
+ transform: translateY(2px) scaleX(-1);
723
+ }
724
+
725
+ .is-vertical > input[type="range"].has-box-indicator::-moz-range-thumb {
726
+ transform: translateY(0px) scaleX(-1);
727
+ }
728
+
729
+ select:focus {
730
+ color: var(--hilight-text);
731
+ background-color: var(--hilight);
732
+ }
733
+
734
+ select:focus option {
735
+ color: var(--menu-text);
736
+ background-color: var(--window);
737
+ }
738
+
739
+ select:active {
740
+ background-image: url("../images/./icon/button-down-active.svg");
741
+ }
742
+
743
+ a {
744
+ color: var(--hot-tracking-color);
745
+ }
746
+
747
+ a:focus {
748
+ outline: 1px dotted var(--window-frame);
749
+ }
750
+
751
+ ul.tree-view {
752
+ display: block;
753
+ background: var(--window);
754
+ box-shadow: var(--border-field);
755
+ padding: 6px;
756
+ margin: 0;
757
+ }
758
+
759
+ ul.tree-view li {
760
+ list-style-type: none;
761
+ }
762
+
763
+ ul.tree-view a {
764
+ text-decoration: none;
765
+ color: var(--window-text);
766
+ }
767
+
768
+ ul.tree-view a:focus {
769
+ background-color: var(--hilight);
770
+ color: var(--hilight-text);
771
+ }
772
+
773
+ ul.tree-view ul,
774
+ ul.tree-view li {
775
+ margin-top: 3px;
776
+ }
777
+
778
+ ul.tree-view ul {
779
+ margin-left: 16px;
780
+ padding-left: 16px;
781
+ /* Goes down too far */
782
+ border-left: 1px dotted var(--button-shadow);
783
+ }
784
+
785
+ ul.tree-view ul > li {
786
+ position: relative;
787
+ }
788
+
789
+ ul.tree-view ul > li::before {
790
+ content: "";
791
+ display: block;
792
+ position: absolute;
793
+ left: -16px;
794
+ top: 6px;
795
+ width: 12px;
796
+ border-bottom: 1px dotted var(--button-shadow);
797
+ }
798
+
799
+ /* Cover the bottom of the left dotted border */
800
+ ul.tree-view ul > li:last-child::after {
801
+ content: "";
802
+ display: block;
803
+ position: absolute;
804
+ left: -20px;
805
+ top: 7px;
806
+ bottom: 0;
807
+ width: 8px;
808
+ background: var(--window);
809
+ }
810
+
811
+ ul.tree-view details {
812
+ margin-top: 0;
813
+ }
814
+
815
+ ul.tree-view details[open] summary {
816
+ margin-bottom: 0;
817
+ }
818
+
819
+ ul.tree-view ul details > summary:before {
820
+ margin-left: -22px;
821
+ position: relative;
822
+ z-index: 1;
823
+ }
824
+
825
+ ul.tree-view details > summary:before {
826
+ text-align: center;
827
+ display: block;
828
+ float: left;
829
+ content: "+";
830
+ border: 1px solid var(--button-shadow);
831
+ width: 8px;
832
+ height: 9px;
833
+ line-height: 8px;
834
+ margin-right: 5px;
835
+ padding-left: 1px;
836
+ background-color: var(--window);
837
+ }
838
+
839
+ ul.tree-view details[open] > summary:before {
840
+ content: "-";
841
+ }
842
+
843
+ ul.tree-view details > summary::marker,
844
+ ul.tree-view details > summary::-webkit-details-marker {
845
+ content: "";
846
+ }
847
+
848
+ pre {
849
+ display: block;
850
+ background: var(--window);
851
+ box-shadow: var(--border-field);
852
+ padding: 12px 8px;
853
+ margin: 0;
854
+ }
855
+
856
+ code,
857
+ code * {
858
+ font-family: monospace;
859
+ }
860
+
861
+ summary:focus {
862
+ outline: 1px dotted var(--window-frame);
863
+ }
864
+
865
+ ::-webkit-scrollbar {
866
+ width: 16px;
867
+ }
868
+
869
+ ::-webkit-scrollbar:horizontal {
870
+ height: 17px;
871
+ }
872
+
873
+ ::-webkit-scrollbar-corner {
874
+ background: var(--button-face);
875
+ }
876
+
877
+ ::-webkit-scrollbar-track {
878
+ background-image: svg-load("./icon/scrollbar-background.svg");
879
+ }
880
+
881
+ ::-webkit-scrollbar-thumb {
882
+ background-color: var(--button-face);
883
+ box-shadow: var(--border-raised-outer), var(--border-raised-inner);
884
+ }
885
+
886
+ ::-webkit-scrollbar-button:horizontal:start:decrement,
887
+ ::-webkit-scrollbar-button:horizontal:end:increment,
888
+ ::-webkit-scrollbar-button:vertical:start:decrement,
889
+ ::-webkit-scrollbar-button:vertical:end:increment {
890
+ display: block;
891
+ }
892
+
893
+ ::-webkit-scrollbar-button:vertical:start {
894
+ height: 17px;
895
+ background-image: svg-load("./icon/button-up.svg");
896
+ }
897
+
898
+ ::-webkit-scrollbar-button:vertical:end {
899
+ height: 17px;
900
+ background-image: svg-load("./icon/button-down.svg");
901
+ }
902
+
903
+ ::-webkit-scrollbar-button:horizontal:start {
904
+ width: 16px;
905
+ background-image: svg-load("./icon/button-left.svg");
906
+ }
907
+
908
+ ::-webkit-scrollbar-button:horizontal:end {
909
+ width: 16px;
910
+ background-image: svg-load("./icon/button-right.svg");
911
+ }
912
+
913
+ .window[role=tabpanel] {
914
+ position: relative;
915
+ z-index: 2;
916
+ }
917
+
918
+ menu[role=tablist] {
919
+ position: relative;
920
+ margin: 0 0 -2px 0;
921
+ text-indent: 0;
922
+ list-style-type: none;
923
+ display: flex;
924
+ padding-left: 3px;
925
+ }
926
+
927
+ menu[role=tablist] > li {
928
+ border-top-left-radius: 3px;
929
+ border-top-right-radius: 3px;
930
+ box-shadow: var(--border-tab);
931
+ z-index: 1;
932
+ }
933
+
934
+ menu[role=tablist] > li[aria-selected=true] {
935
+ padding-bottom: 2px;
936
+ margin-top: -2px;
937
+ background-color: var(--button-face);
938
+ position: relative;
939
+ z-index: 8;
940
+ margin-left: -3px;
941
+ }
942
+
943
+ menu[role=tablist] > li > a {
944
+ display: block;
945
+ color: var(--window-text);
946
+ margin: 6px;
947
+ text-decoration: none;
948
+ }
949
+
950
+ menu[role=tablist] > li[aria-selected=true] > a:focus {
951
+ outline: none;
952
+ }
953
+
954
+ menu[role=tablist] > li > a:focus {
955
+ outline: 1px dotted var(--window-frame);
956
+ }
957
+
958
+ menu[role=tablist].multirows > li {
959
+ flex-grow: 1;
960
+ text-align: center;
961
+ }
962
+
963
+ .sunken-panel {
964
+ box-sizing: border-box;
965
+ border: 2px groove transparent;
966
+ border-image: svg-load("./icon/sunken-panel-border.svg") 2;
967
+ overflow: auto;
968
+ background-color: var(--window);
969
+ }
970
+
971
+ table {
972
+ border-collapse: collapse;
973
+ position: relative;
974
+ text-align: left;
975
+ white-space: nowrap;
976
+ background-color: var(--window);
977
+ }
978
+
979
+ table > thead > tr > * {
980
+ position: sticky;
981
+ top: 0;
982
+ height: 17px;
983
+ box-shadow: var(--border-raised-outer), var(--border-raised-inner);
984
+ background: var(--button-face);
985
+ box-sizing: border-box;
986
+ font-weight: normal;
987
+ padding: 0 var(--grouped-element-spacing);
988
+ }
989
+
990
+ table.interactive > tbody > tr {
991
+ cursor: pointer;
992
+ }
993
+
994
+ table > tbody > tr.highlighted {
995
+ color: var(--hilight-text);
996
+ background-color: var(--hilight);
997
+ }
998
+
999
+ table > tbody > tr > * {
1000
+ padding: 0 var(--grouped-element-spacing);
1001
+ height: 14px;
1002
+ }
1003
+
1004
+ .progress-indicator {
1005
+ height: 32px;
1006
+ position: relative;
1007
+ box-shadow: var(--border-sunken-inner);
1008
+ padding: 4px 4px;
1009
+ border: none;
1010
+ box-sizing: border-box;
1011
+ -webkit-appearance: none;
1012
+ -moz-appearance: none;
1013
+ appearance: none;
1014
+ border-radius: 0;
1015
+ }
1016
+
1017
+
1018
+ .progress-indicator > .progress-indicator-bar {
1019
+ height: 100%;
1020
+ display: block;
1021
+ background-color: var(--hilight);
1022
+ }
1023
+
1024
+ .progress-indicator.segmented > .progress-indicator-bar {
1025
+ width: 100%;
1026
+ background-color: transparent; /* resets the background color which is set to blue in the non-segmented selector */
1027
+ background-image: linear-gradient(
1028
+ 90deg,
1029
+ var(--hilight) 0 16px,
1030
+ transparent 0 2px
1031
+ );
1032
+ background-repeat: repeat;
1033
+ background-size: 18px 100%;
1034
+ }
1035
+
1036
+ .field-border {
1037
+ background: var(--button-hilight);
1038
+ box-shadow: var(--border-field);
1039
+ padding: 2px;
1040
+ }
1041
+
1042
+ .field-border-disabled {
1043
+ background: var(--button-face);
1044
+ box-shadow: var(--border-field);
1045
+ padding: 2px;
1046
+ }
1047
+
1048
+ .status-field-border {
1049
+ background: var(--button-face);
1050
+ box-shadow: var(--border-status-field);
1051
+ padding: 1px;
1052
+ }