@ozen-ui/kit
Version:
React component library
163 lines (131 loc) • 6.23 kB
CSS
.CheckboxNext {
--checkbox-icon-border-color-checked: var(--checkbox-icon-background-color-checked);
--checkbox-icon-border-color-hover-checked: var(--checkbox-icon-background-color-hover-checked);
--checkbox-icon-border-color-active-checked: var(--checkbox-icon-background-color-active-checked);
}
.CheckboxNext_size_l,
.CheckboxNext_size_m {
--checkbox-size: 20px;
}
.CheckboxNext_size_s,
.CheckboxNext_size_xs,
.CheckboxNext_size_2xs {
--checkbox-size: 16px;
}
.CheckboxNext_variant_default {
/* ---- ICON BORDER ---- */
--checkbox-icon-border-color: var(--color-border-main);
--checkbox-icon-border-color-hover: var(--color-border-main-hover);
--checkbox-icon-border-color-active: var(--color-border-main-hover);
/* ---- ICON BACKGROUND ---- */
--checkbox-icon-background-color: var(--color-background-primary);
--checkbox-icon-background-color-checked: var(--color-background-action);
--checkbox-icon-background-color-hover: var(--color-background-primary-hover);
--checkbox-icon-background-color-hover-checked: var(--color-background-action-hover);
--checkbox-icon-background-color-active: var(--color-background-primary-pressed);
--checkbox-icon-background-color-active-checked: var(--color-background-action-pressed);
}
.CheckboxNext_variant_error {
/* ---- ICON BORDER ---- */
--checkbox-icon-border-color: var(--color-border-error);
--checkbox-icon-border-color-hover: var(--color-border-error);
--checkbox-icon-border-color-active: var(--color-border-error);
/* ---- ICON BACKGROUND ---- */
--checkbox-icon-background-color: var(--color-background-primary);
--checkbox-icon-background-color-checked: var(--color-background-error);
--checkbox-icon-background-color-hover: var(--color-background-primary);
--checkbox-icon-background-color-hover-checked: var(--color-background-error);
--checkbox-icon-background-color-active: var(--color-background-primary);
--checkbox-icon-background-color-active-checked: var(--color-background-error);
}
.CheckboxNext_indeterminate, .CheckboxNext_indeterminate.CheckboxNext_disabled {
/* ---- ICON BORDER ---- */
--checkbox-icon-border-color: var(--checkbox-icon-border-color-checked);
--checkbox-icon-border-color-hover: var(--checkbox-icon-border-color-hover-checked);
--checkbox-icon-border-color-active: var(--checkbox-icon-border-color-active-checked);
/* ---- ICON BACKGROUND ---- */
--checkbox-icon-background-color: var(--checkbox-icon-background-color-checked);
--checkbox-icon-background-color-hover: var(--checkbox-icon-background-color-hover-checked);
--checkbox-icon-background-color-active: var(--checkbox-icon-background-color-active-checked);
}
.CheckboxNext_indeterminate .CheckboxNext-Icon, .CheckboxNext_indeterminate.CheckboxNext_disabled .CheckboxNext-Icon {
opacity: 1;
}
.CheckboxNext_disabled {
/* ---- ICON BORDER ---- */
--checkbox-icon-border-color: var(--color-border-disabled);
--checkbox-icon-border-color-hover: var(--color-border-disabled);
--checkbox-icon-border-color-active: var(--color-border-disabled);
/* ---- ICON BACKGROUND ---- */
--checkbox-icon-background-color: var(--color-background-disabled);
--checkbox-icon-background-color-checked: var(--color-background-action-active-disabled);
--checkbox-icon-background-color-hover: var(--color-background-disabled);
--checkbox-icon-background-color-hover-checked: var(--color-background-action-active-disabled);
--checkbox-icon-background-color-active: var(--color-background-disabled);
--checkbox-icon-background-color-active-checked: var(--color-background-action-active-disabled);
}
.CheckboxNext-Box {
position: relative;
inline-size: var(--checkbox-size);
block-size: var(--checkbox-size);
border-radius: var(--border-radius-xs);
flex-shrink: 0;
}
.CheckboxNext-IconWrapper {
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(--checkbox-icon-border-color);
background-color: var(--checkbox-icon-background-color);
transition: border-color var(--transition-default),
background-color var(--transition-default),
box-shadow var(--transition-default);
}
.CheckboxNext-Icon {
opacity: 0;
transition: opacity var(--transition-default);
color: var(--color-content-primary-inverse);
}
.CheckboxNext-Input {
position: absolute;
opacity: 0;
margin: 0;
inset: 0;
inline-size: 100%;
block-size: 100%;
cursor: pointer;
z-index: var(--z-index-absolute);
}
.CheckboxNext-Input:hover:not(:checked, :disabled) + .CheckboxNext-IconWrapper{
background-color: var(--checkbox-icon-background-color-hover);
border-color: var(--checkbox-icon-border-color-hover);
}
.CheckboxNext-Input:hover:checked:not(:active, :disabled) + .CheckboxNext-IconWrapper {
background-color: var(--checkbox-icon-background-color-hover-checked);
border-color: var(--checkbox-icon-border-color-hover-checked);
}
.CheckboxNext-Input:active:not(:checked, :disabled) + .CheckboxNext-IconWrapper {
background-color: var(--checkbox-icon-background-color-active);
border-color: var(--checkbox-icon-border-color-active);
}
.CheckboxNext-Input:active:checked + .CheckboxNext-IconWrapper {
background-color: var(--checkbox-icon-background-color-active-checked);
border-color: var(--checkbox-icon-border-color-active-checked);
}
.CheckboxNext-Input:focus + .CheckboxNext-IconWrapper {
box-shadow: var(--shadow-outline-focused);
}
.CheckboxNext-Input:focus:not(:focus-visible) + .CheckboxNext-IconWrapper {
box-shadow: none;
}
.CheckboxNext-Input:checked:not(:hover, :active) + .CheckboxNext-IconWrapper {
background-color: var(--checkbox-icon-background-color-checked);
border-color: var(--checkbox-icon-border-color-checked);
}
.CheckboxNext-Input:checked + .CheckboxNext-IconWrapper .CheckboxNext-Icon {
opacity: 1;
}