@taiga-ui/kit
Version:
Taiga UI Angular main components kit
70 lines (61 loc) • 1.54 kB
text/less
@import '@taiga-ui/core/styles/taiga-ui-local.less';
/**
* @name Checkbox
* @selector [tuiCheckbox]
*
* @description
* A stylized input type="checkbox"
*
* @attributes
* data-size — size (default: 'm') ('s' | 'm')
*
* @vars
* --t-checked-icon — checkmark icon
* --t-indeterminate-icon — indeterminate state icon
*
* @example
* <input type="checkbox" tuiCheckbox />
*
* @see-also
* Switch, Radio, Appearance
*/
[tuiCheckbox] {
--t-size: 1.5rem;
--t-radius: var(--tui-radius-s);
inline-size: var(--t-size);
block-size: var(--t-size);
border-radius: var(--t-radius);
cursor: pointer;
margin: 0;
flex-shrink: 0;
&::before {
.fullsize();
content: '';
background: currentColor;
mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"></svg>') center/100%;
transform: scale(0);
transition:
transform var(--tui-duration) ease-in-out,
mask 0s var(--tui-duration) ease-in-out;
}
&:disabled._readonly {
opacity: 1;
}
&:checked,
&:indeterminate {
&::before {
mask-image: var(--t-checked-icon);
transform: scale(1);
transition:
transform var(--tui-duration) ease-in-out,
mask 0s ease-in-out;
}
}
&:indeterminate::before {
mask-image: var(--t-indeterminate-icon);
}
&[data-size='s'] {
--t-size: 1rem;
--t-radius: var(--tui-radius-xs);
}
}