" language="jsx" style="position:relative;text-align:left;box-sizing:border-box;padding:0;overflow:hidden;white-space:pre;font-family:var(--fontStack-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace);color:#393A34;background-color:#f6f8fa;font-size:85%;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border:1px solid;border-top:0;border-color:var(--borderColor-default, var(--color-border-default, #d0d7de))">
<IconButton aria-label="Search" icon={SearchIcon} />
IconButton
also supports the three different sizes. small
, medium
, large
.
<>
<IconButton aria-label="Search" icon={SearchIcon} size="small" />
<IconButton aria-label="Search" sx={{ml: 2}} icon={SearchIcon} />
<IconButton aria-label="Search" sx={{ml: 2}} icon={SearchIcon} size="large" />
</>
Name | Type | Default | Description |
---|
children Required | React.ReactNode | | This will be the Button description. |
variant | 'default' | 'primary' | 'danger' | 'outline' | 'invisible' | 'link' | | Changes the look and feel of the button which is different for each variant |
size | 'small' | 'medium' | 'large' | | Changes the size of the icon button component |
inactive | boolean | | Whether the button looks visually disabled, but can still accept all the same interactions as an enabled button. |
icon | Component | | provide an octicon. It will be placed in the center of the button |
aria-label | string | | Use an aria label to describe the functionality of the button. Please refer to our guidance on alt text for tips on writing good alternative text. |
keyshortcuts | string | | Keyboard shortcuts that trigger the button. Keyboard shortcut will be appended to the accessible name or description (depending on the tooltip type) of the button with a comma (i.e. Bold, Command+B) and it will be displayed in the tooltip. |
sx | SystemStyleObject | | |
- Component props and basic example usage of the component are documented on primer.style/react.
- Component does not have any unnecessary third-party dependencies.
- Component can adapt to different themes.
- Component can adapt to different screen sizes.
- Component has robust unit test coverage (100% where achievable).
- Component has visual regression coverage of its default and interactive states.
- Component does not introduce any axe violations.
- Component has been manually reviewed by the accessibility team and any resulting issues have been addressed.
- Component is used in a production application.
- Common usage examples are documented on primer.style/react.
- Common usage examples are documented in storybook stories.
- Component has been reviewed by a systems designer and any resulting issues have been addressed.
- Component does not introduce any performance regressions.
- Component API has been stable with no breaking changes for at least one month.
- Feedback on API usability has been sought from developers using the component and any resulting issues have been addressed.
- Component has corresponding design guidelines documented in the interface guidelines.
- Component has corresponding Figma component in the Primer Web library.
- Tooling (such as linters, codemods, etc.) exists to prevent further use of alternatives.