> Markdown version of [Styling](https://vaadin.com/docs/v24/components/select/styling). Section index: [llms.txt](https://vaadin.com/docs/v24/components/llms.txt)

# Styling

## <a id="style-properties"></a>Style Properties

The following style properties can be used in CSS stylesheets to customize the appearance of this component.

To apply values to these properties globally in your application UI, place them in a CSS block using the `html {…​}` selector. See [Lumo Style Properties](https://vaadin.com/docs/v24/styling/lumo/lumo-style-properties.md) for more information on style properties.

> **Note: Input Field Components Shared Styles**
>
> Style properties whose names start with `--vaadin-input-field` are shared among all input field components. To apply them only to a specific type of component, use an element selector like `vaadin-text-field {…​}`

### <a id="field-surface"></a>Field Surface

| Feature                                      | Property                                       | Default Value                      |
| -------------------------------------------- | ---------------------------------------------- | ---------------------------------- |
| Background                                   | `--vaadin-input-field-background`              | `--lumo-contrast-10pct`            |
| Background, invalid                          | `--vaadin-input-field-invalid-background`      | `--lumo-error-color-10pct`         |
| Background, hover highlight color            | `--vaadin-input-field-hover-highlight`         | `--lumo-contrast-50pct`            |
| Background, invalid hover highlight color    | `--vaadin-input-field-invalid-hover-highlight` | `--lumo-error-color-50pct`         |
| Background, disabled (since undefined)       | `--vaadin-input-field-disabled-background`     | `--lumo-contrast-5pct`             |
| Border width                                 | `--vaadin-input-field-border-width`            | `0`                                |
| Border color                                 | `--vaadin-input-field-border-color`            | `--lumo-contrast-50pct`            |
| Hover highlight opacity                      | `--vaadin-input-field-hover-highlight-opacity` | `0.1`                              |
| Height                                       | `--vaadin-input-field-height`                  | `--lumo-size-m`                    |
| Value text color                             | `--vaadin-input-field-value-color`             | `--lumo-body-text-color`           |
| Value text color, disabled (since undefined) | `--vaadin-input-field-disabled-value-color`    | `--lumo-disabled-text-color`       |
| Value font size                              | `--vaadin-input-field-value-font-size`         | `--lumo-font-size-m`               |
| Value font weight                            | `--vaadin-input-field-value-font-weight`       | `400`                              |
| Placeholder text color                       | `--vaadin-input-field-placeholder-color`       | `--lumo-secondary-text-color`      |
| Border radius                                | `--vaadin-input-field-border-radius`           | `--lumo-border-radius-m`           |
| Read-only border                             | `--vaadin-input-field-readonly-border`         | `1px dashed --lumo-contrast-30pct` |
| Focus ring width                             | `--vaadin-focus-ring-width`                    | `2px`                              |
| Focus ring color                             | `--vaadin-focus-ring-color`                    | `--lumo-primary-color-50pct`       |

### <a id="label"></a>Label

| Feature       | Property                                   | Default Value                 |
| ------------- | ------------------------------------------ | ----------------------------- |
| Color         | `--vaadin-input-field-label-color`         | `--lumo-secondary-text-color` |
| Focused color | `--vaadin-input-field-focused-label-color` | `--lumo-primary-text-color`   |
| Hovered color | `--vaadin-input-field-hovered-label-color` | `--lumo-body-text-color`      |
| Font size     | `--vaadin-input-field-label-font-size`     | `--lumo-font-size-s`          |
| Font weight   | `--vaadin-input-field-label-font-weight`   | `500`                         |

### <a id="helper"></a>Helper

| Feature     | Property                                  | Default Value                 |
| ----------- | ----------------------------------------- | ----------------------------- |
| Font size   | `--vaadin-input-field-helper-font-size`   | `--lumo-font-size-xs`         |
| Font weight | `--vaadin-input-field-helper-font-weight` | `400`                         |
| Color       | `--vaadin-input-field-helper-color`       | `--lumo-secondary-text-color` |
| Top margin  | `--vaadin-input-field-helper-spacing`     | `0.4em`                       |

### <a id="error-message"></a>Error Message

| Feature     | Property                                 | Default Value             |
| ----------- | ---------------------------------------- | ------------------------- |
| Font size   | `--vaadin-input-field-error-font-size`   | `--lumo-font-size-xs`     |
| Font weight | `--vaadin-input-field-error-font-weight` | `400`                     |
| Color       | `--vaadin-input-field-error-color`       | `--lumo-error-text-color` |

### <a id="icons"></a>Icons

| Feature   | Property                              | Default Value           |
| --------- | ------------------------------------- | ----------------------- |
| Font size | `--vaadin-input-field-icon-font-size` | `--lumo-icon-size-m`    |
| Color     | `--vaadin-input-field-icon-color`     | `--lumo-contrast-60pct` |

## <a id="css-selectors"></a>CSS Selectors

The following CSS selectors can be used in stylesheets to target the various parts and states of the component. See the [Styling documentation](https://vaadin.com/docs/v24/styling.md) for more details on how to style components.

- Root element

  `vaadin-select`

### <a id="states"></a>States

- Required

  `vaadin-select[required]`

- Focused

  `vaadin-select[focused]`

- Keyboard focused

  `vaadin-select[focus-ring]`

- Read-only

  `vaadin-select[readonly]`

- Disabled

  `vaadin-select[disabled]`

- Not empty

  `vaadin-select[has-value]`

- With open overlay

  `vaadin-select[opened]`

- Hovered

  `vaadin-select:hover`

### <a id="field"></a>Field

- Field surface (background, border)

  `vaadin-select::part(input-field)`

- Internal button element

  `vaadin-select-value-button`

- Selected item element inside field

  `vaadin-select-value-button > vaadin-select-item`

- Selected value

  `vaadin-select-value-button > vaadin-select-item::part(content)`

- Internal button showing placeholder

  `vaadin-select-value-button[placeholder]`

- Toggle Button

  `vaadin-select::part(toggle-button)`

- Prefix element

  `vaadin-select > [slot="prefix"]`

- Read-only border

  `vaadin-select::part(input-field)::after`

### <a id="label-2"></a>Label

- Field with label

  `vaadin-select[has-label]`

- Label

  `vaadin-select::part(label)`

- Label text

  `vaadin-select > label`

- Required indicator

  `vaadin-select::part(required-indicator)`

### <a id="helper-and-validation-error"></a>Helper and Validation Error

- Field with helper

  `vaadin-select[has-helper]`

- Helper

  `vaadin-select::part(helper-text)`

- Helper text

  `vaadin-select > [slot="helper"]`

- Invalid field

  `vaadin-select[invalid]`

- Field with error message

  `vaadin-select[has-error-message]`

- Error message

  `vaadin-select::part(error-message)`

- Error message text

  `vaadin-select > [slot="error-message"]`

### <a id="overlay"></a>Overlay

- Overlay element

  `vaadin-select-overlay`

- Overlay background

  `vaadin-select-overlay::part(overlay)`

- Overlay list box wrapper

  `vaadin-select-overlay::part(content)`

### <a id="items"></a>Items

- Item element

  `vaadin-select-item`

- Selected item

  `vaadin-select-item[selected]`

- Item selection indicator

  `vaadin-select-item::part(checkmark)`

- Item selection indicator icon

  `vaadin-select-item::part(checkmark)::before`

- Focused item

  `vaadin-select-item[focused]`

- Item content wrapper

  `vaadin-select-item::part(content)`

- Hovered item

  `vaadin-select-item:hover`
