@govbr-ds/core
Version:
Padrão Digital de Governo
156 lines (155 loc) • 6.51 kB
CSS
.br-checkbox {
--checkbox-padding: var(--spacing-scale-base);
--checkbox-size: 24px;
display: flex;
position: relative;
}
.br-checkbox + .br-checkbox {
margin-top: var(--spacing-scale-base);
}
.br-checkbox input {
margin: 0;
opacity: 0;
position: absolute;
}
.br-checkbox input + label {
cursor: pointer;
display: inline-block;
margin-bottom: 0;
min-height: var(--checkbox-size);
min-width: var(--checkbox-size);
padding-left: calc(var(--spacing-scale-base) + var(--checkbox-size));
position: relative;
}
.br-checkbox input + label::before {
background: var(--background-light);
border: 1px solid var(--border-color);
border-radius: 4px;
content: "";
height: var(--checkbox-size);
left: 0;
position: absolute;
width: var(--checkbox-size);
}
.br-checkbox input + label:empty {
padding: 0;
}
.br-checkbox label {
font-weight: var(--font-weight-medium);
}
.br-checkbox.hidden-label label {
padding-left: calc(var(--checkbox-size) + var(--surface-width-md) * 2);
text-indent: -10000px;
white-space: nowrap;
width: 0;
}
.br-checkbox input:checked + label::after, .br-checkbox input:indeterminate + label::after {
border: solid var(--selected);
border-width: 0 3px 3px 0;
content: "";
height: var(--icon-size-sm);
left: 8px;
position: absolute;
top: 4px;
transform: rotate(45deg);
width: 8px;
}
.br-checkbox input[indeterminate] + label::before,
.br-checkbox input:indeterminate + label::before {
--interactive-rgb: var(--color-rgb);
background: var(--selected);
border-color: var(--selected);
}
.br-checkbox input[indeterminate]:hover:not(:disabled) + label::before,
.br-checkbox input:indeterminate:hover:not(:disabled) + label::before {
--interactive-rgb: var(--color-dark-rgb);
}
.br-checkbox input[indeterminate]:checked + label::after,
.br-checkbox input[indeterminate] + label::after,
.br-checkbox input:indeterminate:checked + label::after,
.br-checkbox input:indeterminate + label::after {
border-color: var(--background-light);
border-width: 0 0 3px;
top: 2px;
transform: none;
}
.br-checkbox.is-invalid input + label::before, .br-checkbox.invalid input + label::before, .br-checkbox[invalid] input + label::before {
--border-color: var(--danger);
}
.br-checkbox.is-invalid input:focus-visible:checked + label::before,
.br-checkbox.is-invalid input:focus-visible + label::before, .br-checkbox.is-invalid input.focus-visible:checked + label::before,
.br-checkbox.is-invalid input.focus-visible + label::before, .br-checkbox.invalid input:focus-visible:checked + label::before,
.br-checkbox.invalid input:focus-visible + label::before, .br-checkbox.invalid input.focus-visible:checked + label::before,
.br-checkbox.invalid input.focus-visible + label::before, .br-checkbox[invalid] input:focus-visible:checked + label::before,
.br-checkbox[invalid] input:focus-visible + label::before, .br-checkbox[invalid] input.focus-visible:checked + label::before,
.br-checkbox[invalid] input.focus-visible + label::before {
--border-color: var(--focus-color);
}
.br-checkbox.is-invalid input:checked + label::before, .br-checkbox.invalid input:checked + label::before, .br-checkbox[invalid] input:checked + label::before {
--border-color: var(--danger);
}
.br-checkbox.is-valid input + label::before, .br-checkbox.valid input + label::before, .br-checkbox[valid] input + label::before {
--border-color: var(--success);
}
.br-checkbox.is-valid input:focus-visible:checked + label::before,
.br-checkbox.is-valid input:focus-visible + label::before, .br-checkbox.is-valid input.focus-visible:checked + label::before,
.br-checkbox.is-valid input.focus-visible + label::before, .br-checkbox.valid input:focus-visible:checked + label::before,
.br-checkbox.valid input:focus-visible + label::before, .br-checkbox.valid input.focus-visible:checked + label::before,
.br-checkbox.valid input.focus-visible + label::before, .br-checkbox[valid] input:focus-visible:checked + label::before,
.br-checkbox[valid] input:focus-visible + label::before, .br-checkbox[valid] input.focus-visible:checked + label::before,
.br-checkbox[valid] input.focus-visible + label::before {
--border-color: var(--focus-color);
}
.br-checkbox.is-valid input:checked + label::before, .br-checkbox.valid input:checked + label::before, .br-checkbox[valid] input:checked + label::before {
--border-color: var(--success);
}
.br-checkbox.is-small input + label, .br-checkbox.small input + label, .br-checkbox[small] input + label {
line-height: var(--spacing-scale-2xh);
min-height: var(--spacing-scale-2xh);
}
.br-checkbox.is-small input + label::before, .br-checkbox.small input + label::before, .br-checkbox[small] input + label::before {
height: var(--spacing-scale-2xh);
width: var(--spacing-scale-2xh);
}
.br-checkbox.is-small input:checked + label::after, .br-checkbox.small input:checked + label::after, .br-checkbox[small] input:checked + label::after {
border-width: 0 2px 2px 0;
height: var(--icon-size-sm);
left: 7px;
top: 4px;
width: 6px;
}
.br-checkbox.is-small input[indeterminate] + label::after, .br-checkbox.is-small input:indeterminate + label::after, .br-checkbox.small input[indeterminate] + label::after, .br-checkbox.small input:indeterminate + label::after, .br-checkbox[small] input[indeterminate] + label::after, .br-checkbox[small] input:indeterminate + label::after {
border-color: var(--background-light);
border-width: 0 0 3px;
left: 7px;
top: 1px;
transform: none;
width: 6px;
}
.br-checkbox input:invalid + label::before {
--border-color: var(--danger);
}
.br-checkbox input:focus-visible:checked + label::before,
.br-checkbox input:focus-visible + label::before, .br-checkbox input.focus-visible:checked + label::before,
.br-checkbox input.focus-visible + label::before {
border-color: var(--focus) ;
box-shadow: 0 0 0 var(--surface-width-md) var(--focus);
outline: none;
}
.br-checkbox input:hover:not(:disabled) + label::before {
--interactive-rgb: var(--interactive-light-rgb);
background-image: linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)));
}
.br-checkbox:not(.disabled) input:disabled + label {
cursor: not-allowed;
opacity: var(--disabled);
}
.br-checkbox:not(.disabled) input:disabled + label * {
pointer-events: none;
}
.br-checkbox.inverted,
.br-checkbox.inverted label, .br-checkbox.dark-mode,
.br-checkbox.dark-mode label {
color: var(--color-dark);
}
/*# sourceMappingURL=checkbox.css.map*/