Caroa UI

Alert

重要な情報を表示するアラートコンポーネント。

インポート

import { Alert, AlertTitle, AlertDescription } from '@caroainc/ui-components'

個別サブパス(バンドルサイズを抑えたい場合):

import { Alert, AlertTitle, AlertDescription } from '@caroainc/ui-components/alert'

基本的な使い方

Loading...
<Alert>
  <AlertTitle>お知らせ</AlertTitle>
  <AlertDescription>
    重要なお知らせの内容がここに入ります。
  </AlertDescription>
</Alert>

バリアント

Loading...
<Alert>
  <AlertTitle>デフォルト</AlertTitle>
  <AlertDescription>デフォルトのアラートです。</AlertDescription>
</Alert>
 
<Alert variant="success">
  <AlertTitle>成功</AlertTitle>
  <AlertDescription>保存が完了しました。</AlertDescription>
</Alert>
 
<Alert variant="warning">
  <AlertTitle>警告</AlertTitle>
  <AlertDescription>この操作には注意が必要です。</AlertDescription>
</Alert>
 
<Alert variant="info">
  <AlertTitle>情報</AlertTitle>
  <AlertDescription>新しい機能が追加されました。</AlertDescription>
</Alert>
 
<Alert variant="destructive">
  <AlertTitle>エラー</AlertTitle>
  <AlertDescription>エラーが発生しました。</AlertDescription>
</Alert>

アイコン付きアラート

Loading...
<Alert>
  <Icon name="Info" size="sm" />
  <AlertTitle>お知らせ</AlertTitle>
  <AlertDescription>システムメンテナンスのお知らせです。</AlertDescription>
</Alert>
 
<Alert variant="destructive">
  <Icon name="AlertCircle" size="sm" />
  <AlertTitle>エラー</AlertTitle>
  <AlertDescription>入力内容に問題があります。</AlertDescription>
</Alert>

閉じるボタン

onClose を渡すと右上に閉じるボタン(ghostのXアイコン)が表示されます。開閉状態の管理は利用側で行います(onClose が呼ばれたら親の state を更新して非表示にする、など)。

Loading...
function DismissibleAlert() {
  const [open, setOpen] = useState(true)
  if (!open) return null
 
  return (
    <Alert onClose={() => setOpen(false)}>
      <AlertTitle>お知らせ</AlertTitle>
      <AlertDescription>このアラートは閉じるボタン付きです。</AlertDescription>
    </Alert>
  )
}

onClose を渡す場合は利用側がClient Componentである必要があります(RSCからは関数を渡せないため)。 これはAlertに限らず、onClick等の関数propsを受け取る全コンポーネントに共通するReact自体の制約です。 表示のみの用途(onCloseを渡さない場合)は/serverからそのまま利用できます。

Props

PropTypeDefaultDescription
variant'default' | 'destructive' | 'success' | 'warning' | 'info''default'アラートのスタイルバリアント
onClose() => void-閉じるボタンを表示し、クリック時に呼び出すハンドラ。省略時は閉じるボタンを表示しない

アクセシビリティ(role)

variant="destructive" のときは role="alert"(即時に読み上げられる緊急度の高いロール)、それ以外の全variant(default/success/warning/info)は role="status"(穏やかに読み上げられるロール)を使用します。

AlertとSonnerの使い分け

用途推奨
一時的な通知(保存完了など)Sonner
ページ内に残すエラー表示Alert
フォームのバリデーションエラーAlert
重要な注意事項Alert

On this page