@astryxdesign/charts
Astryx charts — a config-model data visualization library (d3-based). Published to npm only under the @canary dist-tag for early testing; never released as a stable (latest) version.Astryx charts — a config-model data visualization library built on d3.
tsximport {Chart, bar, line} from '@astryxdesign/charts';<Chart data={data} xKey="month" series={[bar('revenue'), line('trend')]} />;
Marks are factory functions (
bar, line, area, dot, band, candlestick,
errorBar, referenceLine, and WebGL variants) that return config objects passed
via the series prop. The chart root owns one x/y scale that every mark, axis,
and grid line reads, so they can never disagree. It consumes @astryxdesign/core
theme tokens directly (StyleX build mirrors @astryxdesign/lab).It ships to npm only under the
@canary dist-tag — there is never a stable
(latest) release yet.Note: this package is the successor to the experimentalChart(formerlyChartV2) that used to live in@astryxdesign/lab; that code has moved here and d3 is a direct dependency. (Supersedes the original "thin wrappers over a peer engine" framing of the bootstrap scaffold.)
Status
Under active development. The config-model chart and its marks/chrome are in place;
API and visuals are still being refined. See
docs/ for the plan, design research, readiness audit, and
verification checklist.Usage
Inside the monorepo (storybook/sandbox), imports resolve via pnpm workspaces:
tsximport {Chart, bar, line, ChartGrid, ChartAxis} from '@astryxdesign/charts';import '@astryxdesign/core/astryx.css';import '@astryxdesign/charts/charts.css';
Trying charts in your own project (canary)
@astryxdesign/charts is published only under the @canary dist-tag, so you must request that tag explicitly. There is no latest version to install.bashnpm install @astryxdesign/charts@canary @astryxdesign/core@canary
Canary builds track the latest commit onmain(0.x.y-canary.<sha>). They can break between any two versions — pin an exact version if you need stability.
Why no stable release?
package.json keeps "private": true plus an "astryx": { "canaryOnly": true } marker. The release workflow's stable (latest) job skips both private and canaryOnly packages, while the canary job strips private in its ephemeral CI checkout only (never in git) to publish the @canary tag. The committed private: true is npm's hard guarantee that no stable publish can ever happen — do not remove it.