Loading component…
Loading component…
What automated tests prove about each implementation — separate from whether the package itself is a finished product. Derived from the test files; how the levels are earned.
React
Package maturity: stable · Implementation verification: Beta
Angular
Package maturity: preview · Implementation verification: Preview
SwiftUI
Package maturity: stable · Implementation verification: Experimental
Jetpack Compose
Package maturity: stable · Implementation verification: Beta
Flutter
Package maturity: stable · Implementation verification: Beta
This platform’s whole catalogue is verified to React beta, Angular preview, SwiftUI experimental, Jetpack Compose experimental, Flutter experimental. The catalogue figure is the weakest component on that platform, not an average.
Trigger an action or event. Generated 1:1 from Figma KinetixUI ›
UI Components › 02. Controls & Actions › Button (54863:351).
Reduced motion: off · your browser setting
npx @kinetixui/cli add buttonimport { Button } from "@kinetixui/ui";
<Button variant="Primary" size="md">Save</Button>
<Button asChild variant="Link"><a href="/docs">Docs</a></Button>Reduced motion: off · your browser setting
variant and size map 1:1 to the Figma component properties. Hover,
Focus, and Active are CSS pseudo-classes; the state prop force-pins one
for snapshots and this documentation.
Reduced motion: off · your browser setting
| Prop | Type | Default |
|---|---|---|
variant | "Primary" | "Secondary" | "Outline" | "Destructive" | "Ghost" | "Link" | "Primary" |
size | "sm" | "md" | "lg" | "icon" | "md" |
state | "Default" | "Hover" | "Focus" | "Active" | "Disabled" | "Default" |
asChild | boolean | false |
Plus all native <button> attributes.
The props of @kinetixui/ui, generated from its TypeScript. Props inherited from the underlying DOM element (className, id, event handlers) are accepted too and are not listed.
This table is React-specific. The SwiftUI, Jetpack Compose, Flutter and Angular implementations share the design contract — the same variants, sizes, states and tokens — but each exposes its own idiomatic interface. Their real usage is in the platform tabs on the example above, not here.
| Prop | Type | Notes |
|---|---|---|
| asChild | booleanrender as the single child element (Radix Slot) instead of <button> | render as the single child element (Radix Slot) instead of <button> |
| variant | "Primary" | "Secondary" | "Outline" | "Destructive" | "Ghost" | "Link" | null | |
| size | "sm" | "md" | "lg" | "icon" | null | |
| state | "Default" | "Hover" | "Focus" | "Active" | "Disabled" | nullforce a static visual state — leave undefined for real interaction | force a static visual state — leave undefined for real interaction |
| corners | "default" | "sharp" | "pill" | nullcorner style — matches the design source's Corners property | corner style — matches the design source's Corners property |