/* 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/. */

/* ===== button.css =====================================================
  == Styles used by the XUL button element.
  ======================================================================= */

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

/* :::::::::: button :::::::::: */

button {
  -moz-appearance: button;
  margin: 1px 5px 2px;
  min-width: 6.3em;
  color: ButtonText;
  text-shadow: none;
}

.button-box {
  padding-top: 2px;
  padding-bottom: 3px;
  padding-inline-start: 4px;
  padding-inline-end: 5px;
}

.button-text {
  margin: 0 !important;
  text-align: center;
}

/* .......... focused state .......... */

button:-moz-focusring {
  outline: 1px dotted;
  outline-offset: -3px;
}

/* .......... default/hover/focused state .......... */

@media (-moz-windows-default-theme: 0) {
  @media (-moz-windows-compositor) {
    /* This is for high-contrast black and white themes on Windows 8 and later,
       where the native appearance renders a different background (which
       appears to be equivalent to the Highlight color) if the button is in the
       default, hovered or focused state. However, if these states overlap with
       the active, disabled, open or checked state, the appearance reverts back
       to the default background. */
    button:-moz-any([default="true"],:hover,:focus):not(:-moz-any(:active,[disabled="true"],[open="true"],[checked="true"])) {
      color: HighlightText;
    }
  }
}

/* .......... active/open/checked state .......... */

@media (-moz-windows-classic) {
  button:-moz-any(:hover:active,[open="true"],[checked="true"]):not([disabled="true"]) > .button-box {
    padding-top: 3px;
    padding-bottom: 2px;
    padding-inline-start: 5px;
    padding-inline-end: 4px;
  }
}

/* .......... disabled state .......... */

button[disabled="true"] {
  color: GrayText;
}

@media (-moz-windows-classic) {
  button[disabled="true"] {
    color: ThreeDShadow;
    text-shadow: 1px 1px ThreeDHighlight;
  }
}

/* ::::: menu/menu-button buttons ::::: */

button[type="menu-button"] {
  margin: 0;
}

.button-menu-dropmarker,
.button-menubutton-dropmarker {
  -moz-appearance: none !important;
  margin: 1px;
  width: 11px;
  height: 11px;
}

.button-menubutton-dropmarker[open="true"] {
  margin-top: 2px;
  margin-bottom: 0px;
  margin-inline-start: 2px;
  margin-inline-end: 0px;
}

/* ::::: plain buttons ::::: */

button.plain {
  margin: 0 !important;
  padding: 0 !important;
}

button[type="disclosure"] {
  margin: 0;
  -moz-appearance: none;
  list-style-image: url("chrome://global/skin/tree/twisty.svg#clsd");
  min-width: 0;
}

button[type="disclosure"][open="true"] {
  list-style-image: url("chrome://global/skin/tree/twisty.svg#open");
}
