@patternfly/patternfly
Version:
Assets, source, tooling, and content for PatternFly 4
316 lines (280 loc) • 9.7 kB
Markdown
---
id: 'Icon'
section: components
cssPrefix: pf-v6-c-icon
---## Examples
### Basic
```html
<span class="pf-v6-c-icon">
<span class="pf-v6-c-icon__content">
<i class="fas fa-long-arrow-alt-down" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon">
<span class="pf-v6-c-icon__content">
<i class="fas fa-angle-right" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon">
<span class="pf-v6-c-icon__content">
<i class="fas fa-angle-down" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon">
<span class="pf-v6-c-icon__content">
<i class="fas fa-cog" aria-hidden="true"></i>
</span>
</span>
```
### Standalone icon sizes
```html
<span class="pf-v6-c-icon pf-m-sm">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-md">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-lg">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-xl">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-2xl">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-3xl">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
```
### Body sizes
```html
<span class="pf-v6-c-icon pf-m-body-sm">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-body-default">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-body-lg">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
```
### Heading sizes
```html
<span class="pf-v6-c-icon pf-m-heading-sm">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-heading-md">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-heading-lg">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-heading-xl">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-heading-2xl">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-heading-3xl">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
```
### Status colors
```html
<span class="pf-v6-c-icon">
<span class="pf-v6-c-icon__content pf-m-danger">
<i class="fas fa-exclamation-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon">
<span class="pf-v6-c-icon__content pf-m-warning">
<i class="fas fa-exclamation-triangle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon">
<span class="pf-v6-c-icon__content pf-m-success">
<i class="fas fa-check-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon">
<span class="pf-v6-c-icon__content pf-m-info">
<i class="fas fa-info-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon">
<span class="pf-v6-c-icon__content pf-m-custom">
<i class="fas fa-bell" aria-hidden="true"></i>
</span>
</span>
```
### Sizing content within the icon container
Use a size modifier on the icon container to maintain a consistent size, even if the contents change in size.
```html
<span class="pf-v6-c-icon pf-m-3xl pf-m-inline">
<span class="pf-v6-c-icon__content pf-m-lg">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-3xl pf-m-inline">
<span class="pf-v6-c-icon__content pf-m-xl">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-3xl pf-m-inline">
<span class="pf-v6-c-icon__content pf-m-2xl">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
<span class="pf-v6-c-icon pf-m-3xl pf-m-inline">
<span class="pf-v6-c-icon__content pf-m-3xl">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
```
### Inline
```html
<div class="pf-v6-c-content">
<h1>
Heading
<span class="pf-v6-c-icon pf-m-inline">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit
Sed hendrerit nisi in cursus maximus.
</p>
<h2>
Second level
<span class="pf-v6-c-icon pf-m-inline">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
</h2>
<p>
<span class="pf-v6-c-icon pf-m-inline">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
Curabitur accumsan turpis pharetra
<strong>
augue tincidunt
<span class="pf-v6-c-icon pf-m-inline">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
</strong> blandit. Quisque condimentum maximus mi, sit amet commodo arcu rutrum id. Proin pretium urna vel
cursus venenatis. Suspendisse potenti.
</p>
<small>
Sometimes you need small text
<span class="pf-v6-c-icon pf-m-inline">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
</small>
</div>Inline with size specified:
<span class="pf-v6-c-icon pf-m-sm pf-m-inline">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
small,
<span class="pf-v6-c-icon pf-m-md pf-m-inline">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
medium,
<span class="pf-v6-c-icon pf-m-lg pf-m-inline">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
large,
<span class="pf-v6-c-icon pf-m-xl pf-m-inline">
<span class="pf-v6-c-icon__content">
<i class="fas fa-plus-circle" aria-hidden="true"></i>
</span>
</span>
extra large
```
### In progress
```html
<span class="pf-v6-c-icon pf-m-md pf-m-in-progress">
<span class="pf-v6-c-icon__content">
<i class="fas fa-check-circle" aria-hidden="true"></i>
</span>
<span class="pf-v6-c-icon__progress">
<svg
class="pf-v6-c-spinner pf-m-md"
role="progressbar"
viewBox="0 0 100 100"
aria-label="Loading..."
>
<circle class="pf-v6-c-spinner__path" cx="50" cy="50" r="45" fill="none" />
</svg>
</span>
</span>
<span class="pf-v6-c-icon pf-m-md">
<span class="pf-v6-c-icon__content">
<i class="fas fa-check-circle" aria-hidden="true"></i>
</span>
</span>
```
## Documentation
### Overview
The icon element is a container used to maintain a stable space for an icon or spinner, regardless of size or aspect ratio of the contents.
Refer to the [icons](/design-foundations/icons) page for information about the PatternFly icon set and guidelines for use.
### Usage
| Class | Applied to | Outcome |
| -- | -- | -- |
| `.pf-v6-c-icon` | `<span>`, `<div>` | Initiates an icon component. **Required** |
| `.pf-v6-c-icon__content` | `<span>`, `<div>` | Initiates the icon content. **Required** |
| `.pf-v6-c-icon__progress` | `<span>`, `<div>` | Initiates a container for a progress spinner. |
| `.pf-m-inline` | `.pf-v6-c-icon` | Displays the icon inline with text, and allows the icon to inherit the size and color of the parent. |
| `.pf-m-[sm,md,lg,xl,2xl,3xl]` | `.pf-v6-c-icon` | Modifies the icon container to be small, medium, large, extra large, double extra large, or triple extra large. |
| `.pf-m-body-[sm,default,lg]` | `.pf-v6-c-icon` | Modifies the icon container to be a size matching small, default, or large body text. |
| `.pf-m-heading-[sm,md,lg,xl,2xl,3xl]` | `.pf-v6-c-icon` | Modifies the icon container to be a size matching small, medium, large, extra large, double extra large, or triple extra large (h6-h1) heading text. |
| `.pf-m-[sm,md,lg,xl,2xl,3xl]` | `.pf-v6-c-icon__content`, `pf-v6-c-icon__progress` | Modifies the icon content or progress element to be small, medium, large, or extra large. |
| `.pf-m-body-[sm,default,lg]` | `.pf-v6-c-icon__content` | Modifies the icon content or progress element to be a size matching small, default, or large body text. |
| `.pf-m-heading-[sm,md,lg,xl,2xl,3xl]` | `.pf-v6-c-icon__content` | Modifies the icon content or progress element to be a size matching small, medium, large, extra large, double extra large, or triple extra large (h6-h1) heading text. |
| `.pf-m-in-progress` | `.pf-v6-c-icon` | Shows the progress element in place of the icon content. |
| `.pf-m-danger`, `.pf-m-warning`, `.pf-m-success`, `.pf-m-info`, `.pf-m-custom` | `.pf-v6-c-icon__content` | Modifies the icon content to use a status color. |