+ * https://github.com/dragunovartem99/99.css/blob/main/LICENSE
+ */
+
+:root {
+ --scale: 1;
+
+ /* Color */
+ --text-color: #222222;
+ --surface: #c0c0c0;
+ --button-highlight: #ffffff;
+ --button-face: #dfdfdf;
+ --button-shadow: #808080;
+ --window-frame: #0a0a0a;
+ --dialog-blue: #000080;
+ --dialog-blue-light: #1084d0;
+ --dialog-gray: #808080;
+ --dialog-gray-light: #b5b5b5;
+ --link-blue: #0000ff;
+}
+
+/*
+ * Size tokens resolve on the element that declares them, so they are
+ * redeclared on [data-scale] to let a subtree use its own --scale:
+ *
+ */
+:root,
+[data-scale] {
+ /* One original pixel */
+ --px: calc(1px * var(--scale));
+ /* Bevel lines snap down to whole pixels: thin and crisp at fractional scales */
+ --border-width: max(1px, round(down, var(--px), 1px));
+
+ /* Spacing */
+ --element-spacing: calc(8 * var(--px));
+ --grouped-button-spacing: calc(4 * var(--px));
+ --grouped-element-spacing: calc(6 * var(--px));
+ --radio-width: calc(12 * var(--px));
+ --radio-dot-width: calc(4 * var(--px));
+ --checkbox-width: calc(13 * var(--px));
+ --checkmark-width: calc(7 * var(--px));
+ --radio-label-spacing: calc(6 * var(--px));
+ --range-spacing: calc(10 * var(--px));
+
+ /* Borders */
+ --b1: var(--border-width);
+ --b2: calc(2 * var(--border-width));
+ --b3: calc(3 * var(--border-width));
+ --border-raised-outer:
+ inset calc(-1 * var(--b1)) calc(-1 * var(--b1)) var(--window-frame),
+ inset var(--b1) var(--b1) var(--button-highlight);
+ --border-raised-inner:
+ inset calc(-1 * var(--b2)) calc(-1 * var(--b2)) var(--button-shadow),
+ inset var(--b2) var(--b2) var(--button-face);
+ --border-sunken-outer:
+ inset calc(-1 * var(--b1)) calc(-1 * var(--b1)) var(--button-highlight),
+ inset var(--b1) var(--b1) var(--window-frame);
+ --border-sunken-inner:
+ inset calc(-1 * var(--b2)) calc(-1 * var(--b2)) var(--button-face),
+ inset var(--b2) var(--b2) var(--button-shadow);
+ --default-button-border-raised-outer:
+ inset calc(-1 * var(--b2)) calc(-1 * var(--b2)) var(--window-frame),
+ inset var(--b1) var(--b1) var(--window-frame);
+ --default-button-border-raised-inner:
+ inset var(--b2) var(--b2) var(--button-highlight),
+ inset calc(-1 * var(--b3)) calc(-1 * var(--b3)) var(--button-shadow),
+ inset var(--b3) var(--b3) var(--button-face);
+ --default-button-border-sunken-outer:
+ inset var(--b2) var(--b2) var(--window-frame),
+ inset calc(-1 * var(--b1)) calc(-1 * var(--b1)) var(--window-frame);
+ --default-button-border-sunken-inner:
+ inset calc(-1 * var(--b2)) calc(-1 * var(--b2)) var(--button-highlight),
+ inset var(--b3) var(--b3) var(--button-shadow),
+ inset calc(-1 * var(--b3)) calc(-1 * var(--b3)) var(--button-face);
+
+ /* Window borders flip button-face and button-highlight */
+ --border-window-outer:
+ inset calc(-1 * var(--b1)) calc(-1 * var(--b1)) var(--window-frame),
+ inset var(--b1) var(--b1) var(--button-face);
+ --border-window-inner:
+ inset calc(-1 * var(--b2)) calc(-1 * var(--b2)) var(--button-shadow),
+ inset var(--b2) var(--b2) var(--button-highlight);
+
+ /* Field borders (checkbox, input, etc) flip window-frame and button-shadow */
+ --border-field:
+ inset calc(-1 * var(--b1)) calc(-1 * var(--b1)) var(--button-highlight),
+ inset var(--b1) var(--b1) var(--button-shadow),
+ inset calc(-1 * var(--b2)) calc(-1 * var(--b2)) var(--button-face),
+ inset var(--b2) var(--b2) var(--window-frame);
+ --border-status-field:
+ inset calc(-1 * var(--b1)) calc(-1 * var(--b1)) var(--button-face),
+ inset var(--b1) var(--b1) var(--button-shadow);
+
+ /* Tabs */
+ --border-tab:
+ inset calc(-1 * var(--b1)) 0 var(--window-frame),
+ inset var(--b1) var(--b1) var(--button-face),
+ inset calc(-1 * var(--b2)) 0 var(--button-shadow),
+ inset var(--b2) var(--b2) var(--button-highlight);
+}
diff --git a/src/tree-view.css b/src/tree-view.css
new file mode 100644
index 0000000..8b81982
--- /dev/null
+++ b/src/tree-view.css
@@ -0,0 +1,99 @@
+ul.tree-view {
+ display: block;
+ background: var(--button-highlight);
+ box-shadow: var(--border-field);
+ padding: calc(6 * var(--px));
+ margin: 0;
+}
+
+ul.tree-view li {
+ list-style-type: none;
+}
+
+ul.tree-view a {
+ text-decoration: none;
+ color: #000;
+}
+
+ul.tree-view a:focus {
+ background-color: var(--dialog-blue);
+ color: var(--button-highlight);
+}
+
+ul.tree-view ul,
+ul.tree-view li {
+ margin-top: calc(3 * var(--px));
+}
+
+ul.tree-view ul {
+ margin-left: calc(16 * var(--px));
+ padding-left: calc(16 * var(--px));
+ /* Goes down too far */
+ border-left: var(--border-width) dotted #808080;
+}
+
+ul.tree-view ul > li {
+ position: relative;
+}
+
+ul.tree-view ul > li::before {
+ content: "";
+ display: block;
+ position: absolute;
+ left: calc(-16 * var(--px));
+ top: calc(6 * var(--px));
+ width: calc(12 * var(--px));
+ border-bottom: var(--border-width) dotted #808080;
+}
+
+/* Cover the bottom of the left dotted border */
+ul.tree-view ul > li:last-child::after {
+ content: "";
+ display: block;
+ position: absolute;
+ left: calc(-20 * var(--px));
+ top: calc(7 * var(--px));
+ bottom: 0;
+ width: calc(8 * var(--px));
+ background: var(--button-highlight);
+}
+
+ul.tree-view details {
+ margin-top: 0;
+}
+
+ul.tree-view details[open] summary {
+ margin-bottom: 0;
+}
+
+ul.tree-view ul details > summary::before {
+ margin-left: calc(-22 * var(--px));
+ position: relative;
+ z-index: 1;
+}
+
+ul.tree-view details > summary::before {
+ text-align: center;
+ display: block;
+ float: left;
+ content: "+";
+ border: var(--border-width) solid #808080;
+ width: calc(8 * var(--px));
+ height: calc(9 * var(--px));
+ line-height: calc(8 * var(--px));
+ margin-right: calc(5 * var(--px));
+ padding-left: var(--px);
+ background-color: #fff;
+}
+
+ul.tree-view details[open] > summary::before {
+ content: "-";
+}
+
+ul.tree-view details > summary::marker {
+ content: "";
+}
+
+ul.tree-view details > summary::-webkit-details-marker {
+ display: none;
+}
diff --git a/src/window.css b/src/window.css
new file mode 100644
index 0000000..383295d
--- /dev/null
+++ b/src/window.css
@@ -0,0 +1,99 @@
+.window {
+ box-shadow: var(--border-window-outer), var(--border-window-inner);
+ background: var(--surface);
+ padding: calc(3 * var(--px));
+}
+
+.window-body {
+ margin: var(--element-spacing);
+}
+
+.title-bar {
+ background: linear-gradient(90deg, var(--dialog-blue), var(--dialog-blue-light));
+ padding: calc(3 * var(--px)) calc(2 * var(--px)) calc(3 * var(--px)) calc(3 * var(--px));
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.title-bar.inactive {
+ background: linear-gradient(90deg, var(--dialog-gray), var(--dialog-gray-light));
+}
+
+.title-bar-text {
+ font-weight: bold;
+ color: white;
+ letter-spacing: 0;
+ margin-right: calc(24 * var(--px));
+}
+
+.title-bar-controls {
+ display: flex;
+}
+
+.title-bar-controls button {
+ display: block;
+ min-width: calc(16 * var(--px));
+ min-height: calc(14 * var(--px));
+ padding: 0;
+ background-repeat: no-repeat;
+}
+
+.title-bar-controls button:focus {
+ outline: none;
+}
+
+.title-bar-controls button[aria-label="Minimize"],
+.title-bar-controls button[aria-label].minimize {
+ background-image: url("./icon/minimize.svg");
+ background-position: bottom calc(3 * var(--px)) left calc(4 * var(--px));
+ background-size: calc(6 * var(--px)) calc(2 * var(--px));
+}
+
+.title-bar-controls button[aria-label="Maximize"],
+.title-bar-controls button[aria-label].maximize {
+ background-image: url("./icon/maximize.svg");
+ background-position: top calc(2 * var(--px)) left calc(3 * var(--px));
+ background-size: calc(9 * var(--px)) calc(9 * var(--px));
+}
+
+.title-bar-controls button[aria-label="Maximize"]:disabled,
+.title-bar-controls button[aria-label].maximize:disabled {
+ background-image: url("./icon/maximize-disabled.svg");
+ background-size: calc(10 * var(--px)) calc(10 * var(--px));
+}
+
+.title-bar-controls button[aria-label="Restore"],
+.title-bar-controls button[aria-label].restore {
+ background-image: url("./icon/restore.svg");
+ background-position: top calc(2 * var(--px)) left calc(3 * var(--px));
+ background-size: calc(8 * var(--px)) calc(9 * var(--px));
+}
+
+.title-bar-controls button[aria-label="Help"],
+.title-bar-controls button[aria-label].help {
+ background-image: url("./icon/help.svg");
+ background-position: top calc(2 * var(--px)) left calc(5 * var(--px));
+ background-size: calc(6 * var(--px)) calc(9 * var(--px));
+}
+
+.title-bar-controls button[aria-label="Close"],
+.title-bar-controls button[aria-label].close {
+ margin-left: calc(2 * var(--px));
+ background-image: url("./icon/close.svg");
+ background-position: top calc(3 * var(--px)) left calc(4 * var(--px));
+ background-size: calc(8 * var(--px)) calc(7 * var(--px));
+}
+
+.status-bar {
+ margin: 0 var(--px);
+ display: flex;
+ gap: var(--px);
+}
+
+.status-bar-field {
+ box-shadow: var(--border-status-field);
+ flex-grow: 1;
+ padding: calc(2 * var(--px)) calc(3 * var(--px));
+ margin: 0;
+}
diff --git a/style.css b/style.css
deleted file mode 100644
index 8c74873..0000000
--- a/style.css
+++ /dev/null
@@ -1,994 +0,0 @@
-/**
- * 98.css
- * Copyright (c) 2020 Jordan Scales
- * https://github.com/jdan/98.css/blob/main/LICENSE
- */
-
-:root {
- /* Color */
- --text-color: #222222;
- --surface: #c0c0c0;
- --button-highlight: #ffffff;
- --button-face: #dfdfdf;
- --button-shadow: #808080;
- --window-frame: #0a0a0a;
- --dialog-blue: #000080;
- --dialog-blue-light: #1084d0;
- --dialog-gray: #808080;
- --dialog-gray-light: #b5b5b5;
- --link-blue: #0000ff;
-
- /* Spacing */
- --element-spacing: 8px;
- --grouped-button-spacing: 4px;
- --grouped-element-spacing: 6px;
- --radio-width: 12px;
- --checkbox-width: 13px;
- --radio-label-spacing: 6px;
- --range-track-height: 4px;
- --range-spacing: 10px;
-
- /* Some detailed computations for radio buttons and checkboxes */
- --radio-total-width-precalc: var(--radio-width) + var(--radio-label-spacing);
- --radio-total-width: calc(var(--radio-total-width-precalc));
- --radio-left: calc(-1 * var(--radio-total-width-precalc));
- --radio-dot-width: 4px;
- --radio-dot-top: calc(var(--radio-width) / 2 - var(--radio-dot-width) / 2);
- --radio-dot-left: calc(
- -1 * (var(--radio-total-width-precalc)) + var(--radio-width) / 2 - var(
- --radio-dot-width
- ) / 2
- );
-
- --checkbox-total-width-precalc: var(--checkbox-width) +
- var(--radio-label-spacing);
- --checkbox-total-width: calc(var(--checkbox-total-width-precalc));
- --checkbox-left: calc(-1 * var(--checkbox-total-width-precalc));
- --checkmark-width: 7px;
- --checkmark-left: 3px;
-
- /* Borders */
- --border-width: 1px;
- --border-raised-outer: inset -1px -1px var(--window-frame),
- inset 1px 1px var(--button-highlight);
- --border-raised-inner: inset -2px -2px var(--button-shadow),
- inset 2px 2px var(--button-face);
- --border-sunken-outer: inset -1px -1px var(--button-highlight),
- inset 1px 1px var(--window-frame);
- --border-sunken-inner: inset -2px -2px var(--button-face),
- inset 2px 2px var(--button-shadow);
- --default-button-border-raised-outer: inset -2px -2px var(--window-frame), inset 1px 1px var(--window-frame);
- --default-button-border-raised-inner: inset 2px 2px var(--button-highlight), inset -3px -3px var(--button-shadow), inset 3px 3px var(--button-face);
- --default-button-border-sunken-outer: inset 2px 2px var(--window-frame), inset -1px -1px var(--window-frame);
- --default-button-border-sunken-inner: inset -2px -2px var(--button-highlight), inset 3px 3px var(--button-shadow), inset -3px -3px var(--button-face);
-
-
- /* Window borders flip button-face and button-highlight */
- --border-window-outer: inset -1px -1px var(--window-frame),
- inset 1px 1px var(--button-face);
- --border-window-inner: inset -2px -2px var(--button-shadow),
- inset 2px 2px var(--button-highlight);
-
- /* Field borders (checkbox, input, etc) flip window-frame and button-shadow */
- --border-field: inset -1px -1px var(--button-highlight),
- inset 1px 1px var(--button-shadow), inset -2px -2px var(--button-face),
- inset 2px 2px var(--window-frame);
- --border-status-field: inset -1px -1px var(--button-face), inset 1px 1px var(--button-shadow);
-
- /* Tabs */
- --border-tab: inset -1px 0 var(--window-frame),
- inset 1px 1px var(--button-face),
- inset -2px 0 var(--button-shadow),
- inset 2px 2px var(--button-highlight)
-}
-
-@font-face {
- font-family: "Pixelated MS Sans Serif";
- src: url("fonts/converted/ms_sans_serif.woff") format("woff");
- src: url("fonts/converted/ms_sans_serif.woff2") format("woff2");
- font-weight: normal;
- font-style: normal;
-}
-
-@font-face {
- font-family: "Pixelated MS Sans Serif";
- src: url("fonts/converted/ms_sans_serif_bold.woff") format("woff");
- src: url("fonts/converted/ms_sans_serif_bold.woff2") format("woff2");
- font-weight: bold;
- font-style: normal;
-}
-
-body {
- font-family: Arial;
- font-size: 12px;
- color: var(--text-color);
-}
-
-button,
-label,
-input,
-legend,
-textarea,
-select,
-option,
-table,
-ul.tree-view,
-.window,
-.title-bar,
-li[role=tab] {
- font-family: "Pixelated MS Sans Serif", Arial;
- -webkit-font-smoothing: none;
- font-size: 11px;
-}
-
-h1 {
- font-size: 5rem;
-}
-
-h2 {
- font-size: 2.5rem;
-}
-
-h3 {
- font-size: 2rem;
-}
-
-h4 {
- font-size: 1.5rem;
-}
-
-u {
- text-decoration: none;
- border-bottom: 0.5px solid #222222;
-}
-
-button,
-input[type="submit"],
-input[type="reset"] {
- box-sizing: border-box;
- border: none;
- color: transparent;
- text-shadow: 0 0 var(--text-color);
- background: var(--surface);
- box-shadow: var(--border-raised-outer), var(--border-raised-inner);
- border-radius: 0;
-
- min-width: 75px;
- min-height: 23px;
- padding: 0 12px;
-}
-
-button.default,
-input[type="submit"].default,
-input[type="reset"].default {
- box-shadow: var(--default-button-border-raised-outer), var(--default-button-border-raised-inner);
-}
-
-.vertical-bar {
- width: 4px;
- height: 20px;
- background: #c0c0c0;
- box-shadow: var(--border-raised-outer), var(--border-raised-inner);
-}
-
-button:not(:disabled):active,
-input[type="submit"]:not(:disabled):active,
-input[type="reset"]:not(:disabled):active {
- box-shadow: var(--border-sunken-outer), var(--border-sunken-inner);
- text-shadow: 1px 1px var(--text-color);
-}
-
-button.default:not(:disabled):active,
-input[type="submit"].default:not(:disabled):active,
-input[type="reset"].default:not(:disabled):active {
- box-shadow: var(--default-button-border-sunken-outer), var(--default-button-border-sunken-inner);
-}
-
-@media (not(hover)) {
- button:not(:disabled):hover,
- input[type="submit"]:not(:disabled):hover,
- input[type="reset"]:not(:disabled):hover {
- box-shadow: var(--border-sunken-outer), var(--border-sunken-inner);
- }
-}
-
-button:focus,
-input[type="submit"]:focus,
-input[type="reset"]:focus {
- outline: 1px dotted #000000;
- outline-offset: -4px;
-}
-
-button::-moz-focus-inner,
-input[type="submit"]::-moz-focus-inner,
-input[type="reset"]::-moz-focus-inner {
- border: 0;
-}
-
-:disabled,
-:disabled + label,
-input[readonly],
-input[readonly] + label {
- color: var(--button-shadow);
-}
-
-button:disabled,
-input[type="submit"]:disabled,
-input[type="reset"]:disabled,
-:disabled + label {
- text-shadow: 1px 1px 0 var(--button-highlight);
-}
-
-.window {
- box-shadow: var(--border-window-outer), var(--border-window-inner);
- background: var(--surface);
- padding: 3px;
-}
-
-.title-bar {
- background: linear-gradient(
- 90deg,
- var(--dialog-blue),
- var(--dialog-blue-light)
- );
- padding: 3px 2px 3px 3px;
- display: flex;
- justify-content: space-between;
- align-items: center;
-}
-
-.title-bar.inactive {
- background: linear-gradient(
- 90deg,
- var(--dialog-gray),
- var(--dialog-gray-light)
- );
-}
-
-.title-bar-text {
- font-weight: bold;
- color: white;
- letter-spacing: 0;
- margin-right: 24px;
-}
-
-.title-bar-controls {
- display: flex;
-}
-
-.title-bar-controls button {
- padding: 0;
- display: block;
- min-width: 16px;
- min-height: 14px;
-}
-
-.title-bar-controls button:active {
- padding: 0;
-}
-
-.title-bar-controls button:focus {
- outline: none;
-}
-
-.title-bar-controls button[aria-label="Minimize"],
-.title-bar-controls button[aria-label].minimize {
- background-image: svg-load("./icon/minimize.svg");
- background-repeat: no-repeat;
- background-position: bottom 3px left 4px;
-}
-
-.title-bar-controls button[aria-label="Maximize"],
-.title-bar-controls button[aria-label].maximize {
- background-image: svg-load("./icon/maximize.svg");
- background-repeat: no-repeat;
- background-position: top 2px left 3px;
-}
-
-.title-bar-controls button[aria-label="Maximize"]:disabled,
-.title-bar-controls button[aria-label].maximize:disabled {
- background-image: svg-load("./icon/maximize-disabled.svg");
- background-repeat: no-repeat;
- background-position: top 2px left 3px;
-}
-
-.title-bar-controls button[aria-label="Restore"],
-.title-bar-controls button[aria-label].restore {
- background-image: svg-load("./icon/restore.svg");
- background-repeat: no-repeat;
- background-position: top 2px left 3px;
-}
-
-.title-bar-controls button[aria-label="Help"],
-.title-bar-controls button[aria-label].help {
- background-image: svg-load("./icon/help.svg");
- background-repeat: no-repeat;
- background-position: top 2px left 5px;
-}
-
-.title-bar-controls button[aria-label="Close"],
-.title-bar-controls button[aria-label].close {
- margin-left: 2px;
- background-image: svg-load("./icon/close.svg");
- background-repeat: no-repeat;
- background-position: top 3px left 4px;
-}
-
-.status-bar {
- margin: 0px 1px;
- display: flex;
- gap: 1px;
-}
-
-.status-bar-field {
- box-shadow: var(--border-status-field);
- flex-grow: 1;
- padding: 2px 3px;
- margin: 0;
-}
-
-.window-body {
- margin: var(--element-spacing);
-}
-
-fieldset {
- border-image: svg-load("./icon/groupbox-border.svg") 2;
- padding: calc(2 * var(--border-width) + var(--element-spacing));
- padding-block-start: var(--element-spacing);
- margin: 0;
-}
-
-legend {
- background: var(--surface);
-}
-
-.field-row {
- display: flex;
- align-items: center;
-}
-
-[class^="field-row"] + [class^="field-row"] {
- margin-top: var(--grouped-element-spacing);
-}
-
-.field-row > * + * {
- margin-left: var(--grouped-element-spacing);
-}
-
-.field-row-stacked {
- display: flex;
- flex-direction: column;
-}
-
-.field-row-stacked * + * {
- margin-top: var(--grouped-element-spacing);
-}
-
-label {
- display: inline-flex;
- align-items: center;
- user-select: none;
-}
-
-input[type="radio"],
-input[type="checkbox"] {
- appearance: none;
- -webkit-appearance: none;
- -moz-appearance: none;
- margin: 0;
- background: 0;
- position: fixed;
- opacity: 0;
- border: none;
-}
-
-input[type="radio"] + label,
-input[type="checkbox"] + label {
- line-height: 13px;
-}
-
-input[type="radio"] + label {
- position: relative;
- margin-left: var(--radio-total-width);
-}
-
-input[type="radio"] + label::before {
- content: "";
- position: absolute;
- top: 0;
- left: calc(-1 * (var(--radio-total-width-precalc)));
- display: inline-block;
- width: var(--radio-width);
- height: var(--radio-width);
- margin-right: var(--radio-label-spacing);
- background: svg-load("./icon/radio-border.svg");
-}
-
-input[type="radio"]:active + label::before {
- background: svg-load("./icon/radio-border-disabled.svg");
-}
-
-input[type="radio"]:checked + label::after {
- content: "";
- display: block;
- width: var(--radio-dot-width);
- height: var(--radio-dot-width);
- top: var(--radio-dot-top);
- left: var(--radio-dot-left);
- position: absolute;
- background: svg-load("./icon/radio-dot.svg");
-}
-
-input[type="radio"]:focus + label,
-input[type="checkbox"]:focus + label {
- outline: 1px dotted #000000;
-}
-
-input[type="radio"][disabled] + label::before {
- background: svg-load("./icon/radio-border-disabled.svg");
-}
-
-input[type="radio"][disabled]:checked + label::after {
- background: svg-load("./icon/radio-dot-disabled.svg");
-}
-
-input[type="checkbox"] + label {
- position: relative;
- margin-left: var(--checkbox-total-width);
-}
-
-input[type="checkbox"] + label::before {
- content: "";
- position: absolute;
- left: calc(-1 * (var(--checkbox-total-width-precalc)));
- display: inline-block;
- width: var(--checkbox-width);
- height: var(--checkbox-width);
- background: var(--button-highlight);
- box-shadow: var(--border-field);
- margin-right: var(--radio-label-spacing);
-}
-
-input[type="checkbox"]:active + label::before {
- background: var(--surface);
-}
-
-input[type="checkbox"]:checked + label::after {
- content: "";
- display: block;
- width: var(--checkmark-width);
- height: var(--checkmark-width);
- position: absolute;
- left: calc(
- -1 * (var(--checkbox-total-width-precalc)) + var(--checkmark-left)
- );
- background: svg-load("./icon/checkmark.svg");
-}
-
-input[type="checkbox"][disabled] + label::before {
- background: var(--surface);
-}
-
-input[type="checkbox"][disabled]:checked + label::after {
- background: svg-load("./icon/checkmark-disabled.svg");
-}
-
-input[type="text"],
-input[type="password"],
-input[type="email"],
-input[type="url"],
-input[type="tel"],
-input[type="number"],
-input[type="search"],
-select,
-textarea {
- padding: 3px 4px;
- border: none;
- box-shadow: var(--border-field);
- background-color: var(--button-highlight);
- box-sizing: border-box;
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- border-radius: 0;
-}
-
-input[type="text"],
-input[type="password"],
-input[type="email"],
-input[type="url"],
-input[type="tel"],
-input[type="search"],
-select {
- height: 21px;
-}
-input[type="number"] {
- /* need this 1 pixel to fit the spinner controls in box */
- height: 22px;
-}
-/* clears the ‘X’ from Internet Explorer */
-input[type=search]::-ms-clear { display: none; width : 0; height: 0; }
-input[type=search]::-ms-reveal { display: none; width : 0; height: 0; }
-/* clears the ‘X’ from Chrome */
-input[type="search"]::-webkit-search-decoration,
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-results-button,
-input[type="search"]::-webkit-search-results-decoration { display: none; }
-
-input[type="text"],
-input[type="password"],
-input[type="email"],
-input[type="url"],
-input[type="tel"],
-input[type="number"],
-input[type="search"] {
- /* For some reason descenders are getting cut off without this */
- line-height: 2;
-}
-
-input[type="email"]:disabled,
-input[type="url"]:disabled,
-input[type="tel"]:disabled,
-input[type="password"]:disabled,
-input[type="text"]:disabled,
-input[type="number"]:disabled,
-input[type="search"]:disabled,
-input[type="email"]:read-only,
-input[type="url"]:read-only,
-input[type="tel"]:read-only,
-input[type="password"]:read-only,
-input[type="text"]:read-only,
-input[type="number"]:read-only,
-input[type="search"]:read-only,
-textarea:disabled {
- background-color: var(--surface);
-}
-
-select {
- appearance: none;
- -webkit-appearance: none;
- -moz-appearance: none;
- position: relative;
- padding-right: 32px;
- background-image: svg-load("./icon/button-down.svg");
- background-position: top 2px right 2px;
- background-repeat: no-repeat;
- border-radius: 0;
-}
-
-select:focus,
-input[type="text"]:focus,
-input[type="password"]:focus,
-input[type="email"]:focus,
-input[type="url"]:focus,
-input[type="tel"]:focus,
-input[type="number"]:focus,
-input[type="search"]:focus,
-textarea:focus {
- outline: none;
-}
-
-input[type="range"] {
- -webkit-appearance: none;
- width: 100%;
- background: transparent;
-}
-
-input[type="range"]:focus {
- outline: none;
-}
-
-input[type="range"]::-webkit-slider-thumb {
- -webkit-appearance: none;
- height: 21px;
- width: 11px;
- background: svg-load("./icon/indicator-horizontal.svg");
- transform: translateY(-8px);
- box-shadow: none;
- border: none;
-}
-
-input[type="range"].has-box-indicator::-webkit-slider-thumb {
- background: svg-load("./icon/indicator-rectangle-horizontal.svg");
- transform: translateY(-10px);
-}
-
-input[type="range"]::-moz-range-thumb {
- height: 21px;
- width: 11px;
- border: 0;
- border-radius: 0;
- background: svg-load("./icon/indicator-horizontal.svg");
- transform: translateY(2px);
-}
-
-input[type="range"].has-box-indicator::-moz-range-thumb {
- background: svg-load("./icon/indicator-rectangle-horizontal.svg");
- transform: translateY(0px);
-}
-
-input[type="range"]::-webkit-slider-runnable-track {
- width: 100%;
- height: 2px;
- box-sizing: border-box;
- background: black;
- border-right: 1px solid grey;
- border-bottom: 1px solid grey;
- box-shadow: 1px 0 0 white, 1px 1px 0 white, 0 1px 0 white, -1px 0 0 darkgrey,
- -1px -1px 0 darkgrey, 0 -1px 0 darkgrey, -1px 1px 0 white, 1px -1px darkgrey;
-}
-
-input[type="range"]::-moz-range-track {
- width: 100%;
- height: 2px;
- box-sizing: border-box;
- background: black;
- border-right: 1px solid grey;
- border-bottom: 1px solid grey;
- box-shadow: 1px 0 0 white, 1px 1px 0 white, 0 1px 0 white, -1px 0 0 darkgrey,
- -1px -1px 0 darkgrey, 0 -1px 0 darkgrey, -1px 1px 0 white, 1px -1px darkgrey;
-}
-
-.is-vertical {
- display: inline-block;
- width: 4px;
- height: 150px;
- transform: translateY(50%);
-}
-
-.is-vertical > input[type="range"] {
- width: 150px;
- height: 4px;
- margin: 0 calc(var(--grouped-element-spacing) + var(--range-spacing)) 0
- var(--range-spacing);
- transform-origin: left;
- transform: rotate(270deg) translateX(calc(-50% + var(--element-spacing)));
-}
-
-.is-vertical > input[type="range"]::-webkit-slider-runnable-track {
- border-left: 1px solid grey;
- border-right: 0;
- border-bottom: 1px solid grey;
- box-shadow: -1px 0 0 white, -1px 1px 0 white, 0 1px 0 white, 1px 0 0 darkgrey,
- 1px -1px 0 darkgrey, 0 -1px 0 darkgrey, 1px 1px 0 white, -1px -1px darkgrey;
-}
-
-.is-vertical > input[type="range"]::-moz-range-track {
- border-left: 1px solid grey;
- border-right: 0;
- border-bottom: 1px solid grey;
- box-shadow: -1px 0 0 white, -1px 1px 0 white, 0 1px 0 white, 1px 0 0 darkgrey,
- 1px -1px 0 darkgrey, 0 -1px 0 darkgrey, 1px 1px 0 white, -1px -1px darkgrey;
-}
-
-.is-vertical > input[type="range"]::-webkit-slider-thumb {
- transform: translateY(-8px) scaleX(-1);
-}
-
-.is-vertical > input[type="range"].has-box-indicator::-webkit-slider-thumb {
- transform: translateY(-10px) scaleX(-1);
-}
-
-.is-vertical > input[type="range"]::-moz-range-thumb {
- transform: translateY(2px) scaleX(-1);
-}
-
-.is-vertical > input[type="range"].has-box-indicator::-moz-range-thumb {
- transform: translateY(0px) scaleX(-1);
-}
-
-select:focus {
- color: var(--button-highlight);
- background-color: var(--dialog-blue);
-}
-select:focus option {
- color: #000;
- background-color: #fff;
-}
-
-select:active {
- background-image: svg-load("./icon/button-down-active.svg");
-}
-
-a {
- color: var(--link-blue);
-}
-
-a:focus {
- outline: 1px dotted var(--link-blue);
-}
-
-ul.tree-view {
- display: block;
- background: var(--button-highlight);
- box-shadow: var(--border-field);
- padding: 6px;
- margin: 0;
-}
-
-ul.tree-view li {
- list-style-type: none;
-}
-
-ul.tree-view a {
- text-decoration: none;
- color: #000;
-}
-
-ul.tree-view a:focus {
- background-color: var(--dialog-blue);
- color: var(--button-highlight);
-}
-
-ul.tree-view ul,
-ul.tree-view li {
- margin-top: 3px;
-}
-
-ul.tree-view ul {
- margin-left: 16px;
- padding-left: 16px;
- /* Goes down too far */
- border-left: 1px dotted #808080;
-}
-
-ul.tree-view ul > li {
- position: relative;
-}
-ul.tree-view ul > li::before {
- content: "";
- display: block;
- position: absolute;
- left: -16px;
- top: 6px;
- width: 12px;
- border-bottom: 1px dotted #808080;
-}
-
-/* Cover the bottom of the left dotted border */
-ul.tree-view ul > li:last-child::after {
- content: "";
- display: block;
- position: absolute;
- left: -20px;
- top: 7px;
- bottom: 0px;
- width: 8px;
- background: var(--button-highlight);
-}
-
-ul.tree-view details {
- margin-top: 0;
-}
-
-ul.tree-view details[open] summary {
- margin-bottom: 0;
-}
-
-ul.tree-view ul details > summary:before {
- margin-left: -22px;
- position: relative;
- z-index: 1;
-}
-
-ul.tree-view details > summary:before {
- text-align: center;
- display: block;
- float: left;
- content: "+";
- border: 1px solid #808080;
- width: 8px;
- height: 9px;
- line-height: 8px;
- margin-right: 5px;
- padding-left: 1px;
- background-color: #fff;
-}
-
-ul.tree-view details[open] > summary:before {
- content: "-";
-}
-
-ul.tree-view details > summary::marker,
-ul.tree-view details > summary::-webkit-details-marker {
- content: "";
-}
-
-pre {
- display: block;
- background: var(--button-highlight);
- box-shadow: var(--border-field);
- padding: 12px 8px;
- margin: 0;
-}
-
-code,
-code * {
- font-family: monospace;
-}
-
-summary:focus {
- outline: 1px dotted #000000;
-}
-
-::-webkit-scrollbar {
- width: 16px;
-}
-::-webkit-scrollbar:horizontal {
- height: 17px;
-}
-
-::-webkit-scrollbar-corner {
- background: var(--button-face);
-}
-
-::-webkit-scrollbar-track {
- background-image: svg-load("./icon/scrollbar-background.svg");
-}
-
-::-webkit-scrollbar-thumb {
- background-color: var(--button-face);
- box-shadow: var(--border-raised-outer), var(--border-raised-inner);
-}
-
-::-webkit-scrollbar-button:horizontal:start:decrement,
-::-webkit-scrollbar-button:horizontal:end:increment,
-::-webkit-scrollbar-button:vertical:start:decrement,
-::-webkit-scrollbar-button:vertical:end:increment {
- display: block;
-}
-
-::-webkit-scrollbar-button:vertical:start {
- height: 17px;
- background-image: svg-load("./icon/button-up.svg");
-}
-::-webkit-scrollbar-button:vertical:end {
- height: 17px;
- background-image: svg-load("./icon/button-down.svg");
-}
-::-webkit-scrollbar-button:horizontal:start {
- width: 16px;
- background-image: svg-load("./icon/button-left.svg");
-}
-::-webkit-scrollbar-button:horizontal:end {
- width: 16px;
- background-image: svg-load("./icon/button-right.svg");
-}
-
-.window[role=tabpanel] {
- position: relative;
- z-index: 2;
-}
-
-menu[role=tablist] {
- position: relative;
- margin: 0 0 -2px 0;
- text-indent: 0;
- list-style-type: none;
- display: flex;
- padding-left: 3px;
-}
-
-menu[role=tablist] > li {
- border-top-left-radius: 3px;
- border-top-right-radius: 3px;
- box-shadow: var(--border-tab);
- z-index: 1;
-}
-
-menu[role=tablist] > li[aria-selected=true] {
- padding-bottom: 2px;
- margin-top: -2px;
- background-color: var(--surface);
- position: relative;
- z-index: 8;
- margin-left: -3px;
-}
-
-menu[role=tablist] > li > a {
- display: block;
- color: #222;
- margin: 6px;
- text-decoration: none;
-}
-menu[role=tablist] > li[aria-selected=true] > a:focus {
- outline: none;
-}
-menu[role=tablist] > li > a:focus {
- outline: 1px dotted #222;
-}
-
-menu[role=tablist].multirows > li {
- flex-grow: 1;
- text-align: center;
-}
-.sunken-panel {
- box-sizing: border-box;
- border: 2px groove transparent;
- border-image: svg-load("./icon/sunken-panel-border.svg") 2;
- overflow: auto;
- background-color: #fff;
-}
-
-table {
- border-collapse: collapse;
- position: relative;
- text-align: left;
- white-space: nowrap;
- background-color: #fff;
-}
-
-table > thead > tr > * {
- position: sticky;
- top: 0;
- height: 17px;
- box-shadow: var(--border-raised-outer), var(--border-raised-inner);
- background: var(--surface);
- box-sizing: border-box;
- font-weight: normal;
- padding: 0 var(--grouped-element-spacing);
-}
-
-table.interactive > tbody > tr {
- cursor: pointer;
-}
-
-table > tbody > tr.highlighted {
- color: #fff;
- background-color: var(--dialog-blue);
-}
-
-table > tbody > tr > * {
- padding: 0 var(--grouped-element-spacing);
- height: 14px;
-}
-
-.progress-indicator {
- height: 32px;
- position: relative;
- box-shadow: var(--border-sunken-inner);
- padding: 4px 4px;
- border: none;
- box-sizing: border-box;
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- border-radius: 0;
-}
-
-
-.progress-indicator > .progress-indicator-bar {
- height: 100%;
- display: block;
- background-color: var(--dialog-blue);
-}
-
-.progress-indicator.segmented > .progress-indicator-bar {
- width: 100%;
- background-color: transparent; /* resets the background color which is set to blue in the non-segmented selector */
- background-image: linear-gradient(
- 90deg,
- var(--dialog-blue) 0 16px,
- transparent 0 2px
- );
- background-repeat: repeat;
- background-size: 18px 100%;
-}
-
-.field-border {
- background: var(--button-highlight);
- box-shadow: var(--border-field);
- padding: 2px;
-}
-
-.field-border-disabled {
- background: var(--surface);
- box-shadow: var(--border-field);
- padding: 2px;
-}
-
-.status-field-border {
- background: var(--surface);
- box-shadow: var(--border-status-field);
- padding: 1px;
-}