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

Horizon Cipher

A retro perspective grid of glyphs receding to a horizon — scrolling rows, traveling wave ridge, and a two-tone color cycle.

horizon-cipher
Background

Build lazily.

Drop Horizon Cipher behind any hero, dashboard, or landing page.

0px

Customize

Edit props; preview updates instantly.

Customize
Columns
32
Depth rows
22
Font scale
0.90
Scroll speed
1.0
Wave speed
1.0
Wave power
6.0
Wave count
3.0
Wobble
1.4
Base alpha
7%
Color cycle
1.0
Opacity
100%
Color 1
Color 2
Charset

Props

Props accepted by HorizonCipher.

PropTypeDefaultDescription
charactersstring"0123456789ABCDEF"Glyph charset. Each cell picks one deterministically; picks shuffle on each integer scroll step.
columnsnumber32Number of columns across the canvas at the near row. Cell width auto-derives from `canvasWidth / columns`, so more columns means a denser grid (not a wider one).
depthRowsnumber22Number of depth rows from the near edge up to the horizon.
vanishYnumber0.35Vanishing-point Y, normalized to canvas height. 0 = top edge, 0.5 = middle, ~0.35 puts the horizon a third of the way down.
curvenumber2Perspective curvature exponent. Higher values compress more rows near the horizon.
farScalenumber0.25Cell scale at the horizon relative to the near row. Smaller values give a stronger depth illusion.
fontScalenumber0.9Font size as a fraction of the cell width. Lower = airier glyphs with visible gaps; higher = packed.
scrollSpeednumber1How fast rows advance toward the camera.
waveSpeednumber1Speed of the wave ridge that lights cells across columns.
wavePowernumber6Wave peak sharpness. Higher = thinner, brighter ridges; lower = soft glow over the whole grid.
waveFrequencynumber3How many ridge crests fit across the grid horizontally.
waveAmplitudenumber1.4Lateral wobble amplitude — how much each ridge curves with row depth.
baseAlphanumber0.07Baseline alpha applied to every glyph so the perspective grid is faintly visible at rest.
colorSpeednumber1Speed of the color cycle between `color1` and `color2`.
color1string"#290596"Primary tone in the two-tone cycle.
color2string"#93229D"Secondary tone in the two-tone cycle.
backgroundstring"#000000"Background fill drawn each frame beneath the glyphs.
opacitynumber1Multiplier applied to the final draw alpha.
classNamestring—Extra class names merged onto the root container.

Installation

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

npx shadcn@latest add https://2lazyui.com/r/horizon-cipher.json

Usage

Import the component and drop it into a render.

demo.tsx9 lines
import { HorizonCipher } from "@/components/lazy-ui/horizon-cipher";

export function Demo() {
  return (
    <div className="relative h-96 w-full overflow-hidden">
      <HorizonCipher />
    </div>
  );
}
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