アラート Alert

ユーザーに重要な情報を伝えるための目立つ通知バナー。

使用場面: 成功・エラー・警告・情報などの状態を伝える場合 採用例: Bootstrap Alerts, GitHub

ライブデモ

ソースコード

<div class="demo-alerts">
  <div class="demo-alert demo-alert-info" role="alert">
    <span class="demo-alert-icon">ℹ</span>
    <div class="demo-alert-content">
      <strong>お知らせ</strong>
      <p>システムメンテナンスを明日実施します。</p>
    </div>
    <button class="demo-alert-close" aria-label="閉じる">&times;</button>
  </div>
  <div class="demo-alert demo-alert-success" role="alert">
    <span class="demo-alert-icon">✓</span>
    <div class="demo-alert-content">
      <strong>成功</strong>
      <p>データが正常に保存されました。</p>
    </div>
    <button class="demo-alert-close" aria-label="閉じる">&times;</button>
  </div>
  <div class="demo-alert demo-alert-warning" role="alert">
    <span class="demo-alert-icon">⚠</span>
    <div class="demo-alert-content">
      <strong>警告</strong>
      <p>ストレージの残量が少なくなっています。</p>
    </div>
    <button class="demo-alert-close" aria-label="閉じる">&times;</button>
  </div>
  <div class="demo-alert demo-alert-error" role="alert">
    <span class="demo-alert-icon">✕</span>
    <div class="demo-alert-content">
      <strong>エラー</strong>
      <p>接続に失敗しました。再試行してください。</p>
    </div>
    <button class="demo-alert-close" aria-label="閉じる">&times;</button>
  </div>
</div>
.demo-alerts { display: flex; flex-direction: column; gap: 10px; max-width: 480px; }
.demo-alert {
  display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px;
  border-radius: 10px; border-left: 4px solid; animation: demo-alert-in 0.3s ease-out;
}
.demo-alert-info {
  background: color-mix(in srgb, var(--ui-primary) 8%, #fff);
  border-left-color: var(--ui-primary); color: var(--ui-primary);
}
.demo-alert-success { background: #f0fdf4; border-left-color: #22c55e; color: #16a34a; }
.demo-alert-warning { background: #fffbeb; border-left-color: #f59e0b; color: #d97706; }
.demo-alert-error { background: #fef2f2; border-left-color: #ef4444; color: #dc2626; }
.demo-alert-icon { font-size: 16px; flex-shrink: 0; margin-top: 1px; }
.demo-alert-content { flex: 1; }
.demo-alert-content strong { display: block; font-size: 13px; margin-bottom: 2px; }
.demo-alert-content p { margin: 0; font-size: 13px; opacity: 0.85; }
.demo-alert-close {
  background: none; border: none; font-size: 18px; cursor: pointer;
  opacity: 0.5; line-height: 1; padding: 0; color: inherit;
}
.demo-alert-close:hover { opacity: 1; }
@keyframes demo-alert-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
document.querySelectorAll('.demo-alert-close').forEach(btn => {
  btn.addEventListener('click', function() {
    const alert = this.closest('.demo-alert');
    alert.style.opacity = '0';
    alert.style.transform = 'translateY(-8px)';
    alert.style.transition = 'opacity 0.2s, transform 0.2s';
    setTimeout(() => alert.remove(), 200);
  });
});

AIプロンプト

Basic
アラートバナーをHTML/CSSで作ってください。成功・エラー・警告・お知らせの4種類のスタイルがあります。
Custom
以下の仕様でアラートを実装してください。
- 4種類:info(青)、success(緑)、warning(黄)、error(赤)
- プライマリカラー: #2563eb(infoタイプ)
- 左側にアイコン + カラーバー
- 閉じるボタン(×)付き
- フェードイン/アウトアニメーション
- タイトル + 説明文の2行構成
Advanced
アクセシビリティ対応のアラートシステムを実装してください。
- role="alert" + aria-live="assertive"(エラー) / "polite"(info)
- 自動閉じ機能(info, successのみ、5秒後)
- キーボードでの閉じ操作
- アラートのスタック管理
- プログラマティックAPI(alert.show({type, message}))
- アクションボタン付き(「元に戻す」「再試行」など)
- レスポンシブ対応(モバイルではフル幅)
- prefers-color-scheme対応(ダークモード)