Skip to main content

Button API

API reference docs for the React Button component. Learn about the props of this exported module.

Demos​

tip

For examples and details on the usage of this React component, visit the component demo pages:

Import​

import { Button } from 'tailwind-joy/components';

Props​

info

The ref is forwarded to the root element.

className​

Class name applied to the root element.

  • Type: string

color​

The color of the component.

  • Type: 'primary' | 'neutral' | 'danger' | 'success' | 'warning'
  • Default: 'primary'

component​

Available from version 0.4.0

The component used for the root node.

  • Type: keyof JSX.IntrinsicElements
  • Default: 'button'

disabled​

If true, the component is disabled.

  • Type: boolean
  • Default: false

endDecorator​

Element placed after the children.

  • Type: ReactNode

fullWidth​

If true, the button will take up the full width of its container.

  • Type: boolean
  • Default: false

loading​

If true, the loading indicator is shown and the button becomes disabled.

  • Type: boolean
  • Default: false

loadingIndicator​

Element that appears while the button is loading.

  • Type: ReactNode
  • Default: <CircularProgress />

loadingPosition​

The loading indicator can be positioned on the start, end, or the center of the button.

  • Type: 'start' | 'center' | 'end'
  • Default: 'center'

size​

The size of the component.

  • Type: 'sm' | 'md' | 'lg'
  • Default: 'md'

slotProps​

Available from version 0.4.0

The props used for each slot inside.

  • Type:
    {
    root?: ComponentProps<'button'>;
    startDecorator?: ComponentProps<'span'>;
    endDecorator?: ComponentProps<'span'>;
    loadingIndicatorCenter?: ComponentProps<'span'>;
    }
  • Default: {}

startDecorator​

Element placed before the children.

  • Type: ReactNode

variant​

The variant of the component.

  • Type: 'solid' | 'soft' | 'outlined' | 'plain'
  • Default: 'solid'