Light Dark System

Icon Button

<p-icon-button> | PIconButton
Since 1.0 stable

Icons buttons are simple, icon-only buttons that can be used for actions and in toolbars.

For a full list of icons that come bundled with Pure UI, refer to the icon component.

<p-icon-button name="gear" label="Settings"></p-icon-button>
import PIconButton from 'pure-uikit/dist/react/icon-button';

const App = () => <PIconButton name="gear" label="Settings" />;

Examples

Sizes

Icon buttons inherit their parent element’s font-size.

<p-icon-button name="pencil" label="Edit" style="font-size: 1.5rem;"></p-icon-button>
<p-icon-button name="pencil" label="Edit" style="font-size: 2rem;"></p-icon-button>
<p-icon-button name="pencil" label="Edit" style="font-size: 2.5rem;"></p-icon-button>
import PIconButton from 'pure-uikit/dist/react/icon-button';

const App = () => (
  <>
    <PIconButton name="pencil" label="Edit" style={{ fontSize: '1.5rem' }} />
    <PIconButton name="pencil" label="Edit" style={{ fontSize: '2rem' }} />
    <PIconButton name="pencil" label="Edit" style={{ fontSize: '2.5rem' }} />
  </>
);

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.

<div class="icon-button-color">
  <p-icon-button name="type-bold" label="Bold"></p-icon-button>
  <p-icon-button name="type-italic" label="Italic"></p-icon-button>
  <p-icon-button name="type-underline" label="Underline"></p-icon-button>
</div>

<style>
  .icon-button-color p-icon-button::part(base) {
    color: #b00091;
  }

  .icon-button-color p-icon-button::part(base):hover,
  .icon-button-color p-icon-button::part(base):focus {
    color: #c913aa;
  }

  .icon-button-color p-icon-button::part(base):active {
    color: #960077;
  }
</style>
import PIconButton from 'pure-uikit/dist/react/icon-button';

const css = `
  .icon-button-color p-icon-button::part(base) {
    color: #b00091;
  }

  .icon-button-color p-icon-button::part(base):hover,
  .icon-button-color p-icon-button::part(base):focus {
    color: #c913aa;
  }

  .icon-button-color p-icon-button::part(base):active {
    color: #960077;
  }
`;

const App = () => (
  <>
    <div className="icon-button-color">
      <PIconButton name="type-bold" label="Bold" />
      <PIconButton name="type-italic" label="Italic" />
      <PIconButton name="type-underline" label="Underline" />
    </div>

    <style>{css}</style>
  </>
);

Use the href attribute to convert the button to a link.

<p-icon-button name="gear" label="Settings" href="https://example.com" target="_blank"></p-icon-button>
import PIconButton from 'pure-uikit/dist/react/icon-button';

const App = () => <PIconButton name="gear" label="Settings" href="https://example.com" target="_blank" />;

Icon Button with Tooltip

Wrap a tooltip around an icon button to provide contextual information to the user.

<p-tooltip content="Settings">
  <p-icon-button name="gear" label="Settings"></p-icon-button>
</p-tooltip>
import PIconButton from 'pure-uikit/dist/react/icon-button';
import PTooltip from 'pure-uikit/dist/react/tooltip';

const App = () => (
  <PTooltip content="Settings">
    <PIconButton name="gear" label="Settings" />
  </PTooltip>
);

Disabled

Use the disabled attribute to disable the icon button.

<p-icon-button name="gear" label="Settings" disabled></p-icon-button>
import PIconButton from 'pure-uikit/dist/react/icon-button';

const App = () => <PIconButton name="gear" label="Settings" disabled />;

Importing

If you’re using the autoloader or the traditional loader, you can ignore this section. Otherwise, feel free to use any of the following snippets to cherry pick this component.

Script Import Bundler React

To import this component from the CDN using a script tag:

<script type="module" src="https://cdn.jsdelivr.net/npm/pure-uikit@1.3.13/cdn/components/icon-button/icon-button.js"></script>

To import this component from the CDN using a JavaScript import:

import 'https://cdn.jsdelivr.net/npm/pure-uikit@1.3.13/cdn/components/icon-button/icon-button.js';

To import this component using a bundler:

import 'pure-uikit/dist/components/icon-button/icon-button.js';

To import this component as a React component:

import PIconButton from 'pure-uikit/dist/react/icon-button';

Properties

Name Description Reflects Type Default
name The name of the icon to draw. Available names depend on the icon library being used. string | undefined -
library The name of a registered custom icon library. string | undefined -
src An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and can result in XSS attacks. string | undefined -
href When set, the underlying button will be rendered as an <a> with this href instead of a <button>. string | undefined -
target Tells the browser where to open the link. Only used when href is set. "_blank" | "_parent" | "_self" | "_top" | undefined -
download Tells the browser to download the linked file as this filename. Only used when href is set. string | undefined -
label A description that gets read by assistive devices. For optimal accessibility, you should always include a label that describes what the icon button does. string ""
disabled Disables the button. boolean false
updateComplete A read-only promise that resolves when the component has finished updating.

Learn more about attributes and properties.

Events

Name React Event Description Event Detail
p-blur onPBlur Emitted when the icon button loses focus. -
p-focus onPFocus Emitted when the icon button gains focus. -

Learn more about events.

Methods

Name Description Arguments
click() Simulates a click on the icon button. -
focus() Sets focus on the icon button. options: FocusOptions
blur() Removes focus from the icon button. -

Learn more about methods.

Parts

Name Description
base The component’s base wrapper.

Learn more about customizing CSS parts.

Dependencies

This component automatically imports the following dependencies.

  • <p-icon>