Measured entry
fancy-circling-elements
hero-effect3dmotion on file
A client-side React orbit primitive shipped as a shadcn registry item. It absolutely positions each child around a configurable radius and drives the loop with registry-supplied CSS keyframes. It depends on Motion, Tailwind utility classes, and the usual shadcn cn helper and path alias.



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 | 66.5 KB (131.9 KB build, 65.4 KB baseline) |
| Bare mode | FAIL |
| Provider required | NO |
| Demo used | written from the component source API |
What the harness recorded
BARE BUILD
✗ Build failed in 28.64s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/cut/fancy/blocks/circling-elements.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A focused orbit effect that built, mounted, and stayed contained across the tested layouts. Its API is useful, but the Motion wrapper adds weight while the actual loop is CSS-driven. It needs a shadcn-style setup before it can build or mount.
Use it if
- You need logos, badges, or small cards to orbit a hero focal point.
- Your app already has a shadcn-style alias, Tailwind utilities, and Motion installed.
- You want per-instance control over radius, speed, direction, easing, or hover pausing.
Skip it if
- You need the orbiting content to reserve layout space, since every child is absolutely positioned.
- You require reduced-motion behavior out of the box; the component does not provide it.
- You want a dependency-free CSS effect and do not otherwise use Motion.
- You plan to pass an items prop, since this component renders separate React children instead.
Install
| Declared dependencies | motion |
|---|---|
| Missing on install | none |
| Bare install | fails once the shadcn-style helpers are removed, so it needs that setup |
| Provider | no provider required in the harness |
In a non-shadcn project, install Motion, configure the at-sign source alias, add a cn class-merging helper, enable the referenced Tailwind utilities, and copy the circling keyframes from the registry into global CSS. Give the wrapper an explicit size and add your own reduced-motion rule.
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/danielpetho/fancyAlternatives
Other published entries for the hero-effect pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- ruixen-hero-title-animationunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 18.7KB
- Bare
- pass
- Prov
- NO
- tripled-glassmorphism-hero-block-shadcnuiglassmorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 30.4KB
- Bare
- fail
- Prov
- NO
- cultui-three-d-carousel3d
- Renders
- YES
- A11y
- 0
- Gzip
- 61.2KB
- Bare
- fail
- Prov
- NO
- ruixen-card-carousel-herounclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 63.3KB
- Bare
- fail
- Prov
- NO
- motion-primitives-spotlightgradient-glow
- Renders
- YES
- A11y
- 0
- Gzip
- 67.8KB
- Bare
- fail
- Prov
- NO
- magicui-hero-video-dialog3d
- Renders
- YES
- A11y
- 0
- Gzip
- 69.6KB
- Bare
- fail
- Prov
- NO