コンテンツにスキップ
Vantage
日本語
Esc
navigateopen⌘Jpreview
このページの内容

PageShell

ヘッダー帯・サマリー・本文からなるページ枠。

1 ページぶんの枠です。全幅のヘッダー帯、その中に置けるサマリーカードの行、そして本文の 3 段で できています。各パーツは薄い <div> なので、必要なものだけ使えます。

export const client = "only";

import {
  PageShell,
  PageShellHeader,
  PageShellHeading,
  PageShellTitle,
  PageShellDescription,
  PageShellHeaderEnd,
  PageShellMeta,
  PageShellActions,
  PageShellSummary,
  PageShellSummaryCard,
  PageShellContent,
} from "@squadbase/vantage/components";
import { Button } from "@squadbase/vantage/ui";
import { TrendingUp } from "lucide-react";

export default function Example() {
  return (
    <PageShell className="w-[44rem] rounded-xl border">
      <PageShellHeader className="py-8">
        <PageShellHeading>
          <PageShellTitle>売上ダッシュボード</PageShellTitle>
          <PageShellDescription>直近 6 か月の推移</PageShellDescription>
        </PageShellHeading>
        <PageShellHeaderEnd>
          <PageShellMeta>最終更新 10 分前</PageShellMeta>
          <PageShellActions>
            <Button variant="outline" size="sm">
              エクスポート
            </Button>
          </PageShellActions>
        </PageShellHeaderEnd>
        <PageShellSummary>
          <PageShellSummaryCard accent="accent">
            <TrendingUp />
            <div>関東が全体の 52% を占めています。</div>
          </PageShellSummaryCard>
          <PageShellSummaryCard accent="amber">
            <TrendingUp />
            <div>九州は 3 か月連続で減少しています。</div>
          </PageShellSummaryCard>
        </PageShellSummary>
      </PageShellHeader>
      <PageShellContent className="p-6 text-sm text-muted-foreground">
        ここに本文が入ります。
      </PageShellContent>
    </PageShell>
  );
}
import {
  PageShell,
  PageShellHeader,
  PageShellHeading,
  PageShellTitle,
  PageShellDescription,
  PageShellHeaderEnd,
  PageShellMeta,
  PageShellActions,
  PageShellSummary,
  PageShellSummaryCard,
  PageShellContent,
  pageShellSummaryCardVariants,
} from "@squadbase/vantage/components";

パーツ

パーツ 役割
PageShell 全体の縦積み
PageShellHeader 下線付きのヘッダー帯。左に見出し、右に HeaderEnd の 2 列
PageShellHeading / PageShellTitle / PageShellDescription 見出しブロック
PageShellHeaderEnd 右端の縦積み
PageShellMeta 「最終更新 10 分前」のような補足
PageShellActions ボタン行
PageShellSummary サマリーカードのグリッド(ヘッダー内で全幅)
PageShellSummaryCard サマリー 1 枚。accent で色が付く
PageShellContent 本文

PageShellSummaryCardaccentdefault / accent / amber / blue / emerald / red です。accent はテーマの --chart-1 を使うので、テーマトークンを変えると一緒に変わります。

レイアウトと組み合わせる

ページごとに書くより、_layout.tsx に置いて全ページで共有する方が実際的です (ルーティング を参照)。

このページは役に立ちましたか?