# Letter swap copy button

https://fieldbook.lizardi.mx/components/letter-swap-copy-button

Category: Buttons
![Still of the Letter swap copy button component, a Fieldbook UI component in Buttons.](https://fieldbook.lizardi.mx/thumbs/letter-swap-copy-button.webp)
Preview video: https://ejpqcxcjbiyabxkx.public.blob.vercel-storage.com/previews/letter-swap-copy-button-1616fad754.mp4 (5 s, silent)

Letter swap copy button: A raised copy button whose label rebuilds itself letter by letter on hover while its icon chip pulses and draws a check when the copy lands.

## Frameworks

react, vue, svelte, astro, html

## Preview controls

These controls are passed to the demo. Defaults and limits describe the preview; consult the implementation for its full prop API.

| Name | Type | Default | Options or constraints |
| --- | --- | --- | --- |
| label | text | Copy link | Up to 18 characters |
| doneLabel | text | Copied | Up to 18 characters |
| accent | color | #7C5CFF | No additional limit in the metadata. |
| stagger | number | 30 | From 0 to 90; step 5 |
| resetMs | number | 2000 | From 600 to 5000; step 100 |

## Usage notes

Letter swap copy button uses the inline preview frame with a light/dark theme setting.

### Which frameworks are available for Letter swap copy button?

Letter swap copy button is available for React, Vue, Svelte, Astro, HTML. The live preview uses React; the source observations below apply to index.tsx. Check the selected port before relying on the same interactions.

### What does Letter swap copy button depend on?

The React metadata lists these npm dependencies beyond React: motion, clsx.

### What accessibility details are visible in Letter swap copy button?

The React source for Letter swap copy button includes: attributes and handlers (aria-hidden, aria-live). These are source observations. Verify accessible names, focus order and keyboard behavior in the composed page.

### How does Letter swap copy button handle reduced motion?

Letter swap copy button reads the motion preference in its React source through useReducedMotion(). Preference-dependent expressions in index.tsx: duration: reduce ? 0 : 0.18; duration: reduce ? 0 : 0.3; duration: reduce ? 0.2 : ROLL\_MS / 1000. Check the full implementation, shared styles and selected port with reduced motion enabled; these observations do not establish that every animation stops.

## Install through MCP

Connect your client, call get_component to retrieve the implementation, then get_install_command for installation instructions. Choose a listed framework, integrate the returned source and verify it in your application.

```json
{
  "tool": "get_component",
  "arguments": {
    "slug": "letter-swap-copy-button",
    "framework": "react"
  }
}
```

[For agents](https://fieldbook.lizardi.mx/docs/agents)
[MCP](https://fieldbook.lizardi.mx/api/mcp)

## Related open components

- [Letter cascade button](https://fieldbook.lizardi.mx/components/letter-cascade-button)
- [Check stroke submit](https://fieldbook.lizardi.mx/components/check-stroke-submit-button)
- [Destructive sweep button](https://fieldbook.lizardi.mx/components/destructive-sweep-button)
- [Flight path confirm button](https://fieldbook.lizardi.mx/components/flight-path-confirm-button)
- [Hold to delete](https://fieldbook.lizardi.mx/components/hold-to-delete-button)
- [Icon takeover delete](https://fieldbook.lizardi.mx/components/icon-takeover-delete-button)
