Foundation ComponentReact 18 & 19Zero Runtime CSS
Button
A clear next step. Native button behavior with sizes, tones and loading feedback.
Interactive preview
Usage
import { Button } from "@devvy-ui/react";
<Button loading={saving} onClick={save}>Save changes</Button>API reference
Native HTML attributes, className, style and a forwarded ref are supported. Component-specific props:
| Prop | Type | Default | Description |
|---|---|---|---|
| variant | solid | outline | ghost | solid | Visual emphasis. |
| tone | brand | neutral | danger | brand | Solid background tone. Outline and ghost use neutral text. |
| size | sm | md | lg | md | Control dimensions. |
| loading | boolean | false | Shows a spinner, sets aria-busy and disables activation. |
Accessibility & behavior
Platform Behavior & Guidelines
Defaults to type="button". Set type="submit" inside forms. Keep a clear accessible name during loading.
Source ownership
Add the audited implementation directly into your repository with the CLI:
node /path/to/devvy-ui/packages/cli/src/cli.mjs add buttonMake the source yours.
Start from the canonical implementation used by the package and registry. Change the code, keep the MIT notice, and build the behavior your project needs.
Button.tsxREACT / TSX
Edit your own copy. Downloaded source uses your changes; the component preview above uses the shipped version. Run the source installer first to include shared helpers.