Counter Badge
CounterBadge hiển thị số lượng (thông báo, tin chưa đọc) hoặc một chấm báo có mục mới.
Import
Cài từ npm, chép mã nguồn vào dự án bằng @yugen-ui/cli hoặc shadcn CLI, hoặc import thẳng khi làm việc trong repo này.
// npm install yugen-uiimport { CounterBadge } from "yugen-ui";Biến thể
Mỗi ô là một mẫu độc lập: hover để Copy, hoặc bấm Code để xem mã nguồn.
Appearance & màu
filled (mặc định) / ghost × brand, danger, important, informative.
Kích thước & hình dạng
small, medium, large, extra-large; shape circular (mặc định) hoặc rounded.
Tràn số, số 0 & chấm
overflowCount mặc định 99; showZero để vẫn hiện số 0; dot chỉ là chấm.
Gắn lên nút icon
Đặt badge tuyệt đối ở góc trên-cuối (logical: -inset-e-1) để tự đảo trong RTL.
Cách dùng
- Dùng danger cho việc cần xử lý gấp, brand cho số đếm thông thường.
- Đặt overflowCount phù hợp để badge không phình to.
- Kèm nhãn đọc rõ nghĩa (label) khi đơn vị không phải "thông báo".
- Không dùng CounterBadge cho nhãn chữ — dùng Badge.
- Không hiện số 0 trừ khi số 0 mang thông tin.
Props
| Prop · Kiểu | Mặc định | Mô tả |
|---|---|---|
| countnumber | Mặc định: 0 | Số đếm. |
| overflowCountnumber | Mặc định: 99 | Vượt ngưỡng hiển thị "N+". |
| showZeroboolean | Mặc định: false | Vẫn hiện khi count = 0. |
| dotboolean | Mặc định: false | Chỉ hiện chấm tròn (luôn hiện). |
| appearance"filled" | "ghost" | Mặc định: "filled" | Nền đặc hoặc chỉ chữ. |
| color"brand" | "danger" | "important" | "informative" | Mặc định: "brand" | important = nền đảo (foreground-1). |
| shape"circular" | "rounded" | Mặc định: "circular" | Hình dạng. |
| size"small" | "medium" | "large" | "extra-large" | Mặc định: "medium" | Như Badge. |
| labelstring | Mặc định: — | Nhãn cho trình đọc màn hình; mặc định "{count} thông báo". |
Messages
Chữ có sẵn của component: nhãn, aria-label, thông báo cho trình đọc màn hình.
Mặc định là tiếng Anh. Đổi qua prop messages của YugenProvider, theo namespace bên dưới; messagesVi chứa bản tiếng Việt. Xem Ngôn ngữ giao diện.
messages.counterBadge
| Khoá · Kiểu | Mặc định (tiếng Anh) | messagesVi |
|---|---|---|
| dotstring Nhãn cho trình đọc màn hình khi | Mặc định (tiếng Anh)"New notifications" | messagesVi"Có thông báo mới" |
| count(count: number) => string Nhãn cho trình đọc màn hình theo số đếm. | Mặc định (tiếng Anh)(count) => (count === 1 ? "1 notification" : `${count} notifications`) | messagesVi(count) => `${count} thông báo` |
| overflow(overflowCount: number) => string Nhãn cho trình đọc màn hình khi count vượt | Mặc định (tiếng Anh)(overflowCount) => `More than ${overflowCount} notifications` | messagesVi(overflowCount) => `Hơn ${overflowCount} thông báo` |