CwPPFDChart

Horizontal PPFD range gauge for crop lighting targets. It highlights the optimal band and shows whether the current reading is low, optimal, or high at a glance.

Interactive Crop Selection

Pick a crop and drag the simulated sensor reading to see the target range, live marker, and status update in real time.

Photosynthetic Photon Flux Density

Pepper PPFD

Updated 4/5/2026, 6:28:23 AM

Current PPFD 740 µmol/m²/s
Target range
600-1,000 µmol/m²/s
Status
Optimal
DLI today
18.4 mol/m²/day

Pepper PPFD. Current 740 µmol/m²/s. Target 600-1,000 µmol/m²/s. Status Optimal. Inside target band. DLI today 18.4 mol/m²/day.

Current 740 µmol/m²/s
600-1,000 µmol/m²/s

Inside target band

CwPPFDChart example Copy code
<CwPPFDChart
	plant="Pepper"
	current={740}
	targetMin={600}
	targetMax={1000}
	dliToday={18.4}
/>

Fixed 0-1600 Scale

Use a fixed horticulture scale when you want direct comparison across crops or facilities.

Photosynthetic Photon Flux Density

Tomato PPFD

Updated 3/9/2024, 4:00:00 PM

Current PPFD 1,380 µmol/m²/s
Target range
700-1,200 µmol/m²/s
Status
Too high
DLI today
26.9 mol/m²/day

Tomato PPFD. Current 1,380 µmol/m²/s. Target 700-1,200 µmol/m²/s. Status Too high. 180 µmol/m²/s above target. DLI today 26.9 mol/m²/day.

Current 1,380 µmol/m²/s
700-1,200 µmol/m²/s

180 µmol/m²/s above target

Documentation Upgrade

Start here

CwPPFDChart is a focused range gauge for lighting targets. Give it the current PPFD reading plus a target band, and then optionally lock the domain and tick marks for cross-crop comparisons.

How to think about it

  1. Start with current, targetMin, and targetMax Those three values are the minimum set needed to render the gauge and current status.
  2. Add DLI and timestamp when available These fields make the summary more useful, but the chart still works without them.
  3. Lock the domain for side-by-side comparisons When different crops or rooms need direct comparison, provide `domainMin`, `domainMax`, and explicit `ticks`.

Props and callbacks

APITypeDetails
current Required
numberCurrent PPFD reading.
targetMin Required
numberLower edge of the target band.
targetMax Required
numberUpper edge of the target band.
plant

Default: ''

stringOptional crop or cultivar label.
unit

Default: umol/m2/s

stringReading unit label.
domainMin

Default: 0

numberLower chart domain.
domainMax
numberUpper chart domain. Auto-expands when omitted.
ticks
Array<number | CwPPFDTick>Optional explicit tick labels.
dliToday
numberOptional daily light integral value.
updatedAt
string | Date | numberOptional timestamp displayed in the summary.
showSummary

Default: true

booleanShows the summary block above the gauge.
showDelta

Default: true

booleanShows the delta from the target band.
lowLabel / optimalLabel / highLabel
stringCustom text for the three status ranges.

Copy-paste examples

These snippets intentionally show the full public API surface the live demo relies on.

Basic crop lighting target

This is the smallest useful configuration.

Basic crop lighting target Copy code
<CwPPFDChart
	plant="Pepper"
	current={740}
	targetMin={600}
	targetMax={1000}
	dliToday={18.4}
	updatedAt={Date.now()}
/>
Fixed production scale

Lock the domain when users compare multiple crops or rooms side by side.

Fixed production scale Copy code
<CwPPFDChart
	plant="Tomato"
	current={1380}
	targetMin={700}
	targetMax={1200}
	domainMin={0}
	domainMax={1600}
	ticks={[0, 200, 400, 600, 800, 1000, 1200, 1400, 1600]}
	dliToday={26.9}
/>
Compact chart with custom labels

Useful when the surrounding card already provides most of the context.

Compact chart with custom labels Copy code
<CwPPFDChart
	current={180}
	targetMin={250}
	targetMax={400}
	showSummary={false}
	showDelta={false}
	lowLabel="Too dim"
	optimalLabel="Target zone"
	highLabel="Too bright"
/>