/* 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/. */ /** Styles for old GFX form widgets **/ @namespace url(http://www.w3.org/1999/xhtml); /* set default namespace to HTML */ @namespace xul url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); *|*::-moz-fieldset-content { display: block; unicode-bidi: inherit; text-overflow: inherit; overflow: inherit; padding: inherit; position: inherit; height: 100%; /* Need this so percentage heights of kids work right */ } /* miscellaneous form elements */ fieldset > legend { padding-left: 2px; padding-right: 2px; width: -moz-fit-content; } legend { display: block; } fieldset { display: block; margin-left: 2px; margin-right: 2px; padding: 0.35em 0.625em 0.75em; border: 2px groove ThreeDFace; } label { cursor: default; } /* default inputs, text inputs, and selects */ /* Note: Values in nsNativeTheme IsWidgetStyled function need to match textfield background/border values here */ input { -moz-appearance: textfield; /* The sum of border-top, border-bottom, padding-top, padding-bottom must be the same here, for buttons, and for */ select[size], select[multiple], select[size][multiple] { /* Different alignment and padding for listbox vs combobox */ background-color: -moz-Field; color: -moz-FieldText; vertical-align: text-bottom; padding: 1px 0 1px 0; -moz-appearance: listbox; } select[size="0"], select[size="1"] { /* Except this is not a listbox */ background-color: -moz-Combobox; color: -moz-ComboboxText; vertical-align: baseline; padding: 0; -moz-appearance: menulist; } select > button { width: 12px; height: 12px; white-space: nowrap; position: static !important; background-image: url("arrow.gif") !important; background-repeat: no-repeat !important; background-position: center !important; -moz-appearance: menulist-button; /* Make sure to size correctly if the combobox has a non-auto height. */ height: 100% ! important; -moz-box-sizing: border-box ! important; /* Make sure to align properly with the display frame. Note that we want the baseline of the combobox to match the baseline of the display frame, so the dropmarker is what gets the vertical-align. */ vertical-align: top !important; } select > button:active { background-image: url("arrowd.gif") !important; } select:empty { width: 2.5em; } *|*::-moz-display-comboboxcontrol-frame { overflow: -moz-hidden-unscrollable; /* This top/bottom padding plus the combobox top/bottom border need to add up to the top/bottom borderpadding of text inputs and buttons */ padding-top: 1px; padding-bottom: 1px; -moz-padding-start: 4px; -moz-padding-end: 0; color: inherit; white-space: nowrap; text-align: inherit; -moz-user-select: none; /* Make sure to size correctly if the combobox has a non-auto height. */ height: 100% ! important; -moz-box-sizing: border-box ! important; } option { display: block; float: none !important; position: static !important; min-height: 1em; line-height: normal !important; -moz-user-select: none; text-indent: 0; white-space: nowrap !important; word-wrap: normal !important; } select > option { padding-top : 0; padding-bottom: 0; -moz-padding-start: 3px; -moz-padding-end: 5px; } option:checked { background-color: -moz-html-cellhighlight !important; color: -moz-html-cellhighlighttext !important; } select:focus > option:checked, select:focus > optgroup > option:checked { background-color: Highlight ! important; color: HighlightText ! important; } optgroup { display: block; float: none !important; position: static !important; font: -moz-list; line-height: normal !important; font-style: italic; font-weight: bold; font-size: inherit; -moz-user-select: none; text-indent: 0; white-space: nowrap !important; word-wrap: normal !important; } optgroup > option { -moz-padding-start: 20px; font-style: normal; font-weight: normal; } optgroup:before { display: block; content: attr(label); } *|*::-moz-dropdown-list { z-index: 2147483647; background-color: inherit; -moz-user-select: none; position: static !important; float: none !important; /* * We can't change the padding here, because that would affect our * intrinsic width, since we scroll. But at the same time, we want * to make sure that our left border+padding matches the left * border+padding of a combobox so that our scrollbar will line up * with the dropmarker. So set our left border to 2px. */ border: 1px outset black !important; border-left-width: 2px ! important; } input:disabled, textarea:disabled, option:disabled, optgroup:disabled, select:disabled:disabled /* Need the pseudo-class twice to have the specificity be at least the same as select[size][multiple] above */ { -moz-user-input: disabled; color: GrayText; background-color: ThreeDFace; cursor: inherit; } input:disabled, textarea:disabled { cursor: default; } option:disabled, optgroup:disabled { background-color: transparent; } /* hidden inputs */ input[type="hidden"] { -moz-appearance: none; display: none !important; padding: 0; border: 0; cursor: auto; -moz-user-focus: ignore; -moz-binding: none; } /* image buttons */ input[type="image"] { -moz-appearance: none; padding: 0; border: none; background-color: transparent; font-family: sans-serif; font-size: small; cursor: pointer; -moz-binding: none; } input[type="image"]:disabled { cursor: inherit; } input[type="image"]:-moz-focusring { /* Don't specify the outline-color, we should always use initial value. */ outline: 1px dotted; } /* file selector */ input[type="file"] { display: inline-block; white-space: nowrap; overflow: hidden; color: inherit; /* Revert rules which apply on all inputs. */ -moz-appearance: none; -moz-binding: none; cursor: default; border: none; background-color: transparent; padding: 0; } input[type="file"] > xul|label { min-width: 12em; -moz-padding-start: 5px; color: inherit; font-size: inherit; letter-spacing: inherit; /* * Force the text to have LTR directionality. Otherwise filenames containing * RTL characters will be reordered with chaotic results. */ direction: ltr !important; } /* button part of file selector */ input[type="file"] > button[type="button"] { height: inherit; font-size: inherit; letter-spacing: inherit; cursor: inherit; } /* colored part of the color selector button */ input[type="color"]:-moz-system-metric(color-picker-available)::-moz-color-swatch { width: 100%; height: 100%; min-width: 3px; min-height: 3px; margin-left: auto; margin-right: auto; -moz-box-sizing: border-box; border: 1px solid grey; display: block; } /* Try to make RTL look nicer. */ /* TODO: use text-align: match-parent when bug 645642 is fixed. */ input[type="file"]:-moz-dir(rtl) > xul|label { -moz-padding-start: 0px; padding-right: 5px; text-align: right; } /* radio buttons */ input[type="radio"] { -moz-appearance: radio; margin: 3px 3px 0px 5px; border-radius: 100% !important; } /* check boxes */ input[type="checkbox"] { -moz-appearance: checkbox; margin: 3px 3px 3px 4px; border-radius: 0 !important; } /* common features of radio buttons and check boxes */ /* NOTE: The width, height, border-width, and padding here must all add up the way nsFormControlFrame::GetIntrinsic(Width|Height) expects them to, or they will not come out with total width equal to total height on sites that set their 'width' or 'height' to 'auto'. (Should we maybe set !important on width and height, then?) */ input[type="radio"], input[type="checkbox"] { -moz-box-sizing: border-box; width: 13px; height: 13px; cursor: default; padding: 0 !important; -moz-binding: none; /* same colors as |input| rule, but |!important| this time. */ background-color: -moz-Field ! important; color: -moz-FieldText ! important; border: 2px inset ThreeDFace ! important; } input[type="radio"]:disabled, input[type="radio"]:disabled:active, input[type="radio"]:disabled:hover, input[type="radio"]:disabled:hover:active, input[type="checkbox"]:disabled, input[type="checkbox"]:disabled:active, input[type="checkbox"]:disabled:hover, input[type="checkbox"]:disabled:hover:active { padding: 1px; border: 1px inset ThreeDShadow ! important; /* same as above, but !important */ color: GrayText ! important; background-color: ThreeDFace ! important; cursor: inherit; } input[type="checkbox"]:-moz-focusring, input[type="radio"]:-moz-focusring { border-style: groove !important; } input[type="checkbox"]:hover:active, input[type="radio"]:hover:active { background-color: ThreeDFace ! important; border-style: inset !important; } /* buttons */ /* Note: Values in nsNativeTheme IsWidgetStyled function need to match button background/border values here */ /* Non text-related properties for buttons: these ones are shared with input[type="color"] */ button, input[type="color"]:-moz-system-metric(color-picker-available), input[type="reset"], input[type="button"], input[type="submit"] { -moz-appearance: button; /* The sum of border-top, border-bottom, padding-top, padding-bottom must be the same here, for text inputs, and for