2024-08-13 11:20:19 +02:00

719 lines
18 KiB
SCSS

@import "@Themes/constants.scss";
.root {
display: inline-flex;
justify-content: center;
border: 1px solid;
box-sizing: border-box;
height: fit-content;
align-items: center;
background: transparent;
font-style: normal;
font-weight: var(--font-text-weight-regular, 400);
white-space: nowrap;
user-select: none;
cursor: pointer;
font-family: var(--font-text-family);
border: 1px solid var(--button-contained-primary-default-border, rgba(0, 0, 0, 0));
svg {
width: 18px;
height: 18px;
}
/**
* Every possible variants
*/
&[variant="primary"] {
color: var(--button-contained-primary-default-contrast);
border-color: var(--button-contained-primary-default-border);
background: var(--button-contained-primary-default-background);
svg {
stroke: var(--button-contained-primary-default-contrast);
}
&:hover {
border-color: var(--button-contained-primary-hovered-border);
background: var(--button-contained-primary-hovered-background);
svg {
stroke: var(--button-contained-primary-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-contained-primary-default-contrast);
border-color: var(--button-contained-primary-pressed-border);
background: var(--button-contained-primary-pressed-background);
svg {
stroke: var(--button-contained-primary-pressed-contrast);
}
}
&[styletype="outlined"] {
color: var(--button-outlined-primary-default-contrast);
border-color: var(--button-outlined-primary-default-border);
background: var(--button-outlined-primary-default-background);
svg {
stroke: var(--button-outlined-primary-default-contrast);
}
&:hover {
border-color: var(--button-outlined-primary-hovered-border);
background: var(--button-outlined-primary-hovered-background);
svg {
stroke: var(--button-outlined-primary-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-outlined-primary-pressed-contrast);
border-color: var(--button-outlined-primary-pressed-border);
background: var(--button-outlined-primary-pressed-background);
svg {
stroke: var(--button-outlined-primary-pressed-contrast);
}
}
}
&[styletype="text"] {
color: var(--button-text-primary-default-contrast);
border-color: var(--button-text-primary-default-border);
background: var(--button-text-primary-default-background);
svg {
stroke: var(--button-text-primary-default-contrast);
}
&:hover {
color: var(--button-text-primary-hovered-contrast);
border-color: var(--button-text-primary-hovered-border);
background: var(--button-text-primary-hovered-background);
svg {
stroke: var(--button-text-primary-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-text-primary-pressed-contrast);
border-color: var(--button-text-primary-pressed-border);
background: var(--button-text-primary-pressed-background);
svg {
stroke: var(--button-text-primary-pressed-contrast);
}
}
}
}
&[variant="secondary"] {
color: var(--button-contained-secondary-default-contrast);
border-color: var(--button-contained-secondary-default-border);
background: var(--button-contained-secondary-default-background);
svg {
stroke: var(--button-contained-secondary-default-contrast);
}
&:hover {
border-color: var(--button-contained-secondary-hovered-border);
background: var(--button-contained-secondary-hovered-background);
svg {
stroke: var(--button-contained-secondary-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-contained-secondary-default-contrast);
border-color: var(--button-contained-secondary-pressed-border);
background: var(--button-contained-secondary-pressed-background);
svg {
stroke: var(--button-contained-secondary-pressed-contrast);
}
}
&[styletype="outlined"] {
color: var(--button-outlined-secondary-default-contrast);
border-color: var(--button-outlined-secondary-default-border);
background: var(--button-outlined-secondary-default-background);
svg {
stroke: var(--button-outlined-secondary-default-contrast);
}
&:hover {
border-color: var(--button-outlined-secondary-hovered-border);
background: var(--button-outlined-secondary-hovered-background);
svg {
stroke: var(--button-outlined-secondary-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-outlined-secondary-pressed-contrast);
border-color: var(--button-outlined-secondary-pressed-border);
background: var(--button-outlined-secondary-pressed-background);
svg {
stroke: var(--button-outlined-secondary-pressed-contrast);
}
}
}
&[styletype="text"] {
color: var(--button-text-secondary-default-contrast);
border-color: var(--button-text-secondary-default-border);
background: var(--button-text-secondary-default-background);
svg {
stroke: var(--button-text-secondary-default-contrast);
}
&:hover {
color: var(--button-text-secondary-hovered-contrast);
border-color: var(--button-text-secondary-hovered-border);
background: var(--button-text-secondary-hovered-background);
svg {
stroke: var(--button-text-secondary-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-text-secondary-pressed-contrast);
border-color: var(--button-text-secondary-pressed-border);
background: var(--button-text-secondary-pressed-background);
svg {
stroke: var(--button-text-secondary-pressed-contrast);
}
}
}
}
&[variant="neutral"] {
color: var(--button-contained-neutral-default-contrast);
border-color: var(--button-contained-neutral-default-border);
background: var(--button-contained-neutral-default-background);
svg {
stroke: var(--button-contained-neutral-default-contrast);
}
&:hover {
border-color: var(--button-contained-neutral-hovered-border);
background: var(--button-contained-neutral-hovered-background);
svg {
stroke: var(--button-contained-neutral-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-contained-neutral-default-contrast);
border-color: var(--button-contained-neutral-pressed-border);
background: var(--button-contained-neutral-pressed-background);
svg {
stroke: var(--button-contained-neutral-pressed-contrast);
}
}
&[styletype="outlined"] {
color: var(--button-outlined-neutral-default-contrast);
border-color: var(--button-outlined-neutral-default-border);
background: var(--button-outlined-neutral-default-background);
svg {
stroke: var(--button-outlined-neutral-default-contrast);
}
&:hover {
border-color: var(--button-outlined-neutral-hovered-border);
background: var(--button-outlined-neutral-hovered-background);
svg {
stroke: var(--button-outlined-neutral-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-outlined-neutral-pressed-contrast);
border-color: var(--button-outlined-neutral-pressed-border);
background: var(--button-outlined-neutral-pressed-background);
svg {
stroke: var(--button-outlined-neutral-pressed-contrast);
}
}
}
&[styletype="text"] {
color: var(--button-text-neutral-default-contrast);
border-color: var(--button-text-neutral-default-border);
background: var(--button-text-neutral-default-background);
svg {
stroke: var(--button-text-neutral-default-contrast);
}
&:hover {
color: var(--button-text-neutral-hovered-contrast);
border-color: var(--button-text-neutral-hovered-border);
background: var(--button-text-neutral-hovered-background);
svg {
stroke: var(--button-text-neutral-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-text-neutral-pressed-contrast);
border-color: var(--button-text-neutral-pressed-border);
background: var(--button-text-neutral-pressed-background);
svg {
stroke: var(--button-text-neutral-pressed-contrast);
}
}
}
}
&[variant="error"] {
color: var(--button-contained-error-default-contrast);
border-color: var(--button-contained-error-default-border);
background: var(--button-contained-error-default-background);
svg {
stroke: var(--button-contained-error-default-contrast);
}
&:hover {
border-color: var(--button-contained-error-hovered-border);
background: var(--button-contained-error-hovered-background);
svg {
stroke: var(--button-contained-error-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-contained-error-default-contrast);
border-color: var(--button-contained-error-pressed-border);
background: var(--button-contained-error-pressed-background);
svg {
stroke: var(--button-contained-error-pressed-contrast);
}
}
&[styletype="outlined"] {
color: var(--button-outlined-error-default-contrast);
border-color: var(--button-outlined-error-default-border);
background: var(--button-outlined-error-default-background);
svg {
stroke: var(--button-outlined-error-default-contrast);
}
&:hover {
border-color: var(--button-outlined-error-hovered-border);
background: var(--button-outlined-error-hovered-background);
svg {
stroke: var(--button-outlined-error-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-outlined-error-pressed-contrast);
border-color: var(--button-outlined-error-pressed-border);
background: var(--button-outlined-error-pressed-background);
svg {
stroke: var(--button-outlined-error-pressed-contrast);
}
}
}
&[styletype="text"] {
color: var(--button-text-error-default-contrast);
border-color: var(--button-text-error-default-border);
background: var(--button-text-error-default-background);
svg {
stroke: var(--button-text-error-default-contrast);
}
&:hover {
color: var(--button-text-error-hovered-contrast);
border-color: var(--button-text-error-hovered-border);
background: var(--button-text-error-hovered-background);
svg {
stroke: var(--button-text-error-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-text-error-pressed-contrast);
border-color: var(--button-text-error-pressed-border);
background: var(--button-text-error-pressed-background);
svg {
stroke: var(--button-text-error-pressed-contrast);
}
}
}
}
&[variant="success"] {
color: var(--button-contained-success-default-contrast);
border-color: var(--button-contained-success-default-border);
background: var(--button-contained-success-default-background);
svg {
stroke: var(--button-contained-success-default-contrast);
}
&:hover {
border-color: var(--button-contained-success-hovered-border);
background: var(--button-contained-success-hovered-background);
svg {
stroke: var(--button-contained-success-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-contained-success-default-contrast);
border-color: var(--button-contained-success-pressed-border);
background: var(--button-contained-success-pressed-background);
svg {
stroke: var(--button-contained-success-pressed-contrast);
}
}
&[styletype="outlined"] {
color: var(--button-outlined-success-default-contrast);
border-color: var(--button-outlined-success-default-border);
background: var(--button-outlined-success-default-background);
svg {
stroke: var(--button-outlined-success-default-contrast);
}
&:hover {
border-color: var(--button-outlined-success-hovered-border);
background: var(--button-outlined-success-hovered-background);
svg {
stroke: var(--button-outlined-success-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-outlined-success-pressed-contrast);
border-color: var(--button-outlined-success-pressed-border);
background: var(--button-outlined-success-pressed-background);
svg {
stroke: var(--button-outlined-success-pressed-contrast);
}
}
}
&[styletype="text"] {
color: var(--button-text-success-default-contrast);
border-color: var(--button-text-success-default-border);
background: var(--button-text-success-default-background);
svg {
stroke: var(--button-text-success-default-contrast);
}
&:hover {
color: var(--button-text-success-hovered-contrast);
border-color: var(--button-text-success-hovered-border);
background: var(--button-text-success-hovered-background);
svg {
stroke: var(--button-text-success-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-text-success-pressed-contrast);
border-color: var(--button-text-success-pressed-border);
background: var(--button-text-success-pressed-background);
svg {
stroke: var(--button-text-success-pressed-contrast);
}
}
}
}
&[variant="warning"] {
color: var(--button-contained-warning-default-contrast);
border-color: var(--button-contained-warning-default-border);
background: var(--button-contained-warning-default-background);
svg {
stroke: var(--button-contained-warning-default-contrast);
}
&:hover {
border-color: var(--button-contained-warning-hovered-border);
background: var(--button-contained-warning-hovered-background);
svg {
stroke: var(--button-contained-warning-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-contained-warning-default-contrast);
border-color: var(--button-contained-warning-pressed-border);
background: var(--button-contained-warning-pressed-background);
svg {
stroke: var(--button-contained-warning-pressed-contrast);
}
}
&[styletype="outlined"] {
color: var(--button-outlined-warning-default-contrast);
border-color: var(--button-outlined-warning-default-border);
background: var(--button-outlined-warning-default-background);
svg {
stroke: var(--button-outlined-warning-default-contrast);
}
&:hover {
border-color: var(--button-outlined-warning-hovered-border);
background: var(--button-outlined-warning-hovered-background);
svg {
stroke: var(--button-outlined-warning-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-outlined-warning-pressed-contrast);
border-color: var(--button-outlined-warning-pressed-border);
background: var(--button-outlined-warning-pressed-background);
svg {
stroke: var(--button-outlined-warning-pressed-contrast);
}
}
}
&[styletype="text"] {
color: var(--button-text-warning-default-contrast);
border-color: var(--button-text-warning-default-border);
background: var(--button-text-warning-default-background);
svg {
stroke: var(--button-text-warning-default-contrast);
}
&:hover {
color: var(--button-text-warning-hovered-contrast);
border-color: var(--button-text-warning-hovered-border);
background: var(--button-text-warning-hovered-background);
svg {
stroke: var(--button-text-warning-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-text-warning-pressed-contrast);
border-color: var(--button-text-warning-pressed-border);
background: var(--button-text-warning-pressed-background);
svg {
stroke: var(--button-text-warning-pressed-contrast);
}
}
}
}
&[variant="info"] {
color: var(--button-contained-info-default-contrast);
border-color: var(--button-contained-info-default-border);
background: var(--button-contained-info-default-background);
svg {
stroke: var(--button-contained-info-default-contrast);
}
&:hover {
border-color: var(--button-contained-info-hovered-border);
background: var(--button-contained-info-hovered-background);
svg {
stroke: var(--button-contained-info-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-contained-info-default-contrast);
border-color: var(--button-contained-info-pressed-border);
background: var(--button-contained-info-pressed-background);
svg {
stroke: var(--button-contained-info-pressed-contrast);
}
}
&[styletype="outlined"] {
color: var(--button-outlined-info-default-contrast);
border-color: var(--button-outlined-info-default-border);
background: var(--button-outlined-info-default-background);
svg {
stroke: var(--button-outlined-info-default-contrast);
}
&:hover {
border-color: var(--button-outlined-info-hovered-border);
background: var(--button-outlined-info-hovered-background);
svg {
stroke: var(--button-outlined-info-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-outlined-info-pressed-contrast);
border-color: var(--button-outlined-info-pressed-border);
background: var(--button-outlined-info-pressed-background);
svg {
stroke: var(--button-outlined-info-pressed-contrast);
}
}
}
&[styletype="text"] {
color: var(--button-text-info-default-contrast);
border-color: var(--button-text-info-default-border);
background: var(--button-text-info-default-background);
svg {
stroke: var(--button-text-info-default-contrast);
}
&:hover {
color: var(--button-text-info-hovered-contrast);
border-color: var(--button-text-info-hovered-border);
background: var(--button-text-info-hovered-background);
svg {
stroke: var(--button-text-info-hovered-contrast);
}
}
&:focus,
&:active {
color: var(--button-text-info-pressed-contrast);
border-color: var(--button-text-info-pressed-border);
background: var(--button-text-info-pressed-background);
svg {
stroke: var(--button-text-info-pressed-contrast);
}
}
}
}
/**
* Every possible sizes
*/
&[sizing="sm"] {
padding: var(--spacing-0-5) var(--spacing-1-5);
gap: var(--spacing-0-75);
font-size: 14px;
height: 32px;
}
&[sizing="md"] {
padding: var(--spacing-1) var(--spacing-2);
gap: var(--spacing-0-75);
font-size: 16px;
}
&[sizing="lg"] {
padding: var(--spacing-2) var(--spacing-3);
gap: var(--spacing-1-5);
font-size: 16px;
}
/**
* Every possible style types
*/
&[styletype="contained"] {
color: var(--color-generic-white);
}
&[styletype="outlined"] {
background: transparent;
}
&[styletype="text"] {
background: transparent;
border: none;
border-bottom: 1px solid;
}
/**
* Every possible states
*/
&[fullwidthattr="true"] {
width: 100%;
flex: 1;
}
&[fullwidthattr="false"] {
width: fit-content;
}
&[touppercase="false"] {
text-transform: inherit;
}
&:disabled {
opacity: var(--opacity-disabled, 0.3);
pointer-events: none;
}
}