Skip to content
API 风格:

Alert アラート ​

ページレベルの静的な警告提示です(命令的サービスではなく、Message とは区別されます)。セマンティックと live region のロールが連動します。warning/danger は role="alert" で即時に読み上げられ、info/success は role="status" で穏やかに読み上げられます。

基本的な使い方 ​

4 つのセマンティック

通知メッセージです。

操作が正常に完了しました。

vue
<script setup lang="ts">
</script>

<template>
  <!-- 中立の通知 -->
  <LhAlert>通知メッセージです。</LhAlert>
  <!-- success -->
  <LhAlert type="success">操作が正常に完了しました。</LhAlert>
  <!-- warning -->
  <LhAlert type="warning">ディスク容量がもうすぐ不足します。</LhAlert>
  <!-- danger -->
  <LhAlert type="danger">ネットワーク接続が切断されました。</LhAlert>
</template>
vue
<script>
export default {}
</script>

<template>
  <!-- 中立の通知 -->
  <LhAlert>通知メッセージです。</LhAlert>
  <!-- success -->
  <LhAlert type="success">操作が正常に完了しました。</LhAlert>
  <!-- warning -->
  <LhAlert type="warning">ディスク容量がもうすぐ不足します。</LhAlert>
  <!-- danger -->
  <LhAlert type="danger">ネットワーク接続が切断されました。</LhAlert>
</template>

アイコンとタイトル ​

アイコンとタイトル
保存成功

ドキュメントはクラウドに同期されました。

vue
<script setup lang="ts">
</script>

<template>
  <!-- 保存成功 -->
  <LhAlert type="success" show-icon title="保存成功">ドキュメントはクラウドに同期されました。</LhAlert>
  <!-- 削除失敗 -->
  <LhAlert type="danger" show-icon title="削除失敗">このアイテムは他の共同作業者が編集中です。</LhAlert>
</template>
vue
<script>
export default {}
</script>

<template>
  <!-- 保存成功 -->
  <LhAlert type="success" show-icon title="保存成功">ドキュメントはクラウドに同期されました。</LhAlert>
  <!-- 削除失敗 -->
  <LhAlert type="danger" show-icon title="削除失敗">このアイテムは他の共同作業者が編集中です。</LhAlert>
</template>

閉じる ​

閉じるボタン

右のボタンをクリックして閉じてください。

閉じるボタンのテキストをカスタマイズ。

vue
<script setup lang="ts">
</script>

<template>
  <!-- デフォルトの閉じるテキスト -->
  <LhAlert closable>右のボタンをクリックして閉じてください。</LhAlert>
  <!-- カスタム閉じるテキスト -->
  <LhAlert closable close-label="了解しました">閉じるボタンのテキストをカスタマイズ。</LhAlert>
</template>
vue
<script>
export default {}
</script>

<template>
  <!-- デフォルトの閉じるテキスト -->
  <LhAlert closable>右のボタンをクリックして閉じてください。</LhAlert>
  <!-- カスタム閉じるテキスト -->
  <LhAlert closable close-label="了解しました">閉じるボタンのテキストをカスタマイズ。</LhAlert>
</template>

プレーンスタイル ​

プレーンスタイル
vue
<script setup lang="ts">
</script>

<template>
  <!-- warning プレーン -->
  <LhAlert type="warning" plain show-icon>淡い背景に枠線のプレーンスタイル。</LhAlert>
  <!-- danger プレーン -->
  <LhAlert type="danger" plain show-icon>淡い背景色の上に配置するのに適しています。</LhAlert>
</template>
vue
<script>
export default {}
</script>

<template>
  <!-- warning プレーン -->
  <LhAlert type="warning" plain show-icon>淡い背景に枠線のプレーンスタイル。</LhAlert>
  <!-- danger プレーン -->
  <LhAlert type="danger" plain show-icon>淡い背景色の上に配置するのに適しています。</LhAlert>
</template>

Alert API ​

Props ​

プロパティ説明型デフォルト値
typeセマンティックタイプ"info" | "success" | "warning" | "danger"'info'
titleタイトル(title スロットでも設定可能)string—
closable閉じられるかどうかbooleanfalse
showIconセマンティックアイコンを表示するかどうかbooleanfalse
plain淡色のプレーンスタイル(白地に枠線)booleanfalse
closeLabel閉じるボタンのアクセシブルネーム(未指定時は言語パック alert.close を使用)string—
sxsx クイックレイアウトプロパティLhSxProps—

Events ​

イベント説明パラメータ
close閉じるボタンをクリックした後に発火します—

Slots ​

スロット説明
titleカスタムタイトル
default説明内容

アクセシビリティ ​

  • warning/danger → role="alert"(即時に読み上げ)。info/success → role="status"(穏やかに読み上げ)
  • 閉じるボタンは本物の <button> で、aria-label は言語パック alert.close を使用。:focus-visible のフォーカスリング付き
  • セマンティックカラーの淡い背景は color-mix() で派生し、テーマとダークモードに自動的に追従します

型定義 ​

このコンポーネントが外部にエクスポートする TypeScript の型構造を以下に示します(packages/components/alert/src/types.ts および @lh-ui/share/core/* のソースから自動抽出。各エントリーをクリックすると完全な定義が表示されます。プロパティの説明は上の Props 表を参照してください):

LhAlertProps
ts
export interface LhAlertProps {
  type?: LhAlertType
  title?: string
  closable?: boolean
  showIcon?: boolean
  plain?: boolean
  closeLabel?: string
  sx?: LhSxProps
}
LhAlertType (@lh-ui/share/core/alert より)
ts
export type LhAlertType = 'info' | 'success' | 'warning' | 'danger'

国風の美で、コードの基を築く