tanstack-charts について
新しい TanStack Charts パッケージを使う開発・保守向けのコーディングスキルです。チャート構成、スケール、操作、レンダリング、SSR、アルファ版の移行を扱います。
主な機能
- 01マークによるチャート構成
- 02スケールレジストリと複数軸
- 03変換、レイアウト、操作
- 04SVG と Canvas の描画指針
- 05SSR、アクセシビリティ、移行の確認
活用シーン
- 01統合パッケージでのチャート構築
- 02スケール、軸、ツールチップの設定
- 03フォーカス、選択、ズーム操作への対応
- 04アルファ版 API と移行変更の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dobroslavradosavljevic/ skills --skill tanstack-chartsインストール後、Claude Code で/tanstack-chartsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/frameworks-interaction.mdmarks-composition.mdproduction-patterns.mdsetup-core.mdsource-map.mdtransforms-layouts.md詳細
TanStack Charts
TanStack Charts を扱う作業、特にマークの構成、変換、scales レジストリ、コンパクトスケールと D3 スケール、React の Chart、SSR、ツールチップ/フォーカス、Canvas、オプションの motion()、React Native、空間/階層/ネットワーク関連の項目、移行に関する作業で、このスキルを使用してください。
このライブラリは Alpha として扱ってください(スキル更新時点では 0.18.0。0.16.0 から公式 Alpha です)。Alpha は評価および初期統合向けです。マイナーリリースでも API が破壊的に変更される可能性があるため、正確なバージョンを固定してください。エッジ API を利用する前に、最新のドキュメントと npm の latest バージョンを確認してください。古い検索結果、ルートに x/y を指定する Alpha 前のスニペット、アーカイブ済みの react-charts よりも、GitHub のタグ v0.18.0 のドキュメントを優先してください。
ワークフロー
- 統合パッケージを使用する新しい TanStack Charts であることを確認します。
- 正しい方法:
bun add @tanstack/chartsと、フレームワークのピア依存関係を追加します。Chartは@tanstack/charts/reactから、スケールは@tanstack/charts/scales/linear(および/band、/point、/ordinal)からインポートします。 - 互換性のためのみ:既存のアプリ向けに、
@tanstack/react-charts、@tanstack/charts-scales、その他の@tanstack/*-chartsアダプターパッケージも引き続き存在します。新しいコードには追加しないでください。 - 誤り:スコープなしの
react-charts、またはoptions/primaryAxis/secondaryAxes/UserSerie。
- 正しい方法:
- バージョンと URL を source-map.md から更新します。
- インストール、
defineChart、scalesレジストリ、名前付きスケール/複数軸、軸とガイドのスタイル、凡例、ツールチップ拡張については、setup-core.md を参照してください。 - マーク、バーの角丸、
decorative、マークごとの Canvas、極座標/地理、複合要素については、marks-composition.md を参照してください。 - 即時変換とマークのレイアウトについては、transforms-layouts.md を参照してください。
- アダプター、サイズ設定、フォーカス、クロスヘア、ブラシ/ズーム/カーソル/選択、モーション、SSR については、frameworks-interaction.md を参照してください。
- Alpha の安定性、破壊的変更を伴う移行(ルートのスケールから
scalesへの移行)、テスト、大規模データ、Canvas、カスタムマーク、AI チェックについては、production-patterns.md を参照してください。
実装上の判断
- チャートはチャート種別のコンポーネントではなく、マークの組み合わせです。問いに答えるために必要な最小限のマークセットを優先してください。
- 行は自然な形のまま扱ってください。ライブラリ独自の系列ラッパーを作らないでください。
- インストールするパッケージは1つです:
@tanstack/charts。コンパクトスケールは正確なパス@tanstack/charts/scales/*を使ってください(/scalesのバレルはありません)。アプリケーションのソースコードで使うd3-*はすべてインポートして宣言してください。ドメインを推論する場合はファクトリーを、固定ドメインの場合は設定済みのインスタンスを渡してください。チャートが所有する位置スケールにピクセル範囲を設定しないでください。 - 位置スケールは
scalesレジストリーに置きます。すべての定義でscales: { x, y }を指定する必要があります(使わない次元にはnullを指定します)。極座標ビューではpolar({ scales: { angle, radius } })を使います。ルートのx/y/angle/radiusは0.16.0で削除されました。実際に第2軸が必要な場合に限り、名前付きスケール(channel、side)とマークのxScale/yScaleを追加してください。 - 軸の表示設定は
axis/axis.ticks/axis.tickLabelsの下に置きます。axis: falseはガイドを非表示にし、スケールは維持します。該当する次元を使うマークがない場合に限り、scalesの項目をnullにしてください。 - 捕捉する値すべてを依存対象として、
defineChart(...)全体をメモ化してください。定義の同一性が更新の境界になります。レスポンシブな{ chart: ({ width }) => …, svgAnimation, tooltip, … }は外側のオプションを保持します。 - SVG アニメーションのデフォルトオプションは
animateではなく、svgAnimationです。motion()はsvgAnimationを無視し、定義レベルのmotionを参照します。 - 長さチャンネルが1つの棒やエリアは、暗黙的に積み上げられます。棒を横並びにするには
layout: group()を使ってください。順序やオフセットを明示する必要がある場合に限り、layout: stack({ order, offset })を使ってください。y1/y2またはx1/x2を使うと積み上げは無効になります。 - ネイティブのツールチップには
@tanstack/charts/tooltipのtooltipを使います。クリッピングを回避するには@tanstack/charts/tooltip/portalのportalを使います。React のrenderTooltipBodyには@tanstack/charts/react/tooltipが必要です。グループ化された行は、デフォルトで視覚上のマーク順になります。 - チャンネルおよび変換のアクセサーは
(datum, { index, data })を使い、(datum, index, data)は使いません。 - ローリング変換には
windowではなく、rollingWindowを使います。リデューサーヘルパーにはdifferenceではなく、deltaを使います。 - マウントするすべてのチャートに
ariaLabelを指定してください。生成されるフォーカス用ジオメトリーを省くにはfocus: falseを使います。独自のフォーカスマークでリングを置き換える場合はfocusRing: falseを使います。アプリのジェスチャーがサーフェスを制御する場合はfocusDisabledを使います。放射状にグループ化されたフォーカスには、@tanstack/charts/polarのfocusGroupAngleを使います。 - デフォルトでは SVG を使います。描画負荷の高いレイヤーには、チャート全体を切り替えるのではなく、それらのマークに
renderer: canvasChartRendererを指定してください。極座標、地理、Canvas、エクスポート、モーション、空間、階層、ネットワーク、ブラシ/ズームの機能は、正確なサブパスからのみインポートしてください。 createMarkより前に、組み込みマーク(boxY、waffleY、violinY、複合マーク)を優先してください。ヒットテストを担うレイヤーが1つだけでよい場合は、隣接するレイヤーをdecorative(...)でラップしてください。
検証
リポジトリに既存のチェックがあれば、それを優先してください。Charts に関する重要な作業では、関連する項目を実施してください。
- パッケージの確認:
@tanstack/chartsは正確な0.18.x(またはプロジェクトで指定されたバージョン)に固定してください。新しいコードでは、@tanstack/react-charts/@tanstack/charts-scalesではなく、そのパッケージからアダプターやスケールをインポートしてください。定義ではscales.x/scales.yを使ってください。 - チャンネル、スケール、軸オプション、ツールチップのホストブランド、モーション、
ChartPointコールバックを型チェックし、予期しない型キャストがないことを確認してください。 createChartScene/renderChartSvgでドメイン、ジオメトリー、キー、アクセシビリティ用マークアップを確認してください。- インタラクションテスト:フォーカス、キーボード、ツールチップ、選択、ブラシ/ズーム、リサイズ、空データ、破棄。
- テーマトークンやツールチップのサーフェス CSS を変更した場合は、ライト/ダークモードのスモークテストを行ってください。
initialWidth、フォーマッター、Canvas シェル、idPrefixについて、SSR/ハイドレーションのスモークテストを行ってください。- 極座標、地理、Canvas、エクスポート、モーション、空間、階層、ネットワーク、または追加の D3 モジュールを追加する場合は、バンドルサイズを測定してください。
コメント
Markdown 対応