Button
The Button component is used to trigger an action or event, such as submitting a form, opening a dialog, canceling an action, or performing a delete operation.
Import
import { Button } from '@aphrodite-ui/react';Usage
<Button>Button</Button>Button colors
Use the color prop to change the color of the Button.
You can set the value to primary, neutral, success, info, warning or danger.
<div className="flex items-center gap-2">
<Button color="primary">Button</Button>
<Button color="neutral">Button</Button>
<Button color="success">Button</Button>
<Button color="info">Button</Button>
<Button color="warning">Button</Button>
<Button color="danger">Button</Button>
</div>Button Shapes
Use the shape prop to change the shape of the Button.
You can set the value to square or pill.
<div className="flex items-center gap-2">
<Button shape="square">Button</Button>
<Button shape="pill">Button</Button>
</div>Button Sizes
Use the size prop to change the size of the Button.
You can set the value to xs, sm, md, lg or xl.
<div className="flex items-center gap-2">
<Button size="xs">Button</Button>
<Button size="sm">Button</Button>
<Button size="md">Button</Button>
<Button size="lg">Button</Button>
<Button size="xl">Button</Button>
</div>Button variants
Use the variant prop to change the visual style of the Button.
You can set the value to solid, flat, ghost, outline or link.
<div className="flex items-center gap-2">
<Button variant="solid">Button</Button>
<Button variant="flat">Button</Button>
<Button variant="ghost">Button</Button>
<Button variant="outline">Button</Button>
<Button variant="link">Button</Button>
</div>Button with icon
You can add left and right icons to the Button component using the leftIcon and rightIcon props respectively.
<div className="flex items-center gap-2">
<Button leftIcon={<FiMail className="h-5 w-5" />}>Button</Button>
<Button
rightIcon={<FiArrowRightCircle className="h-5 w-5" />}
variant="outline"
>
Button
</Button>
</div>Button loading state
Pass the loading prop to show its loading state.
By default, the button will show a spinner and leave the button's width unchanged.
You can also pass the loadingText prop to show a spinner and the loading text.
<div className="flex items-center gap-2">
<Button loading>Loading</Button>
<Button variant="outline" loading loadingText="Submitting">
Submit
</Button>
</div>You can change the spinner element to use custom loaders as per your design requirements.
Pass the spinner prop and set it to a custom react element.
<Button loading spinner={<FiChrome className="h-5 w-5 animate-spin" />}>
Click me
</Button>When a loaderText is present, you can change the placement of the loader element to either start or end.
<div className="flex items-center gap-2">
<Button
variant="outline"
loading
loadingText="Loading"
spinnerPlacement="start"
>
Submit
</Button>
<Button
variant="outline"
loading
loadingText="Loading"
spinnerPlacement="end"
>
Continue
</Button>
</div>