PatternFly

Icon

An icon component is a container that allows for icons of varying dimensions, as well as spinners, to seamlessly replace each other without shifting surrounding content.

PatternFly's icons guidelines contain PatternFly's icon set, as well as more information about icon usage.

Examples

Basic

Sizes

Status colors

The following example demonstrates the various status variants of an icon. Keep in mind that these icons are displayed out of a typical context, and that you should not rely on color alone to convey status to users.

Sizing an icon within the icon container

Providing both size and iconSize properties allows the icon container to maintain a consistent size, even if the icon changes in size.

Inline

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit Sed hendrerit nisi in cursus maximus.

Second level

Curabitur accumsan turpis pharetra augue tincidunt blandit. Quisque condimentum maximus mi, sit amet commodo arcu rutrum id. Proin pretium urna vel cursus venenatis. Suspendisse potenti.

Sometimes you need small text Inline with size specified: small, medium, large, extra large

In progress

Passing the isInProgress property will swap the icon to a progress icon. By default this progress icon will be a Spinner but may be customized or overriden using the progressIcon property.

Custom in progress icon

Props

Icon

*required
NameTypeDefaultDescription
childrenReact.ReactNodeIcon content
classNamestringAdditional classes applied to the icon container
defaultProgressArialabelstring'Loading...'Aria-label for the default progress icon
iconSize'sm' | 'md' | 'lg' | 'xl'Size of icon. Overrides the icon size set by the size property.
isInlinebooleanfalseIndicates the icon is inline and should inherit the text font size and color. Overriden by size and iconSize properties.
isInProgressbooleanfalseIndicates the icon is in progress. Setting this property to true will swap the icon with the progressIcon.
progressIconReact.ReactNodeIcon when isInProgress is set to true. Defaults to a 1em spinner.
progressIconSize'sm' | 'md' | 'lg' | 'xl'Size of progress icon. Overrides the icon size set by the size property.
shouldMirrorRTLBetabooleanfalseFlag indicating whether the icon passed as children should be mirrored for right to left (RTL) languages. This will not mirror the icon passed to progressIcon.
size'sm' | 'md' | 'lg' | 'xl'Size of the icon component container and icon.
status'custom' | 'info' | 'success' | 'warning' | 'danger'Status color of the icon

CSS variables

Expand or collapse columnSelectorVariableValue
.pf-v5-c-icon--pf-v5-c-icon--Width
1em
.pf-v5-c-icon--pf-v5-c-icon--Height
1em
.pf-v5-c-icon--pf-v5-c-icon--m-sm--Width
0.75rem
.pf-v5-c-icon--pf-v5-c-icon--m-sm--Height
0.75rem
.pf-v5-c-icon--pf-v5-c-icon--m-md--Width
1rem
.pf-v5-c-icon--pf-v5-c-icon--m-md--Height
1rem
.pf-v5-c-icon--pf-v5-c-icon--m-lg--Width
1.5rem
.pf-v5-c-icon--pf-v5-c-icon--m-lg--Height
1.5rem
.pf-v5-c-icon--pf-v5-c-icon--m-xl--Width
3.375rem
.pf-v5-c-icon--pf-v5-c-icon--m-xl--Height
3.375rem
.pf-v5-c-icon--pf-v5-c-icon--m-inline--Width
1em
.pf-v5-c-icon--pf-v5-c-icon--m-inline--Height
1em
.pf-v5-c-icon--pf-v5-c-icon__content--svg--VerticalAlign
-.125em
.pf-v5-c-icon--pf-v5-c-icon__content--Color
initial
.pf-v5-c-icon--pf-v5-c-icon__content--m-danger--Color
#c9190b
.pf-v5-c-icon--pf-v5-c-icon__content--m-warning--Color
#f0ab00
.pf-v5-c-icon--pf-v5-c-icon__content--m-success--Color
#3e8635
.pf-v5-c-icon--pf-v5-c-icon__content--m-info--Color
#2b9af3
.pf-v5-c-icon--pf-v5-c-icon__content--m-custom--Color
#73c5c5
.pf-v5-c-icon--pf-v5-c-icon--m-inline__content--Color
initial
.pf-v5-c-icon--pf-v5-c-icon__content--FontSize
1em
.pf-v5-c-icon--pf-v5-c-icon--m-sm__content--FontSize
0.75rem
.pf-v5-c-icon--pf-v5-c-icon--m-md__content--FontSize
1rem
.pf-v5-c-icon--pf-v5-c-icon--m-lg__content--FontSize
1.5rem
.pf-v5-c-icon--pf-v5-c-icon--m-xl__content--FontSize
3.375rem
.pf-v5-c-icon--pf-v5-c-icon--m-inline__content--FontSize
1em
.pf-v5-c-icon.pf-m-inline--pf-v5-c-icon--Width
1em
.pf-v5-c-icon.pf-m-inline--pf-v5-c-icon--Height
1em
.pf-v5-c-icon.pf-m-inline--pf-v5-c-icon__content--FontSize
1em
.pf-v5-c-icon.pf-m-inline--pf-v5-c-icon__content--Color
initial
.pf-v5-c-icon.pf-m-inline .pf-v5-c-spinner--pf-v5-c-spinner--diameter
1em
.pf-v5-c-icon.pf-m-sm--pf-v5-c-icon--Width
0.75rem
.pf-v5-c-icon.pf-m-sm--pf-v5-c-icon--Height
0.75rem
.pf-v5-c-icon.pf-m-sm--pf-v5-c-icon__content--FontSize
0.75rem
.pf-v5-c-icon.pf-m-md--pf-v5-c-icon--Width
1rem
.pf-v5-c-icon.pf-m-md--pf-v5-c-icon--Height
1rem
.pf-v5-c-icon.pf-m-md--pf-v5-c-icon__content--FontSize
1rem
.pf-v5-c-icon.pf-m-lg--pf-v5-c-icon--Width
1.5rem
.pf-v5-c-icon.pf-m-lg--pf-v5-c-icon--Height
1.5rem
.pf-v5-c-icon.pf-m-lg--pf-v5-c-icon__content--FontSize
1.5rem
.pf-v5-c-icon.pf-m-xl--pf-v5-c-icon--Width
3.375rem
.pf-v5-c-icon.pf-m-xl--pf-v5-c-icon--Height
3.375rem
.pf-v5-c-icon.pf-m-xl--pf-v5-c-icon__content--FontSize
3.375rem
.pf-v5-c-icon.pf-m-in-progress--pf-v5-c-icon__content--Opacity
0
.pf-v5-c-icon.pf-m-in-progress--pf-v5-c-icon__progress--Opacity
1
.pf-v5-c-icon__content.pf-m-sm--pf-v5-c-icon__content--FontSize
0.75rem
.pf-v5-c-icon__content.pf-m-md--pf-v5-c-icon__content--FontSize
1rem
.pf-v5-c-icon__content.pf-m-lg--pf-v5-c-icon__content--FontSize
1.5rem
.pf-v5-c-icon__content.pf-m-xl--pf-v5-c-icon__content--FontSize
3.375rem
.pf-v5-c-icon__content.pf-m-danger--pf-v5-c-icon__content--Color
#c9190b
.pf-v5-c-icon__content.pf-m-warning--pf-v5-c-icon__content--Color
#f0ab00
.pf-v5-c-icon__content.pf-m-success--pf-v5-c-icon__content--Color
#3e8635
.pf-v5-c-icon__content.pf-m-info--pf-v5-c-icon__content--Color
#2b9af3
.pf-v5-c-icon__content.pf-m-custom--pf-v5-c-icon__content--Color
#73c5c5

View source on GitHub