@scania/tegel
Version:
Tegel Design System
101 lines • 3.62 kB
CSS
.tds-radio-button {
box-sizing: border-box;
display: flex;
align-items: center;
margin-left: -4px;
font: var(--tds-detail-02);
letter-spacing: var(--tds-detail-02-ls);
color: var(--tds-radio-button-color);
}
.tds-radio-button * {
box-sizing: border-box;
}
.tds-radio-button .tds-form-input[type=radio] {
appearance: none;
outline: none;
margin: 0;
border: 0;
width: 20px;
height: 24px;
border-radius: 50%;
position: relative;
cursor: pointer;
flex-shrink: 0;
align-self: flex-start;
}
.tds-radio-button .tds-form-input[type=radio] + label {
padding: var(--tds-spacing-element-4) 0 var(--tds-spacing-element-4) 6px;
cursor: pointer;
}
.tds-radio-button .tds-form-input[type=radio]::before, .tds-radio-button .tds-form-input[type=radio]::after {
content: "";
position: absolute;
border-radius: 50%;
box-sizing: border-box;
}
.tds-radio-button .tds-form-input[type=radio]::before {
width: 20px;
height: 20px;
top: 2px;
}
.tds-radio-button .tds-form-input[type=radio]::after {
border: 1px solid var(--tds-radio-button-interaction-01);
background-color: var(--tds-radio-button-interaction-02);
width: 16px;
height: 16px;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.tds-radio-button .tds-form-input[type=radio]:hover::before {
background-color: var(--tds-radio-button-background-hover);
}
.tds-radio-button .tds-form-input[type=radio]:focus-visible::before {
background-color: var(--tds-radio-button-background-focus);
box-shadow: 0 0 0 1px var(--tds-radio-button-background-focus);
animation: rb-focus var(--tds-motion-duration-moderate-02) var(--tds-motion-easing-enter) forwards;
}
.tds-radio-button .tds-form-input[type=radio]:focus-visible::after {
outline: 1px solid var(--tds-radio-button-interaction-outline);
}
.tds-radio-button .tds-form-input[type=radio]:disabled, .tds-radio-button .tds-form-input[type=radio].disabled {
cursor: not-allowed;
}
.tds-radio-button .tds-form-input[type=radio]:disabled::after, .tds-radio-button .tds-form-input[type=radio].disabled::after {
border-color: var(--tds-radio-button-border-color-disabled-after);
background-color: var(--tds-radio-button-interaction-02);
}
.tds-radio-button .tds-form-input[type=radio]:disabled + label, .tds-radio-button .tds-form-input[type=radio].disabled + label {
color: var(--tds-radio-button-disabled);
cursor: not-allowed;
}
.tds-radio-button .tds-form-input[type=radio]:disabled:hover::before, .tds-radio-button .tds-form-input[type=radio].disabled:hover::before {
display: none;
opacity: 1;
}
.tds-radio-button .tds-form-input[type=radio]:checked::after {
border: 4px solid var(--tds-radio-button-interaction-01);
}
.tds-radio-button .tds-form-input[type=radio]:checked:disabled:hover::before, .tds-radio-button .tds-form-input[type=radio]:checked:disabled::before, .tds-radio-button .tds-form-input[type=radio]:checked.disabled:hover::before, .tds-radio-button .tds-form-input[type=radio]:checked.disabled::before {
display: block;
background-color: transparent;
width: 16px;
height: 16px;
left: 2px;
top: 4px;
box-shadow: inset 0 0 0 1px var(--tds-radio-button-border-color-disabled-after);
}
.tds-radio-button .tds-form-input[type=radio]:checked:disabled::after, .tds-radio-button .tds-form-input[type=radio]:checked.disabled::after {
border: 4px solid var(--tds-radio-button-interaction-02);
background-color: var(--tds-radio-button-color-disabled-after);
clip-path: inset(1px 1px round 50%);
}
@keyframes rb-focus {
0% {
transform: scale(0);
opacity: 0;
}
100% {
transform: scale(1);
}
}