@patternfly/react-core
Version:
This library provides a set of common React components for use with the PatternFly reference implementation.
118 lines (68 loc) • 2.83 kB
Markdown
id: Label
section: components
cssPrefix: ['pf-v6-c-label', 'pf-v6-c-label-group']
propComponents: ['Label', 'LabelGroup']
import { Fragment, useEffect, useRef, useState } from 'react';
import CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon';
import InfoCircleIcon from '@patternfly/react-icons/dist/esm/icons/info-circle-icon';
import './Label.css';
## Examples
### Filled labels
```ts file="LabelFilled.tsx"
```
### Outlined labels
```ts file="LabelOutline.tsx"
```
### Compact labels
```ts file="LabelCompact.tsx"
```
### Label with custom render
Labels may be passed a custom renderer to display customized content or for use with router components. When using a custom render, `isClickable` may also be passed to remove the underline text decoration of anchors or router links.
```ts file="LabelCustomRender.tsx"
```
### Editable labels
Click or press either enter or space to begin editing a label. After editing, click outside the label or press enter again to complete the edit. To cancel an edit, press escape.
You can also customize any Label's close button aria-label as this example shows with `closeBtnAriaLabel`.
```ts file="LabelEditable.tsx"
```
### Basic label group
Use a label group when you have multiple labels to display at once.
```ts file="LabelGroupBasic.tsx"
```
### Label group with overflow
An overflow label can be added to the end of a group to save space when the number of labels exceeds some threshold. Click the overflow label to expand and collapse the group.
```ts file="LabelGroupOverflow.tsx"
```
### Label group with categories
Use a category name to organize a set of labels
```ts file="LabelGroupCategory.tsx"
```
### Label group with removable categories
```ts file="LabelGroupCategoryRemovable.tsx"
```
### Vertical label group
Labels in a group can also be stacked vertically. This example shows a verical label group with a category name and overflow.
```ts file="LabelGroupVerticalCategoryOverflowRemovable.tsx"
```
### Editable label group
```ts file="LabelGroupEditableLabels.tsx"
```
### Editable label group with add button
The contents of a label group can be modified by removing labels or adding new ones using the add button. For additional documentation that showcases adding a new label, see [label demos](/components/label/react-demos).
```ts file="LabelGroupEditableAdd.tsx"
```
## Using router links
Router links can be used for in-app linking in React environments to prevent page reloading. To use a `Link` component from a router package, you can use the `render` property of the `Label`:
```nolive
<Label
render={({ className, content, componentRef }) => (
<Link to="/" className={className} innerRef={componentRef}>
{content}
</Link>
)}
>
Label router link
</Label>
```