:root { --header-narrow-min-height: 12em; --match-highlighter-alpha-15: hsla(193, 99%, 38%, .15); --regexp-report-mark-alpha-5: hsla(60, 100%, 50%, .5); --section-label-highlight: hsl(60, 100%, 80%); --cm-activeline-bg: hsl(180, 22%, 88%); --darkgreen: hsl(120, 100%, 20%); --global-progress: hsla(180, 66%, 36%, .25); --beautify-select-gradient-left: hsla(0, 0%, 0%, .07); --beautify-select-gradient-right: hsla(0, 0%, 0%, .05); } body { display: flex; margin: 0; font: 12px arial,sans-serif; } #global-progress { position: fixed; height: 4px; top: 0; left: 0; right: 0; background-color: var(--global-progress); border-left: 0 solid var(--darkcyan); z-index: 2147483647; opacity: 0; transition: opacity 2s; } #global-progress[title] { opacity: 1; } .hidden { display: none !important; } /************ checkbox & select ************/ .options-column > div[class="option"] { margin-bottom: 4px; } .options-column > .usercss-only { margin-bottom: .75rem; } label { padding-left: 16px; position: relative; } /************ header ************/ #header { width: 280px; height: 100vh; overflow: auto; position: fixed; top: 0; padding: 1rem; border-right: 1px dashed var(--gray-lightness-66); -webkit-box-shadow: 0 0 3rem -1.2rem var(--black); box-shadow: 0 0 3rem -1.2rem var(--black); box-sizing: border-box; z-index: 10; display: flex; flex-direction: column; } #header h1 { margin-top: 0; } #sections { flex-grow: 1; padding-left: 280px; } #sections h2 { margin-top: 1rem; margin-left: 1.7rem; } .aligned { display: table-row; } .aligned > *:not(.svg-inline-wrapper) { display: table-cell; margin-top: 0.1rem; min-height: 1.4rem; } /* basic info */ #basic-info { margin-bottom: 1rem; } #name { width: 100%; } #basic-info-name { display: flex; align-items: center; } #url { margin-left: 0.25rem; } #url:not([href^="http"]) { display: none; } #basic-info-enabled { margin-top: 2px; display: flex; align-items: center; line-height: 16px; } #basic-info-enabled > * { margin-right: 1em; margin-left: 0; } #basic-info-enabled > :last-child { margin-right: 0; } #basic-info-enabled input, #basic-info-enabled svg { margin: auto 0; bottom: 0; } #basic-info-enabled svg { left: 2px; } #preview-errors { background-color: red; color: var(--white); padding: 0 6px; border-radius: 9px; margin-left: -.5em; font-weight: bold; cursor: pointer; } .svg-icon { cursor: pointer; vertical-align: middle; transition: fill .5s; width: 16px; height: 16px; } .svg-inline-wrapper { margin-left: .2rem; display: inline-block; vertical-align: middle; } #mozilla-format-heading .svg-inline-wrapper { margin-left: 0; } #colorpicker-settings.svg-inline-wrapper { margin: -2px 0 0 .1rem; } .svg-inline-wrapper.applies-to-help { margin: 0 0 0 .25rem; } .aligned .svg-inline-wrapper { margin: -2px 0 0 .3rem; } #sections-help { margin-left: -1px; } .svg-icon.info { width: 14px; height: 16px; } .svg-icon:hover, .svg-icon.info, .svg-icon.settings { fill: var(--gray-lightness-40); } .svg-icon, .svg-icon.info:hover, .svg-icon.settings:hover { fill: var(--black); } #options span .svg-icon { margin-top: -3px; /* inline info and config icons */ } input:invalid { background-color: var(--truegray-alpha-05); color: var(--darkred); } #enabled { margin-left: 0; } /* collapsibles */ #header summary { align-items: center; margin-left: -13px; cursor: pointer; margin-top: .5rem; margin-bottom: .5rem; } #header summary h2 { display: inline-block; border-bottom: 1px dotted transparent; margin-top: .1em; margin-bottom: .1em; } #header summary:hover h2 { border-color: var(--truegray-alpha-7); } #header summary svg { margin-top: -3px; } #actions > * { display: inline-flex; flex-wrap: wrap; } #mozilla-format-container { flex-direction: column; } #mozilla-format-buttons { display: flex; flex-wrap: wrap; } #actions > div > a { height: min-content; } #actions button, #actions > div > a { margin: 0 .2rem .5rem 0; } #actions #cancel-button { margin: 0; } #options:not([open]) + #lint h2 { margin-top: 0; } #lint:not([open]) h2 { margin-bottom: 0; } /* options */ #options [type="number"] { width: 3.5em; text-align: left; padding-left: .25em; } #options .option.aligned > label { padding: .1rem .25rem 0 0; vertical-align: middle; } .set-option-progress { position: absolute; background-color: currentColor; content: ""; opacity: .15; } /* footer */ .usercss #footer { display: block; margin-top: 1em; margin-bottom: .5em; } #lint:not([open]) + #footer { margin-top: 4em; } /************ content ***********/ #sections > * { margin: 0.7rem; padding: 1rem 1rem .3rem; } #sections > *:first-child { padding: 0 1rem .3rem; } #sections > *:not(:first-child) { border-top: 2px solid var(--truegray-alpha-3); } .add-section:after { content: attr(short-text); } #sections > div:only-of-type .add-section:after { content: attr(long-text); } #sections > div:only-of-type .remove-section { display: none; } .edit-actions { display: flex; flex-wrap: wrap; } .edit-actions button { margin: 0 .2rem .5rem 0; } .dirty > label::before { content: "*"; font-weight: bold; } #sections { counter-reset: codebox; } #sections > .section > label { animation: 2s highlight; animation-play-state: paused; animation-direction: reverse; animation-fill-mode: both; } #sections > .section > label::after { counter-increment: codebox; content: counter(codebox); margin-left: 0.25rem; } .section:only-of-type .move-section-up, .section:only-of-type .move-section-down { display: none; } .move-section-up:after { content: ""; display: block; border-style: solid; border-width: 0 .3em .5em .3em; border-color: transparent transparent currentColor transparent; } .move-section-down:after { content: ""; display: block; border-style: solid; border-width: .5em .3em 0 .3em; border-color: currentColor transparent transparent transparent; } /* code */ .code { height: 10rem; width: 40rem; } .resize-grip-enabled .CodeMirror-scroll { height: auto !important;; position: absolute !important; top: 0; left: 0; right: 0; bottom: 6px; /* resize-grip height */ } .resize-grip-enabled .CodeMirror-vscrollbar { margin-bottom: 7px; /* make space for resize-grip */ } .resize-grip-enabled .CodeMirror-hscrollbar { bottom: 7px; /* make space for resize-grip */ } .resize-grip-enabled .CodeMirror-scrollbar-filler { bottom: 7px; /* make space for resize-grip */ } .CodeMirror-vscrollbar, .CodeMirror-hscrollbar { outline: 0; } body[data-match-highlight="token"]:not(.find-open) .cm-matchhighlight-approved .cm-matchhighlight, body[data-match-highlight="token"]:not(.find-open) .cm-matchhighlight-approved .CodeMirror-selection-highlight-scrollbar { animation: fadein-match-highlighter 1s cubic-bezier(.97,.01,.42,.98); animation-fill-mode: both; } body[data-match-highlight="selection"]:not(.find-open) .cm-matchhighlight, body[data-match-highlight="selection"]:not(.find-open) .CodeMirror-selection-highlight-scrollbar { background-color: var(--match-highlighter-alpha-15); } @-webkit-keyframes highlight { from { background-color: var(--section-label-highlight); } to { background-color: inherit; } } @keyframes fadein { from { opacity: 0; } to { opacity: 1; } } @keyframes fadein-match-highlighter { from { background-color: transparent; } to { background-color: var(--match-highlighter-alpha-15); } } .resize-grip { position: absolute; display: block; height: 6px; content: ""; left: 0; right: 0; bottom: 0; z-index: 9; cursor: n-resize; background-color: inherit; border-top-width: 1px; border-top-style: solid; border-top-color: inherit; } .resize-grip:after { content: ""; bottom: 2px; left: 0; right: 0; margin: 0 8px; display: block; position: absolute; border-top-width: 2px; border-top-style: dotted; border-top-color: inherit; } /* applies-to */ .applies-to { display: flex; align-items: flex-start; min-height: 30px; flex-wrap: wrap; } .applies-to label { display: flex; padding: 0; height: 22px; align-items: center; margin: 0 .35em 0 0; white-space: nowrap; } .applies-to ul { flex: auto; flex-grow: 1; margin: 0; padding: 0; } .applies-to li { display: flex; flex-wrap: wrap; list-style-type: none; align-items: center; } .applies-to li.applies-to-everything { align-items: unset; line-height: 22px; } .applies-to li > input { min-height: 1.4rem; } .applies-to li:not(.applies-to-everything) > * { margin: 0 .2rem .5rem 0; } .applies-to li .add-applies-to:first-child { margin-left: 1rem; } .applies-to li .applies-value-wrapper { flex-grow: 1; display: flex; } .applies-to li .applies-value { flex-grow: 1; padding-left: 0.2rem; } .applies-to img { vertical-align: bottom; } .add-applies-to, .remove-applies-to { font-size: 0; height: 22px; width: 22px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; } .add-applies-to .svg-icon, .remove-applies-to .svg-icon { pointer-events: none; fill: var(--gray-lightness-60); height: 12px; width: 12px; } .add-applies-to:hover .svg-icon, .remove-applies-to:hover .svg-icon { pointer-events: none; fill: var(--black); } .test-regexp { display: none; } .has-regexp .test-regexp { display: inline-block; } .regexp-report summary { cursor: pointer; } .regexp-report mark { background-color: var(--regexp-report-mark-alpha-5); } .regexp-report details { margin-left: 1rem; word-break: break-all; } .regexp-report details:not(:last-child) { margin-bottom: 1rem; } .regexp-report summary { font-weight: bold; margin-left: -1rem; margin-bottom: .5rem; cursor: default; overflow-wrap: break-word; } .regexp-report details[data-type="full"] { color: var(--darkgreen); } .regexp-report details[data-type="partial"] { color: var(--truegray-alpha-6); } .regexp-report details[data-type="invalid"] { color: maroon; } .regexp-report details details { margin-left: 2rem; margin-top: .5rem; } .regexp-report .svg-icon { position: absolute; margin-top: -1px; } .regexp-report details a { color: inherit; text-decoration: none; display: block; cursor: pointer; } .regexp-report details a:hover { text-decoration: underline; text-decoration-skip: ink; } .regexp-report details a img { width: 16px; max-height: 16px; position: absolute; margin-left: -20px; margin-top: -1px; } .regexp-report-note { color: var(--truegray); position: absolute; margin: 0 0.5rem 0 0; hyphens: auto; } /************ help popup ************/ #help-popup { top: 3rem; right: 3rem; max-width: 50vw; position: fixed; display: none; box-shadow: 3px 3px 30px var(--black-alpha-5); padding: 0.5rem; z-index: 99; } #help-popup.big, #help-popup.wide { max-width: 100%; } #help-popup.big { box-shadow: var(--black-alpha-5) 0px 0px 0px 100000px !important; left: calc(280px - 3rem); } #help-popup.big .CodeMirror { min-height: 2rem; height: 70vh; } #help-popup .title { font-weight: bold; background-color: var(--truegray-alpha-15); margin: -0.5rem -0.5rem 0.5rem; padding: .5rem 32px .5rem .5rem; } #help-popup .contents { max-height: calc(100vh - 8rem); overflow-y: auto; } #help-popup .settings { min-width: 500px; min-height: 200px; max-width: 48vw; } #help-popup .dismiss { position: absolute; right: 4px; top: .5em; } .keymap-list { font-size: 12px; border-spacing: 0; word-break: break-all; } .keymap-list input { background-color: var(--main-bg); border: 1px solid var(--truegray-alpha-6); width: 100%; } .keymap-list tr:nth-child(odd) { background-color: var(--truegray-alpha-1); } .keymap-list td:first-child { white-space: nowrap; font-family: monospace; padding-right: 0.5rem; } #help-popup .buttons { text-align: center; } .non-windows #help-popup .buttons { direction: rtl; text-align: right; } #help-popup button[name^="import"] { line-height: 1.5rem; padding: 0 0.5rem; margin: 0.5rem 0 0 0.5rem; pointer-events: none; opacity: 0.5; } #help-popup.ready button[name^="import"] { pointer-events: all; opacity: 1.0; } #help-popup .rules { padding: 0 15px; } #help-popup button { margin-right: 3px; } /************ lint ************/ #lint { overflow-y: auto; overflow-x: hidden; } #lint > summary { /* workaround for overflow:auto to show the toggle triangle */ position: absolute; } #lint > div { margin-top: 2.75rem; } #lint table { font-size: 100%; border-spacing: 0; margin-bottom: 1rem; line-height: 1.0; } #lint table:last-child { margin-bottom: 0; } #lint caption { text-align: left; font-weight: bold; } #lint tbody { font-size: 85%; cursor: pointer; } #lint tr:hover { background-color: var(--black-alpha-1); } #lint td[role="severity"] { font-size: 0; width: 16px; } #lint td[role="line"], #lint td[role="sep"] { text-align: right; padding-right: 0; } #lint td[role="col"] { text-align: left; padding-right: 0.25rem; } #lint td[role="message"] { text-align: left; white-space: nowrap; } #message-box.center.lint-config #message-box-contents { text-align: left; } /************ CSS beautifier ************/ .beautify-options { white-space: nowrap; } .beautify-options div { float: left; display: flex; align-items: center; } .beautify-options div[newline="true"] + div { clear: left; } .beautify-options div[newline="true"] + div span[indent] { padding-left: 2rem; } .beautify-options > label { top: 1em; margin: 1ex 0; } .beautify-options:after { clear: both; display: block; content: ""; height: 1rem; } .beautify-options span { font-weight: bold; font-family: monospace; } .beautify-options select { border: none; background: linear-gradient(90deg, var(--beautify-select-gradient-left) 18px, var(--beautify-select-gradient-right) 24px); font-family: monospace; font-weight: bold; padding-left: 4px; margin-left: 4px; } .beautify-options select option{ background-color: var(--truegray-alpha-2) } /************ single editor **************/ .usercss body { display: flex; height: 100vh; flex-direction: column; justify-items: normal; } html:not(.usercss) .usercss-only, .usercss #mozilla-format-container, .usercss #sections > h2 { display: none !important; /* hide during page init */ } #lint { padding: 1rem 0 0; box-sizing: border-box; } #options:not([open]) + #lint { padding-top: 0; } #options-wrapper .options-column:nth-child(2) { margin-top: .75rem; } .usercss #name { background-color: var(--truegray-alpha-07); color: var(--truegray); cursor: not-allowed; } #sections .single-editor, #sections > .single-editor:first-child { margin: 0; padding: 0; display: flex; box-sizing: border-box; } .single-editor .CodeMirror { width: 100%; height: auto; border: none; outline: none; } .single-editor .CodeMirror.cm-s-default { outline: none !important; } .usercss.firefox #sections, .usercss.firefox .single-editor, .usercss.firefox .CodeMirror { height: 100%; } /************ line widget *************/ .CodeMirror-linewidget .applies-to { font: normal 12px Arial, system-ui, sans-serif; margin: 1em 0; padding: .75rem .75rem .25rem; padding-right: calc(1em + 20px); background-color: var(--gray-lightness-90); border-top: 1px solid var(--truegray-alpha-3); border-bottom: 1px solid var(--truegray-alpha-3); } .CodeMirror-linewidget .applies-to li { margin: 0; } .CodeMirror-linewidget .applies-to li + li { margin-top: 0.35rem; } .CodeMirror-linewidget .applies-to li[data-type="regexp"] .test-regexp { display: inline; } .CodeMirror-linewidget li.applies-to-everything { margin-top: 0.2rem; } /************ reponsive layouts ************/ @media(max-width: 850px) { body { display: flex; flex-direction: column; } #header { flex: 0 1 auto; height: unset; width: unset; position: inherit; border-right: none; border-bottom: 1px dashed var(--gray-lightness-66); padding: 0; } #actions { display: flex; flex-wrap: wrap; white-space: nowrap; padding: 0 1rem; margin: 0; box-sizing: border-box; } #header input[type="checkbox"] { vertical-align: middle; } #heading, h2 { display: none; } #basic-info { padding: .5rem 1rem; margin: 0; box-sizing: border-box; display: flex; flex-wrap: wrap; } #basic-info > *:first-child { flex-grow: 1; } #basic-info > *:not(:last-child) { margin-right: 0.8rem; } #basic-info #name { flex-grow: 1; } #options-wrapper { display: flex; flex-wrap: wrap; padding: 0 1rem .5rem; box-sizing: border-box; } .options-column { flex-grow: 1; padding-right: .5rem; box-sizing: border-box; } #options-wrapper .options-column:nth-child(2) { margin-top: 0; } #options:not([open]), #lint:not([open]) { overflow: initial; } #options:not([open]) + #lint:not([open]) { margin-top: 0; } #lint { overflow: initial; } #lint summary { position: static; margin-bottom: 0; } #lint tbody { display: flex; flex-direction: column; } #options summary { margin-left: 0; padding-left: 4px; } #options h2 { margin: 0 0 .5em; } .option label { margin: 0; } #options [type="number"] { text-align: left; /* workaround the column flow bug in webkit */ padding-left: 0.2rem; } #options #tabSize-label { position: relative; top: 0.2rem; } #lint > div { margin-top: 0; overflow: hidden; } #lint { padding: 0 1rem .5rem; } #lint > summary { margin-top: 0; } #lint caption { text-indent: 4px; } #lint table { width: 100%; } #lint td[role="message"] { max-width: none; } #lint:not([open]) + #footer { margin: .25em 0 -1em .25em; } #sections { height: unset !important; min-height: 0; padding-left: 0; display: flex; flex-direction: column; flex: 1 1 auto; } #sections > * { margin: 0 .5rem .5rem; padding: .5rem 0 0; } #sections > *:first-child { margin: .5rem; padding: 0; } .usercss .CodeMirror-scroll { max-height: calc(100vh - var(--header-narrow-min-height)); } .usercss #options:not([open]) ~ #lint.hidden ~ #footer, .usercss #lint:not([open]) + #footer { margin-top: -.25em; } #help-popup.big[style="display: block;"], #help-popup[style="display: block;"] { width: max-content; height: min-content; max-width: 90%; max-height: 90vh; top: 0; bottom: 0; left: 0; right: 0; margin: auto; } #help-popup[style*="left:"] { left: 1rem !important; margin-top: -2.35rem; } #help-popup:not([style*="display: block;"]), #help-popup .CodeMirror-lint-markers, #help-popup .CodeMirror-guttermarker-subtle { display: none !important; } #help-popup .CodeMirror-linenumber { padding: 0; } }