> Markdown version of [Styling](https://vaadin.com/docs/next/components/radio-button/styling). Section index: [llms.txt](https://vaadin.com/docs/next/components/llms.txt)

# Radio Button Styling

## <a id="style-variants"></a>Style Variants

The following style variants can be applied:

| Variant              | Description                                             | Supported by |
| -------------------- | ------------------------------------------------------- | ------------ |
| `helper-above-field` | Renders the helper above the field, and below the label | Aura, Lumo   |
| `vertical`           | Vertical layout for radio group items                   | Lumo         |
| `horizontal`         | Horizontal layout for radio group items                 | Aura         |

### <a id="helper-above-field-variant"></a>Helper Above Field Variant

**Lit** — `radio-button-group-styles.ts`

```typescript
<vaadin-radio-group
  theme="helper-above-field vertical"
  label="Label"
  helper-text="Helper text"
>
</vaadin-radio-group>
```

**Flow** — `RadioButtonGroupStyles.java`

```java
RadioButtonGroup<String> field = new RadioButtonGroup<>();
field.addThemeVariants(RadioGroupVariant.HELPER_ABOVE);
```

**React** — `radio-button-group-styles.tsx`

```tsx
<RadioGroup label="Label" helperText="Helper text" theme="helper-above-field vertical">
  <RadioButton value="1" label="Item 1" />
  <RadioButton value="2" label="Item 2" />
  <RadioButton value="3" label="Item 3" />
</RadioGroup>
```

## <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 [Component Style Properties](https://vaadin.com/docs/next/styling/styling-components.md#component-style-properties) 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="radio-button-properties"></a>Radio Button Properties

| Property                                    | Supported By |
| ------------------------------------------- | ------------ |
| `--vaadin-radio-button-background`          | Aura, Lumo   |
| `--vaadin-radio-button-background-hover`    | Lumo         |
| `--vaadin-radio-button-border-color`        | Aura         |
| `--vaadin-radio-button-border-width`        | Aura         |
| `--vaadin-radio-button-disabled-background` | Lumo         |
| `--vaadin-radio-button-disabled-dot-color`  | Lumo         |
| `--vaadin-radio-button-dot-color`           | Lumo         |
| `--vaadin-radio-button-dot-size`            | Lumo         |
| `--vaadin-radio-button-gap`                 | Aura         |
| `--vaadin-radio-button-label-color`         | Aura, Lumo   |
| `--vaadin-radio-button-label-font-size`     | Aura, Lumo   |
| `--vaadin-radio-button-label-font-weight`   | Aura         |
| `--vaadin-radio-button-label-line-height`   | Aura         |
| `--vaadin-radio-button-label-padding`       | Lumo         |
| `--vaadin-radio-button-marker-color`        | Aura         |
| `--vaadin-radio-button-marker-size`         | Aura         |
| `--vaadin-radio-button-size`                | Aura, Lumo   |

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

| Property                                        | Supported by |
| ----------------------------------------------- | ------------ |
| `--vaadin-input-field-focused-label-color`      | Lumo         |
| `--vaadin-input-field-hovered-label-color`      | Lumo         |
| `--vaadin-input-field-label-color`              | Aura, Lumo   |
| `--vaadin-input-field-label-font-size`          | Aura, Lumo   |
| `--vaadin-input-field-label-font-weight`        | Aura, Lumo   |
| `--vaadin-input-field-label-line-height`        | Aura, Lumo   |
| `--vaadin-input-field-required-indicator-color` | Aura, Lumo   |
| `--vaadin-input-field-required-indicator`       | Aura, Lumo   |

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

| Property                                  | Supported by |
| ----------------------------------------- | ------------ |
| `--vaadin-input-field-helper-color`       | Aura, Lumo   |
| `--vaadin-input-field-helper-font-size`   | Aura, Lumo   |
| `--vaadin-input-field-helper-font-weight` | Aura, Lumo   |
| `--vaadin-input-field-helper-line-height` | Aura, Lumo   |
| `--vaadin-input-field-helper-spacing`     | Lumo         |

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

| Property                                 | Supported by |
| ---------------------------------------- | ------------ |
| `--vaadin-input-field-error-color`       | Aura, Lumo   |
| `--vaadin-input-field-error-font-size`   | Aura, Lumo   |
| `--vaadin-input-field-error-font-weight` | Aura, Lumo   |
| `--vaadin-input-field-error-line-height` | Aura, Lumo   |

## <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/next/styling.md) for more details on how to style components.

> **Important: Not for Shadow DOM**
>
> These selectors should be used in `styles.css` or another stylesheet loaded with the `@StyleSheet` annotation or the `@import` CSS rule. **They do not work in the shadow DOM of Vaadin components**, such as in stylesheets in the `components` sub-folder or loaded with the `@CssImport` annotation’s `themeFor` property.

---

### <a id="radio-button"></a>Radio Button

- Root element

  `vaadin-radio-button`

- Focused

  `vaadin-radio-button[focused]`

- Keyboard focused

  `vaadin-radio-button[focus-ring]`

- Disabled

  `vaadin-radio-button[disabled]`

- Hovered

  `vaadin-radio-button:hover`

- Pressed

  `vaadin-radio-button[active]`

- Selected

  `vaadin-radio-button[checked]`

- Indeterminate

  `vaadin-radio-button[indeterminate]`

- Radio ring

  `vaadin-radio-button::part(radio)`

- Selection dot

  `vaadin-radio-button::part(radio)::after`

- Label

  `vaadin-radio-button > label`

### <a id="radio-button-group"></a>Radio Button Group

- Root element

  `vaadin-radio-group`

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

- Focused

  `vaadin-radio-group[focused]`

- Keyboard focused

  `vaadin-radio-group[focus-ring]`

- Disabled

  `vaadin-radio-group[disabled]`

- Read-only

  `vaadin-radio-group[readonly]`

- Hovered

  `vaadin-radio-group:hover`

- Has selection

  `vaadin-radio-group[has-value]`

- Has tooltip

  `vaadin-radio-group[has-tooltip]`

#### <a id="parts"></a>Parts

- Radio button wrapper

  `vaadin-radio-group::part(group-field)`

- Radio buttons

  `vaadin-radio-group > vaadin-radio-button`

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

- Radio group with label

  `vaadin-radio-group[has-label]`

- Label

  `vaadin-radio-group::part(label)`

- Label text

  `vaadin-radio-group > label`

- Required indicator

  `vaadin-radio-group::part(required-indicator)`

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

- Field with helper

  `vaadin-radio-group[has-helper]`

- Helper

  `vaadin-radio-group::part(helper-text)`

- Helper text

  `vaadin-radio-group > [slot="helper"]`

- Invalid field

  `vaadin-radio-group[invalid]`

- Field with error message

  `vaadin-radio-group[has-error-message]`

- Error message

  `vaadin-radio-group::part(error-message)`

- Error message text

  `vaadin-radio-group > [slot="error-message"]`
