Persona
Persona ghép Avatar (hoặc chỉ chấm trạng thái) với tên và tối đa ba dòng thông tin phụ về một ngườ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 { Persona } 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.
Kích thước
extra-small → huge; Avatar 20 → 64px.
Vị trí chữ
after (mặc định), before, below.
Căn chữ & bốn dòng
textAlignment start (mặc định) bám mép trên Avatar; center căn giữa theo chiều dọc.
Chỉ trạng thái
presenceOnly thay Avatar bằng chấm trạng thái — hợp với danh sách dày.
Ảnh
avatar.src cho ảnh chân dung; ảnh không tải được thì quay về chữ viết tắt; shape square cho ứng dụng, bot.
Nhiều người
avatars hiện một AvatarGroup theo size của Persona: stack (mặc định) hoặc pie. Quá maxAvatars (mặc định 3) thì gom vào nút “+N”; primaryText là tên của nhóm.
Cách dùng
- Dòng phụ ngắn gọn: chức danh, trạng thái, giờ địa phương.
- Chọn size theo mật độ: small/medium cho danh sách, huge cho trang hồ sơ.
- Luôn có chữ đi kèm trạng thái khi trạng thái quan trọng.
- Không nhồi quá bốn dòng chữ.
- Không dùng presenceOnly khi người dùng cần nhận diện bằng ảnh.
- Không tô brand cho tên người.
Props
| Prop · Kiểu | Mặc định | Mô tả |
|---|---|---|
| namestring | Mặc định: — | Tên — primaryText mặc định và tên của Avatar. |
| primaryText / secondaryText / tertiaryText / quaternaryTextReactNode | Mặc định: — | Bốn dòng chữ; dòng đầu semibold, các dòng sau caption foreground-2. |
| size"extra-small" | "small" | "medium" | "large" | "extra-large" | "huge" | Mặc định: "medium" | Avatar 20 / 24 / 32 / 40 / 48 / 64px. |
| presence"available" | "busy" | "away" | "offline" | Mặc định: — | Trạng thái hiện trên Avatar. |
| presenceOnlyboolean | Mặc định: false | Chỉ hiện chấm trạng thái. |
| avatar{ src, image, renderImage, color, shape… } | Mặc định: — | Tuỳ chọn truyền cho Avatar. |
| avatars{ name, src?, color?, image?, renderImage? }[] | Mặc định: — | Nhiều người, hiện bằng AvatarGroup theo size của Persona. Không dùng cùng avatar, presence, presenceOnly. |
| avatarLayout"stack" | "pie" | Mặc định: "stack" | Bố cục AvatarGroup của avatars. |
| maxAvatarsnumber | Mặc định: 3 | Số ô tối đa của avatars, tính cả nút “+N”; không áp dụng cho pie. |
| textPosition"after" | "before" | "below" | Mặc định: "after" | Vị trí khối chữ so với Avatar. |
| textAlignment"start" | "center" | Mặc định: "start" | Căn khối chữ. |