UNPKG

@govbr-ds/core

Version:

Padrão Digital de Governo

156 lines (155 loc) 6.51 kB
.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) !important; 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*/