Back to Insomnia

Button

packages/insomnia-component-docs/docs/Components/button.mdx

7.1.13.1 KB
Original Source

Button

A flexible button component built on React Aria's Button component with multiple variants, sizes, and states.

Props

PropTypeDefaultDescription
variant'solid' | 'outlined' | 'text' | 'link''outlined'Visual style variant
primarybooleanfalseApply primary color styling
dangerbooleanfalseApply danger color styling
size'sm' | 'md' | 'lg''md'Button size
isLoadingbooleanfalseShow loading state
isDisabledbooleanfalseWhether the button is disabled
iconReactNode-Optional icon to display
childrenReactNode-Button content/label
classNamestring-Additional CSS classes

Extends all React Aria ButtonProps.

Usage Examples

Different Sizes

tsx
function Buttons() {
  return (
    <div className="flex gap-4">
      <Button primary size="sm" variant="solid">
        Click Me
      </Button>
      <Button primary variant="solid">
        Click Me
      </Button>
      <Button primary size="lg" variant="solid">
        Click Me
      </Button>
    </div>
  );
}

Different types

tsx
function Buttons() {
  return (
    <div className="flex gap-4">
      <Button primary variant="solid">
        primary
      </Button>
      <Button danger variant="solid">
        danger
      </Button>
      <Button>default</Button>
      <Button variant="text">text</Button>
    </div>
  );
}

Disabled

tsx
function Buttons() {
  return (
    <div className="flex gap-4">
      <Button isDisabled primary variant="solid">
        primary
      </Button>
      <Button isDisabled danger variant="solid">
        danger
      </Button>
      <Button isDisabled>default</Button>
      <Button isDisabled variant="text">
        text
      </Button>
    </div>
  );
}

Styling

CSS Variables

The component uses the following CSS variables for theming:

  • --color-font: Default button text color
  • --color-font-surprise: Primary button text color
  • --color-font-danger: Danger button text color
  • --color-bg: Button background color (default)
  • --color-surprise: Primary button background color
  • --color-danger: Danger button background color
  • --hl: Default border color (outlined)
  • --hl-xs: Subtle highlight (hover, pressed, focus)

You can customize these variables in your CSS to theme the button appearance.