import { css } from 'lit'; import componentStyles from '../../styles/component.styles'; export default css` ${componentStyles} :host { display: inline-block; } .checkbox { display: inline-flex; align-items: center; font-family: var(--sl-input-font-family); font-size: var(--sl-input-font-size-medium); font-weight: var(--sl-input-font-weight); color: rgb(var(--sl-input-color)); vertical-align: middle; cursor: pointer; } .checkbox__control { flex: 0 0 auto; position: relative; display: inline-flex; align-items: center; justify-content: center; width: var(--sl-toggle-size); height: var(--sl-toggle-size); border: solid var(--sl-input-border-width) rgb(var(--sl-input-border-color)); border-radius: 2px; background-color: rgb(var(--sl-input-background-color)); color: rgb(var(--sl-color-neutral-1000)); transition: var(--sl-transition-fast) border-color, var(--sl-transition-fast) background-color, var(--sl-transition-fast) color, var(--sl-transition-fast) box-shadow; } .checkbox__control input[type='checkbox'] { position: absolute; opacity: 0; padding: 0; margin: 0; pointer-events: none; } .checkbox__control .checkbox__icon { display: inline-flex; width: var(--sl-toggle-size); height: var(--sl-toggle-size); } .checkbox__control .checkbox__icon svg { width: 100%; height: 100%; } /* Hover */ .checkbox:not(.checkbox--checked):not(.checkbox--disabled) .checkbox__control:hover { border-color: rgb(var(--sl-input-border-color-hover)); background-color: rgb(var(--sl-input-background-color-hover)); } /* Focus */ .checkbox.checkbox--focused:not(.checkbox--checked):not(.checkbox--disabled) .checkbox__control { border-color: rgb(var(--sl-input-border-color-focus)); background-color: rgb(var(--sl-input-background-color-focus)); box-shadow: 0 0 0 var(--sl-focus-ring-width) rgb(var(--sl-color-primary-500) / var(--sl-focus-ring-alpha)); } /* Checked/indeterminate */ .checkbox--checked .checkbox__control, .checkbox--indeterminate .checkbox__control { border-color: rgb(var(--sl-color-primary-500)); background-color: rgb(var(--sl-color-primary-500)); } /* Checked/indeterminate + hover */ .checkbox.checkbox--checked:not(.checkbox--disabled) .checkbox__control:hover, .checkbox.checkbox--indeterminate:not(.checkbox--disabled) .checkbox__control:hover { border-color: rgb(var(--sl-color-primary-400)); background-color: rgb(var(--sl-color-primary-400)); } /* Checked/indeterminate + focus */ .checkbox.checkbox--checked:not(.checkbox--disabled).checkbox--focused .checkbox__control, .checkbox.checkbox--indeterminate:not(.checkbox--disabled).checkbox--focused .checkbox__control { border-color: rgb(var(--sl-color-primary-400)); background-color: rgb(var(--sl-color-primary-400)); box-shadow: 0 0 0 var(--sl-focus-ring-width) rgb(var(--sl-color-primary-500) / var(--sl-focus-ring-alpha)); } /* Disabled */ .checkbox--disabled { opacity: 0.5; cursor: not-allowed; } .checkbox__label { line-height: var(--sl-toggle-size); margin-left: 0.5em; user-select: none; } `;