@vaadin/checkbox
Version:
vaadin-checkbox
96 lines (80 loc) • 2.15 kB
JavaScript
/**
* @license
* Copyright (c) 2017 - 2025 Vaadin Ltd.
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
*/
import { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
export const checkboxStyles = css`
:host {
display: inline-block;
}
:host([hidden]) {
display: none ;
}
:host([disabled]) {
-webkit-tap-highlight-color: transparent;
}
.vaadin-checkbox-container {
display: grid;
grid-template-columns: auto 1fr;
align-items: baseline;
}
[part='checkbox'],
::slotted(input),
[part='label'] {
grid-row: 1;
}
[part='checkbox'],
::slotted(input) {
grid-column: 1;
}
[part='helper-text'],
[part='error-message'] {
grid-column: 2;
}
:host(:not([has-helper])) [part='helper-text'],
:host(:not([has-error-message])) [part='error-message'] {
display: none;
}
[part='checkbox'] {
width: var(--vaadin-checkbox-size, 1em);
height: var(--vaadin-checkbox-size, 1em);
--_input-border-width: var(--vaadin-input-field-border-width, 0);
--_input-border-color: var(--vaadin-input-field-border-color, transparent);
box-shadow: inset 0 0 0 var(--_input-border-width, 0) var(--_input-border-color);
}
[part='checkbox']::before {
display: block;
content: '\\202F';
line-height: var(--vaadin-checkbox-size, 1em);
contain: paint;
}
/* visually hidden */
::slotted(input) {
cursor: inherit;
margin: 0;
align-self: stretch;
-webkit-appearance: none;
width: initial;
height: initial;
}
@media (forced-colors: active) {
[part='checkbox'] {
outline: 1px solid;
outline-offset: -1px;
}
:host([disabled]) [part='checkbox'],
:host([disabled]) [part='checkbox']::after {
outline-color: GrayText;
}
:host(:is([checked], [indeterminate])) [part='checkbox']::after {
outline: 1px solid;
outline-offset: -1px;
border-radius: inherit;
}
:host([focused]) [part='checkbox'],
:host([focused]) [part='checkbox']::after {
outline-width: 2px;
}
}
`;