/* 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/. */ .editAddressForm { display: flex; flex-wrap: wrap; /* Use space-between so --grid-column-row-gap is in between the elements on a row */ justify-content: space-between; } dialog:not([subdialog]) .editAddressForm { margin-inline: calc(var(--grid-column-row-gap) / -2); } .editAddressForm .container { /* !important is needed to override preferences.css's generic label rule. */ margin-top: var(--grid-column-row-gap) !important; margin-inline: calc(var(--grid-column-row-gap) / 2); flex-grow: 1; } #country-container { /* The country dropdown has a different intrinsic (content) width than the other fields which are . */ flex-basis: calc(50% - var(--grid-column-row-gap)); flex-grow: 0; /* Country names can be longer than 50% which ruins the symmetry in the grid. */ max-width: calc(50% - var(--grid-column-row-gap)); } /* Begin name field rules */ #name-container input { /* Override the default @size="20" on , which acts like a min-width, not * allowing the fields to shrink with flexbox as small as they need to to match * the other rows. This is noticeable on narrow viewports e.g. in the * PaymentRequest dialog on Linux due to the larger font-size. */ width: 0; } /* When there is focus within any of the name fields, the border of the inputs * should be the focused color, except for inner ones which get overriden below. */ #name-container:focus-within input { border-color: var(--in-content-focus-outline-color); } /* Invalid name fields should show the error outline instead of the focus border */ #name-container:focus-within input:-moz-ui-invalid { border-color: transparent; } #given-name-container, #additional-name-container, #family-name-container { display: flex; /* The 3 pieces inside the name container don't have the .container class so need to set flex-grow themselves. See `.editAddressForm .container` */ flex-grow: 1; /* Remove the bottom margin from the name containers so that the outer #name-container provides the margin on the outside */ margin-bottom: 0 !important; margin-inline: 0; } #given-name-container:focus-within, #additional-name-container:focus-within, #family-name-container:focus-within { z-index: 1; } /* The name fields are placed adjacent to each other. Remove the border-radius on adjacent fields. */ #given-name:dir(ltr), #family-name:dir(rtl) { border-top-right-radius: 0; border-bottom-right-radius: 0; border-right-width: 0; } #given-name:dir(rtl), #family-name:dir(ltr) { border-top-left-radius: 0; border-bottom-left-radius: 0; border-left-width: 0; } #additional-name { border-radius: 0; /* This provides the inner separators between the fields and should never * change to the focused color. */ border-inline-color: var(--in-content-box-border-color) !important; } /* Since the name fields are adjacent, there isn't room for the -moz-ui-invalid box-shadow so raise invalid name fields and their labels above the siblings so the shadow is shown around all 4 sides. */ #name-container input:-moz-ui-invalid, #name-container input:-moz-ui-invalid ~ .label-text { z-index: 1; } /* End name field rules */ #name-container, #street-address-container { /* Name and street address are always full-width */ flex: 0 1 100%; } #street-address { resize: vertical; } #country-warning-message { box-sizing: border-box; font-size: 1rem; display: flex; align-items: center; text-align: start; opacity: .5; padding-inline-start: 1em; flex: 1; } dialog:not([subdialog]) #country-warning-message { display: none; }