Glass Coin Carousel

A raymarched orbit of glass coins with fresnel edges and dual-tone fill. Runs on WebGL 2; theme follows .dark on html.

Default

Nine glass coins orbit a center label. Needs WebGL 2. Colors and speed are props.

Loading…

Installation

CLI
npx @sonojs/ui@latest add glass-coin-carousel

Usage

page.tsx
"use client"

import { GlassCoinCarousel } from "@/components/3d/glass-coin-carousel"

export default function Page() {
  return (
    <div className="relative h-[500px] w-full">
      <GlassCoinCarousel
        color1="#2DD4BF"
        color2="#818CF8"
        centerText="SonoJS"
      />
    </div>
  )
}

Props

PropTypeDefaultDescription
coinsCountnumber9Orbiting coins (clamped 1–9).
radiusnumber2.3Orbit radius in scene units.
coinRadiusnumber0.65Individual coin radius.
coinThicknessnumber0.12Individual coin thickness.
speednumber0.8Orbit speed. Frozen under reduced motion.
color1string"#2DD4BF"First glass tint (aqua).
color2string"#818CF8"Second glass tint (soft violet) for iridescence.
maxOpacitynumber0.88Maximum glass opacity.
centerTextstring"SonoJS"Center overlay label. Empty string hides it.
centerTextClassNamestring-Classes on the center text.
classNamestring-Classes on the root stage.