@workday/canvas-kit-css
Version:
The parent module that contains all Workday Canvas Kit CSS components
241 lines (186 loc) • 8.6 kB
CSS
.cnvs-checkbox-ripple {
box-sizing: border-box;
border-radius: var(--cnvs-sys-shape-round);
box-shadow: none;
height: calc(var(--cnvs-sys-space-x4) + 0.125rem);
width: calc(var(--cnvs-sys-space-x4) + 0.125rem);
transition: box-shadow 150ms ease-out;
position: absolute;
pointer-events: none;
}
.cnvs-checkbox-container {
box-sizing: border-box;
display: flex;
align-items: center;
min-height: var(--cnvs-sys-space-x6);
position: relative;
}
.cnvs-checkbox-container>div {
display: flex;
height: calc(var(--cnvs-sys-space-x4) + 0.125rem);
min-width: calc(var(--cnvs-sys-space-x4) + 0.125rem);
margin-top: 0.1875rem;
align-self: flex-start;
}
.cnvs-checkbox-container>label {
padding-inline-start: var(--cnvs-sys-space-x3);
}
.cnvs-checkbox-background {
box-sizing: border-box;
align-items: center;
background-color: var(--cnvs-sys-color-bg-default);
border-radius: var(--cnvs-sys-shape-half);
display: flex;
height: calc(var(--cnvs-sys-space-x4) + 0.125rem);
justify-content: center;
padding: var(--cnvs-sys-space-zero) calc(var(--cnvs-sys-space-x1) / 2);
pointer-events: none;
position: absolute;
transition: border 200ms ease,background 200ms;
width: calc(var(--cnvs-sys-space-x4) + 0.125rem);
border: 0.0625rem solid var(--cnvs-sys-color-border-input-default);
}
.cnvs-checkbox-background.error-error {
--cnvs-checkbox-background-error-ring-color-inner: var(--cnvs-brand-error-base);
--cnvs-checkbox-background-error-ring-color-outer: transparent;
}
.cnvs-checkbox-background.error-alert {
--cnvs-checkbox-background-error-ring-color-inner: var(--cnvs-brand-alert-base);
--cnvs-checkbox-background-error-ring-color-outer: var(--cnvs-brand-alert-darkest);
}
.cnvs-checkbox-check {
box-sizing: border-box;
display: flex;
flex-direction: column;
max-width: 100%;
pointer-events: none;
transition: transform 200ms ease,opacity 200ms ease;
opacity: var(--cnvs-sys-opacity-zero);
transform: scale(0.5);
}
.cnvs-checkbox-check span {
margin-inline-start: calc(0.375rem * -1);
transition: margin 200ms ease;
}
.cnvs-checkbox-check.checked {
--cnvs-system-icon-color: var(--cnvs-brand-primary-accent);
opacity: var(--cnvs-sys-opacity-full);
transform: scale(1);
}
.cnvs-checkbox-check.indeterminate {
opacity: var(--cnvs-sys-opacity-full);
transform: scale(1);
}
.cnvs-checkbox-check.variant-inverse {
--cnvs-system-icon-color: var(--cnvs-brand-primary-base);
}
.cnvs-checkbox-check.variant-inverse>div {
background-color: var(--cnvs-brand-primary-base);
}
.cnvs-indeterminate-box {
box-sizing: border-box;
width: 0.625rem;
height: calc(var(--cnvs-sys-space-x1) / 2);
background-color: var(--cnvs-brand-primary-accent);
}
.cnvs-checkbox-input {
box-sizing: border-box;
border-radius: var(--cnvs-sys-shape-half);
width: var(--cnvs-sys-space-x6);
height: var(--cnvs-sys-space-x6);
margin: var(--cnvs-sys-space-zero);
margin-top: calc(0.1875rem * -1);
margin-inline-start: calc(0.1875rem * -1);
position: absolute;
opacity: var(--cnvs-sys-opacity-zero);
}
.cnvs-checkbox-input:not(:disabled) {
cursor: pointer;
}
.cnvs-checkbox-input:where(:hover,.hover)~span:first-of-type {
box-shadow: 0 0 0 0.4375rem var(--cnvs-sys-color-bg-alt-soft);
}
.cnvs-checkbox-input:not(:where(:checked, :indeterminate, :disabled, :focus-visible, .focus)):where(:hover, .hover, :active, .active)~div:first-of-type {
border-color: var(--cnvs-sys-color-border-input-strong);
}
.cnvs-checkbox-input:where(:checked, :indeterminate)~div:first-of-type {
border-color: var(--cnvs-brand-primary-base);
background-color: var(--cnvs-brand-primary-base);
}
.cnvs-checkbox-input:disabled~div:first-of-type {
border-color: var(--cnvs-sys-color-border-input-disabled);
background-color: var(--cnvs-sys-color-bg-alt-softer);
opacity: var(--cnvs-sys-opacity-full);
}
.cnvs-checkbox-input:disabled:where(:checked, :indeterminate)~div:first-of-type {
border-color: var(--cnvs-brand-primary-light);
background-color: var(--cnvs-brand-primary-light);
}
.cnvs-checkbox-input:where(:focus-visible, :active, .focus, .active) {
outline: none;
}
.cnvs-checkbox-input:where(:focus-visible, .focus)~div:first-of-type {
border-color: var(--cnvs-brand-primary-base);
border-width: 0.125rem;
box-shadow: 0 0 0 0px var(--cnvs-base-palette-french-vanilla-100, rgba(255,255,255,1)),0 0 0 0px var(--cnvs-brand-common-focus-outline, rgba(8,117,225,1));
}
.cnvs-checkbox-input:checked:focus-visible~div:first-of-type, .cnvs-checkbox-input:indeterminate:focus-visible~div:first-of-type, .cnvs-checkbox-input:checked.focus~div:first-of-type, .cnvs-checkbox-input:indeterminate.focus~div:first-of-type {
box-shadow: 0 0 0 2px var(--cnvs-base-palette-french-vanilla-100, rgba(255,255,255,1)),0 0 0 4px var(--cnvs-brand-common-focus-outline);
border-color: var(--cnvs-brand-primary-base);
border-width: 0.125rem;
}
.cnvs-checkbox-input:checked:focus-visible~div:first-of-type span, .cnvs-checkbox-input:indeterminate:focus-visible~div:first-of-type span, .cnvs-checkbox-input:checked.focus~div:first-of-type span, .cnvs-checkbox-input:indeterminate.focus~div:first-of-type span {
margin-inline-start: calc(0.4375rem * -1);
}
.cnvs-checkbox-input.variant-inverse~span:first-of-type {
opacity: var(--cnvs-sys-opacity-disabled);
}
.cnvs-checkbox-input.variant-inverse~div:first-of-type {
border-color: var(--cnvs-sys-color-border-input-inverse);
}
.cnvs-checkbox-input.variant-inverse:not(:where(:checked, :indeterminate, :disabled, :focus-visible, .focus)):where(:hover, .hover, :active, .active)~div:first-of-type {
border-color: var(--cnvs-sys-color-border-input-inverse);
}
.cnvs-checkbox-input.variant-inverse:where(:checked, :indeterminate)~div:first-of-type {
border-color: var(--cnvs-sys-color-border-input-inverse);
background-color: var(--cnvs-sys-color-bg-default);
}
.cnvs-checkbox-input.variant-inverse:disabled~div:first-of-type {
background-color: var(--cnvs-sys-color-bg-alt-default);
opacity: var(--cnvs-sys-opacity-disabled);
}
.cnvs-checkbox-input.variant-inverse:disabled:where(:checked, :indeterminate)~div:first-of-type {
border-color: var(--cnvs-sys-color-border-input-inverse);
background-color: var(--cnvs-sys-color-bg-default);
}
.cnvs-checkbox-input.variant-inverse:where(:focus-visible, .focus)~div:first-of-type {
border-color: var(--cnvs-sys-color-border-contrast-default);
box-shadow: 0 0 0 0px var(--cnvs-sys-color-border-contrast-default),0 0 0 2px var(--cnvs-sys-color-border-inverse);
}
.cnvs-checkbox-input.variant-inverse:checked:focus-visible~div:first-of-type, .cnvs-checkbox-input.variant-inverse:checked.focus~div:first-of-type, .cnvs-checkbox-input.variant-inverse:indeterminate:focus-visible~div:first-of-type, .cnvs-checkbox-input.variant-inverse:indeterminate.focus~div:first-of-type {
box-shadow: 0 0 0 2px var(--cnvs-sys-color-border-contrast-default),0 0 0 4px var(--cnvs-sys-color-border-inverse);
border-color: var(--cnvs-sys-color-border-inverse);
}
.cnvs-checkbox-input.disabled:where(:hover, .hover)~span:first-of-type {
box-shadow: none;
}
.cnvs-checkbox-input.error:not(:where(:focus-visible, .focus))~div:first-of-type {
border-color: var(--cnvs-checkbox-background-error-ring-color-inner);
box-shadow: 0 0 0 0.0625rem var(--cnvs-checkbox-background-error-ring-color-inner),0 0 0 0.125rem var(--cnvs-checkbox-background-error-ring-color-outer);
}
.cnvs-checkbox-input.error:where(:checked, :indeterminate)~div:first-of-type {
border-color: transparent;
box-shadow: 0 0 0 0.125rem var(--cnvs-sys-color-border-inverse),0 0 0 0.25rem var(--cnvs-checkbox-background-error-ring-color-inner),0 0 0 0.3125rem var(--cnvs-checkbox-background-error-ring-color-outer);
}
.cnvs-checkbox-input.error:not(:where(:checked, :indeterminate, :disabled, :focus-visible, .focus)):where(:hover, .hover, :active, .active)~div:first-of-type {
border-color: var(--cnvs-checkbox-background-error-ring-color-inner);
}
.cnvs-checkbox-input.variant-inverse.error:not(:where(:focus-visible, .focus))~div:first-of-type {
border: 0.0625rem solid var(--cnvs-sys-color-border-input-inverse);
}
.cnvs-checkbox-input.variant-inverse.error:not(where(:checked, :indeterminate, :disabled, :focus-visible, .focus)):where(:hover, .hover, :active, .active)~div:first-of-type {
border-color: var(--cnvs-sys-color-border-input-inverse);
}
.cnvs-checkbox-input.variant-inverse.error:where(:checked, :indeterminate)~div:first-of-type {
border-color: var(--cnvs-sys-color-border-input-inverse);
}