# Relay fill button

https://fieldbook.lizardi.mx/components/relay-fill-button

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

Relay fill button: A half-rounded button that fills on hover through a relay of two racing bars which climb to full height before the label changes colour.

## 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 | #F5C542 | No additional limit in the metadata. |
| label | text | Reserve seat | Up to 22 characters |
| sweepMs | number | 350 | From 120 to 800; step 10 |
| gap | number | 5 | From 0 to 20; step 1 |
| radius | number | 10 | From 0 to 26; step 1 |

## Usage notes

Relay fill button uses the inline preview frame with a light/dark theme setting.

### Which frameworks are available for Relay fill button?

Relay fill 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 Relay fill button depend on?

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

### What accessibility details are visible in Relay fill button?

The React source for Relay fill button includes: native elements (button); attributes and handlers (aria-hidden). These are source observations. Verify accessible names, focus order and keyboard behavior in the composed page.

### How does Relay fill button handle reduced motion?

Relay fill button reads the motion preference in its React source through useReducedMotion(). Preference-dependent expressions in index.tsx: climbDelay: reduce ? 0 : followerDelay + sweep + 40; climbDur: reduce ? 200 : Math.max(160, Math.round(sweep \* 0.7)); followerDelay: reduce ? 0 : Math.round((gap / 10) \* sweep). 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": "relay-fill-button",
    "framework": "react"
  }
}
```

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

## Related open components

- [Diagonal blob flood button](https://fieldbook.lizardi.mx/components/diagonal-blob-flood-button)
- [Diagonal swipe button](https://fieldbook.lizardi.mx/components/diagonal-swipe-button)
- [Diagonal wedge button](https://fieldbook.lizardi.mx/components/diagonal-wedge-button)
- [Dot flood button](https://fieldbook.lizardi.mx/components/dot-flood-button)
- [Draining fill button](https://fieldbook.lizardi.mx/components/draining-fill-button-2)
- [Jello squash button](https://fieldbook.lizardi.mx/components/jello-squash-button)
