Skip to content

Core Bundle (velo-plot)

The default npm export. Smallest chart engine: ~51 KB gzip (minified ESM, typical import).

Use this when you need basic 2D series and will load plugins explicitly. Do not use for trading dashboards or scientific heatmaps without also importing an extended entry.

Extended series

candlestick, bar, heatmap, polar, boxplot, waterfall, gauge, and sankey throw at runtime unless you import velo-plot/trading, velo-plot/scientific, or velo-plot/full.

Import

typescript
import {
  createChart,
  Series,
  EventEmitter,
  NativeWebGLRenderer,
  parseColor,
  createRenderer,
  LinearScale,
  LogScale,
  DARK_THEME,
  LIGHT_THEME,
  PluginManagerImpl,
  createPlugin,
  definePlugin,
  registerPlugin,
} from 'velo-plot'

Exports

CategorySymbols
ChartcreateChart
DataSeries
EventsEventEmitter
TypesChart, ChartOptions, SeriesOptions, SeriesData, Bounds, AxisOptions, …
ScalesLinearScale, LogScale, createScale
RendererNativeWebGLRenderer, parseColor, createRenderer, createNativeRenderer
ThemesDARK_THEME, LIGHT_THEME, DEFAULT_THEME, createTheme, getThemeByName
PluginsPluginManagerImpl, createPluginContext, getPluginRegistry, registerPlugin, definePlugin, createPlugin, createConfigurablePlugin

Not exported from core (use extended entries or velo-plot/plugins/*):

  • AnimationEngine, easings (animations still work via chart options)
  • createStackedChart, trading/scientific plugins
  • addIndicatorToChart, datafeed helpers

Supported series types

TypeCoreNotes
line
scatter
line+scatter
step, step+scatter
band, areaStacked fill via stackId
Error barsOn any series with error fields
barvelo-plot/trading or velo-plot/scientific
heatmapvelo-plot/trading or velo-plot/scientific
candlestickvelo-plot/trading
polar, boxplot, waterfallvelo-plot/scientific
gauge, sankeyvelo-plot/scientific (Canvas overlay)
heikin-ashivelo-plot/trading (converts to candlestick)

Chart methods available

All standard navigation, series, annotation (via plugins), and export APIs except:

MethodCore behavior
addIndicator()Throws — use velo-plot/trading
addAlert(), removeAlert(), …Throws — use velo-plot/trading
addPositionLine()Throws — use velo-plot/trading
setDrawingMode()Throws — use velo-plot/trading
exportSVG()Throws — use exportImage() or extended entry
exportImage()✅ PNG/JPEG

createChart options (core-specific)

typescript
const chart = createChart({
  container: document.getElementById('chart')!,
  renderer: 'webgl',     // 'webgpu' is ignored on core; needs extended entry
  loading: true,         // opt-in; default is no loading overlay
  animations: true,      // zoom/pan animations (engine in core)
  showLegend: true,      // defaults to theme.legend.visible unless set
  showControls: false,
})

Plugins on core

Load only what you need:

typescript
import { createChart } from 'velo-plot'
import { PluginAnnotations } from 'velo-plot/plugins/annotations'

const chart = createChart({ container })
chart.use(PluginAnnotations())

See Plugin System and per-plugin entries.

Bundle size

MetricValue
Gzip (minified ESM)~51 KB
CI budget52 KB
Measure locallypnpm build && pnpm check:bundle-size

Known limitations

  • Extended series (candlestick, bar, heatmap, …) throw at runtime — import velo-plot/trading, /scientific, or /full.
  • Trading chart methods (addIndicator, alerts, …) throw — import velo-plot/trading or /full.
  • exportSVG() throws — use exportImage() or an extended entry.
  • Measured core gzip ~51 KB (CI budget 52 KB).

Released under the MIT License.