@scania/tegel
Version:
Tegel Design System
160 lines • 4.82 kB
CSS
.tds-toggle .disabled {
cursor: not-allowed;
}
.tds-toggle .toggle-headline {
font: var(--tds-detail-02);
letter-spacing: var(--tds-detail-02-ls);
color: var(--tds-toggle-headline);
margin-bottom: 12px;
}
.tds-toggle .toggle-headline.disabled {
color: var(--tds-toggle-headline-disabled);
}
.tds-toggle input[type=checkbox] {
appearance: initial;
margin: 0;
width: 44px;
height: 24px;
position: relative;
display: inline-block;
vertical-align: middle;
cursor: pointer;
/* Switch */
}
.tds-toggle input[type=checkbox]::after, .tds-toggle input[type=checkbox]::before {
content: "";
position: absolute;
box-sizing: border-box;
transition: all var(--tds-motion-duration-moderate-01) var(--tds-motion-easing-scania);
}
.tds-toggle input[type=checkbox]::before {
/* Slider */
width: 44px;
height: 24px;
border-radius: 16px;
background-color: var(--tds-toggle-off-slider);
left: 0;
border: 1px solid transparent;
}
.tds-toggle input[type=checkbox]::after {
width: 16px;
height: 16px;
background-color: var(--tds-toggle-switch);
border-radius: 50%;
left: 4px;
top: 4px;
}
.tds-toggle input[type=checkbox]:focus-visible {
outline: none;
outline: 2px solid var(--tds-toggle-border-outline);
border-radius: 16px;
outline-offset: -2px;
}
.tds-toggle input[type=checkbox]:focus-visible::before {
width: 40px;
height: 20px;
left: 2px;
top: 2px;
background-color: var(--tds-toggle-off-slider-focus);
border: 1px solid var(--tds-toggle-off-border-focus);
}
.tds-toggle input[type=checkbox]:hover::before {
background-color: var(--tds-toggle-off-slider-hover);
}
.tds-toggle input[type=checkbox]:active::before {
background-color: var(--tds-toggle-off-slider-pressed);
}
.tds-toggle input[type=checkbox]:checked::before {
background-color: var(--tds-toggle-on-slider);
}
.tds-toggle input[type=checkbox]:checked:focus-visible::before {
background-color: var(--tds-toggle-on-slider-focus);
border: 1px solid var(--tds-toggle-on-border-focus);
}
.tds-toggle input[type=checkbox]:checked:hover::before {
background-color: var(--tds-toggle-on-slider-hover);
}
.tds-toggle input[type=checkbox]:checked:active::before {
background-color: var(--tds-toggle-on-slider-pressed);
}
.tds-toggle input[type=checkbox]:checked::after {
left: 24px;
}
.tds-toggle input[type=checkbox]:disabled {
cursor: not-allowed;
}
.tds-toggle input[type=checkbox]:disabled::before {
background-color: var(--tds-toggle-slider-disabled);
border: 1px solid var(--tds-toggle-slider-disabled);
}
.tds-toggle input[type=checkbox]:disabled::after {
background-color: var(--tds-toggle-switch-disabled);
}
.tds-toggle input[type=checkbox]:disabled:checked::before {
background-color: var(--tds-toggle-on-slider-disabled);
border: 1px solid var(--tds-toggle-on-slider-disabled);
}
.tds-toggle input[type=checkbox]:disabled:checked::after {
background-color: var(--tds-toggle-switch-disabled);
}
.tds-toggle input[type=checkbox].sm {
width: 28px;
height: 16px;
}
.tds-toggle input[type=checkbox].sm::before {
width: 28px;
height: 16px;
}
.tds-toggle input[type=checkbox].sm::after {
width: 8px;
height: 8px;
}
.tds-toggle input[type=checkbox].sm:focus-visible::before {
width: 24px;
height: 12px;
left: 2px;
top: 2px;
background-color: var(--tds-toggle-off-slider-focus);
border: 1px solid var(--tds-toggle-off-border-focus);
}
.tds-toggle input[type=checkbox].sm:focus-visible:active::before {
background-color: var(--tds-toggle-off-slider-pressed);
}
.tds-toggle input[type=checkbox].sm:active::before {
background-color: var(--tds-toggle-off-slider-pressed);
}
.tds-toggle input[type=checkbox].sm:checked::before {
background-color: var(--tds-toggle-on-slider);
}
.tds-toggle input[type=checkbox].sm:checked:focus-visible::before {
background-color: var(--tds-toggle-on-slider-focus);
border: 1px solid var(--tds-toggle-on-border-focus);
}
.tds-toggle input[type=checkbox].sm:checked:hover::before {
background-color: var(--tds-toggle-on-slider-hover);
}
.tds-toggle input[type=checkbox].sm:checked:active::before {
background-color: var(--tds-toggle-on-slider-pressed);
}
.tds-toggle input[type=checkbox].sm:checked::after {
left: 16px;
}
.tds-toggle input[type=checkbox].sm:disabled::before {
background-color: var(--tds-toggle-slider-disabled);
border: 1px solid var(--tds-toggle-slider-disabled);
}
.tds-toggle input[type=checkbox].sm:disabled::after {
background-color: var(--tds-toggle-switch-disabled);
}
.tds-toggle label {
display: inline-block;
vertical-align: middle;
font: var(--tds-detail-01);
letter-spacing: var(--tds-detail-01-ls);
color: var(--tds-toggle-label-color);
padding-left: 8px;
cursor: pointer;
}
.tds-toggle label.disabled {
color: var(--tds-toggle-label-color-disabled);
}