drupal/core/themes/claro/css/components/button.css

211 lines
4.9 KiB
CSS

/*
* DO NOT EDIT THIS FILE.
* See the following change record for more information,
* https://www.drupal.org/node/3084859
* @preserve
*/
/**
* @file
* Structural styles for Claro's UI buttons
*
* Apply these classes to button elements (<button>, <input type="button" />).
*/
/**
* Buttons.
*
* 1. Padding widths detracted by width of the transparent borders to make
* button size match with design system.
* 2. Transparent border is needed for high contrast mode. This has to be set to
* !important to render Firefox borders with consistent width in high
* contrast mode.
* 3. Prevent fat text in WebKit.
*
* @todo Consider moving box-sizing into base.css under a universal selector.
* See https://www.drupal.org/node/2124251
*/
/**
* Base button styles.
*
* These styles have been duplicated to dropbutton.css and action-links.css
* since those components inherits most of these design elements. Whenever
* making changes to this file, remember to check if that needs to be applied to
* dropbutton.css or action-links.css as well.
*/
.button {
border: 1px solid transparent !important;
}
.button {
display: inline-block;
margin: var(--space-m) var(--space-s) var(--space-m) 0; /* LTR */
padding: calc(var(--space-m) - 1px) calc(var(--space-l) - 1px); /* 1 */
cursor: pointer;
text-align: center;
text-decoration: none;
color: var(--button-fg-color); /* 2 */
border-radius: var(--button-border-radius-size);
background-color: var(--button-bg-color);
font-size: var(--font-size-base);
font-weight: 700;
line-height: 1rem;
-webkit-appearance: none;
appearance: none;
-webkit-font-smoothing: antialiased; /* 3 */
}
[dir="rtl"] .button {
margin: var(--space-m) 0 var(--space-m) var(--space-s);
}
.button:not(:focus) {
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}
.button:hover {
text-decoration: none;
background-color: var(--button--hover-bg-color);
}
.button:focus {
text-decoration: none;
}
.button:active {
background-color: var(--button--active-bg-color);
}
/* Common styles for small buttons */
.no-touchevents .button--small {
margin: var(--space-s) var(--space-xs) var(--space-s) 0; /* LTR */
padding: calc(var(--space-xs) - 1px) calc(var(--space-m) - 1px); /* 1 */
font-size: var(--font-size-xs);
}
/* Common styles for extra small buttons */
.no-touchevents .button--extrasmall {
margin: var(--space-xs) var(--space-xs) var(--space-xs) 0; /* LTR */
padding: calc(calc(var(--space-xs) / 2) - 1px) calc(var(--space-s) - 1px); /* 1 */
font-size: var(--font-size-xs);
}
[dir="rtl"].no-touchevents .button--small,
[dir="rtl"].no-touchevents .button--extrasmall {
margin-right: 0;
margin-left: var(--space-xs);
}
/* Styles for action link buttons */
.button--action {
margin: 0;
}
.button--action::before {
margin-left: -0.25em; /* LTR */
padding-right: 0.25em; /* LTR */
content: "+";
font-weight: 900;
}
[dir="rtl"] .button--action::before {
margin-right: -0.25em;
margin-left: 0;
padding-right: 0;
padding-left: 0.25em;
}
a.button:hover,
a.button:active {
color: var(--button-fg-color);
}
/* Primary button styles */
.button--primary {
color: var(--button-fg-color--primary);
background-color: var(--button-bg-color--primary);
}
.button--primary:hover {
color: var(--button-fg-color--primary);
background-color: var(--button--hover-bg-color--primary);
}
.button--primary:active {
background-color: var(--button--active-bg-color--primary);
}
a.button--primary:hover,
a.button--primary:active {
color: var(--button-fg-color--primary);
}
/* Danger button styles */
.button--danger {
color: var(--button-fg-color--danger);
background-color: var(--button-bg-color--danger);
}
.button--danger:hover {
color: var(--button-fg-color--danger);
background-color: var(--button--hover-bg-color--danger);
}
.button--danger:active {
background-color: var(--button--active-bg-color--danger);
}
a.button--danger:hover,
a.button--danger:active {
color: var(--button-fg-color--danger);
}
/**
* Disabled state styles as last.
*
* Overrides every definitions before, including variants.
*/
.button:disabled,
.button.is-disabled {
color: var(--button--disabled-fg-color);
background-color: var(--button--disabled-bg-color);
}
.button--primary:disabled,
.button--primary.is-disabled {
color: var(--button--disabled-fg-color--primary);
background-color: var(--button--disabled-bg-color--primary);
}
/* Make disabled <link> behave like a [disabled] <input> or <button> */
.button.is-disabled {
-webkit-user-select: none;
user-select: none;
pointer-events: none;
}
/**
* Style a clickable/tappable element as a link. Duplicates the base style for
* the <a> tag, plus a reset for padding, borders and background.
*/
.link {
display: inline;
padding: 0;
cursor: pointer;
text-decoration: underline;
border: 0;
background: none;
-webkit-appearance: none;
appearance: none;
}