diff options
Diffstat (limited to 'browser/themes/shared/preferences')
20 files changed, 2390 insertions, 0 deletions
diff --git a/browser/themes/shared/preferences/android-menu.svg b/browser/themes/shared/preferences/android-menu.svg new file mode 100644 index 0000000000..1084f264a8 --- /dev/null +++ b/browser/themes/shared/preferences/android-menu.svg @@ -0,0 +1,6 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> + <path fill="context-fill" d="M14 6a2 2 0 11-4.001-.001A2 2 0 0114 6zm0 6a2 2 0 11-4.001-.001A2 2 0 0114 12zm-2 8a2 2 0 10-.001-4.001A2 2 0 0012 20z"/> +</svg> diff --git a/browser/themes/shared/preferences/category-general.svg b/browser/themes/shared/preferences/category-general.svg new file mode 100644 index 0000000000..952164e863 --- /dev/null +++ b/browser/themes/shared/preferences/category-general.svg @@ -0,0 +1,7 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20" fill="context-fill" fill-opacity="context-fill-opacity"> + <path d="m10.791 20-1.574 0a2.009 2.009 0 0 1-1.922-1.448l-.51-1.777a7.641 7.641 0 0 1-1.037-.604l-1.801.448a2.01 2.01 0 0 1-2.215-.94l-.787-1.364a2.012 2.012 0 0 1 .281-2.377l1.299-1.37A6.652 6.652 0 0 1 2.528 9.4L1.241 8.067a2.008 2.008 0 0 1-.293-2.389l.787-1.363a2.009 2.009 0 0 1 2.199-.945l1.84.442c.326-.225.664-.42 1.01-.586l.51-1.777A2.011 2.011 0 0 1 9.217 0l1.574 0c.879 0 1.668.589 1.918 1.432l.535 1.805c.334.162.663.354.981.574l1.84-.442a2.02 2.02 0 0 1 2.199.945l.787 1.363c.444.768.323 1.75-.293 2.389L17.472 9.4a6.606 6.606 0 0 1 .003 1.168l1.299 1.37a2.01 2.01 0 0 1 .281 2.376l-.787 1.363a2.005 2.005 0 0 1-2.215.94l-1.801-.448a7.558 7.558 0 0 1-1.009.593l-.535 1.805A2.01 2.01 0 0 1 10.791 20zm-5.066-5.37.637.132c.423.323.872.585 1.336.778l.432.485.606 2.112a.503.503 0 0 0 .481.362l1.574 0c.22 0 .417-.147.479-.358l.632-2.134.428-.478c.45-.19.89-.448 1.307-.768l.637-.132 2.141.533a.504.504 0 0 0 .554-.236l.787-1.363a.503.503 0 0 0-.07-.594l-1.537-1.621-.201-.608c.031-.241.052-.488.052-.74a5.94 5.94 0 0 0-.056-.771l.204-.617 1.531-1.587a.5.5 0 0 0 .073-.596l-.787-1.364a.503.503 0 0 0-.55-.236l-2.175.522-.627-.131a6.042 6.042 0 0 0-1.283-.75l-.427-.478-.632-2.133a.503.503 0 0 0-.48-.359l-1.574 0a.503.503 0 0 0-.481.362L8.13 3.974l-.433.485a5.972 5.972 0 0 0-1.31.759l-.628.133-2.175-.522a.504.504 0 0 0-.55.236l-.787 1.363a.503.503 0 0 0 .073.597l1.531 1.587.204.617A6.123 6.123 0 0 0 4 10c0 .252.021.499.051.742l-.2.608-1.537 1.621a.503.503 0 0 0-.07.594l.787 1.363a.503.503 0 0 0 .554.235l2.14-.533z"/> + <path d="M10 13.5c-1.93 0-3.5-1.57-3.5-3.5S8.07 6.5 10 6.5s3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5zM10 8c-1.103 0-2 .897-2 2s.897 2 2 2 2-.897 2-2-.897-2-2-2z"/> +</svg> diff --git a/browser/themes/shared/preferences/category-privacy-security.svg b/browser/themes/shared/preferences/category-privacy-security.svg new file mode 100644 index 0000000000..deecf8702f --- /dev/null +++ b/browser/themes/shared/preferences/category-privacy-security.svg @@ -0,0 +1,6 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20" fill="context-fill" fill-opacity="context-fill-opacity"> + <path d="M15.5 9 15 9l0-4A5 5 0 0 0 5 5l0 4-.5 0A2.5 2.5 0 0 0 2 11.5l0 6A2.5 2.5 0 0 0 4.5 20l11 0a2.5 2.5 0 0 0 2.5-2.5l0-6A2.5 2.5 0 0 0 15.5 9zm-9-4c0-1.93 1.57-3.5 3.5-3.5 1.93 0 3.5 1.57 3.5 3.5l0 4-7 0 0-4zm10 12.7-.8.8-11.4 0-.8-.8 0-6.4.8-.8 11.4 0 .8.8 0 6.4z"/> +</svg> diff --git a/browser/themes/shared/preferences/category-search.svg b/browser/themes/shared/preferences/category-search.svg new file mode 100644 index 0000000000..942846b673 --- /dev/null +++ b/browser/themes/shared/preferences/category-search.svg @@ -0,0 +1,6 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20" fill="context-fill" fill-opacity="context-fill-opacity"> + <path d="M13.685 12.074A6.957 6.957 0 0 0 15 8c0-3.859-3.14-7-7-7S1 4.141 1 8s3.14 7 7 7a6.953 6.953 0 0 0 4.087-1.324l.524-.006 5.11 5.11a.748.748 0 0 0 1.06 0 .75.75 0 0 0 0-1.061l-5.106-5.107.01-.538zM8 13.5c-3.033 0-5.5-2.468-5.5-5.5S4.967 2.5 8 2.5s5.5 2.468 5.5 5.5-2.467 5.5-5.5 5.5z"/> +</svg> diff --git a/browser/themes/shared/preferences/category-sync.svg b/browser/themes/shared/preferences/category-sync.svg new file mode 100644 index 0000000000..0af29ec1e1 --- /dev/null +++ b/browser/themes/shared/preferences/category-sync.svg @@ -0,0 +1,7 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20" fill="context-fill" fill-opacity="context-fill-opacity"> + <path d="m10 2.675 0-2.174a.5.5 0 0 0-.852-.355L6.295 2.97l0 .926 2.853 2.825A.5.5 0 0 0 10 6.366l0-2.191a5.823 5.823 0 0 1 4.434 9.602.75.75 0 0 0 1.141.974 7.327 7.327 0 0 0 1.749-4.75c.001-4.04-3.285-7.326-7.324-7.326z"/> + <path d="m10 13.634 0 2.191A5.831 5.831 0 0 1 4.175 10c0-1.372.486-2.704 1.369-3.751a.75.75 0 0 0-1.147-.967A7.328 7.328 0 0 0 2.675 10c0 4.039 3.286 7.325 7.325 7.325l0 2.174a.5.5 0 0 0 .852.355l2.853-2.825 0-.926-2.853-2.824a.5.5 0 0 0-.852.355z"/> +</svg> diff --git a/browser/themes/shared/preferences/containers-dialog.css b/browser/themes/shared/preferences/containers-dialog.css new file mode 100644 index 0000000000..36e8dfd8f2 --- /dev/null +++ b/browser/themes/shared/preferences/containers-dialog.css @@ -0,0 +1,50 @@ +/* Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +@import url("chrome://browser/content/usercontext/usercontext.css"); + +#name { + flex: 1; +} + +.radio-buttons { + flex-direction: row; + margin-inline-start: 0.35rem; +} + +.radio-buttons > radio { + user-select: none; + outline: 2px solid transparent; + outline-offset: 4px; + min-block-size: 24px; + min-inline-size: 24px; + border-radius: 50%; + padding: 2px; + margin: 9px; +} + +.icon-buttons > radio > .userContext-icon { + fill: var(--in-content-text-color); +} + +.radio-buttons > radio { + padding-inline-start: 2px; +} + +radio > .userContext-icon { + inline-size: 22px; + block-size: 22px; +} + +.radio-buttons > radio[selected=true] { + outline-color: var(--in-content-text-color); +} + +.radio-buttons > radio[focused=true] { + outline-color: var(--in-content-accent-color); +} + +.radio-buttons > radio:hover:active { + outline-color: var(--in-content-accent-color-active); +} diff --git a/browser/themes/shared/preferences/containers.css b/browser/themes/shared/preferences/containers.css new file mode 100644 index 0000000000..99eec279f8 --- /dev/null +++ b/browser/themes/shared/preferences/containers.css @@ -0,0 +1,50 @@ +/* Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +@import url("chrome://browser/content/usercontext/usercontext.css"); + +.container-header-links { + margin-block-end: 15px; +} + +[data-identity-icon] { + margin: 0; + margin-inline-end: 16px; +} + +#containersView { + border: 0; + background: transparent; + margin-block-end: 8px; +} + +#containersView richlistitem { + padding-block: 4px; + border-block-end: 1px solid var(--in-content-border-color); +} + +#containersView richlistitem > .container-buttons { + margin-inline-end: 4px; +} + +/* Crop the label at the end using CSS. This isn't using XUL crop + * and a value attribute because those labels cannot be highlighted + * by the prefs' find-in-page feature. + */ +.userContext-label-inprefs { + display: flex; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.userContext-icon-inprefs { + margin-inline: 4px 10px; + width: 24px; + height: 24px; +} + +#containersView richlistitem:last-of-type { + border-block-end: 0; +} diff --git a/browser/themes/shared/preferences/dialog.css b/browser/themes/shared/preferences/dialog.css new file mode 100644 index 0000000000..92704439bc --- /dev/null +++ b/browser/themes/shared/preferences/dialog.css @@ -0,0 +1,42 @@ +/* - This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this file, + - You can obtain one at http://mozilla.org/MPL/2.0/. */ + +window, +dialog { + appearance: none; + background-color: var(--in-content-page-background); + color: var(--in-content-page-color); + margin: 0; + padding: 0; +} + +/* Add some padding around the contents of the dialog */ +dialog { + padding: 6px; +} + +.contentPane, +dialog::part(content-box) { + flex: 1; + /* This allows the focus ring to display fully when scrolling is enabled. */ + padding: 4px; +} + +.contentPane.doScroll, +dialog.doScroll::part(content-box) { + overflow-y: auto; + contain: size; +} + +tree:not(#rejectsTree) { + min-height: 15em; +} + +.actionButtons { + margin: 3px 0 0; +} + +menulist label { + font-weight: unset; +} diff --git a/browser/themes/shared/preferences/fxaPairDevice.css b/browser/themes/shared/preferences/fxaPairDevice.css new file mode 100644 index 0000000000..51183b84c7 --- /dev/null +++ b/browser/themes/shared/preferences/fxaPairDevice.css @@ -0,0 +1,122 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#fxaPairDeviceDialog { + padding-bottom: 2em; +} + +#pairTitle { + font-size: 2.1rem; + font-weight: bold; + padding-top: 12px; + text-align: center; +} + +.pairHeading { + font-size: 1.08em; +} + +.menu-icon { + width: 20px; + height: 20px; + vertical-align: middle; + -moz-context-properties: fill; + fill: currentColor; +} + +#qrCodeDisplay { + width: 450px; + margin: auto; +} + +#qrWrapper { + position: relative; + width: 200px; + height: 200px; + margin: auto; + margin-top: 28px; +} + +#qrContainer { + height: 200px; + width: 200px; + background-size: contain; + image-rendering: -moz-crisp-edges; + transition: filter 250ms cubic-bezier(.07,.95,0,1); +} + +#qrWrapper:not([pairing-status="ready"]) #qrContainer { + opacity: 0.05; + filter: blur(3px); +} + +#qrWrapper:not([pairing-status="loading"]) #qrSpinner { + opacity: 0; +} + +#qrSpinner { + display: block; + position: absolute; + height: 250px; + width: 250px; +} + +#qrSpinner::before { + background-image: url("chrome://browser/skin/fxa/fxa-spinner.svg"); + animation: 0.9s spin infinite linear; + background-size: 36px; + background-repeat: no-repeat; + background-position: center; + display: block; + position: absolute; + height: 200px; + width: 200px; + content: ""; + transition: opacity 250ms cubic-bezier(.07,.95,0,1); + will-change: transform; + margin-inline: auto; +} + +#qrWrapper:not([pairing-status="error"]) #qrError { + display: none; +} + +#qrError { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + width: 200px; /* Same as #qrContainer */ + position: absolute; + inset: 0; + margin-inline: auto; + transition: opacity 250ms cubic-bezier(.07,.95,0,1); + cursor: pointer; +} + +.qr-error-text { + text-align: center; + user-select: none; + display: block; + color: #2484C6; + cursor: pointer; +} + +#refresh-qr { + width: 36px; + height: 36px; + background-image: url("chrome://global/skin/icons/reload.svg"); + background-size: contain; + -moz-context-properties: fill; + fill: #2484C6; +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/browser/themes/shared/preferences/ios-menu.svg b/browser/themes/shared/preferences/ios-menu.svg new file mode 100644 index 0000000000..15183a814d --- /dev/null +++ b/browser/themes/shared/preferences/ios-menu.svg @@ -0,0 +1,6 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> + <path fill="context-fill" d="M5 5h14a1 1 0 100-2H5a1 1 0 100 2M19 11H5a1 1 0 100 2h14a1 1 0 100-2M19 19H5a1 1 0 100 2h14a1 1 0 100-2"/> +</svg> diff --git a/browser/themes/shared/preferences/monitor-logo.svg b/browser/themes/shared/preferences/monitor-logo.svg new file mode 100644 index 0000000000..090e957395 --- /dev/null +++ b/browser/themes/shared/preferences/monitor-logo.svg @@ -0,0 +1,4 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<svg width="22" height="22" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg"><path d="m20.36 4.66-2.393-1.25L12.514.55l-.175-.09a3.189 3.189 0 0 0-2.885 0l-.175.09-7.662 4.02-.174.09C.557 5.13 0 5.99 0 6.93v8.4c0 .94.557 1.8 1.443 2.27l7.847 4.11c.579.3 1.311.12 1.639-.4a.974.974 0 0 0 .12-.83 1.115 1.115 0 0 0-.557-.66L2.82 15.8a.744.744 0 0 1-.416-.65V7.11c0-.27.153-.52.416-.65l1.355-.71 6.306-3.31a.91.91 0 0 1 .82 0l7.672 4.02c.251.13.415.38.415.65v8.05c0 .27-.153.52-.415.65l-2.601 1.36-1.312-1.81c1.322-1.07 2.077-2.61 2.077-4.22 0-3.13-2.81-5.68-6.263-5.68s-6.262 2.55-6.262 5.68 2.809 5.68 6.262 5.68c.722 0 1.432-.11 2.11-.33l1.989 2.75.098.12.022.02s.087.08.142.11c.01 0 .022.02.033.03.054.04.109.07.175.09l.043.02.164.06h.033c.066.03.131.04.197.04h.273c.066 0 .131-.02.197-.04.022 0 .032-.01.054-.02.055-.02.099-.04.153-.06.011 0 .022 0 .033-.01l3.749-1.96c.896-.47 1.442-1.33 1.442-2.27V6.93c0-.94-.557-1.8-1.442-2.27h.022ZM7.039 11.13c-.01-1.43.918-2.72 2.36-3.28 1.444-.55 3.105-.26 4.209.75 1.103 1.01 1.442 2.52.852 3.85-.59 1.32-2 2.18-3.563 2.18-2.12 0-3.836-1.56-3.858-3.5Z"/><path d="m20.36 4.66-2.393-1.25L12.514.55l-.175-.09a3.189 3.189 0 0 0-2.885 0l-.175.09-7.662 4.02-.174.09C.557 5.13 0 5.99 0 6.93v8.4c0 .94.557 1.8 1.443 2.27l7.847 4.11c.579.3 1.311.12 1.639-.4a.974.974 0 0 0 .12-.83 1.115 1.115 0 0 0-.557-.66L2.82 15.8a.744.744 0 0 1-.416-.65V7.11c0-.27.153-.52.416-.65l1.355-.71 6.306-3.31a.91.91 0 0 1 .82 0l7.672 4.02c.251.13.415.38.415.65v8.05c0 .27-.153.52-.415.65l-2.601 1.36-1.312-1.81c1.322-1.07 2.077-2.61 2.077-4.22 0-3.13-2.81-5.68-6.263-5.68s-6.262 2.55-6.262 5.68 2.809 5.68 6.262 5.68c.722 0 1.432-.11 2.11-.33l1.989 2.75.098.12.022.02s.087.08.142.11c.01 0 .022.02.033.03.054.04.109.07.175.09l.043.02.164.06h.033c.066.03.131.04.197.04h.273c.066 0 .131-.02.197-.04.022 0 .032-.01.054-.02.055-.02.099-.04.153-.06.011 0 .022 0 .033-.01l3.749-1.96c.896-.47 1.442-1.33 1.442-2.27V6.93c0-.94-.557-1.8-1.442-2.27h.022ZM7.039 11.13c-.01-1.43.918-2.72 2.36-3.28 1.444-.55 3.105-.26 4.209.75 1.103 1.01 1.442 2.52.852 3.85-.59 1.32-2 2.18-3.563 2.18-2.12 0-3.836-1.56-3.858-3.5Z"/><path d="m20.36 4.66-2.393-1.25-3.333-1.75a2.776 2.776 0 0 0-2.481-.03l-1.672.81a.91.91 0 0 1 .82 0l7.672 4.02c.251.13.415.38.415.65v8.05c0 .27-.153.52-.415.65l-2.601 1.36.404.59c.48.71 1.497.94 2.284.52l1.29-.67c.896-.47 1.442-1.33 1.442-2.27V6.93c0-.94-.557-1.81-1.442-2.27h.01Z"/><path d="M19.399 7.11v3.9h2.404V6.93c0-.94-.557-1.81-1.442-2.27l-2.394-1.25-3.333-1.75a2.776 2.776 0 0 0-2.481-.03l-1.672.81a.91.91 0 0 1 .82 0l7.672 4.02c.251.13.415.38.415.65h.01ZM19.399 11.64v3.51c0 .27-.153.52-.415.65l-2.601 1.36.404.59c.48.71 1.497.94 2.284.52l1.29-.67c.896-.47 1.442-1.33 1.442-2.27v-3.69H19.4ZM16.197 16.91l-1.126-1.55c-.601.49-1.3.87-2.066 1.12l1.203 1.65a49.5 49.5 0 0 0 2-1.22h-.011Z"/></svg> diff --git a/browser/themes/shared/preferences/mozilla-logo.svg b/browser/themes/shared/preferences/mozilla-logo.svg new file mode 100644 index 0000000000..af66da5135 --- /dev/null +++ b/browser/themes/shared/preferences/mozilla-logo.svg @@ -0,0 +1,5 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg"><path fill="context-fill" fill-rule="evenodd" d="M0 .5h20v20H0z +M17.702 13.46h1.256v2.04h-3.96v-5.476c0-1.72-.548-2.365-1.61-2.365-1.289 0-1.804.977-1.804 2.325v3.438h1.255v2.042H8.884V10.02c0-1.719-.547-2.365-1.61-2.365-1.289 0-2.01.977-2.01 2.325v3.438h2.002v2.046H1.474v-2.04H2.66V8.108H1.417v-2.43h3.578v1.535A3.873 3.873 0 0 1 8.3 5.505a3.03 3.03 0 0 1 3.058 2.123 3.14 3.14 0 0 1 3.06-2.123 3.123 3.123 0 0 1 3.252 3.404v4.551h.032z"/></svg> diff --git a/browser/themes/shared/preferences/preferences.css b/browser/themes/shared/preferences/preferences.css new file mode 100644 index 0000000000..2461212bba --- /dev/null +++ b/browser/themes/shared/preferences/preferences.css @@ -0,0 +1,1528 @@ +/* - This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this file, + - You can obtain one at http://mozilla.org/MPL/2.0/. */ + +@namespace html "http://www.w3.org/1999/xhtml"; + +/* Global rules */ +:root { + user-select: text; +} + +#preferences-root { + text-rendering: optimizeLegibility; +} + +@media not print { + #preferences-root, + #preferences-body { + height: 100%; + overflow: hidden; + } +} + +#preferences-root, +#preferences-body { + margin: 0; + padding: 0; + width: 100%; +} + +#preferences-body { + vertical-align: top; /* See bug 1606130 */ + display: flex; + flex-direction: column; + + --main-pane-width: 664px; +} + +/* + The stack has some very tall content but it shouldn't be taller than the + viewport (and we know the tall content will still be accessible via scrollbars + regardless if the stack has a shorter height). So we use min-height: 0 to allow + the stack to be smaller than its content height so it can fit the viewport size. +*/ +#preferences-stack { + min-height: 0; +} + +.main-content { + padding-top: 0; + /* the 32px min-height, plus 20+30px margin below, plus some leeway: */ + scroll-padding-top: 90px; + contain: inline-size; +} + +.pane-container { + /* A workaround to keep the container always float on the `top: 0` (Bug 1377009) */ + display: block; + width: min(100%, var(--main-pane-width)); + min-width: min-content; +} + +#mainPrefPane { + width: 100%; + padding: 0; +} + +groupbox[data-category] { + margin: 0 0 32px; +} + +html|h1 { + font-size: var(--font-size-xlarge); + margin: 0 0 var(--space-small); +} + +html|h2 { + font-size: var(--font-size-large); + margin: var(--space-small) 0 var(--space-xxsmall) 0; +} + +description.indent, +.indent:not(#browserPrivateEngineSelection) > description { + color: var(--text-color-deemphasized); + + /* Ensures margin on checkboxes, radios, and description don't create a big gap between the input and indented description */ + margin-top: calc(var(--space-xsmall) * -1); +} + +button, +treecol, +menulist, +html|select { + /* override the root rule */ + user-select: none; +} + +/* Buttons get a default min-width in XUL. When they also have flex, they will + * be large enough anyway, and we don't want them to become smaller than their inner + * text which would then overflow the button. Set min-width back to auto for that: + */ +button[flex] { + min-width: auto; +} + +description, +label { + margin: var(--space-xxsmall) 0; +} + +label { + margin: var(--space-xxsmall) 0; + + &.tail-with-learn-more + a { + margin-block: var(--space-xxsmall); + margin-inline: var(--space-small) 0; + } +} + +.description-deemphasized { + color: var(--text-color-deemphasized); +} + +.tip-caption { + font-size: .9em; + color: var(--text-color-deemphasized); +} + +menulist::part(label), +menuitem > label, +button > hbox > label { + line-height: unset; +} + +.indent { + margin-inline-start: calc(var(--checkbox-size) + var(--checkbox-margin-inline)) !important; +} + +checkbox, +radio { + margin: var(--space-small) 0; + + &.tail-with-learn-more + a { + margin-block: var(--space-small); + margin-inline: var(--space-small) 0; + } +} + +/* Add a bit of space to the end of descriptions to + * leave margin with e.g. additional buttons on the side. */ +.description-with-side-element { + margin-inline-end: 10px !important; +} + +.learnMore { + margin-inline-start: 0; + font-weight: normal; + white-space: nowrap; +} + +.accessory-button { + min-width: 150px; + margin: 4px 0; +} + +.spotlight { + background-color: color-mix(in srgb, var(--in-content-accent-color) 15%, transparent); + outline: var(--in-content-accent-color) 1px dotted; + animation: fade-out 0.5s ease-out 2s forwards; + /* Show the border to spotlight the components in high-contrast mode. */ + border: 1px solid transparent; + border-radius: 2px; +} + +@keyframes fade-out { + 100% { + background-color: transparent; + outline-color: transparent; + } +} + +[data-subcategory] { + margin-inline: -4px; + padding-inline: 4px; +} + +.ac-site-icon { + display: flex; +} + +/* Subcategory title */ + +/** + * The first subcategory title for each category should not have margin-top. + */ + +.subcategory:not([hidden]) ~ .subcategory { + padding-top: var(--space-xlarge); + border-top: 1px solid var(--in-content-border-color); +} + +/* Category List */ + +#categories { + overflow: visible; + min-height: auto; + padding: 1px; /* Adding padding around richlistitem in order to make entire keyboard focusing outline visible */ +} + +#category-general > .category-icon { + list-style-image: url("chrome://browser/skin/preferences/category-general.svg"); +} + +#category-home > .category-icon { + list-style-image: url("chrome://browser/skin/home.svg"); +} + +#category-search > .category-icon { + list-style-image: url("chrome://browser/skin/preferences/category-search.svg"); +} + +#category-privacy > .category-icon { + list-style-image: url("chrome://browser/skin/preferences/category-privacy-security.svg"); +} + +#category-sync > .category-icon { + list-style-image: url("chrome://browser/skin/preferences/category-sync.svg"); +} + +#category-experimental > .category-icon { + list-style-image: url("chrome://global/skin/icons/experiments.svg"); +} + +#category-more-from-mozilla > .category-icon { + list-style-image: url("chrome://browser/skin/preferences/mozilla-logo.svg"); +} + +/* All panes */ + +.info-icon, +.androidIcon, +.iOSIcon { + -moz-context-properties: fill; + fill: currentColor; +} + +/* General Pane */ + +.is-default > #isNotDefaultPane, +:not(.is-default) > #isDefaultPane { + visibility: hidden; +} + +#isDefaultLabel, +#isNotDefaultLabel { + font-weight: var(--font-weight-bold); +} + +/* stylelint-disable-next-line media-query-no-invalid */ +@media not (-moz-bool-pref: "browser.migrate.preferences-entrypoint.enabled") { + #dataMigrationGroup { + display: none; + } +} + +#dataMigration { + /* This should really be using baseline, but that doesn't work properly with + * the <description> and XUL <button> markup. */ + align-items: center; +} + +#browserContainersExtensionContent { + padding-block: 5px; +} + +.extension-controlled { + margin-block: 18px; +} + +.extension-controlled-icon { + height: 20px; + margin: 2px 0 6px; + vertical-align: middle; + width: 20px; + -moz-context-properties: fill; + fill: currentColor; +} + +.extension-controlled-disabled { + -moz-context-properties: fill; + color: GrayText; + fill: currentColor; +} + +.extension-controlled-disabled > .extension-controlled-button { + display: none; +} + +.extension-controlled-icon.close-icon { + height: 30px; + width: 30px; + margin-inline-start: 5px; +} + +#getStarted { + font-size: 90%; +} + +#colors { + margin-inline-start: 5px; +} + +#FontsDialog menulist:empty { + /* When there's no menupopup, while the font builder is running, + * the height of the menulist would otherwise shrink. This throws + * off the height determination SubDialog.sys.mjs does, which then + * leads to content being cut off. Fix by enforcing a minimum height + * when there's no content: */ + min-height: max(32px, calc(1.4em + 16px)); +} + +#useDocumentColors { + margin: 4px 0; +} + +#activeLanguages > richlistitem { + padding: 0.3em; +} + +#saveWhere { + align-items: center; +} + +#saveTo { + margin-inline-end: 1em; +} + +#downloadFolder { + flex: 1; + margin-block: 4px; + margin-inline-start: 0; + padding-inline-start: 30px; + background-repeat: no-repeat; + background-size: 16px; + background-position: center left 8px; +} + +#downloadFolder:-moz-locale-dir(rtl) { + background-position-x: right 8px; +} + +#updateBox { + margin-block: 4px 32px; +} + +/* Work around bug 560067 - animated images in visibility: hidden + * still eat CPU. */ +#updateDeck > *:not(.deck-selected) > .update-throbber { + display: none; +} + +#updateDeck > hbox > button { + margin-block: 0; + margin-inline-end: 0; +} + +#updateDeck > hbox > label { + flex: 1; + margin-inline-end: 5px !important; +} + +.manualLink { + margin-inline-start: 6px !important; +} + +#updateRadioGroup > radio { + min-height: 30px; + margin: 2px 0; +} + +#filter { + margin: 4px 0 8px; +} + +#handlersView { + height: 25em; + margin-inline-end: 0; +} + +#handlersView > richlistitem { + min-height: 30px; +} + +#handlersView .actionsMenu { + margin: 0; + min-height: 0; + padding: 0; + border: none; + padding-inline-end: 8px; +} + +#handlersView .actionsMenu::part(label) { + margin: 0; +} + +.typeIcon, +.actionIcon, +.actionsMenu::part(icon) { + height: 16px; + width: 16px; +} + +.typeIcon { + margin-inline: 10px 9px !important; +} + +#handlersView .actionsMenu::part(icon), +.actionIcon { + margin-inline: 11px 8px !important; +} + +.actionsMenu > menupopup > menuitem { + padding-inline-start: 10px !important; +} + +.actionsMenu > menupopup > menuitem > .menu-iconic-left { + margin-inline-end: 8px !important; +} + +/* Increase the specifity to override common.inc.css */ +richlistitem[selected] .actionsMenu:focus-visible { + outline-offset: -3px; +} + +/* Home Pane */ + +#homepageGroup menulist, +#homepageGroup html|input { + margin: var(--space-xsmall) 0; +} + +#homepageGroup html|input { + text-align: match-parent; +} + +#homepageGroup:-moz-locale-dir(rtl) html|input { + unicode-bidi: plaintext; +} + +#homepageAndNewWindowsOption { + margin-top: 20px; +} + +#homepageGroup:-moz-locale-dir(rtl) panel[type="autocomplete-richlistbox"] { + direction: rtl; +} + +.homepage-buttons > .homepage-button { + flex: 1 auto; +} + +.homepage-button:first-of-type { + margin-inline-start: 0; +} + +.homepage-button:last-of-type { + margin-inline-end: 0; +} + +#homeContentsGroup .checkbox-icon[src] { + -moz-context-properties: fill; + fill: currentColor; + margin-inline-end: var(--checkbox-margin-inline); + width: 16px; +} + +#homeContentsGroup [data-subcategory] { + margin-top: 14px; +} + +#homeContentsGroup [data-subcategory] .section-checkbox { + font-weight: var(--font-weight-bold); +} + +#homeContentsGroup [data-subcategory] > vbox menulist { + margin-block: 0; +} + +#homeContentsGroup .checkbox-label { + margin-inline-end: var(--space-small); +} + +.addon-with-favicon .menu-iconic-icon { + margin-inline-start: 0; +} + +a[is="moz-support-link"]:not(.sidebar-footer-link) { + display: inline-block; + white-space: initial; +} + +/* Search Pane */ + +#engineList { + margin: 2px 0 5px; +} + +#engineList > treechildren::-moz-tree-image(engineShown, checked), +#blocklistsTree > treechildren::-moz-tree-image(selectionCol, checked) { + list-style-image: url("chrome://global/skin/icons/check.svg"); + -moz-context-properties: fill, stroke; + fill: var(--in-content-accent-color); +} + +#engineList > treechildren::-moz-tree-image(engineShown, checked, selected), +#blocklistsTree > treechildren::-moz-tree-image(selectionCol, checked, selected) { + fill: var(--in-content-item-selected-text); + stroke: var(--in-content-item-selected); +} + +@media (prefers-contrast) { + #engineList > treechildren::-moz-tree-image(hover), + #blocklistsTree > treechildren::-moz-tree-image(hover) { + fill: var(--in-content-item-hover-text); + stroke: var(--in-content-item-hover); + } +} + +#engineList > treechildren::-moz-tree-row, +#blocklistsTree > treechildren::-moz-tree-row { + min-height: 36px; +} + +#selectionCol { + min-width: 26px; +} + +#addEnginesBox { + margin: 4px 0 0; +} + +/* Privacy Pane */ + +#allowSmartSize { + margin-block: 0 4px; +} + +#historyPane { + margin-top: 4px; +} + +#historyButtons { + display: flex; + flex-direction: column; + justify-content: space-between; +} + +#blockCookies, +#keepRow { + margin-top: 1.5em; +} + +/* Collapse the non-active vboxes in decks to use only the height the + active vbox needs */ +#historyPane:not([selectedIndex="1"]) > #historyDontRememberPane, +#historyPane:not([selectedIndex="2"]) > #historyCustomPane, +#weavePrefsDeck:not([selectedIndex="1"]) > #hasFxaAccount, +#fxaLoginStatus:not([selectedIndex="1"]) > #fxaLoginUnverified, +#fxaLoginStatus:not([selectedIndex="2"]) > #fxaLoginRejected, +#syncStatus:not([selectedIndex="1"]) > #syncConfigured { + visibility: collapse; +} + +#tabsElement { + margin-inline-end: 4px; /* add the 4px end-margin of other elements */ +} + +.text-link { + margin-bottom: 0; +} + +.text-link[disabled="true"] { + pointer-events: none; +} + +#showUpdateHistory { + margin-inline-start: 0; +} + +/** + * Dialog + */ + +.dialogOverlay { + visibility: hidden; +} + +html|dialog { + padding: 24px; +} + +html|dialog::backdrop, +.dialogOverlay[topmost="true"] { + background-color: rgba(0,0,0,0.5); +} + +html|dialog, +.dialogBox { + border: 1px solid transparent; + border-radius: 8px; + box-shadow: 0 2px 6px 0 rgba(0,0,0,0.3); +} + +.dialogBox { + background-color: var(--in-content-page-background); + background-clip: content-box; + color: var(--in-content-page-color); + /* `transparent` will use the dialogText color in high-contrast themes and + when page colors are disabled */ + display: flex; + margin: 0; + padding: 0; + overflow-x: auto; +} + +@media (prefers-color-scheme: dark) { + @media not (prefers-contrast) { + html|dialog, + .dialogBox { + --in-content-page-background: #42414d; + } + } +} + +.dialogBox[resizable="true"] { + resize: both; + overflow: hidden; + min-height: 20em; + min-width: 66ch; +} + +.dialogTitleBar { + padding: .4em .2em; + border-bottom: 1px solid var(--in-content-border-color); +} + +.dialogTitle { + font-weight: var(--font-weight-bold); + text-align: center; + user-select: none; +} + +.fxaPairDeviceIcon { + background-image: url("chrome://browser/content/logos/fxa-logo.svg"); + background-position: center center; + background-repeat: no-repeat; + position: relative; + height: 80px; + padding-top: 42px; + margin-top: -40px; +} + +.fxaPairDeviceIcon .close-icon { + margin-top: 10px; +} + +.close-icon { + border: none; + background-color: transparent; /* override common.css, but keep hover/active states */ + min-width: 0; + min-height: auto; + width: 20px; + height: 20px; + padding: 0; + margin-inline: 0 8px; +} + +.dialogFrame { + margin: 10px; + flex: 1; + /* Default dialog dimensions */ + min-width: 66ch; +} + +/** + * End Dialog + */ + +/** + * Font group and font dialog menulist fixes + */ + +#font-chooser-group { + display: grid; + grid-template-columns: max-content 1fr max-content max-content; +} + +#defaultFont { + flex: 1 25ch; +} + +#defaultFontType, +#serif, +#sans-serif, +#monospace { + width: 0; /* Might be able to be removed */ + min-width: 30ch; +} + +/** + * Sync + */ + +.fxaProfileImage { + width: 80px; + height: 80px; + border-radius: 50%; + border: 1px solid transparent; + list-style-image: url(chrome://browser/skin/fxa/avatar-color.svg); + margin-inline-end: 24px; + -moz-user-focus: normal; +} + +.fxaProfileImage.actionable { + cursor: pointer; +} + +.fxaProfileImage.actionable:hover { + border-color: #0095DD; +} + +.fxaProfileImage.actionable:hover:active { + border-color: #ff9500; +} + +#useFirefoxSync { + font-size: 90%; + margin-inline-end: 8px !important; +} + +#fxaNoLoginStatus { + margin-block: 46px 64px; +} + +#fxaSyncComputerName { + flex: 1; + margin-block: 4px; + margin-inline-start: 0; +} + +#fxaChangeDeviceName { + margin-block: 4px; + margin-inline-end: 0; +} + +#noFxaAccount > label:first-child { + margin-bottom: 0.6em; +} + +#noFxaCaption { + margin-block: 0 4px; +} + +#noFxaSignIn { + margin-inline-start: 8px; +} + +.fxaSyncIllustration { + list-style-image: url(chrome://browser/skin/fxa/sync-devices.svg); + width: 312px; + height: 136px; +} + +#noFxaDescription { + padding-inline-end: 52px; +} + +.separator { + border-bottom: 1px solid var(--in-content-box-border-color); +} + +#fxaGroup { + margin-bottom: 32px; +} + +.openLink { + cursor: pointer; +} + +#fxaDisplayName { + margin-inline-end: 10px !important; +} + +.fxaLoginRejectedWarning { + list-style-image: url(chrome://global/skin/icons/warning.svg); + -moz-context-properties: fill; + fill: #FFBF00; + margin-inline: 4px 8px; +} + +#syncStatus { + margin-top: 32px; +} + +.sync-group { + margin-block: 16px; + border: 1px solid var(--in-content-border-color); +} + +.sync-configured { + display: block; +} + +.sync-choose-dialog-description { + margin-block-end: 10px; +} + +.sync-engines-list > div, +.sync-engines-list + hbox { + margin-top: 0; + padding-top: 16px; + max-width: 300px; + height: auto; +} + +dialog > .sync-engines-list > div, +dialog > .sync-engines-list + hbox { + padding-top: 0; +} + +.sync-engines-list checkbox .checkbox-icon, +.sync-engine-image { + display: flex; + margin-inline: 2px 8px; + width: 16px; + height: 16px; + -moz-context-properties: fill; + fill: currentColor; + align-self: center; +} + +.sync-engines-list checkbox { + min-width: max-content; + max-width: calc(50vw - 10px); +} + +.sync-engines-list .checkbox-label-box { + align-items: center; +} + +.sync-engines-list { + column-count: 2; + column-fill: balance; + margin-block-end: 10px; +} + +.sync-engines-list > div:not([hidden]) { + display: flex; + break-inside: avoid; +} + +.sync-engine-bookmarks .checkbox-icon, +.sync-engine-bookmarks.sync-engine-image { + list-style-image: url("chrome://browser/skin/bookmark.svg"); +} + +.sync-engine-history .checkbox-icon, +.sync-engine-history.sync-engine-image { + list-style-image: url("chrome://browser/skin/history.svg"); +} + +.sync-engine-tabs .checkbox-icon, +.sync-engine-tabs.sync-engine-image { + list-style-image: url("chrome://browser/skin/synced-tabs.svg"); +} + +.sync-engine-passwords .checkbox-icon, +.sync-engine-passwords.sync-engine-image { + list-style-image: url("chrome://browser/skin/login.svg"); +} + +.sync-engine-addons .checkbox-icon, +.sync-engine-addons.sync-engine-image { + list-style-image: url("chrome://mozapps/skin/extensions/extension.svg"); +} + +.sync-engine-prefs .checkbox-icon, +.sync-engine-prefs.sync-engine-image { + list-style-image: url("chrome://global/skin/icons/settings.svg"); +} + +.sync-engine-addresses .checkbox-icon, +.sync-engine-addresses.sync-engine-image { + list-style-image: url("chrome://formautofill/content/formfill-anchor.svg"); +} + +.sync-engine-creditcards .checkbox-icon, +.sync-engine-creditcards.sync-engine-image { + list-style-image: url("chrome://formautofill/content/icon-credit-card-generic.svg"); +} + +.fxaMobilePromo { + margin-top: 2px !important; +} + +.androidIcon, +.iOSIcon { + margin-inline: 2px 4px; + width: 20px; + height: 20px; + vertical-align: text-bottom; +} + +.update-throbber { + width: 16px; + min-height: 16px; + margin-block: 7px; + margin-inline-end: 8px; + vertical-align: middle; +} + +.update-throbber { + content: image-set(url("chrome://global/skin/icons/loading.png"), url("chrome://global/skin/icons/loading@2x.png") 2x); +} + +.navigation { + overflow-x: hidden; + overflow-y: auto; + position: relative; +} + +@media (prefers-reduced-motion) { + /* Setting border-inline-end on .navigation makes it a focusable element */ + .navigation::after { + content: ""; + width: 1px; + height: 100%; + background-color: var(--in-content-border-color); + top: 0; + inset-inline-end: 0; + position: absolute; + } +} + +.face-sad::before { + content: "\01F641"; + font-size: 1.3em; + margin-inline-end: 8px; +} + +.face-smile::before { + content: "\01F600"; + font-size: 1.3em; + margin-inline-end: 8px; +} + +#policies-container, +#searchInput { + min-height: 32px; + margin: 20px 0 30px; +} + +#policies-container { + margin-inline-end: 16px; + /* Make sure the container is at least the same height as the searchbox. + This is needed in addition to the min-height above to make the info icon + the same height as the first line in the policies label. + Searchbox's height - line-height - border top and bottom */ + padding-block: max(0px, calc((32px - 1.8em - 2px) / 2)); +} + +.info-box-container { + background-color: var(--in-content-box-info-background); + padding: 9px; + border: 1px solid transparent; + border-radius: 4px; +} + +.info-box-container.smaller-font-size { + font-size: 85%; +} + +.info-icon-container { + display: flex; +} + +.info-icon { + content: url("chrome://global/skin/icons/info.svg"); + width: 16px; + height: 16px; + margin-inline-end: 6px; + align-self: start; + margin-top: 0.4em; + flex-shrink: 0; +} + +.info-box-container.smaller-font-size .info-icon { + margin-top: 0.3em; +} + +.sticky-container { + position: sticky; + background-color: var(--in-content-page-background); + top: 0; + z-index: 1; + /* The sticky-container should have the capability to cover all spotlight area. */ + width: calc(100% + 8px); + margin-inline: -4px; + padding-inline: 4px; +} + +.sticky-inner-container { + flex: 1; + max-width: var(--main-pane-width); +} + +.search-tooltip { + max-width: 10em; + font-size: 1rem; + position: absolute; + padding: 0 .7em; + background-color: #ffe900; + color: #000; + border: 1px solid #d7b600; + margin-top: -18px; + opacity: .85; +} + +.search-tooltip:hover { + opacity: .1; +} + +.search-tooltip::before { + position: absolute; + content: ""; + border: 7px solid transparent; + border-top-color: #d7b600; + top: 100%; + inset-inline-start: calc(50% - 7px); + forced-color-adjust: none; +} + +.search-tooltip::after { + position: absolute; + content: ""; + border: 6px solid transparent; + border-top-color: #ffe900; + top: 100%; + inset-inline-start: calc(50% - 6px); + forced-color-adjust: none; +} + +@media (forced-colors: active) { + .search-tooltip::before { + border-top-color: CanvasText; + } + + .search-tooltip::after { + border-top-color: Canvas; + } +} + +.search-tooltip-parent { + position: relative; +} + +.search-tooltip > span { + display: block; + user-select: none; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.visually-hidden { + visibility: collapse; +} + +menulist[indicator=true] > menupopup menuitem:not([image]) > .menu-iconic-left { + display: flex; + min-width: auto; /* Override the min-width defined in menu.css */ + margin-inline-end: 6px; +} + +menulist[indicator=true] > menupopup menuitem:not([image]) > .menu-iconic-left > .menu-iconic-icon { + width: 8px; + height: 10px; + margin: 0; +} + +menulist[indicator=true] > menupopup menuitem[indicator=true]:not([image]) > .menu-iconic-left > .menu-iconic-icon { + list-style-image: url(chrome://browser/skin/preferences/search-arrow-indicator.svg); +} + +menulist[indicator=true] > menupopup menuitem[indicator=true]:not([image]) > .menu-iconic-left > .menu-iconic-icon:-moz-locale-dir(rtl) { + transform: scaleX(-1); +} + +.menu-iconic-highlightable-text { + margin: 0; /* Align with the margin of xul:label.menu-iconic-text */ +} + +#no-results-message > label { + margin: 2px 0; +} + +/* Proxy port input */ + +.proxy-port-input { + width: calc(5ch + 18px); /* 5 chars + (8px padding + 1px border) on both sides */ + margin-inline-start: 4px; +} + +#primaryBrowserLocale { + margin-inline-start: 0; + min-width: 20em; +} + +#availableLanguages, +#availableLocales { + margin-inline-start: 0; +} + +#availableLanguages, +#availableLocales, +#activeLanguages, +#selectedLocales { + margin-inline-end: 4px; +} + +#activeLanguages, +#selectedLocales { + min-height: 15em; + contain: size; +} + +#selectedLocales > richlistitem { + padding-inline-start: 13px; +} + +#warning-message > .message-bar-description { + width: 32em; +} + +#warning-message { + margin-top: 8px; +} + +.action-button { + margin-inline-end: 0; +} + +.languages-grid { + flex: 1; + display: grid; + grid-template-rows: 1fr auto; + grid-template-columns: 1fr auto; +} + +/* Menulist styles */ +.label-item { + font-size: 0.8em; +} + +.updateSettingCrossUserWarningContainer { + margin-block-end: 17px; +} + +#updateSettingCrossUserWarningDesc { + padding-inline-start: calc(16px + 6px); /* radio-check's width + margin-inline-end */ + margin-block-start: 20px; +} + +richlistitem .text-link { + color: inherit; + text-decoration: underline; +} + +richlistitem .text-link:hover { + color: inherit; +} + +#proxy-grid, +#dnsOverHttps-grid { + display: grid; + grid-template-columns: auto 1fr; + align-items: center; +} + +.proxy-grid-row:not([hidden]), +.dnsOverHttps-grid-row:not([hidden]) { + display: contents; +} + +#proxy-grid > .thin { + grid-column: span 2; + height: 20px; +} + +#pane-experimental-search-results-header, +#pane-experimental-subtitle { + background-image: url("chrome://global/skin/icons/warning.svg"); + background-repeat: no-repeat; + background-position: 0 center; + background-size: contain; + min-height: 30px; + padding-inline-start: 38px; + display: flex; + align-items: center; + -moz-context-properties: fill; + fill: #FFBF00; +} + +#pane-experimental-search-results-header:-moz-locale-dir(rtl), +#pane-experimental-subtitle:-moz-locale-dir(rtl) { + background-position-x: right; +} + +#pane-experimental-featureGates { + margin-top: 16px; +} + +.featureGate { + margin-bottom: 16px; +} + +.featureGateCheckbox { + font-size: 1.14em; + align-items: center; +} + +.featureGateCheckbox > .checkbox-label-box { + align-items: center; +} + +.featureGateDescription { + margin-inline-start: calc(var(--checkbox-size) + var(--checkbox-margin-inline)); +} + +.checkbox-row { + display: flex; + align-items: baseline; +} + +.checkbox-row input[type=checkbox] { + translate: 0 2px +} + +.checkbox-row a { + margin-inline-start: 6px; +} + +#moreFromMozillaCategory-header .subtitle { + margin-block-end: 24px; +} + +#moreFromMozillaCategory:not([hidden]) { + display: flex; + flex-direction: column; +} + +#moreFromMozillaCategory .mozilla-product-item { + margin-top: 30px; +} + +#moreFromMozillaCategory .product-title { + margin: 4px 0 3px; + background-repeat: no-repeat; + background-size: contain; + padding-inline-start: 30px; + -moz-context-properties: fill; + fill: currentColor; +} + +#moreFromMozillaCategory .product-title:-moz-locale-dir(rtl) { + background-position-x: right; +} + +#moreFromMozillaCategory .product-description-box { + padding-inline-start: 30px; + margin: 2px 0; +} + +#moreFromMozillaCategory .description { + display: inline; +} + +#moreFromMozillaCategory .small-button { + margin-block: 14px 2px; + margin-inline: 30px 0; +} + +#firefox-mobile { + background-image: url("chrome://browser/skin/device-phone.svg"); +} + +#mozilla-vpn { + background-image: url("chrome://browser/skin/preferences/vpn-logo.svg"); +} + +#mozilla-monitor { + background-image: url("chrome://browser/skin/preferences/monitor-logo.svg"); +} + +#firefox-relay { + background-image: url("chrome://browser/skin/preferences/relay-logo.svg"); +} + +/* + * The :not clause is required because hiding an element with `display: flex` only + * partially hides it. + */ +.qr-code-box:not([hidden="true"]) { + max-width: 320px; /* a unit better than px for this & next? */ + min-height: 204px; + margin-block: 10px 0; + margin-inline-start: 30px; + background-color: var(--in-content-box-info-background); + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-evenly; + border-radius: 4px; +} + +@media (prefers-contrast) { + .qr-code-box:not([hidden="true"]) { + border: 1px solid currentColor; + } +} + +.qr-code-box-image { + border-radius: 4px; + padding: 2px; + width: 80px; + flex: 0 0 auto; + -moz-context-properties: fill; + fill: currentColor; +} + +.qr-code-title-label { + flex: 1 1 auto; +} + +.qr-code-box-title { + font-size: .87em; + font-weight: normal; + + text-align: center; + + margin-block: 20px 0; + margin-inline: 40px; +} + +.simple .qr-code-box-title { + margin-block: 0; + width: 296px; +} + +.simple .qr-code-box { + padding-inline: 24px; + padding-block: 20px +} + +.simple .qr-code-box-image { + padding: 10px; +} + +#moreFromMozillaCategory .qr-code-link { + font-size: .87em; +} + +@media (prefers-color-scheme: dark) { + .qr-code-box:not([hidden="true"]) { + background-color: rgba(91,91,102,0.45); + } + + .qr-code-box-title { + color: #fbfbfe; + } +} + +#websiteAppearanceGroup { + display: block; +} + +#web-appearance-chooser { + display: flex; + justify-content: space-between; + gap: 16px; +} + +#web-appearance-chooser, +#web-appearance-override-warning, +#text-zoom-override-warning { + margin: 12px 0; +} + +#web-appearance-override-warning:not([hidden]) { + display: flex; +} + +.web-appearance-choice { + width: 100%; + border: 1px solid var(--in-content-box-border-color); + background-color: var(--in-content-box-background-color); + color: var(--in-content-text-color); + border-radius: 4px; + overflow: clip; +} + +.web-appearance-choice-image-container { + background-color: var(--in-content-button-background); + padding: 12px 0; +} + +.web-appearance-choice:hover > .web-appearance-choice-image-container { + background-color: var(--in-content-button-background-hover); +} + +.web-appearance-choice:hover:active > .web-appearance-choice-image-container { + background-color: var(--in-content-button-background-active); +} + +.web-appearance-choice img { + display: block; + margin: 0 auto; + + border: 1px solid var(--in-content-box-border-color); + border-radius: 4px; + box-shadow: 0 0 2px 0 rgba(0,0,0,0.2); + + transform: scaleX(1); + content: url("chrome://browser/content/preferences/web-appearance-light.svg") +} + +.web-appearance-choice.dark img { + content: url("chrome://browser/content/preferences/web-appearance-dark.svg") +} + +.web-appearance-choice img:-moz-locale-dir(rtl) { + transform: scaleX(-1); +} + +.web-appearance-choice-footer { + border-top: 1px solid var(--in-content-box-border-color); + padding: 4px 8px; + overflow-wrap: anywhere; + display: flex; +} + +#translations-manage-install-list { + height: 220px; + overflow: auto; + background-color: var(--in-content-box-background); + border: 1px solid var(--in-content-box-border-color); + border-radius: 4px; + resize: vertical; + margin: 4px 0; +} + +.translations-manage-language:first-child { + border-bottom: 1px solid var(--in-content-box-border-color); + padding: 8px; + margin-bottom: 8px; +} + +.translations-manage-language { + align-items: center; + padding: 0 8px; +} + +.translations-manage-language > label { + flex: 1; + margin: 0 15px; +} + +#translations-manage-error { + color: var(--text-color-error); + margin: 16px 0; +} + +.hidden-category { + display: none; +} +/* Platform-specific tweaks & overrides */ + +@media (-moz-platform: macos) { + tabpanels { + padding: 20px 7px 7px; + } + + #browserUseCurrent, + #browserUseBookmark, + #browserUseBlank { + margin-top: 10px; + } + + #privacyPrefs { + padding: 0 4px; + } + + #privacyPrefs > tabpanels { + padding: 18px 10px 10px; + } + + #OCSPDialogPane { + font: message-box !important; + } + + /** + * Update Preferences + */ + #autoInstallOptions { + margin-inline-start: 20px; + } + + .updateControls { + margin-inline-start: 10px; + } +} + +@media (-moz-platform: linux) { + .treecol-sortdirection { + /* override the Linux only toolkit rule */ + appearance: none; + } +} diff --git a/browser/themes/shared/preferences/privacy.css b/browser/themes/shared/preferences/privacy.css new file mode 100644 index 0000000000..ca56927b02 --- /dev/null +++ b/browser/themes/shared/preferences/privacy.css @@ -0,0 +1,345 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* Permissions */ + +.highlighting-group { + --section-highlight-background-color: color-mix(in srgb, var(--in-content-accent-color) 20%, transparent); +} + +.permission-icon { + width: 20px; + height: 20px; + vertical-align: middle; + margin-inline-end: var(--space-xsmall); + + + label { + vertical-align: middle; + } +} + +.permission-icon, +.privacy-detailedoption .checkbox-label-box, +.extra-information-label > image, +.arrowhead, +.reload-tabs-button, +.content-blocking-warning-image { + -moz-context-properties: fill; + fill: currentColor; +} + +.geo-icon { + list-style-image: url(chrome://browser/skin/notification-icons/geo.svg); +} + +.xr-icon { + list-style-image: url(chrome://browser/skin/notification-icons/xr.svg); +} + +.camera-icon { + list-style-image: url(chrome://browser/skin/notification-icons/camera.svg); +} + +.microphone-icon { + list-style-image: url(chrome://browser/skin/notification-icons/microphone.svg); +} + +.speaker-icon { + list-style-image: url(chrome://browser/skin/notification-icons/speaker.svg); +} + +.desktop-notification-icon { + list-style-image: url(chrome://browser/skin/notification-icons/desktop-notification.svg); +} + +.autoplay-icon { + list-style-image: url(chrome://browser/skin/notification-icons/autoplay-media.svg); +} + +.midi-icon { + list-style-image: url(chrome://browser/skin/notification-icons/midi.svg); +} + +/* Content Blocking */ + +/* Override styling that sets descriptions as grey */ +#trackingGroup description.indent, +#trackingGroup .indent > description { + color: inherit; +} + +[data-subcategory="trackingprotection"] { + margin-top: 10px; +} + +#trackingProtectionShield { + list-style-image: url("chrome://browser/skin/controlcenter/tracking-protection.svg"); + -moz-context-properties: fill, fill-opacity; + fill: currentColor; + fill-opacity: 0.5; + width: 64px; + height: 64px; + margin-inline-end: 10px; +} + +.privacy-detailedoption, +#fpiIncompatibilityWarning, +#rfpIncompatibilityWarning { + margin: 3px 0; +} + +#fpiIncompatibilityWarning, +#rfpIncompatibilityWarning { + background-color: var(--section-highlight-background-color); +} + +#fpiIncompatibilityWarning, +#rfpIncompatibilityWarning, +#contentBlockingCategories { + margin-top: 16px; +} + +.privacy-detailedoption { + border-color: var(--in-content-box-border-color); +} + +.privacy-detailedoption.disabled { + opacity: 0.5; +} + +.privacy-detailedoption.disabled .radio-check { + opacity: 1; +} + +.privacy-detailedoption > .indent { + margin-inline-end: 22px; +} + +.arrowhead { + border-radius: 2px; + min-height: 20px; + min-width: 20px; + max-height: 20px; + max-width: 20px; + list-style-image: url("chrome://global/skin/icons/arrow-down-12.svg"); + background-color: transparent; + padding: 3px; +} + +.arrowhead:not([disabled]):hover { + cursor: pointer; +} + +.arrowhead.up { + list-style-image: url("chrome://global/skin/icons/arrow-up-12.svg"); +} + +.privacy-detailedoption.expanded:not(.selected) .reload-tabs { + display: none; +} + +.content-blocking-warning.reload-tabs:not([hidden]) { + display: flex; + flex-wrap: wrap; +} + +.content-blocking-reload-desc-container { + /* 345px is enough for (almost) twice the size of the default English + * string at default font sizes. If this and the button do not fit + * on one line, the button will get wrapped to the next line and this + * item will stretch to fill all available space. */ + flex: 1 1 345px; + display: flex; + align-self: center; +} + +.content-blocking-reload-description { + margin-inline-end: 5px; +} + +.reload-tabs-button { + max-height: 30px; + min-height: 30px; + padding: 0 20px; + list-style-image: url("chrome://global/skin/icons/reload.svg"); + align-self: center; +} + +.reload-tabs-button .button-icon { + margin: 0 6px; + color: inherit; +} + +.reload-tabs-button .button-text { + color: inherit; +} + +.privacy-detailedoption.selected .content-blocking-warning { + background-color: var(--section-highlight-background-color); +} + +.privacy-detailedoption.selected .arrowhead { + display: none; +} + +.privacy-detailedoption.selected { + border-color: var(--in-content-accent-color); +} + +@media (prefers-contrast) { + .privacy-detailedoption.selected { + outline: 2px solid var(--in-content-accent-color); + } +} + +@media not (prefers-contrast) { + .privacy-detailedoption { + background-color: rgba(215, 215, 219, 0.1); + } + + .privacy-detailedoption.selected { + background-color: var(--section-highlight-background-color); + } +} + +.content-blocking-warning-title, +.privacy-detailedoption .radio-label-box { + font-weight: bold; +} + +.privacy-detailedoption:not(.expanded, .selected) .privacy-extra-information { + visibility: collapse; +} + +.extra-information-label { + margin-top: 18px; +} + +/* Apply display: block to the containers of all the category information, as + * without this the flex-wrapped blocks inside don't stretch vertically to + * enclose their content. */ +.privacy-detailedoption > .indent { + display: block; +} + +.privacy-detailedoption.expanded .privacy-extra-information, +.privacy-detailedoption.selected .privacy-extra-information { + display: flex; + flex-direction: column; + align-content: stretch; +} + +.privacy-extra-information > .indent { + margin-bottom: 18px; +} + +.privacy-extra-information > .custom-option { + margin: 10px 0; +} + +.content-blocking-warning { + /* Match .indent's horizontal padding, minus the border added via .info-box-container: */ + padding-inline: calc(22px - 1px); + margin: 10px 0; +} + +.content-blocking-warning:not([hidden]) + .content-blocking-warning { + margin-top: 0; +} + +.content-blocking-extra-blocking-desc { + margin-inline-start: 0.5em; + position: relative; + top: 0.65em; +} + +.content-blocking-label, +.doh-label { + display: list-item; +} + +.content-blocking-warning-image { + list-style-image: url("chrome://global/skin/icons/warning.svg"); + width: 16px; + margin-inline-end: 6px; +} + +#blockCookiesMenu { + width: 450px; +} + +#blockCookiesMenu, +#trackingProtectionMenu, +#fingerprintingProtectionMenu { + margin: 0; +} + +#changeBlockListLink { + margin-inline-start: 56px; +} + +#telemetry-container { + margin-block: 4px; + width: 100%; +} + +.privacy-detailedoption-description { + font-size: 90%; + opacity: 0.6; +} + +.warning-description { + background: url(chrome://global/skin/icons/warning.svg) no-repeat 0 5px; + opacity: 0.6; + -moz-context-properties: fill, stroke; + fill: #d7b600; + stroke: white; + padding-inline-start: 20px; +} + +.reject-trackers-warning-icon:-moz-locale-dir(rtl) { + background-position-x: right 0; +} + +#contentBlockingChangeCookieSettings { + padding: 0.25em 0.75em; + margin: 4px 8px; +} + +#deleteOnCloseNote { + margin-top: 8px; + margin-inline-end: 32px; +} + +#submitHealthReportBox { + display: inline-flex; +} + +/* Address bar */ + +.firefoxSuggestOptionBox { + /* With this value we're trying to keep the apparent vertical space between + option boxes the same as the apparent vertical space between the labels of + the checkboxes above the Firefox Suggest subsection. */ + margin-block-start: 18px; +} + +#firefoxSuggestInfoBox { + margin-block-start: 16px; +} + +#openSearchEnginePreferences { + margin-block-start: .5em; +} + +#dismissedSuggestions, +#openSearchEnginePreferences.extraMargin { + margin-block-start: 2em; +} + +/* Logins and Passwords */ + +#openWindowsPasskeySettings { + margin-block-start: 2em; +} diff --git a/browser/themes/shared/preferences/relay-logo.svg b/browser/themes/shared/preferences/relay-logo.svg new file mode 100644 index 0000000000..bf99230a1f --- /dev/null +++ b/browser/themes/shared/preferences/relay-logo.svg @@ -0,0 +1,7 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<svg width="22" height="22" viewBox="0 0 22 22" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
+ <path
+ d="M20.054,4.777l-8.112-4.542c-0.579-0.313-1.277-0.313-1.856,0l-8.14,4.542C1.347,5.115,0.977,5.748,0.975,6.434v9.112c-0.005,0.689,0.368,1.324,0.971,1.655l8.112,4.542c0.283,0.17,0.61,0.26,0.942,0.257c0.331-0.001,0.657-0.089,0.943-0.257l8.112-4.542c0.598-0.337,0.969-0.969,0.971-1.655V6.434C21.022,5.748,20.652,5.115,20.054,4.777z M6.421,14.289c-0.054,0.194-0.183,0.357-0.359,0.455l-0.485,0.285c-0.115,0.055-0.243,0.085-0.371,0.087c-0.275-0.004-0.528-0.158-0.657-0.4c-0.1-0.173-0.126-0.381-0.073-0.573c0.054-0.194,0.183-0.357,0.359-0.454l0.481-0.283c0.371-0.228,0.826-0.087,1.033,0.312C6.449,13.889,6.475,14.095,6.421,14.289z M6.348,8.205c-0.131,0.242-0.382,0.396-0.657,0.4C5.562,8.603,5.435,8.574,5.32,8.519L4.834,8.233C4.649,8.141,4.508,7.978,4.447,7.78C4.385,7.582,4.408,7.367,4.51,7.186c0.102-0.18,0.274-0.312,0.474-0.362C5.185,6.773,5.398,6.809,5.573,6.92l0.485,0.285C6.431,7.404,6.572,7.861,6.348,8.205z M9.416,12.576c-0.054,0.193-0.183,0.357-0.357,0.454l-1.001,0.572c-0.115,0.055-0.242,0.084-0.37,0.085c-0.276-0.004-0.527-0.157-0.657-0.4c-0.1-0.173-0.126-0.381-0.073-0.573c0.054-0.192,0.183-0.356,0.359-0.454l1-0.572c0.177-0.095,0.386-0.115,0.579-0.056c0.192,0.059,0.355,0.193,0.448,0.371C9.442,12.176,9.468,12.382,9.416,12.576z M9.343,9.918c-0.131,0.243-0.381,0.396-0.656,0.4c-0.128-0.001-0.256-0.03-0.371-0.085l-1-0.572C6.952,9.442,6.827,8.976,7.03,8.605c0.098-0.176,0.261-0.304,0.454-0.357c0.194-0.054,0.4-0.028,0.573,0.073l1,0.571c0.176,0.098,0.304,0.261,0.357,0.455C9.469,9.537,9.443,9.745,9.343,9.918z M12.342,11.604c-0.081,0.164-0.225,0.287-0.4,0.342v5.793c0,0.426-0.345,0.771-0.771,0.771s-0.771-0.345-0.771-0.771v-5.767c-0.173-0.055-0.318-0.179-0.4-0.342c-0.107-0.203-0.118-0.445-0.028-0.657c-0.091-0.212-0.08-0.454,0.029-0.657c0.081-0.164,0.225-0.287,0.4-0.342V4.206c0-0.426,0.345-0.771,0.771-0.771s0.771,0.345,0.771,0.771v5.741c0.175,0.055,0.319,0.179,0.4,0.344c0.109,0.203,0.12,0.444,0.029,0.656C12.461,11.158,12.45,11.4,12.342,11.604z M15.313,13.26c-0.131,0.242-0.382,0.395-0.657,0.4c-0.128-0.001-0.256-0.03-0.371-0.085l-1-0.572c-0.349-0.212-0.467-0.661-0.267-1.017s0.648-0.487,1.009-0.297l1,0.572C15.398,12.46,15.513,12.946,15.313,13.26z M15.385,9.207c-0.054,0.194-0.183,0.357-0.359,0.455l-1,0.571c-0.115,0.055-0.242,0.085-0.371,0.085c-0.275-0.004-0.527-0.157-0.657-0.4c-0.099-0.173-0.125-0.379-0.071-0.573c0.054-0.194,0.183-0.357,0.359-0.455l1-0.571c0.179-0.095,0.386-0.115,0.58-0.056c0.192,0.059,0.355,0.192,0.45,0.371C15.414,8.807,15.44,9.014,15.385,9.207z M17.798,14.657c-0.131,0.242-0.382,0.396-0.657,0.4c-0.128-0.001-0.256-0.03-0.371-0.085l-0.487-0.286c-0.344-0.213-0.459-0.66-0.258-1.013c0.199-0.352,0.642-0.484,1.002-0.298l0.485,0.285C17.883,13.887,17.997,14.345,17.798,14.657z M17.868,7.806c-0.054,0.192-0.181,0.356-0.356,0.455l-0.485,0.286c-0.115,0.055-0.242,0.084-0.371,0.085c-0.271,0.01-0.525-0.135-0.657-0.371c-0.1-0.173-0.126-0.381-0.073-0.573s0.183-0.356,0.358-0.454l0.487-0.286c0.175-0.099,0.379-0.124,0.573-0.07c0.192,0.054,0.356,0.181,0.455,0.356C17.895,7.407,17.922,7.613,17.868,7.806z"/>
+</svg>
diff --git a/browser/themes/shared/preferences/search-arrow-indicator.svg b/browser/themes/shared/preferences/search-arrow-indicator.svg new file mode 100644 index 0000000000..8ac83df260 --- /dev/null +++ b/browser/themes/shared/preferences/search-arrow-indicator.svg @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 10"> + <defs> + <path id="anchor" d="M33 20l5 8H28z"/> + </defs> + <g fill="none" fill-rule="evenodd" transform="rotate(90 28 0)"> + <use fill="#FFEB19" href="#anchor"/> + <path stroke="#0C0C0D" stroke-opacity=".2" d="M33 20.94l-4.1 6.56h8.2L33 20.94z"/> + </g> +</svg> diff --git a/browser/themes/shared/preferences/search.css b/browser/themes/shared/preferences/search.css new file mode 100644 index 0000000000..049a079b8f --- /dev/null +++ b/browser/themes/shared/preferences/search.css @@ -0,0 +1,77 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#defaultEngine, +#defaultPrivateEngine { + margin-inline-start: 0; +} + +#defaultEngine::part(icon), +#defaultPrivateEngine::part(icon) { + height: 16px; + width: 16px; +} + +/* work around a display: none in Linux's menu.css, see bug 1112310 */ +.searchengine-menuitem > .menu-iconic-left { + display: flex; +} + +#engineList { + margin: .5em 0; +} + +#engineList treechildren::-moz-tree-image(engineName) { + margin-inline: 1px 10px; + width: 16px; + height: 16px; +} + +#engineList treechildren::-moz-tree-drop-feedback { + background-color: SelectedItem; + width: 10000px; /* 100% doesn't work; 10k is hopefully larger than any window + we may have, overflow isn't visible. */ + height: 2px; + margin-inline-start: 0; +} + +#engineList treechildren::-moz-tree-image(bookmarks), +#engineList treechildren::-moz-tree-image(tabs), +#engineList treechildren::-moz-tree-image(history) { + -moz-context-properties: fill; +} + +/* Local search shortcut icon colors. These should match the values in + urlbarView.inc.css. */ +#engineList treechildren::-moz-tree-image(bookmarks) { + fill: #0060df; /* Blue-60 */ +} +#engineList treechildren::-moz-tree-image(tabs) { + fill: #008eaf; /* Teal-70 */ +} +#engineList treechildren::-moz-tree-image(history), +#engineList treechildren::-moz-tree-image(bookmarks, selected), +#engineList treechildren::-moz-tree-image(tabs, selected) { + fill: currentColor; +} + +/* Ensure keywords and search engine names have the directionality of their + content, ignoring ancestors - otherwise directionality is wrong in RTL + locales for LTR keywords, with the "@" appearing in the wrong place. */ +#engineList > treechildren::-moz-tree-cell(engineKeyword) { + unicode-bidi: plaintext; +} + +#engineShown { + min-width: 26px; +} + +#addEnginesBox { + margin-bottom: 1em; +} + +#removeEngineButton, +#restoreDefaultSearchEngines { + margin-inline: 0; +} diff --git a/browser/themes/shared/preferences/siteDataSettings.css b/browser/themes/shared/preferences/siteDataSettings.css new file mode 100644 index 0000000000..e4a989cefd --- /dev/null +++ b/browser/themes/shared/preferences/siteDataSettings.css @@ -0,0 +1,64 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + * Site Data - Settings dialog + */ +#sitesList { + flex: 1 auto; + height: 20em; +} + +/* Show selected items in high contrast mode. */ +#sitesList > richlistitem[selected] { + outline: 1px solid transparent; +} + +#sitesList > richlistitem > hbox, +.item-box > label { + flex: 1; +} + +.item-box { + padding: 5px 8px; + align-items: center; + width: 50px; +} + +/** + * Confirmation dialog of removing sites selected + */ +#SiteDataRemoveSelectedDialog { + padding: 16px; + min-width: 50px; +} + +#SiteDataRemoveSelectedDialog.single-entry { + min-height: 8em; +} + +#SiteDataRemoveSelectedDialog.single-entry .multi-site { + display: none; +} + +#SiteDataRemoveSelectedDialog.multi-entry #removalList { + max-height: 20em; +} + +#SiteDataRemoveSelectedDialog > dialog { + padding: 0; /* override dialog.css */ +} + +#contentContainer { + font-size: 1.2em; + margin-bottom: 10px; +} + +.question-icon { + margin: 6px; +} + +#removing-label { + font-weight: bold; +} diff --git a/browser/themes/shared/preferences/translations.css b/browser/themes/shared/preferences/translations.css new file mode 100644 index 0000000000..452d7d6c37 --- /dev/null +++ b/browser/themes/shared/preferences/translations.css @@ -0,0 +1,41 @@ +/* Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#translations-settings-header { + margin-top: 32px; + margin-bottom: 16px; +} + +.translations-settings-manage-list { + overflow: auto; + background-color: var(--in-content-box-background); + border: 1px solid var(--in-content-box-border-color); + border-radius: var(--border-radius-small); + margin-top: 32px; +} + +.translations-settings-manage-language { + padding: 8px; + display: flex; + flex-direction: row; + justify-content: space-between; + > h2 { + margin: 8px; + } +} + +.translations-settings-manage-list-info { + display: flex; + flex-direction: column; + > h2 { + margin: 16px; + margin-bottom: 8px; + } + > p { + margin: 8px 16px; + } + > a { + margin: 0 16px; + } +} diff --git a/browser/themes/shared/preferences/vpn-logo.svg b/browser/themes/shared/preferences/vpn-logo.svg new file mode 100644 index 0000000000..5300d3bf5c --- /dev/null +++ b/browser/themes/shared/preferences/vpn-logo.svg @@ -0,0 +1,4 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<svg width="22" height="22" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11 2.256a1.692 1.692 0 1 0 0 3.384 1.692 1.692 0 0 0 0-3.384zM7.05 3.948a3.949 3.949 0 1 1 2.071 3.474l-1.7 1.7c.13.236.234.487.313.75h6.533a3.948 3.948 0 1 1 1.906 4.602l-1.7 1.7a3.949 3.949 0 1 1-1.595-1.597l1.7-1.699a3.916 3.916 0 0 1-.311-.75H7.734a3.95 3.95 0 1 1-1.907-4.603l1.698-1.698a3.931 3.931 0 0 1-.474-1.879zm2.258 14.103a1.692 1.692 0 1 1 3.384 0 1.692 1.692 0 0 1-3.384 0zm-5.36-8.744a1.693 1.693 0 1 0 0 3.385 1.693 1.693 0 0 0 0-3.385zM16.36 11a1.692 1.692 0 1 1 3.384 0 1.692 1.692 0 0 1-3.384 0z"/></svg> |