Lazy-ui
Lazy-ui
registry components
DocsComponentsBlocksChangelog
GitHub0Install
Navigation11 groups
Get StartedDocs
  • Introduction
  • Installation
  • Changelog
  • All Components
Background13 items
  • Wave CipherNew
  • Horizon CipherNew
  • Orbit CipherNew
  • Orbit BloomNew
  • Orbit MeshNew
  • Aurora MeshNew
  • Chroma FlowNew
  • Prism DriftNew
  • Shadow MeshNew
  • Slime BackgroundNew
  • NeumorphismNew
  • Ripple SurfaceNew
  • Liquid ChromeNew
Text Animate7 items
  • Shiny Text
  • Text WarpNew
  • Text RiseNew
  • Text SpinNew
  • Text ScrambleNew
  • Spinning TextNew
  • Text FlipNew
Animate6 items
  • Counter
  • Liquid RevealNew
  • Liquid TransitionNew
  • Matrix GridNew
  • Particle HaloNew
  • Bling TransitionNew
Effects2 items
  • Reveal Animate
  • Circle CipherNew
Forms2 items
  • Switch
  • Checkbox
Buttons3 items
  • Copy Button
  • GitHub Stars Button
  • Glass ButtonNew
Feedback1 item
  • Progress
Navigation1 item
  • Animated Tabs
Overlay1 item
  • Animate Tooltip
Device Mocks1 item
  • iPhoneNew

Bling Transition

An image A → B transition with palette-tinted sparkle cores blooming along the wipe boundary — fbm-driven wipe, IQ-palette kaleidoscope sparkles only at the moving edge, ping-pong looping.

bling-transition
0px

Customize

Edit props; preview updates instantly.

Customize
Palette
Direction
Duration
4200ms
Hold
1800ms
Intensity
0.0050
Iterations
4
Sparkle
1.00
Softness
0.22
Distortion
0.080
Drip
0.55

Props

Props accepted by BlingTransition.

PropTypeDefaultDescription
imageAstring—URL of the first image. Loaded via `THREE.TextureLoader` with `crossOrigin = anonymous`; `LinearFilter` and no mipmaps so the texture stays sharp.
imageBstring—URL of the second image. Same loader settings as `imageA`. Both must finish loading before the first frame paints.
progressnumber—Controlled progress 0–1. When provided, the internal phase machine and autoPlay are bypassed — the parent fully owns the sweep.
autoPlaybooleantrueAnimate progress automatically through forward → hold → backward → hold → loop. Ignored when `progress` is supplied.
durationnumber2400Full A → B sweep, in milliseconds.
holdnumber1200How long to pause at each end of the sweep when looping, in milliseconds.
loopbooleantruePing-pong forever. When `false`, the sweep plays once and stops at B.
palette"iris" | "ember" | "ice" | "silver""iris"Color palette for the sparkle bloom at the wipe boundary. Built from IQ's `a + b * cos(2π(c*t + d))` formula.
intensitynumber0.005Sparkle-core brightness (≈ 0.001–0.02). Driven by `pow(intensity / |d|, 1.5)` so small bumps make a big visual difference.
iterationsnumber4Kaleidoscope fold count (1–6). More folds = more sparkle structure at the boundary.
sparkleStrengthnumber1How much the sparkle layer contributes at the boundary (0–2). The sparkle is multiplied by the boundary edge weight, so it only ever appears at the moving wipe — never on settled regions.
softnessnumber0.22Soft edge of the boundary mask. `0` is a hard wipe; `0.5` is a wide fade. The progress sweep itself is eased with `cubic-in-out`, so the overall motion stays gentle even at low softness.
distortionnumber0.08UV refraction amplitude at the wipe boundary, in UV units. Bends both images at the moving edge for a glassy look.
noiseScalenumber2.4Scale of the fbm field that drives the wipe shape. Higher = finer streaks.
dripnumber0.55Direction bias (0 = pure noise blob, 1 = pure directional wipe).
direction"noise" | "horizontal" | "vertical" | "radial""noise"Direction the wipe sweeps in. `noise` ignores direction and uses pure fbm.
onComplete() => void—Fires when the forward sweep finishes — and again at each end when looping.
classNamestring—Extra class names merged onto the mount wrapper. Width and height are governed here — the canvas fills the container.

Installation

Choose CLI for the one-line shadcn install, or copy the file manually.

npx shadcn@latest add https://2lazyui.com/r/bling-transition.json

Usage

Import the component and drop it into a render.

demo.tsx21 lines
import { BlingTransition } from "@/components/lazy-ui/bling-transition";

export function Demo() {
  return (
    <BlingTransition
      imageA="/images/before.jpg"
      imageB="/images/after.jpg"
      palette="iris"
      duration={2400}
      hold={1200}
      intensity={0.005}
      iterations={4}
      sparkleStrength={1}
      softness={0.22}
      distortion={0.08}
      drip={0.55}
      direction="noise"
      className="h-[480px] w-full rounded-2xl"
    />
  );
}
Registryv0.1
Animated TabsNavigationCopy ButtonButtonsGitHub Stars ButtonButtonsReveal AnimateEffectsCounterAnimateShiny TextText AnimateText WarpText AnimateText RiseText AnimateText SpinText AnimateText ScrambleText AnimateSpinning TextText AnimateText FlipText AnimateProgressFeedbackSwitchFormsGlass ButtonButtonsCheckboxFormsiPhoneDevice MocksCircle CipherEffectsLiquid RevealAnimateLiquid TransitionAnimateWave CipherBackgroundHorizon CipherBackgroundOrbit CipherBackgroundOrbit BloomBackgroundOrbit MeshBackgroundMatrix GridAnimateParticle HaloAnimateAurora MeshBackgroundChroma FlowBackgroundPrism DriftBackgroundShadow MeshBackgroundSlime BackgroundBackgroundNeumorphismBackgroundRipple SurfaceBackgroundLiquid ChromeBackgroundBling TransitionAnimateAnimate TooltipOverlayPricing · ClassicBlocks · PricingPricing · BentoBlocks · PricingPricing · EditorialBlocks · PricingPricing · MatrixBlocks · PricingPricing · UsageBlocks · Pricing
Browse all 42 components
Up nextRoadmap
DialogPlanned
TabsPlanned
TooltipPlanned
CommandPlanned
Help the project
Star on GitHubSuggest a componentRead the DESIGN.md