Bỏ qua tới nội dung
Component / 031 / NEXOFRAME

Alert

Mẫu chuẩn

Thông báo nằm trong dòng chảy trang, ở lại cho tới khi nội dung sinh ra nó đổi. Năm kind theo năm status kind đã có sẵn trong hệ token.

Tailwind thuần5 kindKhông nút đóngrole tự chọn theo kind

Playground

Đổi brand, theme, kind, icon, tiêu đề, hành động và nội dung để xem cùng một Alert thích ứng.

LIVE PREVIEW

Đang thử nghiệm

Bản ghi sẽ được đồng bộ lại trong lần đăng nhập kế tiếp.

role hiện tại: status — đọc lịch sự, không ngắt.

import { Alert, AlertIcon, AlertContent, AlertTitle } from "@nexobox/ui";

<Alert kind="information">
  <AlertIcon icon={InformationCircleIcon} />
  <AlertContent>
    <AlertTitle>Đang thử nghiệm</AlertTitle>
    Bản ghi sẽ được đồng bộ lại trong lần đăng nhập kế tiếp.
  </AlertContent>
</Alert>

Khi nào sử dụng

Nên dùng

Một thông báo gắn với nội dung đang hiển thị: kết quả một hành động vẫn còn hiệu lực trên trang, điều kiện hiện tại của khối nội dung đang đọc, hoặc một ghi chú đứng cạnh nội dung để người đọc không bỏ lỡ khi cuộn qua khu vực đó.

Khi nào không dùng

Tránh dùng

Một thông báo thoáng qua, tự biến mất, neo ở một vùng cố định của màn hình — đó là Toaster, không phải Alert. Alert ở lại cho tới khi nội dung sinh ra nó đổi; Toaster hết hạn theo duration hoặc bị đóng, và không chiếm chỗ trong luồng nội dung. Một lỗi gắn với một trường form cụ thể — đặt cạnh trường đó. Một câu hỏi cần câu trả lời — dùng Dialog.

Anatomy

#PhầnGhi chú
1Icon (AlertIcon)Tuỳ chọn. Hugeicons qua Icon của package, glyph 20px. Ô icon cao bằng một dòng body và căn glyph giữa ô, nên icon khóa vào dòng chữ đầu. Consumer tự chọn icon — không tự gán theo kind.
2Tiêu đề (AlertTitle)Tuỳ chọn. Một thẻ p, không phải heading — không chiếm một bậc trong outline heading của trang.
3Nội dung (AlertContent)Bắt buộc. Một div, có thể chứa văn bản, danh sách hoặc một Button hành động.

Không có nút đóng. Alert ở lại cho tới khi nội dung sinh ra nó đổi — đó là định nghĩa của nó; một nút đóng sẽ cho nó một cách biến mất thứ hai. Alert không nhấn được ở cấp vỏ — nếu nội dung chứa một Button, nút đó tự mang trạng thái của nó.

Variants

NEUTRAL

Bản nháp

--nf-semantic-status-neutral-*.
SUCCESS

Đã lưu

--nf-semantic-status-success-*.
WARNING
DANGER
INFORMATION

Đang thử nghiệm

--nf-semantic-status-information-*.

Mặc định là information. Không có size prop — một kích thước duy nhất cho cả năm kind.

States

Alert không nhận tương tác ở cấp vỏ: không hover, không focus-visible, không disabled riêng. Trạng thái thực sự khác nhau là tổ hợp phần hiện diện, mỗi tổ hợp render thật bên dưới.

ĐỦ BA PHẦN

Đang thử nghiệm

Tính năng này đang ở giai đoạn thử nghiệm nội bộ.

Icon + AlertTitle + AlertContent.

KHÔNG ICON

Bản nháp

Chưa có thay đổi nào được gửi đi.

AlertTitle + AlertContent, không AlertIcon.

KHÔNG TIÊU ĐỀ
Đã lưu thay đổi của bạn.

Icon + AlertContent, không AlertTitle.

CHỈ NỘI DUNG

Chỉ AlertContent.

NỘI DUNG DÀI

Không cắt, không giới hạn chiều cao.

CHỨA HÀNH ĐỘNG

Có bản cập nhật

Một phiên bản mới của trang đã sẵn sàng.

Button tự mang trạng thái của nó — Alert không truyền trạng thái xuống.

Empty, loading, error: không có. Alert không bất đồng bộ — nó render hoặc không render.

Bàn phím & trợ năng

Alert không nhận tiêu điểm và không có tabindex -- không nằm trong thứ tự Tab, nó không phải một control.
danger và warning nhận role="alert" -- ngắt để đọc ngay khi node được thêm vào DOM, tương đương aria-live="assertive" ngầm định.
neutral, success, information nhận role="status" -- đọc lịch sự, tương đương aria-live="polite", không ngắt việc đang đọc dở.
Khi AlertContent chứa một Button, nút đó nhận focus và phím tắt bình thường của Button -- Alert không chặn hay đổi hành vi đó.

API & triển khai

PropMặc địnhQuy ước
Alert kindinformationneutral | success | warning | danger | information.
Alert roletheo kind — "alert" cho danger/warning, "status" cho ba kind còn lạiGhi đè được cho một trường hợp cụ thể.
AlertIcon icon—Bắt buộc khi dùng AlertIcon. Hugeicons qua @nexobox/ui, không tự chọn theo kind.
AlertTitle children—Tuỳ chọn. Nội dung tiêu đề.
AlertContent children—Bắt buộc. Nội dung chính — văn bản, danh sách hoặc Button.

Mọi thuộc tính gốc còn lại (className, style, id...) của từng phần được truyền thẳng qua ...props.

Design tokens

Alert đọc thẳng năm nhóm semantic: --nf-semantic-status-neutral/success/warning/danger/information-background, -border, -foreground, -icon. Đệm đọc --nf-component-alert-padding (space.4, 16px). Bo góc đọc --nf-component-alert-radius (12px). Icon cách cột chữ bằng --nf-component-alert-gap (12px). Trong cột, tiêu đề, câu chữ và Button cách nhau bằng --nf-component-alert-content-gap (8px). Icon dùng --nf-component-icon-size, 20px, căn giữa một ô cao bằng dòng body.

Do / Don't

Nên dùng

Dùng Alert cho một điều kiện vẫn còn đúng khi người đọc cuộn tới nó. Đặt Button hành động bên trong AlertContent.

Tránh dùng

Dùng Alert cho một xác nhận thoáng qua như "Đã lưu" — đó là Toaster. Dùng kind="danger" cho một ghi chú không khẩn — role="alert" sẽ ngắt không cần thiết.