← Orion

registry:ui

Shimmer

Animated gradient-sweep text for in-progress labels.

Rendered example

Generating preview…

Install

orion-theme
Open registry JSON

registry/ui/shimmer.tsx

/**
 * SHIMMER
 * Animated gradient-sweep text for "in progress" labels. Wraps any
 * text content with the shimmer animation.
 *
 * Usage:
 *   <Shimmer>Improving…</Shimmer>        (ink-to-ink gradient)
 *   <Shimmer variant="accent">Adjust</Shimmer>  (accent-to-accent)
 */

export function Shimmer({
  children,
  variant = "default",
  className,
}: {
  children: React.ReactNode
  variant?: "default" | "accent"
  className?: string
}) {
  const gradient =
    variant === "accent"
      ? "linear-gradient(90deg, var(--accent) 35%, var(--accent-ink) 50%, var(--accent) 65%)"
      : "linear-gradient(90deg, var(--ink-3) 35%, var(--ink) 50%, var(--ink-3) 65%)"

  return (
    <span
      className={`bg-clip-text text-[12.5px] font-medium text-transparent ${className ?? ""}`}
      style={{
        backgroundImage: gradient,
        backgroundSize: "200% 100%",
        animation: "shimmer-text 1.4s linear infinite",
      }}
    >
      {children}
    </span>
  )
}