Measured entry
motion-primitives-text-loop
text-effectdark-futuristicmotion on file
A client-side React text rotator that cycles through child nodes with enter and exit animation. It ships as a shadcn registry component, uses Motion for animation, and expects a cn utility backed by clsx and tailwind-merge plus Tailwind utility styles.



Measured
Every value below was written by the harness on the run that produced the frames above. None of it is derived from the prose.
| Build | OK |
|---|---|
| Mount | OK |
| Console errors | 0 |
| Uncaught page errors | 0 |
| Horizontal overflow | clean at 375, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 71.3 KB (136.8 KB build, 65.5 KB baseline) |
| Bare mode | OK |
| Provider required | NO |
| Demo used | written from the component source API |
Verdict
A focused, flexible text rotator that builds and mounts cleanly in both integrated and bare setups. It is a sensible pick when Motion is already present, but excessive for a single decorative phrase and incomplete for teams that require reduced-motion handling out of the box.
Use it if
- You need a compact rotating phrase inside a heading, hero, or status line.
- You want configurable timing, transition variants, playback control, or an index-change callback.
- Your application already uses Motion and can absorb another client-side animated element.
Skip it if
- You need static copy that remains visible and readable without motion.
- You cannot justify adding Motion for a small text treatment.
- You require built-in reduced-motion behavior rather than adding that policy around the component.
- Your list can be empty at runtime and you do not want to add an input guard.
Install
| Declared dependencies | motion, clsx, tailwind-merge |
|---|---|
| Missing on install | none |
| Bare install | builds and mounts without the shadcn-style helpers |
| Provider | no provider required in the harness |
In a non-shadcn project, install Motion, clsx, and tailwind-merge; add or replace the cn helper and its import alias; then provide Tailwind utilities or equivalent CSS for positioning and no-wrap behavior. Keep the file client-rendered.
Source and credit
This page is a review, not a copy. The component source lives with its author and this site does not republish it. Read the license before you use anything.
Author repository
github.com/ibelick/motion-primitivesAlternatives
Other published entries for the text-effect pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- uilayouts-randomized-text-effectdark-futuristic
- Renders
- YES
- A11y
- 0
- Gzip
- 17.5KB
- Bare
- pass
- Prov
- NO
- uilayouts-randomized-text-unveildark-futuristic
- Renders
- YES
- A11y
- 0
- Gzip
- 17.7KB
- Bare
- pass
- Prov
- NO
- fancy-scramble-indark-futuristic
- Renders
- YES
- A11y
- 0
- Gzip
- 17.8KB
- Bare
- pass
- Prov
- NO
- magicui-aurora-textaurora-mesh
- Renders
- YES
- A11y
- 0
- Gzip
- 20.7KB
- Bare
- pass
- Prov
- NO
- magicui-highlighterskeuomorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 24.8KB
- Bare
- pass
- Prov
- NO
- fancy-text-along-pathspatial
- Renders
- YES
- A11y
- 0
- Gzip
- 25.7KB
- Bare
- pass
- Prov
- NO