# Gummy Button

> The approved fruit-gel action with chewy press physics.

- Status: stable
- Licence: MIT
- Catalogue group: Forms and selection

## Installation

```sh
npx shadcn@latest add https://gummyui.dev/r/gummy-button.json
```

The shadcn-compatible registry copies editable React, TypeScript, and CSS
into the consuming application; it is not a black-box component runtime.

## Semantics

A native button with variant, size, finish, loading, and disabled states.

## Keyboard behavior

Enter and Space activate the native button.

## Dependencies

No component-specific dependency is declared in the catalogue.
The registry resolves shared Gummy style payloads automatically.

## Anatomy and API

Exported React parts:

- `GummyButton`

### `GummyButtonProps`

Composes `React.ButtonHTMLAttributes<HTMLButtonElement> & { /** Fruit-colour treatment. The label remains on an optically stable layer. */ variant?: GummyButtonVariant; /** Preserves a 44px minimum touch target at every visual size. */ size?: GummyButtonSize; /** Controls optical transmission without changing semantic colour. */ finish?: GummyButtonFinish; /** Disables activation, exposes busy state, and shows a non-motion-dependent cue. */ loading?: boolean; /** Visible label while loading. */ loadingText?: React.ReactNode; }`.

## Themes, RTL, and reduced motion

- Light and dark modes use the shared semantic and fruit tokens. Set
  `data-theme="dark"` on the root to activate the included dark environment.
- Use the nearest genuine `dir` boundary. Layout uses logical properties;
  any directional key behavior is part of the keyboard contract above.
- Gummy motion styles honor `prefers-reduced-motion: reduce`; preserve visible
  focus, selection, loading, and validation information when motion is reduced.

## Public source and registry

- [Source viewer](https://gummyui.dev/components/button#source-title)
- Public source path: `app/components/ui/GummyButton.tsx`
- [Registry payload](https://gummyui.dev/r/gummy-button.json)
- [HTML documentation](https://gummyui.dev/components/button)

## Licence and source boundary

Gummy UI's public component source and documentation are MIT licensed.
This Markdown namespace exposes only public catalogue facts, public source
locations, and public registry URLs. Separate paid assets are not included
and cannot be inferred from these documents.

Canonical Markdown: https://gummyui.dev/docs/markdown/components/button.md
