Vaadin WC API reference

Description

<vaadin-switch> is a binary on/off switch control for a single setting.

<vaadin-switch label="Notifications"></vaadin-switch>

Styling

The following shadow DOM parts are available for styling:

Part name Description
switch The track element that holds the marker.
marker The marker element inside the track.
label The slotted label element wrapper.
helper-text The slotted helper text element wrapper.
error-message The slotted error message element wrapper.
required-indicator The required state indicator element.

The following state attributes are available for styling:

Attribute Description
active Set when the switch is activated with mouse, touch or the keyboard.
checked Set when the switch is checked.
disabled Set when the switch is disabled.
readonly Set when the switch is readonly.
focus-ring Set when the switch is focused using the keyboard.
focused Set when the switch is focused.
required Set when the switch is required.
invalid Set when the switch is invalid.
has-label Set when the switch has a label.
has-helper Set when the switch has helper text.
has-error-message Set when the switch has an error message.
has-tooltip Set when the switch has a slotted tooltip.

The following custom CSS properties are available for styling:

Custom CSS property
--vaadin-input-field-error-color
--vaadin-input-field-error-font-size
--vaadin-input-field-error-font-weight
--vaadin-input-field-error-line-height
--vaadin-input-field-helper-color
--vaadin-input-field-helper-font-size
--vaadin-input-field-helper-font-weight
--vaadin-input-field-helper-line-height
--vaadin-input-field-required-indicator
--vaadin-input-field-required-indicator-color
--vaadin-switch-background
--vaadin-switch-border-color
--vaadin-switch-border-radius
--vaadin-switch-border-width
--vaadin-switch-gap
--vaadin-switch-height
--vaadin-switch-width
--vaadin-switch-icon-color
--vaadin-switch-icon-size
--vaadin-switch-label-color
--vaadin-switch-label-font-size
--vaadin-switch-label-font-weight
--vaadin-switch-label-line-height
--vaadin-switch-marker-border-color
--vaadin-switch-marker-border-radius
--vaadin-switch-marker-border-width
--vaadin-switch-marker-color
--vaadin-switch-marker-height
--vaadin-switch-marker-scale
--vaadin-switch-marker-width

See Styling Components documentation.

Properties

accessibleName

Type: string | null | undefined

String used to label the component to screen reader users.

accessibleNameRef

Type: string | null | undefined

Id of the element used as label of the component to screen reader users.

autofocus

Type: boolean

Specify that this control should have input focus when the page loads.

checked

Type: boolean

True if the element is checked.

disabled

Type: boolean

If true, the user cannot interact with this element.

errorMessage

Type: string | null | undefined

Error to show when the field is invalid.

helperText

Type: string | null | undefined

String used for the helper text.

invalid

Type: boolean

Set to true when the field is invalid.

label

Type: string | null | undefined

The label text for the input node. When no light dom defined via [slot=label], this value will be used.

manualValidation

Type: boolean

Set to true to enable manual validation mode. This mode disables automatic constraint validation, allowing you to control the validation process yourself. You can still trigger constraint validation manually with the validate() method or use checkValidity() to assess the component's validity without affecting the invalid state. In manual validation mode, you can also manipulate the invalid property directly through your application logic without conflicts with the component's internal validation.

name

Type: string

The name of the control, which is submitted with the form data.

readonly

Type: boolean

When true, the user cannot modify the value of the control. The difference between disabled and readonly is that the read-only element remains focusable, is announced by screen readers and its value can be submitted as part of the form.

required

Type: boolean

Specifies that the user must fill in a value.

value

Type: string

The value of the field.

Methods

checkValidity

Type: () => boolean

clear

Type: () => void

Clear the value of the field.

validate

Type: () => boolean

Validates the field and sets the invalid property based on the result.

The method fires a validated event with the result of the validation.

Events

change

Type: SwitchChangeEvent

Fired when the switch is toggled by the user.

checked-changed

Type: SwitchCheckedChangedEvent

Fired when the checked property changes.

invalid-changed

Type: SwitchInvalidChangedEvent

Fired when the invalid property changes.

validated

Type: SwitchValidatedEvent

Fired whenever the field is validated.

Types

SwitchChangeEvent

/**
 * Fired when the switch is toggled by the user.
 */
export type SwitchChangeEvent = Event & {
  target: Switch;
};

SwitchCheckedChangedEvent

/**
 * Fired when the `checked` property changes.
 */
export type SwitchCheckedChangedEvent = CustomEvent<{ value: boolean }>;

SwitchInvalidChangedEvent

/**
 * Fired when the `invalid` property changes.
 */
export type SwitchInvalidChangedEvent = CustomEvent<{ value: boolean }>;

SwitchValidatedEvent

/**
 * Fired whenever the switch is validated.
 */
export type SwitchValidatedEvent = CustomEvent<{ valid: boolean }>;