@pmwcs/icon-button
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

Icon Buttons

Icon buttons allow users to take actions, and make choices, with a single tap.

Basic Usage

IconButton inherits from the Icon component and can be passed icons in the same way.

<>
  <IconButton icon="star" label="Rate this!" />

  <IconButton icon="favorite" label="Favorite" disabled />

  <IconButton
    icon="images/icons/twitter.png"
    aria-label="Tweet it!"
    tag="a"
    target="_blank"
    href={`https://twitter.com/intent/tweet?text=${encodeURIComponent(
      'You should definitely be using PMWCS for your next project!'
    )}`}
  />
</>

Usage as a Toggle

To use as a toggle, specify an additional toggled on state using 'onIcon'.

<>
  <IconButton icon="favorite_border" onIcon="favorite" />
  <IconButton icon="favorite" onIcon="favorite" disabled />
</>
function Controlled() {
  const [isChecked, setIsChecked] = React.useState(false);
  return (
    <>
      <IconButton
        checked={isChecked}
        onClick={() => setIsChecked(!isChecked)}
        onIcon="star"
        icon="star_border"
      />

      <IconButton
        checked={isChecked}
        onClick={() => setIsChecked(!isChecked)}
        onIcon="images/icons/twitter.png"
        icon="images/icons/facebook.png"
      />
    </>
  );
}
<IconButton
  onIcon={
    <div
      style={{
        background: 'red',
        width: '24px',
        height: '24px'
      }}
    />
  }
  icon={
    <div
      style={{
        background: 'green',
        width: '24px',
        height: '24px',
        borderRadius: '50%'
      }}
    />
  }
/>

IconButton

An IconButton component that can also be used as a toggle.

Props

Name Type Description
checked undefined | false | true Controls the on / off state of the a toggleable button.
disabled undefined | false | true Makes the button disabled
foundationRef Ref<MDCIconButtonToggleFoundation> Advanced: A reference to the MDCFoundation. Only for Toggleable buttons.
icon IconPropT Icon for the button
label undefined | string Apply an aria label.
onChange undefined | (evt: IconButtonOnChangeEventT) => void An onChange callback that receives a custom event. evt.detail = { isOn: boolean }
onIcon IconPropT If specified, renders a toggle with this icon as the on state.
ripple RipplePropT Adds a ripple effect to the component
size "xsmall" | "small" | "medium" | "large" | "xlarge" A size to render the icon
primary undefined | false | true Choose primary theme.
secondary undefined | false | true Choose secondary theme.
outlined undefined | false | true Make the button outlined.

Dependents (7)

Package Sidebar

Install

npm i @pmwcs/icon-button

Weekly Downloads

4

Version

1.1.0

License

MIT

Unpacked Size

25.5 kB

Total Files

14

Last publish

Collaborators

  • commenthol