/* https://protocol.mozilla.org/assets/docs/css/protocol.css */ @charset "UTF-8"; @font-face { font-family: Inter; font-style: normal; font-weight: normal; src: url('fonts/Inter/Inter-Regular.woff2') format('woff2'); } @font-face { font-family: Inter; font-style: normal; font-weight: 600; src: url('fonts/Inter/Inter-SemiBold.woff2') format('woff2'); } @font-face { font-family: Metropolis; font-style: normal; font-weight: normal; src: url('fonts/Metropolis/Metropolis-Regular.woff2') format('woff2'); } @font-face { font-family: Metropolis; font-style: normal; font-weight: 600; src: url('fonts/Metropolis/Metropolis-SemiBold.woff2') format('woff2'); } /* Usage of FontAwesome is deprecated and will be removed eventually */ @font-face { font-family: FontAwesome; font-weight: normal; font-style: normal; src: url('fonts/fontawesome-webfont.ttf') format('truetype'); } /** Common uBO spacing. Ref: https://github.com/uBlockOrigin/uBlock-issues/issues/1005 */ :root { --default-gap-xlarge: 32px; --default-gap-large: 24px; --default-gap: 16px; --default-gap-small: 12px; --default-gap-xsmall: 8px; --default-gap-xxsmall: 4px; } /* Common uBO styles */ body { background-color: var(--default-surface); border: 0; box-sizing: border-box; color: var(--default-ink); fill: var(--default-ink); font-family: Inter, sans-serif; font-size: var(--font-size); line-height: 1.5; margin: 0; padding: 0; } .fa { display: inline-block; font-family: FontAwesome; font-style: normal; font-weight: normal; line-height: 1; user-select: none; -moz-user-select: none; -webkit-user-select: none; } a { color: var(--link-ink); } code, .code { background-color: var(--button-surface); font-family: monospace; padding: 4px; } hr { border: 0; border-top: 1px solid var(--hor-separator-color); margin: 1em 0; } textarea { font-size: 90%; } button { align-items: center; appearance: none; -moz-appearance: none; -webkit-appearance: none; border: 1px solid transparent; border-radius: 5px; background-color: var(--button-surface); color: var(--button-ink); display: inline-flex; fill: var(--button-ink); font-size: 14px; justify-content: center; letter-spacing: 0.5px; min-height: 36px; padding: 0 var(--font-size); vertical-align: middle; } button.vflex { height: 100%; min-height: unset; padding-bottom: 0; padding-top: 0; } button:hover { background-color: var(--button-surface-hover); } button.active { background-color: var(--button-active-surface); } button.important { background-color: var(--button-important-surface); } button.important:hover { background-color: var(--button-important-surface-hover); } button.disabled, button[disabled], button.important.disabled, button.important[disabled] { background-color: var(--button-disabled-surface); color: var(--button-disabled-ink); fill: var(--button-disabled-ink); filter: var(--button-disabled-filter); pointer-events: none; } button.preferred { background-color: var(--button-preferred-surface); color: var(--button-preferred-ink); } button.iconifiable > .fa, button.iconifiable > .fa-icon { padding-left: 0; padding-right: 0.4em; } button.iconifiable > .fa-icon { font-size: 120%; } body[dir="rtl"] button.iconifiable > .fa, body[dir="rtl"] button.iconifiable > .fa-icon { padding-left: 0.5em; } label { align-items: center; display: inline-flex; position: relative; } /** Checkbox design borrowed from: - https://material.io/components/selection-controls Motivation: - To comply with design suggestions to make uBO comply with Firefox Preview design guidelines. - To have a single checkbox design across all platforms. */ .checkbox { --margin-end: calc(var(--font-size) * 0.75); box-sizing: border-box; display: inline-flex; flex-shrink: 0; height: var(--checkbox-size); margin: 0; margin-inline-end: var(--margin-end); -webkit-margin-end: var(--margin-end); position: relative; width: var(--checkbox-size); } .checkbox > input[type="checkbox"] { box-sizing: border-box; height: 100%; margin: 0; min-width: var(--checkbox-size); opacity: 0; position: absolute; width: 100%; } .checkbox > input[type="checkbox"] + svg { background-color: transparent; border: 2px solid var(--checkbox-ink); border-radius: 2px; box-sizing: border-box; fill: none; height: 100%; pointer-events: none; position: absolute; stroke: none; stroke-width: 3.12px; width: 100%; } .checkbox > input[type="checkbox"]:checked + svg { background-color: var(--checkbox-checked-ink); border-color: var(--checkbox-checked-ink); stroke: var(--default-surface); } select { padding: 2px; } .hidden { display: none; height: 0; visibility: hidden; width: 0; } .fieldset { margin: var(--font-size); } .fieldset-header { color: var(--fieldset-header-ink); font-size: 14px; font-weight: 600; letter-spacing: 0.5px; } .ul { margin: 1em 0; } .li { align-items: center; display: flex; margin: calc(var(--font-size) * 0.75) 0; } .liul { margin: 0.5em 0; margin-inline-start: 2em; -webkit-margin-start: 2em; } @media (max-width: 640px) { button.iconifiable > .fa, button.iconifiable > .fa-icon { font-size: 1.2rem; padding: 0; } button.iconifiable > [data-i18n] { display: none; } } .ubo-icon { align-items: center; background-color: transparent; border: 0; display: inline-flex; justify-content: center; margin: 0; padding: 0.1em; position: relative; } .ubo-icon > * { pointer-events: none; } .ubo-icon.disabled, .disabled > .ubo-icon, .ubo-icon[disabled], [disabled] > .ubo-icon { color: var(--button-disabled-ink); fill: var(--button-disabled-ink); filter: var(--button-disabled-filter); stroke: var(--button-disabled-ink); pointer-events: none; } .ubo-icon > svg { height: 1em; width: 1em; } /* high dpi devices */ :root.hidpi button { font-family: Metropolis, sans-serif; font-weight: 600; } :root.hidpi .fieldset-header { font-family: Metropolis, sans-serif; } /* touch-screen devices */ :root.mobile label { flex-grow: 1 }