---
url: "https://vueda.dev/v3/reference/theming/keys/_ButtonDefault.md"
title: "_ButtonDefault"
---

# _ButtonDefault

_Composition primitive, consumed by leaf keys via `composes`._

Source: `client/lib/theme/vueda-tailwind/controls/index.js`

> The `--primary` fill keeps the canonical brand blue in both modes with dark `--primary-foreground` labels. Hover and active use opaque white mixes through `--primary-hover` and `--primary-active`. Pair sparingly with neutral pressed-state recipes like [Toggle.root](/v3/reference/theming/keys/Toggle.md#theme-key-Toggle-root) so a CTA and an active toggle do not compete.

| Slot | Default classes | Description |
| --- | --- | --- |
| [root](/v3/reference/theming/keys/_ButtonDefault.md#theme-key-_ButtonDefault-root) | 2 classes | The `--primary` fill keeps the canonical brand blue in both modes with dark `--primary-foreground` labels. Hover and active use opaque white mixes through `--primary-hover` and `--primary-active`. Pair sparingly with neutral pressed-state recipes like [Toggle.root](/v3/reference/theming/keys/Toggle.md#theme-key-Toggle-root) so a CTA and an active toggle do not compete. |

<a id="theme-key-_ButtonDefault-root"></a>

## root

> The `--primary` fill keeps the canonical brand blue in both modes with dark `--primary-foreground` labels. Hover and active use opaque white mixes through `--primary-hover` and `--primary-active`. Pair sparingly with neutral pressed-state recipes like [Toggle.root](/v3/reference/theming/keys/Toggle.md#theme-key-Toggle-root) so a CTA and an active toggle do not compete.

Default classes:

```text
bg-primary text-primary-foreground hover:bg-primary-hover active:bg-primary-active
disabled:bg-disabled disabled:text-disabled-foreground disabled:shadow-none
```

Source: `client/lib/theme/vueda-tailwind/controls/_ButtonPrimitives.theme.js:60`
