Foundation
PackagesUIComponentsButtons

ActionLinkButton

ページ遷移を伴うアクションに使用するリンクコンポーネント。見た目はActionButton、機能はリンクとして動作する。

いつ使うか

  • ページ遷移を伴うアクションに使用する(「次へ」「ダッシュボードへ」「一覧に戻る」等)
  • 見た目はボタンだが、意味的にはナビゲーションである場合に使用する
  • variant で視覚的な重要度を使い分ける

いつ使わないか

  • フォーム送信やデータ保存など、ページ遷移を伴わないアクションには使わない。ActionButton を使用する
  • インラインのテキストリンクには使わない。テキストリンクコンポーネントを使用する
  • 外部サイトへのリンクには使わない。テキストリンクに ExternalLink アイコンを添えるのが適切である

Usage

import { ActionLinkButton } from '@bi-shop-it/ui/action-link-button';

<ActionLinkButton href="/dashboard" label="ダッシュボードへ" />
<ActionLinkButton href="/list" label="一覧に戻る" variant="secondary" />

UIProviderの設定

ActionLinkButtonUIProvider から注入されたリンクコンポーネントを使用する。Next.jsの場合は next/link を注入することで、クライアントサイドナビゲーションが有効になる。

// app/layout.tsx
import { UIProvider } from '@bi-shop-it/ui/provider';
import Link from 'next/link';

const RootLayout = ({ children }) => (
  <UIProvider linkComponent={Link}>{children}</UIProvider>
);

UIProvider を設定しない場合は、通常の <a> タグとして動作する。

Props

Propデフォルト説明
hrefstring遷移先のURL
labelstringボタンに表示するテキスト
variant'primary' | 'secondary' | 'destructive' | 'ghost' | 'outline''primary'ボタンのスタイル
iconIconNameラベルに併せて表示するアイコン名
iconPosition'start' | 'end''start'アイコンの表示位置
size'sm' | 'md' | 'lg''md'ボタンのサイズ

variant の使い分け

variant用途
primary画面内で最も重要な遷移先。1画面に1つが原則ダッシュボードへ、次へ
secondary副次的な遷移。primary と並べて使う一覧に戻る、キャンセル
destructive破壊的操作の確認ページへの遷移削除ページへ
ghost控えめなナビゲーション詳細を見る
outline枠線のみのナビゲーションオプション

状態

Variants

<ActionLinkButton href="/dashboard" label="ダッシュボードへ" variant="primary" />
<ActionLinkButton href="/list" label="一覧に戻る" variant="secondary" />
<ActionLinkButton href="/delete" label="削除ページへ" variant="destructive" />
<ActionLinkButton href="/detail" label="詳細" variant="ghost" />
<ActionLinkButton href="/options" label="オプション" variant="outline" />

With Icon

icon にアイコン名を文字列で指定する。iconPosition でアイコンの位置を変更できる。

<ActionLinkButton href="/" icon="Home" label="ホームへ" />
<ActionLinkButton href="/next" icon="ChevronRight" iconPosition="end" label="次へ" />

Size

<ActionLinkButton href="/docs" label="小" size="sm" />
<ActionLinkButton href="/docs" label="中" size="md" />
<ActionLinkButton href="/docs" label="大" size="lg" />

ActionButtonとの使い分け

基準ActionButtonActionLinkButton
目的アクション実行(送信、保存)ページ遷移(次へ、ダッシュボードへ)
HTML要素<button><a>(UIProvider経由で next/link 等)
isLoadingありなし
disabledありなし
onClickありなし
hrefなしあり

アクセシビリティ

コンポーネントが内部で処理すること

  • 装飾アイコンに aria-hidden="true" を自動付与し、スクリーンリーダーから隠す
  • <a> 要素として描画されるため、スクリーンリーダーがリンクとして認識する

利用者が対応すること

  • ラベルは遷移先が明確に伝わるテキストにすること(「次へ」「ダッシュボードへ」等。「クリック」は避ける)
  • 同一ページ内のアクションには使わないこと。ページ遷移を伴わない操作は ActionButton を使う

関連コンポーネント

  • ActionButton — ページ遷移を伴わないアクション実行に使用する

On this page