Skip to main content

Interface: ButtonProps

Defined in: components/Button/Button.tsx:32

Displays a semantic action trigger (entity: Action).

Entity = Action → colors: action, radii: control, border: outline.control, sizing: hit.base, spacing: inset.control.md, typography: label.md, motion: feedback.

Extends

  • Omit<RACButtonProps, "style">

Properties

composition?

optional composition?: "primaryAction" | "secondaryAction" | "dismissAction"

Defined in: components/Button/Button.tsx:59

Slot this button occupies inside a parent composite (FSL §4). Emitted as data-composition on the DOM and consumed at runtime by composites that need to reorder or style actions by role — notably DialogActions, which reorders children per platform convention (iOS vs Windows).

Orthogonal to evaluation (authorial voice) and consequence (effect on state): composition is purely positional semantics.


consequence?

optional consequence?: "neutral" | "committing" | "destructive"

Defined in: components/Button/Button.tsx:48

Effect on state this button's action produces. Emitted as data-consequence on the DOM so host integrations (confirm wrappers, telemetry, undo/redo hooks) and tests can observe the contract.

NOT used for coloring — visual distinction (if any) is a theme / host-CSS concern, matching the same contract as MenuItem.

Default

'neutral'

data-scope?

optional data-scope?: string

Defined in: components/Button/Button.tsx:64

Data scope identifier for the button.

Default

'button'

evaluation?

optional evaluation?: "primary" | "secondary" | "accent" | "muted" | "negative"

Defined in: components/Button/Button.tsx:37

Semantic emphasis.

Default

'primary'