UNPKG

@ozen-ui/kit

Version:

React component library

121 lines (100 loc) 3.23 kB
.Checkbox { inline-size: var(--checkbox-size, 20px); block-size: var(--checkbox-size, 20px); position: relative; border-radius: 4px; flex-shrink: 0; } .Checkbox_size_l, .Checkbox_size_m { --checkbox-size: 20px; } .Checkbox_size_s, .Checkbox_size_xs, .Checkbox_size_2xs { --checkbox-size: 16px; } .Checkbox-Box { inline-size: 100%; block-size: 100%; display: flex; justify-content: center; align-items: center; border-radius: inherit; box-sizing: border-box; border: 1px solid var(--color-border-main); background-color: var(--color-background-primary); transition: border-color var(--transition-default), background-color var(--transition-default), box-shadow var(--transition-default); } .Checkbox-Icon { opacity: 0; transition: opacity var(--transition-default); color: var(--color-content-primary-inverse); } .Checkbox-Input { position: absolute; opacity: 0; margin: 0; inset: 0; inline-size: 100%; block-size: 100%; cursor: pointer; z-index: var(--z-index-absolute); } .Checkbox-Input:hover:not(:checked, :disabled) + .Checkbox-Box { background-color: var(--color-background-primary-hover); border-color: var(--color-border-main-hover); } .Checkbox-Input:hover:checked:not(:active, :disabled) + .Checkbox-Box { background-color: var(--color-background-action-hover); border-color: var(--color-background-action-hover); } .Checkbox-Input:active:not(:checked, :disabled) + .Checkbox-Box { background-color: var(--color-background-primary-pressed); border-color: var(--color-border-main-hover); } .Checkbox-Input:active:checked + .Checkbox-Box { background-color: var(--color-background-action-pressed); border-color: var(--color-background-action-pressed); } .Checkbox-Input:focus + .Checkbox-Box { box-shadow: var(--shadow-outline-focused); } .Checkbox-Input:focus:not(:focus-visible) + .Checkbox-Box { box-shadow: none; } .Checkbox-Input:checked:not(:hover, :active) + .Checkbox-Box { background-color: var(--color-background-action); border-color: var(--color-background-action); } .Checkbox-Input:checked + .Checkbox-Box .Checkbox-Icon { opacity: 1; } .Checkbox_indeterminate .Checkbox-Box { background-color: var(--color-background-action); border-color: var(--color-background-action); } .Checkbox_indeterminate .Checkbox-Icon { opacity: 1; } .Checkbox_indeterminate .Checkbox-Input:hover:not(:disabled) + .Checkbox-Box { background-color: var(--color-background-action-hover); border-color: var(--color-background-action-hover); } .Checkbox_indeterminate .Checkbox-Input:active:not(:disabled) + .Checkbox-Box { background-color: var(--color-background-action-pressed); border-color: var(--color-background-action-pressed); } .Checkbox_disabled { pointer-events: none; } .Checkbox_disabled .Checkbox-Box { background-color: var(--color-background-disabled); border-color: var(--color-border-disabled); } .Checkbox_disabled .Checkbox-Input:checked + .Checkbox-Box { background-color: var(--color-background-action-active-disabled); border-color: var(--color-background-action-active-disabled); }