html#stylus #header *:not(#\1transition-suppressor) { /* This suppresses a bug in all? browsers: they apply transitions during page load. * Using an increased specificity to override sane selectors in user styles. * Using \1 to simplify js code because \0 is converted to \xFFFD per spec. */ transition: none !important; } :root { --family: Arial, "Helvetica Neue", Helvetica, system-ui, sans-serif; --input-height: 22px; --cmin: hsl(0, 0%, 00%); --c00: hsl(0, 0%, 00%); --c10: hsl(0, 0%, 10%); --c20: hsl(0, 0%, 20%); --c30: hsl(0, 0%, 30%); --c40: hsl(0, 0%, 40%); --c45: hsl(0, 0%, 45%); --c50: hsl(0, 0%, 50%); --c60: hsl(0, 0%, 60%); --c65: hsl(0, 0%, 65%); --c70: hsl(0, 0%, 70%); --c75: hsl(0, 0%, 75%); --c80: hsl(0, 0%, 80%); --c85: hsl(0, 0%, 85%); --c90: hsl(0, 0%, 90%); --c95: hsl(0, 0%, 95%); --c100: hsl(0, 0%, 100%); --cmax: hsl(0, 0%, 100%); --bg: var(--c100); --fg: var(--c00); --accent-1: hsl(180, 100%, 15%); --accent-2: hsl(180, 50%, 40%); --accent-3: hsl(180, 40%, 69%); } body { font: normal 12px var(--family); background-color: var(--bg); color: var(--fg); margin: 0; } body:lang(ja) { font-family: Arial, 'Meiryo UI', 'MS Gothic', system-ui, sans-serif; } body:lang(zh-CN) { font-family: Arial, 'Microsoft YaHei UI', 'Microsoft YaHei', system-ui, sans-serif; } body:lang(zh-TW), body:lang(zh-HK) { font-family: Arial, 'Microsoft JhengHei UI', 'Microsoft JhengHei', system-ui, sans-serif; } button { -webkit-appearance: none; -moz-appearance: none; user-select: none; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 2px 7px; border: 1px solid var(--c60); font: inherit; font-size: 13px; line-height: 1.2; color: var(--fg); background-color: var(--bg); background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAYAAADtlXTHAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QwGBBwIHvKt6QAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAL0lEQVQI12NoaGgQZ2JgYGBkYmBgYGZiYGBggrMY4VxsYsyoskQQCB2MWAxAMhkADVECDhlW9CoAAAAASUVORK5CYII='); background-repeat: repeat-x; background-size: 100% 100%; transition: background-color .25s, border-color .25s; } button:not(:disabled):hover { background-color: var(--c95); border-color: var(--c50); } button:active { background-color: var(--c95); border-color: var(--c50); background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAYAAADtlXTHAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QwJARIWJNZvuQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAMElEQVQI12NoaGgIZmJgYPjLxMDA8I+JgYHhP5z1Dy7xH5X7jxQCzWQ0A9DEILYBABm5HtJk2jPHAAAAAElFTkSuQmCC'); background-repeat: repeat-x; background-size: 100% 100%; } button .svg-icon { cursor: auto; } [data-ui-theme="light"] button .svg-icon { /* Our svgs are pixel-aligned so the default #000 looks too strong */ fill: #333; } /* For some odd reason these hovers appear lighter than all other button hovers in every browser */ #message-box-buttons button:not(:disabled):hover { background-color: var(--c90); border-color: var(--c50); } input { font: inherit; border: 1px solid var(--c65); transition: border-color .1s, box-shadow .1s; } input:not([type]), input[type=text], input[type=number], input[type=search] { background: var(--bg); color: var(--fg); height: var(--input-height); min-height: var(--input-height)!important; line-height: var(--input-height); box-sizing: border-box; padding: 0 3px; border: 1px solid var(--c65); } input:invalid { background-color: rgba(255, 0, 0, 0.1); color: darkred; } .svg-icon { cursor: pointer; vertical-align: middle; transition: fill .5s; width: 20px; height: 20px; fill: var(--c40); } .svg-icon:hover { fill: var(--fg); } .svg-icon.info { width: 14px; height: 16px; margin-left: .5ex; } .svg-icon.config { width: 16px; height: 16px; } .svg-icon.checked { position: absolute; height: 8px; width: 8px; display: none; fill: var(--fg); margin: 2px 0 0 2px; } input[type="checkbox"]:not(.slider):checked + .svg-icon.checked { display: inline-flex; transition: fill .1s; } input[type="checkbox"]:not(.slider) { -webkit-appearance: none; -moz-appearance: none; position: absolute; left: 0; top: 0; border: 1px solid var(--c45); height: 12px; width: 12px; display: inline-flex; border-radius: 2px; background-color: hsla(0, 0%, 0%, .1); margin: 0; transition: background-color .1s, border-color .1s; } input[type="checkbox"]:not(.slider):hover { border-color: var(--c30); background-color: var(--c80); } input[type="checkbox"]:not(.slider):checked + .svg-icon.checked { position: absolute; top: 0; left: 0; pointer-events: none; } input[type="checkbox"]:not(.slider):disabled { background-color: transparent; border-color: var(--c50); } input[type="checkbox"]:not(.slider):disabled + .svg-icon.checked { fill: var(--c50); } input[type="checkbox"]:not(.slider):disabled + .svg-icon.checked + span { color: var(--c50); } label { transition: color .1s; } .checkbox-wrapper { padding-left: 16px; position: relative; } select { -moz-appearance: none; -webkit-appearance: none; height: var(--input-height); font: inherit; color: var(--fg); background-color: transparent; border: 1px solid var(--c65); padding: 0 20px 0 6px; transition: color .5s; } .select-wrapper, .select-resizer { display: inline-flex!important; cursor: default; position: relative; } .svg-icon.select-arrow { pointer-events: none; cursor: default; display: inline-flex; height: 14px; width: 14px; fill: var(--fg); position: absolute; top: 4px; right: 4px; transition: fill .5s; } input[type="radio"] { -webkit-appearance: none; -moz-appearance: none; background: var(--c90); border-radius: 50%; border: 1px solid var(--c60); cursor: default; height: 13px; width: 13px; position: relative; margin: 0 4px 1px 0; } input[type="radio"]:after { content: ''; background-color: transparent; transform: scale(0); transform-origin: 50% 50%; transition: background-color .5s, transform .5s; border-radius: 50%; height: 7px; width: 7px; left: 2px; top: 2px; position: absolute; } input[type="radio"]:checked:after { background-color: var(--c30); transform: scale(1); } .radio-wrapper { display: flex; align-items: center; line-height: 1.5; } /* restore disabled state dimming */ button:disabled, select:disabled, option:disabled, select[disabled] > option { color: graytext; } select:disabled + .select-arrow, select[disabled] + .select-arrow { fill: var(--c50); } summary { -moz-user-select: none; user-select: none; } /* global stuff we use everywhere */ .hidden { display: none !important; } .rel { position: relative; } .abs { position: absolute; } :focus, .CodeMirror-focused, /* Allowing click outline on text/search inputs and textareas */ textarea[data-focused-via-click]:focus, input:not([type])[data-focused-via-click]:focus, /* same as "text" */ input[type="text"][data-focused-via-click]:focus, input[type="url"][data-focused-via-click]:focus, input[type="search"][data-focused-via-click]:focus, input[type="number"][data-focused-via-click]:focus { /* Using box-shadow instead of the ugly outline in new Chrome */ outline: none; box-shadow: 0 0 0 1px hsl(180, 100%, 38%), 0 0 3px hsla(180, 100%, 60%, .5); } [data-focused-via-click] :focus, [data-focused-via-click]:focus { outline: none; box-shadow: none; } /* header resizer */ :root { --header-width: 280px; --header-resizer-width: 8px; } #header-resizer { position: absolute; top: 0; right: 0; bottom: 0; width: var(--header-resizer-width); box-sizing: border-box; cursor: e-resize; border-width: 0 1px; border-style: solid; color: hsla(0, 0%, 50%, .5); border-color: currentColor; pointer-events: auto; } #header-resizer:active { border-color: var(--c50); } #header-resizer::after { content: ''; position: absolute; border-right: 2px dotted currentColor; left: 2px; width: 0; height: 100%; } body.resizing-h { cursor: e-resize; } body.resizing-v { cursor: n-resize; } body.resizing-h > *, body.resizing-v > * { pointer-events: none; -moz-user-select: none; user-select: none; } /* header resizer - end */ .split-btn { position: relative; white-space: nowrap; --menu-pad: .5em; } .split-btn-pedal { margin-left: -1px !important; padding-left: .25em !important; padding-right: .25em !important; min-width: 0 !important; } .split-btn-pedal::after { --side: 4px; content: ''; border: var(--side) solid transparent; display: inline-block; border-top: calc(var(--side) * 1.3) solid currentColor; vertical-align: bottom; } .split-btn.active .split-btn-pedal { box-shadow: inset 0 0 100px rgba(0, 0, 0, .2); } .split-btn-menu { background: var(--bg); position: absolute; box-shadow: 2px 3px 7px rgba(0, 0, 0, .5); border: 1px solid hsl(180deg, 50%, 50%); white-space: nowrap; cursor: pointer; padding: .25em 0; z-index: 1000; } .split-btn-menu > * { padding: var(--menu-pad) 1em; display: block; } .split-btn-menu > :hover { background-color: hsla(180deg, 50%, 50%, .25); color: var(--fg); } @supports (-moz-appearance: none) { .firefox select { padding: 0 20px 0 2px; line-height: var(--input-height)!important; } svg { transform: scale(1); /* de-blur */ } /* We can customize everything about number inputs except arrows. They're horrible in Linux FF, so we'll hide them unless hovered or focused. */ .firefox.non-windows input[type="number"] { -moz-appearance: textfield; background: var(--bg); color: var(--fg); border: 1px solid var(--c65); } .firefox.non-windows input[type="number"]:not(:disabled):hover, .firefox.non-windows input[type="number"]:focus { -moz-appearance: number-input; } .firefox.non-windows input[type="color"] { background: var(--bg); border: 1px solid var(--c65); padding: 4px; } } @media (max-width: 850px) { #header-resizer { display: none !important; } }