Rotating Seal Badge
A round seal — the phrase fitted exactly around the circle with drawn dot separators — that turns once every 24 seconds, eases to a stop on hover, and is the link.
- Category
- Components
- Added
- 2026-09-25
- Deps
- none
- Updated
- 2026-09-25
This is a viberdy Pro component
The live preview, the props panel and the write-up are open to everyone. The full source, the AI prompt and CLI install are part of Pro.
Props
"use client";
import { useEffect, useId, useRef, useState } from "react";
/**
* A round seal — "BOOK A TABLE · OPEN DAILY ·" set around a coloured centre
* mark — that turns slowly in the corner of a hero and is itself the link.
*
* THE TEXT FILLS THE CIRCLE EXACTLY. The phrase is repeated as many times as
* fits, and each repeat is its own run of text pinned to its own slice of the
* circumference with textLength, so the letters close the loop with no
* crowding and no gap. The separators are drawn dots placed in the gaps by
* angle, not a bullet from the font that lands wherever the kerning puts it.
* If the phrase is too long for the circle, the type shrinks to fit rather
* than overlapping itself. The ring is laid out from an estimate on the
* server, then from the real width of the phrase in your font once it has
* loaded, so a wide display face gets fewer repeats instead of collisions.
*
// ---------------------------------------------------------------
// Full source available with a viberdy Pro subscription.
// https://viberdy.dev/pricing
// ---------------------------------------------------------------
}About this component
A slowly turning circular badge in the corner of a hero has become shorthand for a considered small-business site — a bakery's "Order for collection", a restaurant's "Book a table". The detail that separates a good one from a template is where the text meets itself. Here the phrase is repeated as many times as fits and each repeat is pinned to its own slice of the circle, so the loop closes exactly with no gap and no pile-up, and the separators are drawn dots set by angle rather than bullets from the font. If the phrase is too long for the size, the type shrinks rather than overlapping. It turns once every twenty-four seconds, which reads as alive rather than busy, and on hover or keyboard focus it eases to a stop instead of freezing mid-frame, while the centre mark grows slightly. It is a real link with a proper accessible name, it pauses offscreen, and it stays still for anyone who prefers reduced motion.
Curator’s note
Circular badges are everywhere and most of them have a gap or a pile-up where the text meets itself. Pinning each repeat to its own slice of the circle is the whole fix.
Pairs well with
Matched on shared tags and category — the entries most likely to be used alongside this one.
Announcement Badge Hero
heroesA large pulsing announcement pill anchors the hero above one headline.
Aperture Iris Reveal
animationsA photo revealed by a real iris — straight metal blades that part and twist from the centre — while a corner readout clicks down the f-stops from ƒ/22 to ƒ/1.4.
Circular Progress Ring
componentsAn SVG progress ring whose fill and centered percentage count up together on scroll into view.