Skip to main content
Clever Ops

Contour Drift

A living topographic survey sheet: seeded simplex terrain drifts like weather under marching-squares contour hairlines, one surveyed band lit in primary, the cursor gently swelling the land.

Preview & code

Loading Contour Drift preview

Installation

pnpm dlx shadcn@latest add @cleverui/contour-drift

Requires the @cleverui registry in your components.json, a one-off, two-line setup.

Usage

tsx
import { ContourDrift } from '@/components/ui/contour-drift'
Exampletsx
import { ContourDrift } from '@/components/ui/contour-drift'

export default function ContourDriftDemo() {
  return (
    <section className="relative min-h-[620px] overflow-hidden bg-background">
      <ContourDrift />

      <div className="relative mx-auto flex min-h-[620px] max-w-6xl flex-col justify-center px-4 py-16 sm:px-6">
        <div className="max-w-xl rounded-2xl border border-border/60 bg-background/80 p-6 backdrop-blur-sm sm:p-8">
          <p className="font-mono text-[11px] uppercase tracking-[0.2em] text-muted-foreground sm:text-xs">
            Meridian Survey · Sheet 14
          </p>
          <h2 className="mt-4 font-sans text-4xl font-semibold tracking-tight text-balance text-foreground sm:text-5xl">
            Ground truth, drawn while you watch.
          </h2>
          <p className="mt-4 text-base leading-relaxed text-muted-foreground">
            Every parcel we chart is re-levelled against live field notes. The 400 line surveyed
            across this sheet is holding a two centimetre tolerance over the whole catchment, and
            the weather you can see moving through the contours is this morning&apos;s.
          </p>
          <p className="mt-6 font-mono text-[11px] uppercase tracking-[0.2em] text-muted-foreground sm:text-xs">
            Contours at 20 m · datum AHD · drift is live
          </p>
        </div>
      </div>
    </section>
  )
}

API reference

ContourDrift accepts the following props.

PropTypeDefaultDescription
bandsnumber10elevation bands across the sheet (clamped 6-14)
driftSpeednumber1drift speed multiplier, 1 is a full weather pass in about two minutes
showLabelsbooleantrueletter mono elevation figures into breaks along the surveyed contour
seednumber20260718terrain seed, change it for a different map sheet

…plus everything from React.HTMLAttributes<HTMLElement>: className, event handlers, aria attributes and the rest pass straight through.

Frequently asked questions

How do I install the Contour Drift component?

Register the @cleverui registry in your components.json ("@cleverui": "https://cleverops.com.au/r/{name}.json"), then run `npx shadcn@latest add @cleverui/contour-drift`. The shadcn CLI copies the source into your project, you own the code from that point. You can also copy the source directly from this page.

What dependencies does Contour Drift require?

Contour Drift uses motion on top of React and Tailwind CSS. You don't need to install it manually, the shadcn CLI resolves and installs npm dependencies automatically when you add the component.

Can I theme Contour Drift to match my brand?

Yes. The component is styled entirely with Tailwind utilities over standard design tokens (primary, background, muted, border), so it inherits your existing shadcn/ui theme automatically. Change your CSS variables and the component follows, no source edits needed for palette, radius, or fonts.

Want this built for you?

CleverUI is built by the Clever Ops web team. If you'd rather ship a hand-coded, fast, custom website than assemble one, we build them for Australian businesses every week.

Explore web development services