@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
251 lines (249 loc) • 8.84 kB
CSS
/*
* Button component
*
*/
/*
* Utilities
*/
.eufemia-scope--10_104_0 {
--button-icon-size: 1rem;
--button-height: 2.5rem;
}
.eufemia-scope--10_104_0 .dnb-button {
--button-font-size: var(--font-size-basis);
--button-font-size-small: var(--font-size-small);
--button-icon-size--small: 0.75rem;
--button-icon-size--medium: 1.5rem;
--button-icon-size--large: 2rem;
--button-icon-gutter: 0.5rem;
--button-width: 2.5rem;
--button-width--small: 1.5rem;
--button-height--small: 1.5rem;
--button-width--medium: 2rem;
--button-height--medium: 2rem;
--button-width--large: 3rem;
--button-height--large: 3rem;
--button-border-width: 0.0625rem;
--button-border-width--hover: 0.1875rem;
--button-border-radius: calc(var(--button-height) / 2);
--button-border-radius--control-button: 0.25rem;
--button-padding-left: 0;
--button-padding-right: 0;
--button-padding-icon: 1rem;
--button-padding--default: 1.5rem;
--button-padding--small: 1rem;
--button-padding--medium: 1rem;
--button-padding--large: 2rem;
--button-icon-margin-top: 0;
--button-icon-margin-left: 0;
--button-icon-margin-right: 0;
position: relative;
cursor: pointer;
white-space: nowrap;
}
.eufemia-scope--10_104_0 .dnb-button--wrap {
overflow-wrap: break-word;
white-space: normal;
}
.eufemia-scope--10_104_0 .dnb-button {
display: inline-flex;
align-items: center;
justify-content: center;
width: var(--button-width);
height: auto;
padding: 0 var(--button-padding-right) 0 var(--button-padding-left);
border: none;
border-radius: var(--button-border-radius);
text-align: left;
font-size: var(--font-size-small);
font-weight: var(--font-weight-regular);
-webkit-text-decoration: none;
text-decoration: none;
box-shadow: none;
}
.eufemia-scope--10_104_0 .dnb-button, .eufemia-scope--10_104_0 .dnb-core-style .dnb-button {
line-height: var(--button-height);
}
.eufemia-scope--10_104_0 .dnb-button__text {
margin: 0.5rem 0;
font-size: var(--button-font-size);
line-height: var(--line-height-basis);
color: inherit;
transform: translateY(-0.03125rem);
}
.eufemia-scope--10_104_0 .dnb-button__text [data-os=linux] {
transform: translateY(-0.035rem);
}
.eufemia-scope--10_104_0 .dnb-button__alignment {
display: inline-block;
width: 0;
}
.eufemia-scope--10_104_0 .dnb-button__bounding {
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
transform: scale(1.1, 1.4);
background-color: transparent;
border-radius: var(--button-border-radius);
}
.eufemia-scope--10_104_0 .dnb-button--size-small {
--button-height: var(--button-height--small);
width: var(--button-width--small);
font-size: var(--button-font-size-small);
}
.eufemia-scope--10_104_0 .dnb-button--size-small .dnb-button__text {
margin: 0;
}
.eufemia-scope--10_104_0 .dnb-button--has-text.dnb-button--size-small {
--button-padding-left: var(--button-padding--small);
--button-padding-right: var(--button-padding--small);
}
.eufemia-scope--10_104_0 .dnb-button--size-medium {
--button-height: var(--button-height--medium);
width: var(--button-width--medium);
}
.eufemia-scope--10_104_0 .dnb-button--size-medium .dnb-button__text {
margin: 0;
}
.eufemia-scope--10_104_0 .dnb-button--has-text.dnb-button--size-medium {
--button-padding-left: var(--button-padding--medium);
--button-padding-right: var(--button-padding--medium);
}
.eufemia-scope--10_104_0 .dnb-button--control-before.dnb-button--size-medium {
line-height: var(--button-height);
}
.eufemia-scope--10_104_0 .dnb-button--control-after.dnb-button--size-medium {
line-height: var(--button-height);
}
.eufemia-scope--10_104_0 .dnb-button--size-large {
--button-height: var(--button-height--large);
--button-padding-icon: 1.5rem;
width: var(--button-width--large);
}
.eufemia-scope--10_104_0 .dnb-button--has-text.dnb-button--size-large {
--button-padding-left: var(--button-padding--large);
--button-padding-right: var(--button-padding--large);
}
.eufemia-scope--10_104_0 .dnb-button {
/* stylelint-disable-next-line */
}
.eufemia-scope--10_104_0 .dnb-button--has-text {
--button-padding-left: var(--button-padding--default);
--button-padding-right: var(--button-padding--default);
width: auto;
}
.eufemia-scope--10_104_0 .dnb-button__icon {
margin: var(--button-icon-margin-top) var(--button-icon-margin-right) 0 var(--button-icon-margin-left);
}
.eufemia-scope--10_104_0 .dnb-button--has-text.dnb-button--icon-position-left {
--button-padding-left: var(--button-padding-icon);
--button-icon-margin-right: var(--button-icon-gutter);
}
.eufemia-scope--10_104_0 .dnb-button--has-text.dnb-button--icon-position-right {
--button-padding-right: var(--button-padding-icon);
--button-icon-margin-left: var(--button-icon-gutter);
}
.eufemia-scope--10_104_0 .dnb-button--icon-size-small {
--button-icon-size: var(--button-icon-size--small);
}
.eufemia-scope--10_104_0 .dnb-button--icon-size-medium {
--button-icon-size: var(--button-icon-size--medium);
}
.eufemia-scope--10_104_0 .dnb-button--icon-size-large {
--button-icon-size: var(--button-icon-size--large);
}
.eufemia-scope--10_104_0 .dnb-button--has-text.dnb-button--has-icon .dnb-button__icon {
order: 2;
}
.eufemia-scope--10_104_0 .dnb-button--has-text.dnb-button--has-icon .dnb-button__text {
order: 1;
}
.eufemia-scope--10_104_0 .dnb-button:not(.dnb-button--has-text) .dnb-button__icon {
width: inherit;
}
.eufemia-scope--10_104_0 .dnb-button__icon.dnb-icon svg:not([width]):not([height]) {
width: var(--button-icon-size);
height: var(--button-icon-size);
}
.eufemia-scope--10_104_0 [href] > .dnb-button__icon.dnb-icon {
line-height: var(--button-font-size);
}
.eufemia-scope--10_104_0 .dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-left .dnb-button__icon, .eufemia-scope--10_104_0 .dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-top .dnb-button__icon {
order: 1;
}
.eufemia-scope--10_104_0 .dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-left .dnb-button__text, .eufemia-scope--10_104_0 .dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-top .dnb-button__text {
order: 2;
}
.eufemia-scope--10_104_0 .dnb-button--stretch {
width: 100%;
}
.eufemia-scope--10_104_0 .dnb-button--control-before {
border-radius: var(--button-border-radius--control-button) 0 0 var(--button-border-radius--control-button);
}
.eufemia-scope--10_104_0 .dnb-button--control-after {
border-radius: 0 var(--button-border-radius--control-button) var(--button-border-radius--control-button) 0;
}
.eufemia-scope--10_104_0 .dnb-button--reset {
margin: 0;
padding: 0;
width: auto;
height: auto;
overflow: visible;
border: none;
border-radius: 0;
background-color: transparent;
-webkit-appearance: none;
appearance: none;
box-shadow: none;
color: inherit;
font: inherit;
text-align: inherit;
line-height: inherit;
}
html:not([data-whatintent=touch]) .eufemia-scope--10_104_0 .dnb-button--reset:hover[disabled] {
cursor: not-allowed;
}
html:not([data-whatintent=touch]) .eufemia-scope--10_104_0 .dnb-button--reset:hover:not([disabled]) {
box-shadow: none;
border: none;
}
.eufemia-scope--10_104_0 .dnb-button--reset:not([disabled]):focus, .eufemia-scope--10_104_0 .dnb-button--reset:not([disabled]):active {
outline: none;
}
html[data-whatinput=keyboard] .eufemia-scope--10_104_0 .dnb-button--reset:not([disabled]):focus, html[data-whatinput=keyboard] .eufemia-scope--10_104_0 .dnb-button--reset:not([disabled]):active {
--border-color: var(--focus-ring-color);
--border-width: var(--focus-ring-width);
box-shadow: 0 0 0 var(--border-width) var(--border-color);
border-color: transparent;
}
html[data-whatinput=mouse] .eufemia-scope--10_104_0 .dnb-button--reset:not([disabled]):focus, html[data-whatinput=mouse] .eufemia-scope--10_104_0 .dnb-button--reset:not([disabled]):active {
box-shadow: none;
color: inherit;
border: none;
}
.eufemia-scope--10_104_0 .dnb-button[type=button], .eufemia-scope--10_104_0 .dnb-button[type=reset], .eufemia-scope--10_104_0 .dnb-button[type=submit] {
appearance: none;
/* stylelint-disable-next-line */
-moz-appearance: none;
/* stylelint-disable-next-line */
-webkit-appearance: none;
}
.eufemia-scope--10_104_0 .dnb-button[disabled] {
cursor: not-allowed;
outline: none;
}
.eufemia-scope--10_104_0 .dnb-form-row--vertical .dnb-form-row__content > .dnb-button {
align-self: flex-start;
}
.eufemia-scope--10_104_0 .dnb-form-row--horizontal .dnb-form-row__content .dnb-button__text {
white-space: nowrap;
}
.eufemia-scope--10_104_0 .dnb-button + .dnb-form-status {
margin-top: 0.5rem;
}
/* Firefox includes a hidden border which messes up button dimensions */
.eufemia-scope--10_104_0 button.dnb-button::-moz-focus-inner {
border: none;
}