Live Docs

Feedback /

stable

Alert

Banner status inline (info/success/warning/error/neutral) dengan ikon bawaan, 3 variant, dan opsi dismissible.

import { Alert } from "@naraya/ui";

Examples

Tones

Info
Versi baru tersedia, silakan refresh.
Berhasil
Data berhasil disimpan.
<Alert tone="info" title="Info">Versi baru tersedia.</Alert>
<Alert tone="success" title="Berhasil">Data disimpan.</Alert>
<Alert tone="warning" title="Perhatian">Kuota hampir penuh.</Alert>
<Alert tone="error" title="Gagal">Koneksi terputus.</Alert>

Variants

Soft
Default — latar lembut.
Solid
Latar penuh, kontras tinggi.
Outline
Garis tepi, latar surface.
<Alert variant="soft" tone="success">...</Alert>
<Alert variant="solid" tone="success">...</Alert>
<Alert variant="outline" tone="success">...</Alert>

Dismissible & tanpa title

Notifikasi yang bisa ditutup.
<Alert tone="info" dismissible onDismiss={() => {}}>
  Notifikasi yang bisa ditutup.
</Alert>

<Alert tone="warning" icon={null}>Tanpa ikon.</Alert>

Props

PropTypeDefaultDescription
tone"info" | "success" | "warning" | "error" | "neutral""info"Warna semantik + ikon bawaan.
variant"soft" | "solid" | "outline""soft"Gaya visual.
titleReactNodeJudul tebal di atas body.
iconReactNode | nullOverride ikon tone. null = sembunyikan ikon.
dismissiblebooleanfalseTampilkan tombol tutup (✕).
onDismiss() => voidDipanggil saat alert ditutup.
childrenReactNodeIsi/body alert.

Tokens Used

--color-info / success / warning / error

Warna per tone

--color-*-content

Teks pada variant solid

--bg-surface

Latar variant outline

--text-main

Teks body (soft/outline)

Accessibility

  • tone error/warning memakai role='alert' (diumumkan langsung); info/success memakai role='status'.
  • Tombol dismiss punya aria-label='Dismiss'.
  • Jangan andalkan warna saja — title/ikon memperjelas makna untuk color-blind.