@synergy-design-system/components
Version:
188 lines (161 loc) • 5.9 kB
JavaScript
// src/components/checkbox/checkbox.styles.ts
import { css } from "lit";
var checkbox_styles_default = css`
/* stylelint-disable no-descending-specificity */
:host {
display: inline-block;
}
.checkbox {
align-items: flex-start;
color: var(--syn-input-label-color);
cursor: pointer;
display: inline-flex;
font-family: var(--syn-input-font-family);
font-weight: var(--syn-input-font-weight);
padding: var(--syn-spacing-2x-small) 0; /* #1083: This adds spacing around multi-line labels */
position: relative;
vertical-align: middle;
}
.checkbox--small {
--toggle-size: var(--syn-toggle-size-small);
font-size: var(--syn-input-font-size-small);
padding: var(--syn-spacing-3x-small) 0;
}
.checkbox--medium {
--toggle-size: var(--syn-toggle-size-medium);
font-size: var(--syn-input-font-size-medium);
}
.checkbox--large {
--toggle-size: var(--syn-toggle-size-large);
font-size: var(--syn-input-font-size-large);
}
.checkbox__control {
align-items: center;
background-color: var(--syn-input-background-color);
border: solid var(--syn-input-border-width) var(--syn-input-border-color);
border-radius: var(--syn-checkbox-border-radius);
color: var(--syn-color-neutral-0);
display: inline-flex;
flex: 0 0 auto;
height: var(--toggle-size);
justify-content: center;
margin: 0.1em 0; /* #1083: This adds spacing around multi-line labels */
position: relative;
transition:
var(--syn-transition-fast) border-color,
var(--syn-transition-fast) background-color,
var(--syn-transition-fast) color,
var(--syn-transition-fast) box-shadow;
width: var(--toggle-size);
}
.checkbox__input {
margin: 0;
opacity: 0;
padding: 0;
pointer-events: none;
position: absolute;
}
.checkbox__checked-icon,
.checkbox__indeterminate-icon {
display: inline-flex;
height: var(--toggle-size);
width: var(--toggle-size);
}
/**
* Hover
* Applies the hover state to the whole component
*/
.checkbox:not(.checkbox--checked):not(.checkbox--disabled):not(.checkbox--readonly):hover .checkbox__control {
background-color: var(--syn-input-background-color-hover);
border-color: var(--syn-input-border-color-hover);
}
/* Focus */
.checkbox:not(.checkbox--disabled):not(.checkbox--readonly) .checkbox__input:focus-visible ~ .checkbox__control {
outline: var(--syn-focus-ring);
outline-offset: var(--syn-focus-ring-offset);
}
/* Checked/indeterminate */
.checkbox--checked .checkbox__control,
.checkbox--indeterminate .checkbox__control {
background-color: var(--syn-interactive-emphasis-color);
border-color: var(--syn-interactive-emphasis-color);
}
/**
* Checked/indeterminate + hover
* Applies the hover state to the whole component
*/
.checkbox.checkbox--checked:not(.checkbox--disabled):not(.checkbox--readonly):hover .checkbox__control,
.checkbox.checkbox--indeterminate:not(.checkbox--disabled):not(.checkbox--readonly):hover .checkbox__control {
background-color: var(--syn-interactive-emphasis-color-hover);
border-color: var(--syn-interactive-emphasis-color-hover);
}
/*
* #443: Add active styles
* The checked and unchecked states have different active colors
* Note the fallback is defined to match the hover color.
* This is done to make sure no active state is shown at all if no active color is defined.
* Still better than showing one for the unchecked state but not for the checked state.
*/
.checkbox:not(.checkbox--checked):not(.checkbox--disabled):not(.checkbox--readonly):active .checkbox__control {
border-color: var(--syn-input-border-color-active);
}
/* Checked/indeterminate */
.checkbox.checkbox--checked:not(.checkbox--disabled):not(.checkbox--readonly):active .checkbox__control,
.checkbox.checkbox--indeterminate:not(.checkbox--disabled):not(.checkbox--readonly):active .checkbox__control {
background: var(--syn-interactive-emphasis-color-active);
border-color: var(--syn-interactive-emphasis-color-active);
}
/** #429: Use token for opacity */
.checkbox--disabled {
cursor: not-allowed;
opacity: var(--syn-input-disabled-opacity);
}
.checkbox__label {
align-self: center;
color: var(--syn-input-label-color);
display: inline-block;
line-height: var(--syn-line-height-normal);
margin-inline-start: var(--syn-spacing-x-small);
user-select: none;
}
:host([required]) .checkbox__label::after {
color: var(--syn-input-required-content-color);
content: var(--syn-input-required-content);
margin-inline-start: var(--syn-input-required-content-offset);
}
:host([data-user-invalid]) .checkbox__control {
background: var(--syn-input-border-color-focus-error);
border-color: var(--syn-input-border-color-focus-error);
}
/**
* #943: When invalid, use a transparent background if not checked or indeterminate
*/
:host([data-user-invalid]:not([checked]):not([indeterminate])) .checkbox__control {
background: transparent;
}
/**
* #1171: Readonly state
*/
.checkbox.checkbox--readonly {
cursor: default;
}
.checkbox.checkbox--readonly .checkbox__label {
/* stylelint-disable-next-line property-no-vendor-prefix */
-webkit-user-select: auto;
user-select: auto;
}
.checkbox.checkbox--readonly .checkbox__control {
background: var(--syn-input-readonly-background-color);
border-color: var(--syn-input-readonly-background-color);
color: var(--syn-readonly-indicator-color);
cursor: default;
}
.checkbox.checkbox--readonly .checkbox__input:focus ~ .checkbox__control {
outline: var(--syn-focus-ring);
outline-offset: var(--syn-focus-ring-offset);
}
`;
export {
checkbox_styles_default
};
//# sourceMappingURL=chunk.VOUZJK5T.js.map