KQ-1434 · SURVEY/CONTOURS

Survey Contours

A background that is a living topographic sheet: contour lines traced from a slowly breathing height field, every fifth an index contour drawn heavier with its elevation printed small along it and the line broken under the figures, spot heights on the highest summits, over a faint tint that leans toward the high ground. The hand raises a hill — the land under it rises on springs.drift, new rings bloom round it in the hill colour and a spot height rides the summit with its figure rolling as it climbs — and a press heaves it higher on springs.recoil, the rings rippling out and back with each bounce; the lowlands stand from the first frame and, the first time it is seen, the rest of the survey inks in from lower to higher in a cascade. Keyboard focus on content inside the sheet raises the hill under the focused element.

KQ-1434 · SURVEY/CONTOURS

Fieldline Survey

Every ridge, measured

Sheet 14 · 1:25 000

sheet drawn · move to raise a hill

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/survey-contours

Props

children
React.ReactNode
default —
The content above the sheet: a hero, a heading, a call to action.
interval
number
default 20
The height between one contour line and the next, in the sheet's units.
weight
number
default 1
How heavy the lines are drawn, 0.5 to 2; every fifth line is heavier still.
labels
boolean
default true
Print the elevation on the heavy lines (breaking each line under its label), spot heights on the highest summits, and a spot height on the raised hill.
relief
number
default 360
How far the land rises from its lowest point to its highest, in the sheet's units.
scale
number
default 1
The size of the hills and valleys, 0.5 to 2.
breathe
number
default 0.5
How much the land swells and settles as it breathes, 0 to 1.
speed
number
default 1
How fast the land breathes, 0 to 2; 0 holds it still.
tint
number
default 0.35
How strongly the high ground is tinted, 0 to 1.
lineColor
string
default "color-mix(in oklab, var(--foreground) 46%, var(--background))"
The contour lines' colour, as a CSS colour.
hillColor
string
default "var(--accent-bright)"
The colour the lines take round the raised hill, as a CSS colour.
tintColor
string
default "var(--accent)"
The colour the high ground leans toward, as a CSS colour.
unit
string
default "m"
The unit printed after the spot height.
interactive
boolean
default true
The hand (and keyboard focus inside) raises a hill under it, and a press heaves it higher.
pointerStrength
number
default 0.7
How high the hand raises the land, 0 to 1.
radius
number
default 70
The width of the raised hill, in CSS px.
seed
number
default 1
Picks the landscape: the same seed surveys the same land.
paused
boolean
default false
Holds the land still; the hand still raises its hill.
intro
boolean
default true
Ink the higher contours in, lower to higher, the first time the sheet is seen; the lowlands are drawn from the start.
dpr
number
default 2
The highest device pixel ratio the lines are drawn at, never above 2.
onSummitChange
(elevation: number | null) => void
default —
Reports the raised hill's summit once it settles, and null once it has subsided.
className
string
default "h-full w-full"
Sizes the box.
contentClassName
string
default —
Classes for the content layer above the sheet.