文件最后提交记录最后更新时间
1 个月前
2 小时前
2 小时前
2 个月前
1 个月前
1 个月前
2 个月前
1 个月前
2 小时前
3 个月前
1 个月前
3 个月前
README

@astryxdesign/charts

Astryx charts — a config-model data visualization library built on d3.

import {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 experimental Chart (formerly ChartV2) 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:

import {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.

npm install @astryxdesign/charts@canary @astryxdesign/core@canary

Canary builds track the latest commit on main (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.