Clipboard copy

The clipboard copy component allows users to quickly and easily copy content to their clipboard.

Examples

Basic

Read Only

Expanded

Read only expanded

Read only expanded by default

Got a lot of text here, need to see all of it? Click that arrow on the left side and check out the resulting expansion.

Expanded with array

JSON object (wrap code with pre)

Inline compact

2.3.4-2-redhat

Inline compact code

2.3.4-2-redhat

Inline compact with additional action

2.3.4-2-redhat

Inline compact in sentence

Basic
Lorem ipsum
2.3.4-2-redhat
dolor sit amet.

Long copy string
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
https://app.openshift.io/path/sub-path/sub-sub-path/?runtime=quarkus/12345678901234567890/abcdefghijklmnopqrstuvwxyz1234567890
Mauris luctus, libero nec dapibus ultricies, urna purus pretium mauris, ullamcorper pharetra lacus nibh vitae enim.

Long copy string in block
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
https://app.openshift.io/path/sub-path/sub-sub-path/?runtime=quarkus/12345678901234567890/abcdefghijklmnopqrstuvwxyz1234567890
Mauris luctus, libero nec dapibus ultricies, urna purus pretium mauris, ullamcorper pharetra lacus nibh vitae enim.

Props

ClipboardCopy

*required
NameTypeDefaultDescription
childrenrequiredstringThe text which is copied.
additionalActionsReact.ReactNodenullAdditional actions for inline clipboard copy. Should be wrapped with ClipboardCopyAction.
classNamestringAdditional classes added to the clipboard copy container.
clickTipstring'Successfully copied to clipboard!'Tooltip message to display when clicking the copy button
entryDelaynumber300Delay in ms before the tooltip appears.
exitDelaynumber1500Delay in ms before the tooltip disappears.
hoverTipstring'Copy to clipboard'Tooltip message to display when hover the copy button
isBlockbooleanFlag to determine if inline clipboard copy should be block styling
isCodebooleanfalseFlag to determine if clipboard copy content includes code
isExpandedbooleanfalseFlag to determine if clipboard copy is in the expanded state initially
isReadOnlybooleanfalseFlag to show if the input is read only.
maxWidthstring'150px'Maximum width of the tooltip (default 150px).
onChange(event: React.FormEvent, text?: string) => void(): any => undefinedA function that is triggered on changing the text.
onCopy(event: React.ClipboardEvent<HTMLDivElement>, text?: React.ReactNode) => void(_event: React.ClipboardEvent<HTMLDivElement>, text?: React.ReactNode) => { try { navigator.clipboard.writeText(text.toString()); } catch (error) { // eslint-disable-next-line no-console console.warn( "Clipboard API not found, this copy function will not work. This is likely because you're using an", "unsupported browser or you're not using HTTPS. \n\nIf you're a developer building an application which needs", "to support copying to the clipboard without the clipboard API, you'll have to create your own copy", 'function and pass it to the ClipboardCopy component as the onCopy prop. For more information see', 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/clipboard' ); // eslint-disable-next-line no-console console.error(error); } }A function that is triggered on clicking the copy button. This will replace the existing clipboard copy functionality entirely.
ouiaIdnumber | stringValue to overwrite the randomly generated data-ouia-component-id.
ouiaSafebooleantrueSet the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false.
position| TooltipPosition | 'auto' | 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end'TooltipPosition.topCopy button tooltip position.
textAriaLabelstring'Copyable input'Aria-label to use on the TextInput.
toggleAriaLabelstring'Show content'Aria-label to use on the ClipboardCopyToggle.
varianttypeof ClipboardCopyVariant | 'inline' | 'expansion' | 'inline-compact''inline'Adds Clipboard Copy variant styles.

ClipboardCopyButton

*required
NameTypeDefaultDescription
childrenrequiredReact.ReactNodeContent of the copy button
idrequiredstringID of the copy button
onClickrequired(event: React.MouseEvent) => voidCallback for the copy when the button is clicked
textIdrequiredstringID of the content that is being copied
aria-labelstring'Copyable input'Aria-label for the copy button
classNamestringAdditional classes added to the copy button
entryDelaynumber300Entry delay on the copy button tooltip
exitDelaynumber0Exit delay on the copy button tooltip
maxWidthstring'100px'Max width of the copy button tooltip
onTooltipHidden() => void() => {}Callback when tooltip's hide transition has finished executing
position| TooltipPosition | 'auto' | 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end''top'Position of the copy button tooltip
variant'control' | 'plain''control'Variant of the copy button

CSS variables

Expand or collapse columnSelectorVariableValue