@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
237 lines (236 loc) • 9 kB
CSS
/*
* Button theme
*
*/
/*
* Utilities
*/
/*
* Button theme
*
*/
/*
* Button theme
*
*/
/*
* Button mixins
*
*/
.dnb-button--tertiary {
--button-tertiary-focus-left: -0.5rem;
--button-tertiary-focus-right: -0.5rem;
--button-tertiary-focus-overflow--icon-top: -0.5rem;
--button-tertiary-underline-left: var(
--button-tertiary-underline-overflow
);
--button-tertiary-underline-right: var(
--button-tertiary-underline-overflow
);
--button-tertiary-underline-overflow: 0;
--button-tertiary-underline-overflow--icon: calc(
(var(--button-icon-gutter) + var(--button-icon-size)) * -1
);
}
.dnb-button--tertiary .dnb-button__text {
position: relative;
}
.dnb-button--tertiary .dnb-button__text::after {
content: "";
position: absolute;
z-index: 1;
left: 0;
right: 0;
bottom: 0;
width: auto;
height: 0.095rem;
border-radius: 0.0475rem;
color: var(--button-color-underline, var(--button-color-underline--default));
background-color: currentcolor;
bottom: -0.0625rem;
transition: color 250ms ease-in-out;
}
[data-visual-test-wrapper] .dnb-button--tertiary .dnb-button__text::after {
transition: none;
}
.dnb-button--tertiary .dnb-button__text::after {
left: var(--button-tertiary-underline-left);
right: var(--button-tertiary-underline-right);
}
.dnb-skeleton .dnb-button--tertiary .dnb-button__text::after {
content: none;
}
html:not([data-whatinput=touch]) .dnb-button--tertiary:focus-visible[disabled] {
cursor: not-allowed;
}
html:not([data-whatinput=touch]) .dnb-button--tertiary:focus-visible:not([disabled]) .dnb-button__text::after {
visibility: hidden;
}
html:not([data-whatintent=touch]) .dnb-button--tertiary:hover[disabled] {
cursor: not-allowed;
}
html:not([data-whatintent=touch]) .dnb-button--tertiary:hover:not([disabled]) .dnb-button__text::after {
visibility: visible;
}
.dnb-button--tertiary:active[disabled], html:not([data-whatintent=touch]) .dnb-button--tertiary:active[disabled] {
cursor: not-allowed;
}
.dnb-button--tertiary:active:not([disabled]), html:not([data-whatintent=touch]) .dnb-button--tertiary:active:not([disabled]) {
outline: initial;
}
html[data-whatinput=keyboard] .dnb-button--tertiary:active:not([disabled]), html[data-whatinput=keyboard] html:not([data-whatintent=touch]) .dnb-button--tertiary:active:not([disabled]) {
box-shadow: none;
}
html[data-whatintent=touch] .dnb-button--tertiary:active:not([disabled]) .dnb-button__text::after, html[data-whatintent=touch] html:not([data-whatintent=touch]) .dnb-button--tertiary:active:not([disabled]) .dnb-button__text::after {
transition: none;
visibility: visible;
opacity: 1;
}
html:not([data-whatintent=touch]) .dnb-button--tertiary:active:not([disabled]) .dnb-button__text::after, html:not([data-whatintent=touch]) html:not([data-whatintent=touch]) .dnb-button--tertiary:active:not([disabled]) .dnb-button__text::after {
visibility: hidden;
}
.dnb-button--tertiary.dnb-button--has-text {
--button-padding-left: 0;
--button-padding-right: 0;
--button-icon-margin-top: calc(
(var(--button-height) - var(--button-icon-size)) / 2
);
}
.dnb-button--tertiary.dnb-button--has-text .dnb-button__icon {
align-self: flex-start;
}
.dnb-button--tertiary.dnb-button--icon-position-top {
--button-tertiary-focus-left: var(
--button-tertiary-focus-overflow--icon-top
);
--button-tertiary-focus-right: var(
--button-tertiary-focus-overflow--icon-top
);
flex-direction: column;
border-radius: 0.5rem;
vertical-align: middle;
}
.dnb-button--tertiary.dnb-button--icon-position-top.dnb-button--has-text {
--button-icon-margin-top: 0.5rem;
}
.dnb-button--tertiary.dnb-button--icon-position-top.dnb-button--has-text .dnb-button__icon {
align-self: center;
}
.dnb-button--tertiary.dnb-button--icon-position-top .dnb-button__text {
margin-top: 0;
margin-bottom: 0.25rem;
font-size: var(--font-size-x-small);
}
.dnb-button--tertiary.dnb-button--icon-position-top.dnb-button--size-large .dnb-button__text {
font-size: var(--font-size-small);
}
.dnb-button--tertiary.dnb-button--icon-position-top .dnb-button__alignment {
order: 3;
height: 0;
}
.dnb-button--tertiary.dnb-button--has-icon.dnb-button--has-text.dnb-button--icon-size-medium, .dnb-button--tertiary.dnb-button--has-icon.dnb-button--has-text.dnb-button--icon-size-large {
--button-tertiary-underline-overflow--icon: var(
--button-tertiary-underline-overflow
);
}
.dnb-button--tertiary.dnb-button--has-icon.dnb-button--has-text.dnb-button--icon-position-left {
--button-tertiary-focus-right: -1rem;
--button-tertiary-underline-left: var(
--button-tertiary-underline-overflow--icon
);
}
.dnb-button--tertiary.dnb-button--has-icon.dnb-button--has-text.dnb-button--icon-position-right {
--button-tertiary-focus-left: -1rem;
--button-tertiary-underline-right: var(
--button-tertiary-underline-overflow--icon
);
}
.dnb-button--tertiary.dnb-button--has-icon:not(.dnb-button--has-text) {
--button-tertiary-focus-left: 0;
--button-tertiary-focus-right: 0;
}
html[data-whatinput=keyboard] .dnb-button--tertiary:hover:focus .dnb-button__text::after {
visibility: hidden;
}
.dnb-button {
--button-background--focus: var(--sb-color-blue-light-3);
--button-border-radius--control-button: 3rem;
--button-padding--large: 1.5rem;
--button-primary-shadow: var(--sb-shadow-medium);
--button-primary-shadow--hover: var(--sb-shadow-medium);
--button-primary-color: var(--sb-color-white);
--button-primary-color--hover: var(--sb-color-purple-alternative);
--button-primary-color--disabled: var(--sb-color-gray-dark-2);
--button-primary-background--hover: var(--sb-color-green);
--button-primary-background--active: var(--sb-color-purple-alternative);
--button-primary-background--disabled: var(--sb-color-gray-light);
--button-primary-border--hover: transparent;
--button-secondary-color: var(--sb-color-purple-alternative);
--button-secondary-color--hover: var(--sb-color-purple-alternative);
--button-secondary-color--active: var(--sb-color-purple-alternative);
--button-secondary-color--disabled: var(--sb-color-gray-dark);
--button-secondary-background: var(--sb-color-white);
--button-secondary-background--hover: var(--sb-color-green);
--button-secondary-background--active: var(--sb-color-white);
--button-secondary-border: var(--button-secondary-border--default);
--button-secondary-border--default: var(--sb-color-purple-alternative);
--button-secondary-border--hover: var(
--button-secondary-border--default
);
--button-secondary-border--active: var(
--button-secondary-border--default
);
--button-secondary-border--disabled: var(--sb-color-gray-light);
--button-tertiary-border: var(--sb-color-violet);
border: none;
}
.dnb-button--has-text.dnb-button--size-large {
--button-padding-icon: 1rem;
}
.dnb-button--secondary:not(.dnb-button--has-text).dnb-button--control-before, .dnb-button--secondary:not(.dnb-button--has-text).dnb-button--control-after {
box-shadow: none;
border: none;
}
html:not([data-whatintent=touch]) .dnb-button--secondary:not(.dnb-button--has-text).dnb-button--control-before:hover[disabled], html:not([data-whatintent=touch]) .dnb-button--secondary:not(.dnb-button--has-text).dnb-button--control-after:hover[disabled] {
cursor: not-allowed;
}
html:not([data-whatintent=touch]) .dnb-button--secondary:not(.dnb-button--has-text).dnb-button--control-before:hover:not([disabled]), html:not([data-whatintent=touch]) .dnb-button--secondary:not(.dnb-button--has-text).dnb-button--control-after:hover:not([disabled]) {
box-shadow: none;
border: none;
}
.dnb-button--input-button:not(.dnb-button--secondary--has-text)::after {
display: none;
}
.dnb-button--tertiary {
--button-tertiary-focus-overflow--icon-top: 0;
--button-tertiary-underline-overflow: -0.5rem;
--button-tertiary-underline-overflow--icon: calc(
(var(--button-icon-gutter) + var(--button-icon-size) - var(--button-tertiary-underline-overflow)) * -1
);
--button-tertiary-underline-bottom: -0.5rem;
--button-tertiary-text-bottom--icon: 0.5rem;
--button-tertiary-text-top--icon: 0;
}
.dnb-button--tertiary .dnb-button__text::after {
height: 0.0625rem;
bottom: var(--button-tertiary-underline-bottom);
}
.dnb-button--tertiary.dnb-button--has-text.dnb-button--icon-position-top {
--button-padding-left: calc(
var(--button-tertiary-underline-overflow) * -1
);
--button-padding-right: calc(
var(--button-tertiary-underline-overflow) * -1
);
}
.dnb-button--tertiary.dnb-button--has-text.dnb-button--icon-position-top .dnb-button__text {
margin-top: var(--button-tertiary-text-top--icon);
margin-bottom: var(--button-tertiary-text-bottom--icon);
font-size: var(--button-font-size);
}
.dnb-button--tertiary.dnb-button--size-large {
--button-tertiary-underline-bottom: -0.75rem;
--button-tertiary-underline-overflow: -1.5rem;
--button-tertiary-text-bottom--icon: 0.75rem;
--button-tertiary-text-top--icon: 0.25rem;
}