# Concentric ring button

https://fieldbook.lizardi.mx/components/concentric-ring-button

Category: Buttons
![Still of the Concentric ring button component, a Fieldbook UI component in Buttons.](https://fieldbook.lizardi.mx/thumbs/concentric-ring-button.webp)
Preview video: https://ejpqcxcjbiyabxkx.public.blob.vercel-storage.com/previews/concentric-ring-button-0ea27839d4.mp4 (5 s, silent)

Concentric ring button: A button sitting over a huge stack of concentric rings that slides across on hover while the whole plate shifts from a warm ramp to a cool one.

## 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 |
| --- | --- | --- | --- |
| accent | color | #FF6A1F | No additional limit in the metadata. |
| label | text | Calibrate | Up to 20 characters |
| rings | number | 5 | From 3 to 8; step 1 |
| ringWidth | number | 8 | From 4 to 16; step 1 |
| shift | number | 32 | From 0 to 80; step 4 |

## Usage notes

Concentric ring button uses the inline preview frame with a light/dark theme setting.

### Which frameworks are available for Concentric ring button?

Concentric ring 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 Concentric ring button depend on?

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

### What accessibility details are visible in Concentric ring button?

The React source for Concentric ring button includes: native elements (button); attributes and handlers (aria-hidden, onKeyDown, onKeyUp); key comparisons (Enter, Space). These are source observations. Verify accessible names, focus order and keyboard behavior in the composed page.

### How does Concentric ring button handle reduced motion?

Concentric ring button reads the motion preference in its React source through useReducedMotion(). Preference-dependent expressions in index.tsx: transform: cool &amp;&amp; !reduced ? "translateX(" + shift + "px)" : undefined. 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": "concentric-ring-button",
    "framework": "react"
  }
}
```

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

## Related open components

- [Amber upload pill](https://fieldbook.lizardi.mx/components/amber-upload-pill)
- [Arrow to label pill](https://fieldbook.lizardi.mx/components/arrow-to-label-pill)
- [Arrow wipe call to action](https://fieldbook.lizardi.mx/components/arrow-wipe-cta)
- [Banded stripe button](https://fieldbook.lizardi.mx/components/banded-stripe-button)
- [Blob cap button](https://fieldbook.lizardi.mx/components/blob-cap-button)
- [Captioned Like Button](https://fieldbook.lizardi.mx/components/captioned-like-button)
