Basic crop lighting target
This is the smallest useful configuration.
<CwPPFDChart
plant="Pepper"
current={740}
targetMin={600}
targetMax={1000}
dliToday={18.4}
updatedAt={Date.now()}
/>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.
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
Updated 10/22/2026, 8:36:05 PM
Optimal· Inside target band
Pepper PPFD. Current 740 µmol/m²/s. Target range 600–1,000 µmol/m²/s. Status Optimal. Inside target band. DLI today 18.4 mol/m²/day.
<CwPPFDChart
plant="Pepper"
current={740}
targetMin={600}
targetMax={1000}
dliToday={18.4}
/>Use a fixed horticulture scale when you want direct comparison across crops or facilities.
Photosynthetic Photon Flux Density
Updated 3/9/2024, 4:00:00 PM
Too high· 180 µmol/m²/s above target
Tomato PPFD. Current 1,380 µmol/m²/s. Target range 700–1,200 µmol/m²/s. Status Too high. 180 µmol/m²/s above target. DLI today 26.9 mol/m²/day.
A missing reading shows “—” with no marker or status; missing targets hide the target band and status instead of treating the target as zero.
Photosynthetic Photon Flux Density
Loading PPFD
Photosynthetic Photon Flux Density
Tomato PPFD. Current —. Target range 700–1,200 µmol/m²/s. Status —.
Photosynthetic Photon Flux Density
Unassigned crop PPFD. Current 640 µmol/m²/s. Target range —. Status —.
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.
| API | Type | Details |
|---|---|---|
current Required | number | Current PPFD reading. |
targetMin Required | number | Lower edge of the target band. |
targetMax Required | number | Upper edge of the target band. |
plant Default: | string | Optional crop or cultivar label. |
unit Default: | string | Reading unit label. |
domainMin Default: | number | Lower chart domain. |
domainMax | number | Upper chart domain. Auto-expands when omitted. |
ticks | Array<number | CwPPFDTick> | Optional explicit tick labels. |
dliToday | number | Optional daily light integral value. |
updatedAt | string | Date | number | Optional timestamp displayed in the summary. |
showSummary Default: | boolean | Shows the summary block above the gauge. |
showDelta Default: | boolean | Shows the delta from the target band. |
lowLabel / optimalLabel / highLabel | string | Custom text for the three status ranges. |
noData | string | boolean | When present, blurs the chart and shows an overlay. Pass localized text, or use the bare `noData` attribute for "No data available". |
loading Default: | boolean | Shows a skeleton chart and sets `aria-busy` while data loads. |
locale | string | BCP 47 locale for number and date formatting. Defaults to the runtime locale. |
Each snippet is a complete, working example you can paste into a Svelte 5 component.
This is the smallest useful configuration.
<CwPPFDChart
plant="Pepper"
current={740}
targetMin={600}
targetMax={1000}
dliToday={18.4}
updatedAt={Date.now()}
/>Lock the domain when users compare multiple crops or rooms side by side.
<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}
/>Useful when the surrounding card already provides most of the context.
<CwPPFDChart
current={180}
targetMin={250}
targetMax={400}
showSummary={false}
showDelta={false}
lowLabel="Too dim"
optimalLabel="Target zone"
highLabel="Too bright"
/>