tremor-design-system について
tremor-design-systemは、Tremorでダッシュボードや分析画面を作るReact開発者向けのスキルです。Tremor RawとTremor NPMを判別し、各バージョンに応じたコンポーネント選択、レイアウト、スタイルを案内します。
主な機能
- 01Tremorの配布形式を判別
- 02ダッシュボード構成に応じたコンポーネント選択
- 03レスポンシブなグリッドレイアウトの案内
- 04チャートと値の書式設定の助言
- 05ダークモードのスタイル説明
活用シーン
- 01プロジェクトのTremorインポート方式の確認
- 02KPI、チャート、テーブルを使った画面構成
- 03チャート値の書式設定
- 04Next.js App Routerでのチャート利用
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ fefogarcia/ approved-skills --skill tremor-design-systemインストール後、Claude Code で/tremor-design-systemを入力して読み込まれたか確認します。
同梱ファイルreferences/component-catalog.mdreferences/dashboard-patterns.md
詳細
Tremor Design System
Tremor の React コンポーネントライブラリを使用して、本番環境に対応したダッシュボードや分析インターフェースを構築します。
バージョンの判別
Tremor には 2 つの配布モデルがあります。コードを書く前に、ユーザーのプロジェクトでどちらが使われているかを判別してください。
-
Tremor Raw(tremor.so)— コンポーネントを
src/components/にコピーして貼り付けます- インポート:
import { AreaChart } from "@/components/AreaChart" - 必要なもの:Tailwind CSS v4 以降、Radix UI、Recharts
- スタイル:標準の Tailwind ユーティリティクラス
- インポート:
-
Tremor NPM(npm.tremor.so)— NPM パッケージ
@tremor/react- インポート:
import { AreaChart, Card } from "@tremor/react" - 必要なもの:Tailwind CSS v3.4 以降、Headless UI、Remix Icons
- スタイル:Tremor 固有のトークン(
text-tremor-content、dark:text-dark-tremor-content)
- インポート:
不明な場合は、ユーザーに確認してください。新しいプロジェクトでは、現在も積極的に開発されている Tremor Raw をデフォルトとして使用してください(2025 年 1 月に Vercel が買収)。
ワークフロー
- バージョンを判別する — インポート、
package.jsonを確認するか、ユーザーに尋ねます - パターンを特定する — よくあるレイアウト(KPI の行、チャートセクション、フィルター付きテーブル、ダッシュボード全体)については、references/dashboard-patterns.md を参照してください
- コンポーネントを選択する — コンポーネント API 全体については、references/component-catalog.md を参照してください
- 組み立てる — 以下のパターンを使って構成します
- スタイルを適用する — 判別したバージョンに合った Tailwind ユーティリティを適用します
主な原則
- Card が基本単位です:ダッシュボードのほとんどのセクションは
<Card>で囲みます。KPI、チャート、テーブル、フォームはすべてカード内に配置します。 - グリッドレイアウト:レスポンシブなダッシュボードレイアウトには、Tailwind のグリッド(
grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6)を使います。幅を固定値で指定しないでください。 - データ形状の規則:すべてのチャートコンポーネントは、オブジェクトの配列を受け取ります。
indexプロパティで x 軸のキーを選択し、categoriesでデータ系列を選択します。 - valueFormatter:通貨、パーセンテージ、または単位を表示するチャートには、必ず
valueFormatterを指定します。数値にはIntl.NumberFormatを使います。 - ダークモード:すべてのコンポーネントはダークモードに対応しています。Tremor Raw では標準の
dark:プレフィックスを使います。NPM ではdark-tremor-*トークンを使います。 - "use client":チャートコンポーネントはブラウザー API(Recharts)を使います。Next.js App Router では、チャートを含むページまたはコンポーネントに
"use client"を指定します。
よく使うデータ形状
// All charts expect this pattern
const chartdata = [
{ date: "Jan 23", Revenue: 2890, Costs: 2338 },
{ date: "Feb 23", Revenue: 2756, Costs: 2103 },
// ...
]
// index="date" → x-axis
// categories={["Revenue", "Costs"]} → data series
クイックリファレンス:チャートの選び方
| 用途 | コンポーネント |
|---|---|
| 時系列の傾向 | AreaChart または LineChart |
| カテゴリーの比較 | BarChart |
| 全体に占める割合 | DonutChart |
| ランキング | BarList |
| 予算/しきい値 | CategoryBar |
| 指標の組み合わせ | ComboChart(棒+折れ線) |
| インラインのスパークライン | SparkAreaChart、SparkLineChart、SparkBarChart |
| 目標に対する進捗 | ProgressBar、ProgressCircle |
| 稼働時間/ステータスの履歴 | Tracker |
書式設定の規則
- 米国式の数値書式には
Intl.NumberFormat("us")を使います - 通貨:
(n) => \$${Intl.NumberFormat("us").format(n)}`` - パーセンテージ:
(n) => \${n}%`` - 簡略表記:
(n) => \${Intl.NumberFormat("us", { notation: "compact" }).format(n)}``
参考資料
- コンポーネント API と props の全一覧:references/component-catalog.md
- ダッシュボードの構成パターン:references/dashboard-patterns.md
コメント
Markdown 対応