Wheat Field

Surface study no. 04

Form that refuses to hold still.

A studio for identities that move. We cast brands in liquid metal, then let them settle into something you can hold.

About this component

Wheat Field

A field of ripe wheat at golden hour on Canvas 2D: thousands of stalks planted in perspective rows run from dark, backlit stems in the foreground to pale haze at the horizon under a low sun. Gusts roll across the field as traveling bands and every stalk bends on a springy lag; the cursor brushes through the field like a hand, parting the stalks, and a quick sweep sends a ripple running out. Sky, sun, grain, density, wind, gust speed, sway and brush are all props. The stalks grow in softly on load, the stalk count adapts to the device, it pauses offscreen and holds a still field for reduced motion.

Usage

The import and the props worth knowing about, in one place.

import { WheatField } from "@/components/beste/component/wheat-field";

// As a layer behind content
<section className="relative min-h-[40rem]">
  <WheatField className="absolute inset-0" />
  <div className="relative">...</div>
</section>

<WheatField
  className="min-h-[32rem]"
  skyTop="#3b4a6b"        // any CSS color
  skyHorizon="#f7c98b"
  sunColor="#ffb86b"
  grainColor="#c98f2e"
  wind={0.8}              // stronger gusts, 0 to 1
  gustSpeed={1.4}         // gusts travel faster
  brush={0.9}             // the cursor parts the stalks further
/>

Props

Read from the component's own type, so this cannot drift from what it accepts.

PropTypeDefaultDescription
densitynumber—How thickly the field is planted, 0 to 1
skyTopstring—Sky color at the top. Any CSS color.
skyHorizonstring—Sky color at the horizon; distant stalks fade into it
sunColorstring—Glow of the low sun on the horizon
grainColorstring—Color of the ripe grain in the foreground
windnumber—Strength of the gusts rolling across the field, 0 to 1
gustSpeednumber—How fast the gusts travel, 1 is the default pace
swaynumber—Gentle sway of every stalk between gusts, 0 to 1
brushnumber—How strongly the cursor parts the stalks, 0 to 1
interactiveboolean—The cursor brushes through the field like a hand
pausedboolean—Hold the field still
classNamestring—
childrenReactNode—

More Background components

View all Background