Candlestick Chart

Charts price movement over time with volume.

ACME · 1m
187.15-0.88 (-0.47%)O 188.04H 188.88L 186.91C 187.15Vol 1.9K10:17
ACME one-minute candles data
TimeOpenHighLowCloseVolume
09:30184.20184.86183.53184.272.3K
09:31184.27185.68184.18185.092.8K
09:32185.09185.87184.56185.373.1K
09:33185.37186.12184.48185.241.3K
09:34185.24185.55184.13184.572.3K
09:35184.57184.94183.91184.802.4K
09:36184.80185.73183.77184.662.8K
09:37184.66185.35184.02184.301.3K
09:38184.30185.96183.97184.881.7K
09:39184.88185.85184.26185.462.7K
09:40185.46186.43184.52186.283.5K
09:41186.28186.30185.98186.063K
09:42186.06186.69185.76186.102K
09:43186.10186.77185.38186.671.4K
09:44186.67187.38185.49186.591.9K
09:45186.59186.98186.50186.562.6K
09:46186.56187.41186.09186.422.3K
09:47186.42187.37185.95186.131.4K
09:48186.13187.16185.99186.462K
09:49186.46187.51185.28186.232.5K
09:50186.23187.26185.42186.082K
09:51186.08186.65185.69185.693.3K
09:52185.69186.15185.16185.301.3K
09:53185.30186.49184.73185.891.6K
09:54185.89186.76184.90186.063.3K
09:55186.06187.00185.42186.332.2K
09:56186.33187.06184.74185.474K
09:57185.47186.13185.31185.982.8K
09:58185.98187.46184.95187.082.7K
09:59187.08188.44187.00187.712.1K
10:00187.71188.68187.00188.121.7K
10:01188.12189.02188.02188.662.6K
10:02188.66188.86187.51188.443.2K
10:03188.44189.05187.95189.053.4K
10:04189.05190.04188.33189.25984
10:05189.25189.84189.06189.292.8K
10:06189.29189.38187.21188.343.1K
10:07188.34189.79187.30188.853.6K
10:08188.85189.04187.20187.872.6K
10:09187.87188.47187.68187.731.1K
10:10187.73188.04187.22187.692.6K
10:11187.69188.07186.88187.541.8K
10:12187.54188.99187.04188.662.4K
10:13188.66189.48188.02189.122.8K
10:14189.12189.27187.85188.043.7K
10:15188.04188.96187.04187.263K
10:16187.26188.87186.35188.041.7K
10:17188.04188.88186.91187.151.9K

Installation

pnpm dlx shadcn@latest add @paneui/candlestick-chart

Usage

Examples

Daily Candles

Without Volume

Compact

Last Price

Volume Ratio

Keyboard

The chart is focusable. ArrowLeft / ArrowRight step through candles, Home / End jump to the first or last, and Escape clears the crosshair. The readout follows the inspected candle.

Accessibility

The readout is a polite live region, and a visually hidden table lists every candle's time, OHLC and volume.

API Reference

CandlestickChart

OHLC candlestick chart with volume pane, crosshair and last-price line. Past 60 candles the bars tighten automatically. Also accepts every prop of div.

candles*
readonly Candle[]
Candles in time order.
label= "Candlestick chart"
string
Accessible name for the chart and data table.
height= 320
number
Plot height in px, including the time row.
lastPrice
number
Price on the last-price line; defaults to the last close.
formatPrice= 2-decimal en-US
(price: number) => string
Formats prices on the axis, readout and table.
formatVolume= formatCompact
(volume: number) => string
Formats volume in the readout and table.
formatTime= HH:mm (UTC)
(time: number) => string
Formats time on the axis, readout and table.
showVolume= true
boolean
Show the volume pane.
showReadout= true
boolean
Show the OHLC readout above the chart.
volumeRatio= 0.2
number
Share of the plot height used by the volume pane.
PropTypeDefaultDescription
candles*readonly Candle[]—Candles in time order.
labelstring"Candlestick chart"Accessible name for the chart and data table.
heightnumber320Plot height in px, including the time row.
lastPricenumber—Price on the last-price line; defaults to the last close.
formatPrice(price: number) => string2-decimal en-USFormats prices on the axis, readout and table.
formatVolume(volume: number) => stringformatCompactFormats volume in the readout and table.
formatTime(time: number) => stringHH:mm (UTC)Formats time on the axis, readout and table.
showVolumebooleantrueShow the volume pane.
showReadoutbooleantrueShow the OHLC readout above the chart.
volumeRationumber0.2Share of the plot height used by the volume pane.

Candle

One candle.

time*
number
Unique, ordered key, such as a timestamp (ms) or any increasing number.
open*
number
Opening price.
high*
number
Highest price.
low*
number
Lowest price.
close*
number
Closing price.
volume
number
Traded volume.
PropTypeDefaultDescription
time*number—Unique, ordered key, such as a timestamp (ms) or any increasing number.
open*number—Opening price.
high*number—Highest price.
low*number—Lowest price.
close*number—Closing price.
volumenumber—Traded volume.

generateCandles

generateCandles(count, options?) makes deterministic random-walk candles for demos and tests.

count*
number
Number of candles.
seed= 7
number
Random seed.
start= 100
number
First open price.
startTime= Date.UTC(2026, 0, 5, 9, 30)
number
Time of the first candle (ms).
interval= 60_000
number
Milliseconds between candles.
volatility= 0.006
number
Relative size of each move.
PropTypeDefaultDescription
count*number—Number of candles.
seednumber7Random seed.
startnumber100First open price.
startTimenumberDate.UTC(2026, 0, 5, 9, 30)Time of the first candle (ms).
intervalnumber60_000Milliseconds between candles.
volatilitynumber0.006Relative size of each move.