import {Button} from '@primer/react-brand'
Examples
Default
This is the default variant for the Button component. It corresponds to the secondary
variant appearance.
<Button>Default</Button>
Primary
The primary
variant of Button
indicates that the action is of high priority, and should be used sparingly.
<Button variant="primary">Primary</Button>
Accent
The accent
variant is equally high priority, and should be used only in Hero or CTABanner components.
<Button variant="accent">Accent</Button>
Subtle
The subtle
variant of Button indicates that the action is a low priority one.
<Button variant="subtle">Subtle</Button>
Sizes
<Stack direction="vertical" alignItems="flex-start"> <Button size="small">Register now</Button> <Button size="medium">Register now</Button> <Button size="large">Register now</Button> </Stack>
Block
<Button block>Full-width button</Button>
Removing the arrow
The animated arrow indicator can be removed using the hasArrow
prop.
<Button hasArrow={false}>No arrow</Button>
Using an icon
You can place an icon inside the Button
in either the leading or the trailing position to enhance the visual context. It is recommended to use an Octicon here.
<Stack direction="vertical" alignItems="flex-start"> <Button leadingVisual={<SearchIcon />}>Search</Button> <Button trailingVisual={<ChevronDownIcon />}>Select</Button> <Button leadingVisual={<FilterIcon />} trailingVisual={<ChevronDownIcon />}> Filter </Button> </Stack>
Polymorphism
The Button
component can render as a button
or a
HTML element. By default, it will render as a button
.
<Button as="a" href="https://github.com"> Register now </Button>
Component props
Button
Name | Type | Default | Description |
---|---|---|---|
leadingVisual | ReactElement | undefined | The leading visual appears before the button content |
trailingVisual | ReactElement | undefined | The trailing visual appears after the button content |
variants | 'primary' , 'secondary' , 'subtle' | 'secondary' | The styling variations available in Button |
size | 'small' , 'medium' , 'large' | 'medium' | The size variations available in Button |
block | boolean | false | The full-width option available in Button |
hasArrow | boolean | true | A flag to show/hide the arrow icon |