# Looping text ribbon

https://fieldbook.lizardi.mx/components/looping-text-ribbon

Category: Text effects
![Still of the Looping text ribbon component, a Fieldbook UI component in Text effects.](https://fieldbook.lizardi.mx/thumbs/looping-text-ribbon.webp)
Preview video: https://ejpqcxcjbiyabxkx.public.blob.vercel-storage.com/previews/looping-text-ribbon-c7fec2fa92.mp4 (5 s, silent)

Looping text ribbon: A colored ribbon carries a repeating phrase along a wavy, circular, or arched path, scrolling endlessly like a seal or badge.

## 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 |
| --- | --- | --- | --- |
| phrase | text | Fieldbook Original | Up to 30 characters |
| shape | select | wave | Options: wave, circle, infinity, arch, line |
| ribbonColor | color | #FF6A1F | No additional limit in the metadata. |
| speed | number | 90 | From 20 to 200; step 10 |
| pauseOnHover | boolean | true | No additional limit in the metadata. |

## Usage notes

Looping text ribbon uses the wide preview frame with a dark theme setting.

### Which frameworks are available for Looping text ribbon?

Looping text ribbon 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 Looping text ribbon depend on?

The React metadata lists no additional npm dependencies beyond React.

### What accessibility details are visible in Looping text ribbon?

The React source for Looping text ribbon includes: attributes and handlers (aria-hidden, aria-label); explicit roles (img). These are source observations. Verify accessible names, focus order and keyboard behavior in the composed page.

### How does Looping text ribbon handle reduced motion?

Looping text ribbon reads the motion preference in its React source through matchMedia(prefers-reduced-motion). 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": "looping-text-ribbon",
    "framework": "react"
  }
}
```

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

## Related open components

- [Scrolling content strip](https://fieldbook.lizardi.mx/components/scrolling-content-strip)
- [Flowing gradient headline](https://fieldbook.lizardi.mx/components/flowing-gradient-headline)
- [Shimmer sweep text](https://fieldbook.lizardi.mx/components/shimmer-sweep-text)
- [Typing cursor text](https://fieldbook.lizardi.mx/components/typing-cursor-text)
- [Cascading Letter Reveal](https://fieldbook.lizardi.mx/components/cascading-letter-reveal)
- [Shimmer Wave Text](https://fieldbook.lizardi.mx/components/character-wave-shimmer)
