# Rocking icon CTA

https://fieldbook.lizardi.mx/components/rocking-icon-cta

Category: Buttons
![Still of the Rocking icon CTA component, a Fieldbook UI component in Buttons.](https://fieldbook.lizardi.mx/thumbs/rocking-icon-cta.webp)
Preview video: https://ejpqcxcjbiyabxkx.public.blob.vercel-storage.com/previews/rocking-icon-cta-d6324f441e.mp4 (5 s, silent)

Rocking icon CTA: A solid accent pill whose leading calendar icon rocks like a metronome on hover and, when clicked, draws a tick and swaps the wording to a confirmed label before settling back.

## 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 | Add to calendar | Up to 30 characters |
| confirmLabel | text | Added | Up to 24 characters |
| accent | color | #FF6A1F | No additional limit in the metadata. |
| rockDegrees | number | 10 | From 0 to 25; step 1 |
| rockSeconds | number | 1 | From 0.4 to 3; step 0.1 |

## Usage notes

Rocking icon CTA uses the inline preview frame with a light/dark theme setting.

### Which frameworks are available for Rocking icon CTA?

Rocking icon CTA 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 Rocking icon CTA depend on?

The React metadata lists no additional npm dependencies beyond React.

### What accessibility details are visible in Rocking icon CTA?

The React source for Rocking icon CTA includes: native elements (button); 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 Rocking icon CTA handle reduced motion?

Rocking icon CTA reads the motion preference in its React source through matchMedia(prefers-reduced-motion). Preference-dependent expressions in index.tsx: reduced ? 0 : 380; reduced ? 400 : 2000. 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": "rocking-icon-cta",
    "framework": "react"
  }
}
```

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

## Related open components

- [Expanding icon pill](https://fieldbook.lizardi.mx/components/expanding-icon-pill-2)
- [Icon takeover delete](https://fieldbook.lizardi.mx/components/icon-takeover-delete-button)
- [Overshoot icon button](https://fieldbook.lizardi.mx/components/overshoot-icon-slide-button)
- [Staged expand delete button](https://fieldbook.lizardi.mx/components/staged-expand-delete-button)
- [Swelling pill button](https://fieldbook.lizardi.mx/components/swelling-gradient-pill)
- [Wipe fill button](https://fieldbook.lizardi.mx/components/wipe-fill-button)
