@utrecht/button-css
Version:
Button component for the Municipality of Utrecht based on the NL Design System architecture
293 lines (286 loc) • 10.7 kB
CSS
/**
* @license EUPL-1.2
* Copyright (c) 2020-2024 Frameless B.V.
* Copyright (c) 2021-2024 Gemeente Utrecht
*/
input[type=button i],
input[type=reset i],
input[type=submit i],
button {
--_utrecht-button-background-color: var(
--_utrecht-button-hint-background-color,
var(--_utrecht-button-appearance-background-color, var(--utrecht-button-background-color))
);
--_utrecht-button-color: var(
--_utrecht-button-hint-color,
var(--_utrecht-button-appearance-color, var(--utrecht-button-color))
);
--_utrecht-button-border-color: var(
--_utrecht-button-hint-border-color,
var(--_utrecht-button-appearance-border-color, var(--utrecht-button-border-color, transparent))
);
--_utrecht-button-border-bottom-color: var(
--_utrecht-button-hint-border-bottom-color,
var(
--_utrecht-button-hint-border-color,
var(
--_utrecht-button-appearance-border-bottom-color,
var(
--_utrecht-button-appearance-border-color,
var(--utrecht-button-border-bottom-color, var(--utrecht-button-border-color, transparent))
)
)
)
);
--_utrecht-button-disabled-background-color: var(
--_utrecht-button-hint-disabled-background-color,
var(
--_utrecht-button-appearance-disabled-background-color,
var(--utrecht-button-disabled-background-color, var(--utrecht-button-background-color))
)
);
--_utrecht-button-disabled-border-color: var(
--_utrecht-button-hint-disabled-border-color,
var(
--_utrecht-button-appearance-disabled-border-color,
var(--utrecht-button-disabled-border-color, var(--utrecht-button-border-color))
)
);
--_utrecht-button-disabled-color: var(
--_utrecht-button-hint-disabled-color,
var(--_utrecht-button-appearance-disabled-color, var(--utrecht-button-disabled-color, var(--utrecht-button-color)))
);
--_utrecht-button-pressed-background-color: var(
--_utrecht-button-hint-pressed-background-color,
var(
--_utrecht-button-hint-background-color,
var(
--_utrecht-button-appearance-pressed-background-color,
var(
--_utrecht-button-appearance-background-color,
var(--utrecht-button-pressed-background-color, var(--utrecht-button-background-color))
)
)
)
);
--_utrecht-button-pressed-border-color: var(
--_utrecht-button-hint-pressed-border-color,
var(
--_utrecht-button-hint-border-color,
var(
--_utrecht-button-appearance-pressed-border-color,
var(
--_utrecht-button-appearance-border-color,
var(--utrecht-button-pressed-border-color, var(--utrecht-button-border-color))
)
)
)
);
--_utrecht-button-pressed-color: var(
--_utrecht-button-hint-pressed-color,
var(
--_utrecht-button-hint-color,
var(
--_utrecht-button-appearance-pressed-color,
var(--_utrecht-button-appearance-color, var(--utrecht-button-pressed-color, var(--utrecht-button-color)))
)
)
);
--_utrecht-button-focus-background-color: var(
--_utrecht-button-hint-focus-background-color,
var(
--_utrecht-button-hint-background-color,
var(
--_utrecht-button-appearance-focus-background-color,
var(
--_utrecht-button-appearance-background-color,
var(--utrecht-button-focus-background-color, var(--utrecht-button-background-color))
)
)
)
);
--_utrecht-button-focus-border-color: var(
--_utrecht-button-hint-focus-border-color,
var(
--_utrecht-button-hint-border-color,
var(
--_utrecht-button-appearance-focus-border-color,
var(
--_utrecht-button-appearance-border-color,
var(--utrecht-button-focus-border-color, var(--utrecht-button-border-color))
)
)
)
);
--_utrecht-button-focus-color: var(
--_utrecht-button-hint-focus-color,
var(
--_utrecht-button-hint-color,
var(
--_utrecht-button-appearance-focus-color,
var(--_utrecht-button-appearance-color, var(--utrecht-button-focus-color, var(--utrecht-button-color)))
)
)
);
--_utrecht-button-hover-background-color: var(
--_utrecht-button-hint-hover-background-color,
var(
--_utrecht-button-hint-background-color,
var(
--_utrecht-button-appearance-hover-background-color,
var(
--_utrecht-button-appearance-background-color,
var(--utrecht-button-hover-background-color, var(--utrecht-button-background-color))
)
)
)
);
--_utrecht-button-hover-border-color: var(
--_utrecht-button-hint-hover-border-color,
var(
--_utrecht-button-hint-border-color,
var(
--_utrecht-button-appearance-hover-border-color,
var(
--_utrecht-button-appearance-border-color,
var(--utrecht-button-hover-border-color, var(--utrecht-button-border-color))
)
)
)
);
--_utrecht-button-hover-color: var(
--_utrecht-button-hint-hover-color,
var(
--_utrecht-button-hint-color,
var(
--_utrecht-button-appearance-hover-color,
var(--_utrecht-button-appearance-color, var(--utrecht-button-hover-color, var(--utrecht-button-color)))
)
)
);
--_utrecht-button-active-background-color: var(
--_utrecht-button-hint-active-background-color,
var(
--_utrecht-button-hint-background-color,
var(
--_utrecht-button-appearance-active-background-color,
var(
--_utrecht-button-appearance-background-color,
var(--utrecht-button-active-background-color, var(--utrecht-button-background-color))
)
)
)
);
--_utrecht-button-active-border-color: var(
--_utrecht-button-hint-active-border-color,
var(
--_utrecht-button-hint-border-color,
var(
--_utrecht-button-appearance-active-border-color,
var(
--_utrecht-button-appearance-border-color,
var(--utrecht-button-active-border-color, var(--utrecht-button-border-color))
)
)
)
);
--_utrecht-button-active-color: var(
--_utrecht-button-hint-active-color,
var(
--_utrecht-button-hint-color,
var(
--_utrecht-button-appearance-active-color,
var(--_utrecht-button-appearance-color, var(--utrecht-button-active-color, var(--utrecht-button-color)))
)
)
);
--_utrecht-button-border-width: var(--_utrecht-button-appearance-border-width, var(--utrecht-button-border-width, 0));
--_utrecht-button-border-block-end-width: var(
--utrecht-button-border-bottom-width,
var(--_utrecht-button-border-width, 0)
);
--_utrecht-button-font-size: var(--_utrecht-button-appearance-font-size, var(--utrecht-button-font-size));
--_utrecht-button-line-height: var(--_utrecht-button-appearance-line-height, var(--utrecht-button-line-height));
--utrecht-icon-size: var(--utrecht-button-icon-size, 1em);
align-items: center;
background-color: var(--_utrecht-button-background-color);
block-size: fit-content;
border-block-end-color: var(--_utrecht-button-border-bottom-color);
border-block-end-width: var(--_utrecht-button-border-block-end-width);
border-color: var(--_utrecht-button-border-color);
border-radius: var(--utrecht-button-border-radius);
border-style: solid;
border-width: var(--_utrecht-button-border-width);
box-sizing: border-box;
color: var(--_utrecht-button-color);
column-gap: var(--utrecht-button-column-gap);
cursor: var(--utrecht-action-activate-cursor, revert);
display: inline-flex;
font-family: var(--utrecht-button-font-family, var(--utrecht-document-font-family));
font-size: var(--_utrecht-button-font-size, var(--utrecht-document-font-family, inherit));
font-weight: var(--_utrecht-button-appearance-font-weight, var(--utrecht-button-font-weight));
inline-size: var(--utrecht-button-inline-size, auto);
justify-content: center;
line-height: var(--_utrecht-button-line-height);
max-inline-size: var(--utrecht-button-max-inline-size, fit-content);
min-block-size: var(--utrecht-button-min-block-size, 44px);
min-inline-size: var(--utrecht-button-min-inline-size, 44px);
padding-block-end: var(--utrecht-button-padding-block-end);
padding-block-start: var(--utrecht-button-padding-block-start);
padding-inline-end: var(--utrecht-button-padding-inline-end);
padding-inline-start: var(--utrecht-button-padding-inline-start);
scale: 1;
text-transform: var(--utrecht-button-text-transform);
-webkit-user-select: none;
user-select: none;
margin-block-end: var(--utrecht-button-margin-block-end);
margin-block-start: var(--utrecht-button-margin-block-start);
margin-inline-end: var(--utrecht-button-margin-inline-end);
margin-inline-start: var(--utrecht-button-margin-inline-start);
}
button[hidden] {
display: none;
}
button[type=submit i],
input[type=submit i] {
cursor: var(--utrecht-action-submit-cursor, revert);
}
button:disabled,
button[aria-disabled=true] {
background-color: var(--_utrecht-button-disabled-background-color);
border-color: var(--_utrecht-button-disabled-border-color);
color: var(--_utrecht-button-disabled-color);
cursor: var(--utrecht-action-disabled-cursor, not-allowed);
}
button[aria-busy=true],
button[aria-disabled=true][aria-busy=true],
button:disabled[aria-busy=true] {
cursor: var(--utrecht-action-busy-cursor, wait);
}
button:active:not([aria-disabled=true], :disabled) {
background-color: var(--_utrecht-button-active-background-color);
border-color: var(--_utrecht-button-active-border-color);
color: var(--_utrecht-button-active-color);
}
button:hover:not([aria-disabled=true], :disabled) {
background-color: var(--_utrecht-button-hover-background-color);
border-color: var(--_utrecht-button-hover-border-color);
color: var(--_utrecht-button-hover-color);
scale: var(--utrecht-button-hover-scale, 1);
}
button:focus:not([aria-disabled=true], :disabled) {
background-color: var(--_utrecht-button-focus-background-color);
border-color: var(--_utrecht-button-focus-border-color);
color: var(--_utrecht-button-focus-color);
scale: var(--utrecht-button-focus-scale, 1);
}
button:focus-visible {
--_utrecht-focus-ring-box-shadow: 0 0 0 var(--utrecht-focus-outline-width, 0)
var(--utrecht-focus-inverse-outline-color, transparent);
box-shadow: var(--_utrecht-focus-ring-box-shadow);
outline-color: var(--utrecht-focus-outline-color, revert);
outline-offset: var(--utrecht-focus-outline-offset, revert);
outline-style: var(--utrecht-focus-outline-style, revert);
outline-width: var(--utrecht-focus-outline-width, revert);
z-index: 1;
}