IconButtonLink is mainly used as navigational element.

Complete documentation for IconButtonLink coming soon. See IconButton documentation page
Figma:

Responsive:

Adaptive:

A11y:

Props

Component props
Name
Type
Default
accessibilityLabel
Required
string
-

Label for screen readers to announce IconButtonLink.

href
Required
string
-

Specifies a link URL.

bgColor
"transparent" | "transparentDarkGray" | "gray" | "lightGray" | "white" | "red"
-

Primary colors to apply to the IconButtonLink background.

dangerouslySetSvgPath
{ __path: string }
-

Defines a new icon different from the built-in Gestalt icons.

dataTestId
string
-

Available for testing purposes, if needed. Consider better queries before using this prop.

disabled
boolean
-

When disabled, IconButtonLink looks inactive and cannot be interacted with.

icon
"360" | "3D" | "3D-move" | "accessibility" | "ad" | "ad-group" | "add" | "add-circle" | "add-layout" | "add-pin" | "add-section" | "ads-stats" | "ads-overview" | "alphabetical" | "alert" | "align-bottom-center" | "align-bottom-left" | "align-bottom-right" | "align-bottom" | "align-middle" | "align-top-center" | "align-top-left" | "align-top-right" | "align-top" | "android-share" | "angled-pin" | "api" | "apple" | "apps" | "arrow-back" | "arrow-circle-back" | "arrow-circle-down" | "arrow-circle-forward" | "arrow-circle-up" | "arrow-counter-clockwise" | "arrow-double-forward" | "arrow-double-back" | "arrow-down" | "arrow-end" | "arrow-forward" | "arrow-left-curved" | "arrow-start" | "arrow-up" | "arrow-up-left" | "arrow-up-right" | "arrows-vertical" | "bell" | "board" | "briefcase" | "business-hierarchy" | "calendar" | "calendar-check" | "camera" | "camera-flip" | "camera-roll" | "cancel" | "canonical-pin" | "captions" | "captions-outline" | "color-picker" | "check" | "check-circle" | "chevron-up-circle" | "circle-outline" | "clear" | "clock" | "clock-checked" | "code" | "code-checked" | "cog" | "compass" | "compose" | "collapse" | "color-solid" | "color-split" | "copy-to-clipboard" | "crop" | "data-source" | "dash" | "desktop" | "diagnostics" | "conversion-tag" | "credit-card" | "directional-arrow-left" | "directional-arrow-right" | "download" | "drag-drop" | "duplicate" | "edit" | "ellipsis" | "ellipsis-circle-outline" | "envelope" | "expand" | "eye" | "eye-hide" | "facebook" | "fade" | "face-happy" | "face-neutral" | "face-sad" | "face-smiley" | "face-tryon" | "file-box" | "file-unknown" | "fill-opaque" | "fill-transparent" | "filter" | "flag" | "flame" | "flash" | "flashlight" | "flipHorizontal" | "flipVertical" | "folder" | "forward" | "gif" | "globe" | "globe-checked" | "gmail" | "graph-bar" | "graph-pie" | "handle" | "hand-pointing" | "heart" | "heart-outline" | "heart-broken" | "heart-health" | "history" | "home" | "idea-pin" | "image-portrait" | "impressum" | "information" | "insights-audience" | "insights-conversion" | "instagram" | "invoice" | "info-circle" | "key" | "knoop" | "layout" | "lightbulb" | "lightning-bolt-circle" | "link" | "lips" | "live" | "location" | "lock" | "logo-large" | "logo-small" | "logout" | "manage-access" | "magic-pen" | "margins-large" | "margins-medium" | "margins-small" | "maximize" | "megaphone" | "menu" | "minimize" | "mobile" | "moon" | "move" | "mute" | "move-pin" | "music-off" | "music-on" | "overlay-text" | "overlay-text-outline" | "overview" | "pause" | "people" | "person" | "person-add" | "phone" | "pin" | "pin-hide" | "pinterest" | "play" | "protect" | "refresh" | "question-mark" | "remove" | "reorder-images" | "replace" | "report" | "rewind" | "rotate" | "save-outline" | "saved" | "scale" | "scissors" | "search" | "search-by-image" | "security" | "service-dropbox" | "service-etsy" | "service-messenger" | "service-outlook" | "service-yahoo" | "service-youtube" | "share" | "shopping-bag" | "shrink" | "skintone" | "smiley" | "smiley-outline" | "send" | "sound" | "sort-ascending" | "sort-descending" | "sparkle" | "speech" | "speech-ellipsis" | "speech-exclamation-point" | "speech-heart" | "speech-outline" | "spread" | "star-outline" | "star" | "star-half" | "sticker" | "sun" | "switch-account" | "table" | "tag" | "terms" | "text-align-left" | "text-align-center" | "text-align-right" | "text-all-caps" | "text-extra-small" | "text-large" | "text-line-height" | "text-medium" | "text-sentence-case" | "text-size" | "text-small" | "text-spacing" | "thumbs-down" | "thumbs-up" | "trash-can" | "target" | "trending" | "twitter" | "upload-feed" | "video-advance-10-seconds" | "video-camera" | "video-rewind-10-seconds" | "view-type-default" | "view-type-dense" | "view-type-list" | "view-type-space" | "visit" | "whats-app" | "wifi-no" | "workflow-status-all" | "workflow-status-canceled" | "workflow-status-halted" | "workflow-status-in-progress" | "workflow-status-ok" | "workflow-status-problem" | "workflow-status-queued" | "workflow-status-unstarted" | "workflow-status-warning" | "x" | "animate" | "arrow-nested" | "aspect-ratio" | "audio-bars" | "audio-mix" | "audio-playing" | "board-stickerLarge" | "board-stickerSmall" | "border" | "border-shadow" | "clips" | "collage" | "color-palette" | "color" | "contrast" | "cutout" | "design" | "draw" | "erase-auto" | "erase" | "flash-slash" | "gauge" | "ghost" | "hand" | "highlights" | "lab-flask" | "lasso-magic" | "magic-wand" | "microphone" | "orientation-landscape" | "orientation-portrait" | "paper-clip" | "paper-lines-plus" | "pen-auto" | "pen" | "person-magnifying-glass" | "record-limit-5" | "record-limit-10" | "record-limit-15" | "record-limit-30" | "record-limit-60" | "record-limit" | "redo" | "saturation" | "select" | "shadows" | "shapes" | "shuffles" | "slide" | "soundSlash" | "speed-.3x" | "speed-.5x" | "speed-1x" | "speed-2x" | "speed-3x" | "speed" | "sticker-image" | "swap" | "template" | "text-sticker" | "text" | "timer-3" | "timer-10" | "timer" | "undo" | "warmth" | "wave"
-

SVG icon from the Gestalt icon library to use within Icon.

See the icon library to explore available options.

iconColor
"gray" | "darkGray" | "red" | "white" | "brandPrimary"
-

Primary color to apply to the Icon.

onClick
({
  event: SyntheticMouseEvent<HTMLAnchorElement> | SyntheticKeyboardEvent<HTMLAnchorElement>,
  dangerouslyDisableOnNavigation: () => void,
}) => void
-

Callback fired when the component is clicked, pressed or tapped. See GlobalEventsHandlerProvider to learn more about link navigation.

padding
1 | 2 | 3 | 4 | 5
-

Sets a padding for the IconButtonLink.

rel
"none" | "nofollow"
-

Specifies the relationship between the current document and the linked document.

size
"xs" | "sm" | "md" | "lg" | "xl"
"lg"

The maximum height and width of IconButtonLink.

tabIndex
-1 | 0
0

Removes IconButtonLink from sequential keyboard navigation to improve accessibility.

target
null | "self" | "blank"
-

Define the frame or window to open the anchor defined on `href`.

tooltip
{
  accessibilityLabel?: string,
  inline?: boolean,
  idealDirection?: "up" | "right" | "down" | "left",
  text: string,
  zIndex?: Indexable,
}
-

Adds a Tooltip on hover/focus of the IconButtonLink.

Usage guidelines

See IconButton for usage guidelines.

Localization

Be sure to localize all text strings. Note that localization can lengthen text by 20 to 30 percent.

IconButtonLink depends on DefaultLabelProvider for internal text strings. Localize the texts via DefaultLabelProvider. Learn more
import { DefaultLabelProvider, Flex, IconButtonLink } from 'gestalt';

export default function Example() {
  return (
    <DefaultLabelProvider
      // $FlowExpectedError[incompatible-type] For demostration purposes
      labels={{
        Link: {
          accessibilityNewTabLabel: 'Öffnet eine neue Browser-Registerkarte.',
        },
      }}
    >
      <Flex
        alignItems="center"
        height="100%"
        justifyContent="center"
        width="100%"
      >
        <IconButtonLink
          accessibilityLabel=""
          href="#"
          icon="visit"
          onClick={({ event, dangerouslyDisableOnNavigation }) => {
            event.preventDefault();
            dangerouslyDisableOnNavigation();
          }}
          target="blank"
          tooltip={{ text: 'Besuchen Sie Pinterest' }}
        />
      </Flex>
    </DefaultLabelProvider>
  );
}

Variants

See IconButton for more variants.

External handlers

IconButtonLink consumes external handlers from GlobalEventsHandlerProvider.

Handlers:

See GlobalEventsHandlerProvider for more information.

Component quality checklist

Component quality checklist
Quality item
Status
Status description
Figma Library
Ready
Component is available in Figma for web and mobile web.
Responsive Web
Ready
Component responds to changing viewport sizes in web and mobile web.

Internal documentation

GlobalEventsHandlerProvider
GlobalEventsHandlerProvider allows external link navigation control across all children components with link behavior.
See GlobalEventsHandlerProvider to learn more about link navigation.