# EmptyState Khung viền đứt báo "chưa có gì ở đây": ô khách trống trong làn, ô không dữ liệu, và dòng "Đang chờ khách…" ở quầy. ## Khi nào dùng - Làn khách chưa có ai ("Chưa có khách"). - Danh sách/ô chưa có dữ liệu thì hiện dấu "—". - Quầy pha đang rảnh: "Đang chờ khách… / Ngồi chơi xíu đi". - Đang tải hoặc lỗi thì không dùng; đây chỉ để báo trống. ## Biến thể | Biến thể | Lớp | Dùng khi | |---|---|---| | Thường | `tt-empty` | Khung viền đứt 2px `line`, chữ `soft` .8rem, cao tối thiểu 84px | | Làn khách | `tt-empty tt-empty--lane` | Ô trống trong làn: rộng 100%, cao 128px | | Sân khấu | `tt-empty tt-empty--stage` | Trên quầy 768px: chữ `stage-muted` 24px đậm, nền `stage-paper` .85, viền `stage-track` | Phần tử con: `tt-empty__icon` (sticker 40px, vd. `stk_cup`), `tt-empty__hint` (dòng phụ nhỏ hơn), `tt-empty__none` (dấu "—"). ## Cấu trúc ```html
Chưa có khách
—
Đang chờ khách…Ngồi chơi xíu đi
``` ## Trạng thái | Trạng thái | Hiệu ứng | |---|---| | Mặc định | Tĩnh, không bấm được (game đặt `cursor: default`) | | Có dữ liệu | Thay cả khung bằng nội dung thật, đừng giữ viền đứt | ## Token sử dụng `line`, `soft`, `alpha-empty-hint` (độ đục dòng gợi ý), `stage-muted`, `stage-paper`, `stage-track`, `radius-12/14`, `space-4/6/12`. ## Khả năng tiếp cận - Ảnh trang trí dùng `alt=""`; chữ nằm cạnh ảnh đã đủ nghĩa. - Nếu trạng thái trống xuất hiện/biến mất động, đặt khung trong vùng `aria-live="polite"` ở nơi dùng. - `soft` trên `bg` / `panel` đạt tối thiểu 5.52:1 ở mọi theme; `stage-muted` trên `stage-paper` chỉ dùng cho chữ lớn 24px đậm. ## Nên / Không nên | Nên | Không nên | |---|---| | Câu thân thiện, ngắn ("Ngồi chơi xíu đi") | Văn bản kỹ thuật ("No data") | | Giữ cùng chiều cao với thẻ khách (`--lane`) để làn không nhảy | Đổi chiều cao khi khách tới | | Kèm sticker `stk_cup` khi khung đủ rộng | Nhồi ảnh lớn vào ô 84px | ## Nguồn `.cust.empty` (viền đứt, nền trong, `.8rem`, `soft`), `.lane .cust.empty` (100% x 128px) — css/style.css dòng 352 và 337; `.q3idle`, `.q3idle small` (chữ `#8a6f58` thành `stage-muted`, 800; dòng phụ .8em/700/opacity .8) và `.q3wait` (nền `rgba(255,250,240,.85)` thành `stage-paper` .85, bo 12, padding 4px 12px) — dòng 604, 614; `.none` — dòng 371. Viền đứt của `--stage` dùng `stage-track` (game không có viền, thêm để khung nhìn thấy trên nền sân khấu).