/* 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/. */ @import url("chrome://global/skin/design-system/text-and-typography.css"); @layer input-common { :host { --input-height: var(--size-item-small); --input-width: var(--size-item-small); --input-space-offset: calc(var(--input-width) + var(--space-small)); --input-margin-block-adjust: calc((1lh - var(--input-height)) / 2); --icon-margin-block-adjust: calc((1lh - var(--icon-size-default)) / 2); --input-margin-inline-start-adjust: calc(-1 * var(--input-space-offset)); } :host(:not([hidden])) { display: block; } :host(:not(:state(has-label))) { --input-space-offset: var(--input-width); display: inline-block; } :host([inputlayout="block"]) { --input-space-offset: 0; --input-margin-block-adjust: var(--space-xsmall) 0; } :host([inputlayout="block"]:not(:state(has-label), :state(has-description))) { --input-margin-block-adjust: 0; } @media (forced-colors) { :host(:state(disabled)) { color: GrayText; } } /* Label text */ .label-wrapper { display: block; padding-inline-start: var(--input-space-offset); } label { display: block; &:has(+ a[is="moz-support-link"]), :host(:not(:state(has-description)):state(has-support-link)) & { display: inline; margin-inline-end: var(--space-xsmall); } :host(:state(disabled)) & { color: var(--text-color-disabled); } } /* Input */ #input { -moz-theme: non-native; min-width: var(--input-width); min-height: var(--input-height); font-size: inherit; /* Bug 1901865: Due to the "MS Shell Dlg 2" font, we need inherits to * keep the checkbox aligned */ font-family: inherit; line-height: inherit; vertical-align: top; margin-block: var(--input-margin-block-adjust); margin-inline: var(--input-margin-inline-start-adjust) var(--space-small); :host(:not(:state(has-label))) & { margin-inline-end: 0; } @media not (forced-colors) { accent-color: var(--color-accent-primary); } } /* Icon */ .icon { vertical-align: top; width: var(--icon-size-default); height: var(--icon-size-default); margin-block: var(--icon-margin-block-adjust); -moz-context-properties: fill, fill-opacity, stroke; fill: currentColor; stroke: currentColor; + .text { margin-inline-start: var(--space-small); } } /* Description */ :host(:state(has-description)) .description { margin-inline-start: var(--input-space-offset); margin-block-start: var(--space-xxsmall); } :host(:state(has-description):state(has-support-link)) .description-text { margin-inline-end: var(--space-xsmall); } ::slotted([slot="description"]) { display: inline; } /* Support link */ a[is="moz-support-link"], ::slotted([slot="support-link"]) { display: inline-block; } /* Nested fields */ .nested { margin-inline-start: var(--input-space-offset); display: flex; flex-direction: column; gap: var(--space-large); } ::slotted([slot="nested"]:first-child) { margin-block-start: var(--space-large); } }