storybookdesignpack
Version:
React components library project for censa Design System
221 lines (180 loc) • 4.98 kB
CSS
/* Radio */
.Radio {
display: flex;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
padding-top: var(--spacing-s);
padding-bottom: var(--spacing-s);
width: fit-content;
}
.Radio-outerWrapper {
position: relative;
flex-shrink: 0;
margin-top: var(--spacing-s);
}
.Radio-defaultWrapper {
border: 1px solid #CBCACB;
}
.Radio-errorWrapper {
border: var(--border);
border-color: var(--alert);
}
.Radio-outerWrapper--regular {
height: var(--spacing-2);
width: var(--spacing-2);
}
.Radio-outerWrapper--tiny {
height: var(--spacing-l);
width: var(--spacing-l);
}
.Radio-input {
opacity: 0;
position: absolute;
height: 100%;
width: 100%;
z-index: 2;
margin: 0;
cursor: pointer;
}
.Radio-labelWrapper {
padding-left: var(--spacing);
display: flex;
flex-direction: column;
color: var(--night);
}
.Radio-Label {
display: flex;
cursor: pointer;
}
.Radio-wrapper {
top: 0;
left: 0;
height: 100%;
width: 100%;
position: absolute;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
z-index: 1;
transition: var(--duration--fast-01) var(--standard-productive-curve);
}
.Radio--disabled {
pointer-events: none;
}
.Radio:hover .Radio-wrapper {
border: var(--spacing-xs) solid var(--secondary-dark);
background-color: var(--secondary-lighter);
}
.Radio:active .Radio-wrapper {
background-color: var(--secondary-light);
border: var(--spacing-xs) solid var(--inverse-lightest);
}
.Radio:hover .Radio-errorWrapper {
border: var(--border);
background-color: var(--secondary-lighter);
border-color: var(--alert-dark);
}
.Radio:active .Radio-errorWrapper {
border: var(--border);
background-color: var(--secondary-light);
border-color: var(--alert-darker);
}
.Radio:focus-within .Radio-wrapper {
outline: 0;
box-shadow: var(--shadow-spread) var(--secondary-shadow);
border-radius: 50%;
}
.Radio:focus-within .Radio-errorWrapper {
outline: 0;
box-shadow: var(--shadow-spread) var(--alert-shadow);
border-radius: 50%;
}
.Radio:focus-within .Radio-input:checked ~ .Radio-wrapper {
outline: 0;
box-shadow: var(--shadow-spread) var(--primary-shadow);
}
.Radio:focus-within .Radio-input:checked ~ .Radio-errorWrapper {
outline: 0;
box-shadow: var(--shadow-spread) var(--primary-shadow);
}
.Radio--disabled .Radio-wrapper {
border: var(--spacing-xs) solid var(--secondary-light);
background-color: var(--secondary-lightest);
}
.Radio--disabled .Radio-errorWrapper {
border: var(--spacing-xs) solid var(--alert-lighter);
background-color: var(--secondary-lightest);
}
.Radio-input:checked ~ .Radio-wrapper {
border: var(--spacing-xs) solid var(--primary);
}
.Radio-input:checked ~ .Radio-errorWrapper {
border: var(--spacing-xs) solid var(--alert);
}
.Radio-input:checked ~ .Radio-wrapper:after {
display: block;
transition: var(--duration--fast-01) var(--standard-productive-curve);
}
.Radio-wrapper:after {
content: '';
display: none;
border-radius: 50%;
background: var(--primary);
}
.Radio-wrapper--regular:after {
width: var(--spacing);
height: var(--spacing);
}
.Radio-wrapper--tiny:after {
width: var(--spacing-m);
height: var(--spacing-m);
border: var(--spacing-xs) solid var(--primary);
}
.Radio:hover .Radio-input:checked ~ .Radio-wrapper {
border: var(--spacing-xs) solid var(--primary-dark);
}
.Radio:hover .Radio-input:checked ~ .Radio-wrapper:after {
background: var(--primary-dark);
}
.Radio:hover .Radio-input:checked ~ .Radio-wrapper--tiny:after {
border: var(--spacing-xs) solid var(--primary-dark);
}
.Radio:active .Radio-input:checked ~ .Radio-wrapper {
background-color: var(--secondary-light);
border: var(--spacing-xs) solid var(--primary-darker);
}
.Radio:hover .Radio-input:checked ~ .Radio-errorWrapper {
background-color: var(--secondary-lighter);
border: var(--spacing-xs) solid var(--alert-dark);
}
.Radio:active .Radio-input:checked ~ .Radio-errorWrapper {
background-color: var(--secondary-light);
border: var(--spacing-xs) solid var(--alert-darker);
}
.Radio:active .Radio-input:checked ~ .Radio-wrapper:after {
background: var(--primary-darker);
}
.Radio:active .Radio-input:checked ~ .Radio-wrapper--tiny:after {
border: var(--spacing-xs) solid var(--primary-darker);
}
.Radio--disabled .Radio-input:checked ~ .Radio-wrapper {
border: var(--spacing-xs) solid var(--primary-lighter);
background-color: var(--secondary-lightest);
}
.Radio--disabled .Radio-input:checked ~ .Radio-errorWrapper {
border: var(--spacing-xs) solid var(--alert-lighter);
background-color: var(--secondary-lightest);
}
.Radio--disabled .Radio-input:checked ~ .Radio-wrapper:after {
background: var(--primary-lighter);
}
.Radio--disabled .Radio-input ~ .Radio-wrapper:focus {
box-shadow: none;
}
.Radio--disabled .Radio-input ~ .Radio-errorWrapper:focus {
box-shadow: none;
}