diff options
Diffstat (limited to 'devtools/client/themes/fonts.css')
-rw-r--r-- | devtools/client/themes/fonts.css | 477 |
1 files changed, 477 insertions, 0 deletions
diff --git a/devtools/client/themes/fonts.css b/devtools/client/themes/fonts.css new file mode 100644 index 0000000000..5be2513052 --- /dev/null +++ b/devtools/client/themes/fonts.css @@ -0,0 +1,477 @@ +/* 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/. */ + +/* CSS Variables specific to the font editor that aren't defined by the themes */ +:root { + --highlight-color: var(--blue-55); + --input-background-color: white; + --input-border-color: var(--grey-30); + --preview-input-background: var(--theme-toolbar-background); + --slider-thumb-color: var(--grey-50); + --slider-track-color: var(--grey-30); +} + +:root.theme-dark { + --input-background-color: var(--grey-70); + --input-border-color: var(--grey-70); + --preview-input-background: #222225; + --slider-thumb-color: var(--grey-40); + --slider-track-color: var(--grey-60); +} + +#sidebar-panel-fontinspector { + margin: 0; + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + overflow: auto; +} + +#font-container, #font-editor { + min-width: var(--min-container-width); +} + +#font-container { + flex: auto; +} + +#font-editor { + padding-bottom: .5em; +} + +#font-editor summary { + user-select: none; + cursor: pointer; + margin-bottom: .4em; + width: -moz-fit-content; +} + +#font-editor details { + padding-bottom: .5em; +} + +#font-editor details .label-open, +#font-editor details .label-close { + display: none; +} + +#font-editor details[open] .label-close, +#font-editor details:not([open]) .label-open { + display: inline-block; +} + +#font-editor .devtools-sidepanel-no-result { + padding-bottom: 0; +} + +.fonts-list { + padding: 0; + margin: 0; + list-style: none; +} + +.font { + border: 1px solid var(--theme-splitter-color); + border-width: 0 0 1px 0; + display: grid; + grid-template-columns: 1fr auto; + grid-column-gap: 10px; + padding: 10px 20px; + overflow: auto; +} + +#font-container .theme-twisty { + display: inline-block; + cursor: pointer; + vertical-align: bottom; +} + +#font-preview-input-container { + background: var(--preview-input-background); + border-bottom: 1px solid var(--theme-splitter-color); + display: flex; + height: 25px; +} + +#font-preview-input-container input { + background-image: none; + flex: 1; + padding-inline: 19px; +} + +.font-preview { + grid-column: 2; + grid-row: 1 / span 2; + object-fit: contain; + height: 50px; + width: 100%; +} + +.font-name, +.font-family-name { + font-weight: normal; + white-space: nowrap; +} + +.font-name { + display: inline-block; + margin-bottom: 0.6em; + font-size: 1em; + color: var(--theme-text-color-alt); +} + +.font-family-name { + margin-bottom: 0.2em; + font-size: 1.2em; +} + +.font-group { + margin-bottom: .5em; +} + +.font-group .font-name { + white-space: unset; +} + +.font-group .font-name::after { + content: ","; +} + +.font-group .font-name:nth-last-child(1)::after { + content: ""; +} + +/* Make font-name hoverable as doing so highlights text runs in the page. + The hit target is 3px around the font name, which is why we offset them with a -3px + horizontal margin so they appear at the same place as they normall would. */ + +.font-name { + padding: 3px; + margin-inline-start: -3px; + border-radius: 3px; +} + +.font-name:hover { + background-color: var(--theme-selection-background-hover); +} + +.font-css-code { + /* Force text direction in LTR and RTL */ + direction: ltr; + text-align: left; + margin: 0; + overflow: hidden; + text-overflow: ellipsis; + color: var(--theme-text-color-strong); + grid-column: span 2; +} + +.font-css-code .theme-twisty { + margin-inline-start: -3px; +} + +/* Force arrow direction in LTR and RTL */ +.font-css-code .theme-twisty:not([open]) { + transform: rotate(-90deg) !important; +} + +.font-css-code-expander::before { + content: "\2026"; + display: inline-block; + width: 12px; + height: 8px; + margin: 0 2px; + line-height: 3px; + color: var(--theme-text-color-inactive); + border-radius: 3px; + border-style: solid; + border-width: 1px; + text-align: center; + vertical-align: middle; +} + +.font-control { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: space-between; + align-items: center; + padding: 0 20px; + margin: .6em 0; +} + +/* Style *all* axis controls with a top separator. See reset below. */ +.font-control-axis { + border-top: 1px solid var(--theme-splitter-color); + padding-top: 1.1em; +} + +/* Remove styles form all axis controls aside from the first one. + Workaround for :first-of-type which doesn't work with class names. */ +.font-control-axis ~ .font-control-axis { + border-top: unset; + padding-top: unset; +} + +.font-control-used-fonts { + align-items: flex-start; + border-bottom: 1px solid var(--theme-splitter-color); + margin-block: 0 1em; + padding-top: 1em; +} + +.font-control-box, +.font-control-input { + flex: 4; + min-width: 100px; +} + +.font-control-input { + display: flex; + flex-wrap: nowrap; + align-items: center; +} + +.font-control-input .devtools-checkbox-toggle { + margin: 2px 0; +} + +.font-control-label { + display: inline-block; + flex: 1; + font-size: 12px; + min-width: 70px; + margin-inline-end: 10px; + user-select: none; +} + +.font-control-label-text { + display: block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.font-control-label-detail { + color: var(--theme-text-color-alt); + font-size: smaller; +} + +.font-value-input { + text-align: right; + width: 60px; + padding: 2px 3px; + padding-inline-end: 5px; +} + +.font-value-input, +.font-value-select { + color: var(--theme-text-color-strong); + border: 1px solid var(--input-border-color); + background-color: var(--input-background-color); +} + +/* Styles for disabled input fields */ +.font-value-input[disabled], +.font-value-select[disabled], +.font-value-slider[disabled] { + opacity: 0.5; +} + +/* Do not use browser "invalid" state */ +.font-value-slider:-moz-ui-invalid, +.font-value-input:-moz-ui-invalid { + box-shadow: none; +} + +/* Do not show dotted line focus outline */ +.font-value-input:-moz-focusring { + outline: none; +} + +/* Make native number steppers disappear by treating it as text field*/ +.font-value-input[type=number] { + appearance: textfield; +} + +/* Swap around order of value input and unit dropdown for RTL */ +.font-value-input:dir(rtl) { + order: 3; +} + +.font-value-label { + /* Combined width of .font-value-input and .font-value-select */ + width: calc(60px + 3.8em); + padding-block: 2px 4px; +} + +/* Mock separator because inputs don't have distinguishable borders in dark theme */ +.theme-dark .font-value-input + .font-value-select:dir(ltr) { + margin-inline-start: 2px; +} +.theme-dark .font-value-input + .font-value-select:dir(rtl) { + margin-inline-end: 2px; +} + +/* Custom styles for <select> elements within the font editor. */ +.font-value-select { + background-image: url(chrome://devtools/skin/images/select-arrow.svg); + background-repeat: no-repeat; + background-position: right 4px center; + fill: var(--theme-icon-color); + -moz-context-properties: fill; + appearance: none; + box-shadow: none; + padding: 1px 10px 1px 2px; + min-width: 3.8em; +} + +.font-value-input + .font-value-select:dir(ltr) { + border-inline-start: none; +} + +/* Swap around order of value input and unit dropdown for RTL */ +.font-value-input + .font-value-select:dir(rtl) { + border-inline-end: none; + order: 2; + text-align: left; +} + +.font-value-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 var(--theme-text-color-strong); +} + +.font-value-input:focus, +.font-value-select:focus { + outline: 1px solid var(--highlight-color); + outline-offset: -1px; +} + +.font-value-slider-container { + flex: 1; + min-width: 50px; + position: relative; + margin-inline-end: 10px; +} + +/* Firefox doesn't support pseudo-elements on inputs. Using the container instead. */ +.font-value-slider-container::before, +.font-value-slider-container::after { + user-select: none; + color: var(--theme-text-color-alt); + font-size: smaller; + position: absolute; + bottom: -.6em; + visibility: hidden; +} + +.font-control-input:hover .font-value-slider-container::before, +.font-control-input:hover .font-value-slider-container::after, +.font-control-input:focus-within .font-value-slider-container::before, +.font-control-input:focus-within .font-value-slider-container::after { + visibility: visible; +} + +.font-value-slider-container::before { + content: attr(data-min); + inset-inline-start: .3em; +} + +.font-value-slider-container::after { + content: attr(data-max); + inset-inline-end: .3em; +} + +.font-value-slider { + background: transparent; + width: 100%; + margin: 0; +} + +/* + The value of font-weight goes from 100 to 900 in increments of 100. + Decorate the slider for font-weight to have 9 vertical notches using a linear gradient. +*/ +.font-value-slider[name=font-weight] { + --notch-size: 3px; + /* Draw a vertical line to get one notch per background-image instance */ + background-image: linear-gradient(90deg, var(--slider-track-color) var(--notch-size), + transparent 0); + /* Offset the background so the notch aligns with the center of the slider thumb */ + background-position: 5px center; + /* Repeat the background-image horizontally */ + background-repeat: repeat-x; + /* Size the background to get nine visible notch instances. */ + background-size: calc(12.5% - var(--notch-size) / 2) 7px; +} + +.font-value-slider:-moz-focusring { + outline: none; +} + +.font-value-slider::-moz-range-thumb { + background-color: var(--slider-thumb-color); + border: 0; +} + +.font-value-slider:focus::-moz-range-thumb { + background-color: var(--highlight-color); +} + +.font-value-slider::-moz-range-track { + background-color: var(--slider-track-color); + height: 3px; +} + +.font-origin { + margin-top: -.25em; + color: var(--theme-comment); + justify-self: start; +} + +.font-origin.system { + text-transform: capitalize; +} + +.font-origin.remote { + display: grid; + grid-template-columns: 1fr 20px; +} + +.font-origin.remote .url { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + direction: ltr; +} + +.font-origin .copy-icon { + border: 0; + padding: 0; + position: relative; + cursor: pointer; + width: 12px; + height: 12px; + place-self: center; + + background: url(chrome://devtools/skin/images/copy.svg) no-repeat; + background-size: 12px; + background-position-x: -1px; + -moz-context-properties: fill; + fill: var(--grey-50); +} + +#font-container .accordion { + border-top: 1px solid var(--theme-splitter-color); +} + +#font-container .accordion ._content { + padding: 0; +} + +#font-container .accordion + .accordion { + border-top: none; +} |