UNPKG

@ozen-ui/kit

Version:

React component library

133 lines (112 loc) 4.3 kB
.ToggleNext { --toggle-ball-translate-x: var(--toggle-switch-ball-padding); } .ToggleNext_size_s, .ToggleNext_size_xs, .ToggleNext_size_2xs { --toggle-switch-inline-size: 30px; --toggle-switch-block-size: 16px; --toggle-switch-border-radius: 30px; --toggle-switch-ball-size: 14px; --toggle-switch-ball-padding: 1px; } .ToggleNext_size_m, .ToggleNext_size_l { --toggle-switch-inline-size: 44px; --toggle-switch-block-size: 24px; --toggle-switch-border-radius: 44px; --toggle-switch-ball-size: 20px; --toggle-switch-ball-padding: 2px; } .ToggleNext_size_m { --form-control-carcass-control-block-margin: 0; } .ToggleNext_size_l { --form-control-carcass-control-block-margin: var(--spacing-4xs); } .ToggleNext_variant_default { --toggle-background-color: var(--color-background-tertiary); --toggle-background-color-checked: var(--color-background-action); --toggle-background-color-hover: var(--color-background-tertiary-hover); --toggle-background-color-hover-checked: var(--color-background-action-hover); --toggle-background-color-active: var(--color-background-tertiary-pressed); --toggle-background-color-active-checked: var(--color-background-action-pressed); } .ToggleNext_variant_error { --toggle-background-color: var(--color-background-error-light); --toggle-background-color-checked: var(--color-background-error); --toggle-background-color-hover: var(--color-background-error-light); --toggle-background-color-hover-checked: var(--color-background-error); --toggle-background-color-active: var(--color-background-error-light); --toggle-background-color-active-checked: var(--color-background-error); } .ToggleNext_disabled { pointer-events: none; } .ToggleNext_disabled .ToggleNext-Switch { background-color: var(--color-background-disabled); } .ToggleNext_disabled .ToggleNext-Input:checked + .ToggleNext-Switch { background-color: var(--color-background-action-active-disabled); } .ToggleNext-Box { display: inline-flex; position: relative; } .ToggleNext-Input { position: absolute; margin: 0; opacity: 0; inset-inline-start: 0; inset-block-start: 0; inline-size: 100%; block-size: 100%; cursor: pointer; z-index: var(--z-index-absolute); } .ToggleNext-Input:hover:not(:disabled) + .ToggleNext-Switch { background-color: var(--toggle-background-color-hover); } .ToggleNext-Input:hover:checked + .ToggleNext-Switch { background-color: var(--toggle-background-color-hover-checked); } .ToggleNext-Input:active:not(:disabled) + .ToggleNext-Switch { background-color: var(--toggle-background-color-active); } .ToggleNext-Input:active:checked + .ToggleNext-Switch { background-color: var(--toggle-background-color-active-checked); } .ToggleNext-Input:checked + .ToggleNext-Switch { --toggle-ball-translate-x: calc(var(--toggle-switch-inline-size) - var(--toggle-switch-ball-size) - var(--toggle-switch-ball-padding)); background-color: var(--toggle-background-color-checked); } .ToggleNext-Input:focus + .ToggleNext-Switch { box-shadow: var(--shadow-outline-focused); } .ToggleNext-Input:focus:not(:focus-visible) + .ToggleNext-Switch { box-shadow: 0 1px 1px 0 rgb(0 0 0 / 16%) inset; } .ToggleNext-Switch { position: relative; box-sizing: border-box; cursor: pointer; flex-shrink: 0; inline-size: var(--toggle-switch-inline-size); block-size: var(--toggle-switch-block-size); border-radius: calc(var(--toggle-switch-border-radius) / 2); background-color: var(--toggle-background-color); transition: var(--transition-default); box-shadow: 0 1px 1px 0 rgb(0 0 0 / 16%) inset; } .ToggleNext-Switch::before { position: absolute; content: ''; background-color: var(--color-background-main); block-size: var(--toggle-switch-ball-size); inline-size: var(--toggle-switch-ball-size); box-shadow: 0 1px 1px 0 rgb(0 0 0 / 16%); transition: var(--transition-default); border-radius: 50%; inset-block-start: 50%; transform: translate(var(--toggle-ball-translate-x), -50%); }