# PriceInput Ô nhập giá bán theo nghìn đồng, có đơn vị "k" phía sau, dùng trong tab Giá bán của chủ quán. ## Khi nào dùng - Nhập giá một món (Trà sữa 25k, Matcha 30k), bước .5 nghìn. - Nhập một thông số có đơn vị ngắn (phần trăm, ngày) trong bảng chủ game (đổi chữ ở `__unit`). ## Biến thể | Biến thể | Lớp | Dùng khi | |---|---|---| | Mặc định | `tt-price` + `tt-price__input` | Ô rộng 88px | | Rộng | `tt-price__input--wide` | Ô rộng 112px (bảng chủ game) | ## Cấu trúc ```html
k
``` ## Trạng thái | Trạng thái | Hiệu ứng | |---|---| | Mặc định | Viền 2px `line`, nền `bg`, số căn giữa | | Focus | Vòng `focus-ring` 3px | Game không có trạng thái "giá đắt" nên component không định nghĩa cảnh báo; nơi dùng có thể tự thêm bằng `aria-invalid` nếu cần. ## Token sử dụng `line`, `bg`, `ink`, `soft`, `radius-10`, `space-4/8`. ## Khả năng tiếp cận - Bắt buộc `aria-label` có tên món và đơn vị ("Trà sữa (nghìn đồng)") vì nhãn thấy được nằm ở hàng bên cạnh. - `inputmode="decimal"`; nút spin mặc định bị ẩn. ## Nên / Không nên | Nên | Không nên | |---|---| | Nhập theo nghìn đồng, hiển thị "k" | Bắt người chơi gõ "25000" | | Dùng `tt-num` cho số đều cột | Đặt ô quá hẹp làm cắt số | ## Nguồn `.pin`, `.pin input`, `.pin span`, `.owner .pin input` (112px), ẩn spin button — css/style.css; markup `class="pin"` trong js/game.js.