Skip to content

Data display

Copy button

Copies a value, such as a link or an API key, and confirms it.

import { CopyButton } from '@jsonresume/ui'Source(opens in a new tab)

Examples

Copy a link

registry.jsonresume.org/thomasdavis

copy-button/link.tsx
import { CopyButton, Stack, Text } from '@jsonresume/ui';

export default function CopyButtonLink() {
  return (
    <Stack direction="row" gap={3} align="center" wrap>
      <Text>registry.jsonresume.org/thomasdavis</Text>
      <CopyButton
        value="https://registry.jsonresume.org/thomasdavis"
        label="Copy link"
        size="sm"
      />
    </Stack>
  );
}

Accessibility

  • The confirmation is announced through a polite live region.

Props

<CopyButton>

Also accepts the attributes of the element CopyButton renders.
PropTypeDefaultDescription
value requiredstring–Text to copy.
announcementstringCopied to clipboardSpoken confirmation.
asChildboolean–Render the single child (e.g. a link) with button styles instead of a <button>. loading is not available in this mode.
copiedLabelstringCopied
fullWidthboolean–Style variant.
labelstringCopy
loadingboolean–Shows a spinner, keeps the button's width, and disables it.
sizeiconsmmdlg–Style variant.
variantlinkprimaryinkdangersecondaryghost–Style variant.