2020-07-24 16:57:38 -04:00
# Icon Button
[component-header:sl-icon-button]
For a full list of icons that come bundled with Shoelace, refer to the [icon component ](/components/icon ).
```html preview
2020-10-22 23:03:38 -04:00
<sl-icon-button name="gear" label="Settings"></sl-icon-button>
2020-07-24 16:57:38 -04:00
```
2021-11-04 18:12:47 -04:00
```jsx react
import { SlIconButton } from '@shoelace -style/shoelace/dist/react';
2022-03-02 10:10:41 -05:00
const App = () => <SlIconButton name="gear" label="Settings" />;
2021-11-04 18:12:47 -04:00
```
2020-07-24 16:57:38 -04:00
## Examples
### Sizes
Icon buttons inherit their parent element's `font-size` .
```html preview
2020-10-22 23:03:38 -04:00
<sl-icon-button name="pencil" label="Edit" style="font-size: 1.5rem;"></sl-icon-button>
<sl-icon-button name="pencil" label="Edit" style="font-size: 2rem;"></sl-icon-button>
<sl-icon-button name="pencil" label="Edit" style="font-size: 2.5rem;"></sl-icon-button>
2020-07-24 16:57:38 -04:00
```
2021-11-04 18:12:47 -04:00
```jsx react
import { SlIconButton } from '@shoelace -style/shoelace/dist/react';
const App = () => (
<>
<SlIconButton name="pencil" label="Edit" style={{ fontSize: '1.5rem' }} />
<SlIconButton name="pencil" label="Edit" style={{ fontSize: '2rem' }} />
<SlIconButton name="pencil" label="Edit" style={{ fontSize: '2.5rem' }} />
</>
);
```
2020-09-15 08:16:16 -04:00
### Colors
Icon buttons are designed to have a uniform appearance, so their color is not inherited. However, you can still customize them by styling the `base` part.
```html preview
<div class="icon-button-color">
2020-10-22 23:03:38 -04:00
<sl-icon-button name="type-bold" label="Bold"></sl-icon-button>
<sl-icon-button name="type-italic" label="Italic"></sl-icon-button>
<sl-icon-button name="type-underline" label="Underline"></sl-icon-button>
2020-09-15 08:16:16 -04:00
</div>
<style>
.icon-button-color sl-icon-button::part(base) {
color: #b00091 ;
}
2021-08-10 17:52:17 +03:00
2020-09-15 08:16:16 -04:00
.icon-button-color sl-icon-button::part(base):hover,
.icon-button-color sl-icon-button::part(base):focus {
color: #c913aa ;
}
.icon-button-color sl-icon-button::part(base):active {
color: #960077 ;
}
</style>
```
2021-11-04 18:12:47 -04:00
```jsx react
import { SlIconButton } from '@shoelace -style/shoelace/dist/react';
const css = `
.icon-button-color sl-icon-button::part(base) {
color: #b00091 ;
}
.icon-button-color sl-icon-button::part(base):hover,
.icon-button-color sl-icon-button::part(base):focus {
color: #c913aa ;
}
.icon-button-color sl-icon-button::part(base):active {
color: #960077 ;
}
`;
const App = () => (
2021-11-05 11:51:12 -04:00
<>
<div className="icon-button-color">
<SlIconButton name="type-bold" label="Bold" />
<SlIconButton name="type-italic" label="Italic" />
<SlIconButton name="type-underline" label="Underline" />
</div>
<style>{css}</style>
</>
2021-11-04 18:12:47 -04:00
);
```
2021-08-10 17:52:17 +03:00
### Link Buttons
Use the `href` attribute to convert the button to a link.
```html preview
<sl-icon-button name="gear" label="Settings" href="https://example.com" target="_blank"></sl-icon-button>
```
2021-11-04 18:12:47 -04:00
```jsx react
import { SlIconButton } from '@shoelace -style/shoelace/dist/react';
2022-03-02 10:10:41 -05:00
const App = () => <SlIconButton name="gear" label="Settings" href="https://example.com" target="_blank" />;
2021-11-04 18:12:47 -04:00
```
2020-07-24 16:57:38 -04:00
### Icon Button with Tooltip
Wrap a tooltip around an icon button to provide contextual information to the user.
```html preview
<sl-tooltip content="Settings">
2020-10-22 23:03:38 -04:00
<sl-icon-button name="gear" label="Settings"></sl-icon-button>
2020-07-24 16:57:38 -04:00
</sl-tooltip>
```
2021-11-04 18:12:47 -04:00
```jsx react
import { SlIconButton, SlTooltip } from '@shoelace -style/shoelace/dist/react';
const App = () => (
<SlTooltip content="Settings">
<SlIconButton name="gear" label="Settings" />
</SlTooltip>
);
```
2020-07-24 16:57:38 -04:00
### Disabled
2021-07-13 07:15:03 -04:00
Use the `disabled` attribute to disable the icon button.
2020-07-24 16:57:38 -04:00
```html preview
2020-10-22 23:03:38 -04:00
<sl-icon-button name="gear" label="Settings" disabled></sl-icon-button>
2020-07-24 16:57:38 -04:00
```
2021-11-04 18:12:47 -04:00
```jsx react
import { SlIconButton } from '@shoelace -style/shoelace/dist/react';
2022-03-02 10:10:41 -05:00
const App = () => <SlIconButton name="gear" label="Settings" disabled />;
2021-11-04 18:12:47 -04:00
```
2020-07-24 16:57:38 -04:00
[component-metadata:sl-icon-button]