Thành phần Menu thả xuống đa năng, hoàn toàn tuân thủ tiêu chuẩn tiếp cận WAI-ARIA Menu Button Pattern dựa trên máy trạng thái Zag.js của Ark UI và hệ thống thiết kế Tailwind CSS v4. Hỗ trợ điều hướng bàn phím toàn diện, menu lồng nhau (submenus), menu ngữ cảnh (chuột phải), checkbox, radio items, tính toán vị trí thông minh và cung cấp cả hai phong cách: Tiện ích cấp cao (Convenience API) lẫn Ghép nối linh hoạt (Compound API).
1. Cơ bản (Basic Usage)
Khởi tạo menu thả xuống chỉ với một component cấp cao gọn gàng, tự động định vị và quản lý trạng thái.
Tích hợp slot icon đầu dòng và nhãn phím tắt bàn phím chuẩn macOS/Windows trực quan, dễ nhận biết.
Thao tác tài liệu
Sao chép⌘C
Dán nội dung⌘V
Cắt mục⌘X
Tạo bản sao⌘D
Đổi tên tệpF2
Tải xuống⌘S
Xóa vĩnh viễn⌫
Hành động vừa thực hiện: (chưa có)
3. Phân nhóm mục & Tiêu đề nhóm (Grouped with Labels)
Tổ chức các mục liên quan thành các khối mạch lạc bằng Group, GroupLabel và đường phân cách Separator.
Tùy chỉnh hệ thống
Cá nhân hóa
Giao diện & Chủ đề
Ngôn ngữ (Tiếng Việt)
Bảo mật & Quyền riêng tư
Xác thực 2 yếu tố (2FA)
Lịch sử đăng nhập
Quản lý phiên làm việc
Cài đặt nâng cao
Cấu hình tham số
4. Menu lồng nhau đa cấp (Nested Submenus)
Mở rộng menu phụ theo tầng bậc với Menu.TriggerItem và chuyển cảnh mượt mà khi hover hoặc dùng phím mũi tên.
Tệp & Tùy chọn nâng cao
Tạo tệp mới⌘N
Thư mục mới⇧⌘N
Chia sẻ liên kết...
Sao chép liên kết
Gửi qua Email
Chia sẻ qua Telegram
Xuất tệp báo cáo...
Định dạng Adobe PDF (.pdf)
Bảng tính Excel (.xlsx)
Dữ liệu thô JSON (.json)
In tài liệu⌘P
Thao tác đã chọn: (chưa chọn)
5. Hộp kiểm tra trạng thái (Checkbox Items)
Bật hoặc tắt nhiều tùy chọn độc lập mà không cần đóng menu, có biểu tượng checkmark mượt mà.
Tùy chọn hiển thị
Giao diện người dùng
Hiển thị thanh điều hướng (Sidebar)⌘B
Hiển thị thanh trạng thái (Status Bar)⌘J
Trình soạn thảo
Tự động lưu sau 3 giây
Tự động xuống dòng mềm (Word Wrap)⌥Z
Sidebar: BậtStatus Bar: BậtTự động lưu: Tắt
6. Lựa chọn đơn nguyên (Radio Items)
Nhóm lựa chọn 1 trong nhiều phương án (chế độ xem, sắp xếp) với dấu tròn chỉ thị radio đồng bộ màu chủ đề.
Bố cục & Sắp xếp
Chế độ hiển thị
Dạng lưới ô vuông (Grid)
Danh sách chi tiết (List)
Thu gọn tối đa (Compact)
Tiêu chí sắp xếp
Ngày tạo mới nhất
Tên tệp chữ cái (A-Z)
Dung lượng tệp lớn nhất
Hiển thị: grid
Sắp xếp: date
7. Thao tác nhạy cảm & Cảnh báo (Destructive Items)
Biến thể màu đỏ cảnh báo dành riêng cho các hành vi xóa, hủy kích hoạt hoặc đăng xuất tài khoản.
Khu vực nguy hiểm & Quản lý
Cấu hình dự án
Đổi thông tin dự án
Phân quyền thành viên
Đưa vào lưu trữ (Archive)
Hành động nhạy cảm
Rời khỏi nhóm dự án
Xóa vĩnh viễn dự án⇧⌫
8. Menu ngữ cảnh chuột phải (Context Menu)
Bấm chuột phải hoặc nhấn giữ trên màn hình cảm ứng tại vùng chỉ định để hiển thị menu ngữ cảnh theo tọa độ con trỏ.
Vùng tương tác menu ngữ cảnh
Nhấp chuột phải vào bất kỳ điểm nào trong khung này (hoặc nhấn giữ trên thiết bị cảm ứng) để mở Menu
Xem trước nhanh
Mở trong tab mới
Ghim lên đầu trang
Sao chép URL⌘C
Chia sẻ tệp
Thông tin chi tiết
Chuyển vào thùng rác
9. Điều khiển trạng thái từ bên ngoài (Controlled Mode)
Lập trình viên toàn quyền đóng hoặc mở menu thông qua React State với prop open và sự kiện onOpenChange.
Mở Menu bằng nút bên ngoàiTrigger Menu
Nhiệm vụ 1: Hoàn thành
Mở khóa tài nguyên
Khóa chỉnh sửa
Trạng thái Controlled:CLOSED (Đang đóng)
10. Kích thước & Phong cách diện mạo (Sizes & Variants)
3 kích thước (sm, md, lg) kết hợp 4 diện mạo trực quan: default, subtle, elevated và hiệu ứng kính mờ glass.
1. So sánh 3 kích cỡ (Sizes: sm, md, lg)
Kích thước Nhỏ (sm)
Tùy chọn thứ nhất
Tùy chọn thứ hai
Xóa mục này
Kích thước Chuẩn (md)
Tùy chọn thứ nhất
Tùy chọn thứ hai
Xóa mục này
Kích thước Lớn (lg)
Tùy chọn thứ nhất
Tùy chọn thứ hai
Xóa mục này
2. Các biến thể diện mạo (Variants: default, subtle, elevated, glass)
Default
Tính năng giao diện
Hiệu ứng thẩm mỹ
Cấu hình biến thể
Subtle
Tính năng giao diện
Hiệu ứng thẩm mỹ
Cấu hình biến thể
Elevated
Tính năng giao diện
Hiệu ứng thẩm mỹ
Cấu hình biến thể
Glass (Kính mờ)
Tính năng giao diện
Hiệu ứng thẩm mỹ
Cấu hình biến thể
11. Hướng neo & Mũi tên định hướng (Placements & Arrow)
Neo menu ở 4 hướng chính (top, bottom, left, right) với mũi tên trỏ vào nút kích hoạt đồng bộ chuẩn xác.
Hướng trên (Top)
Hành động phía trên 1
Hành động phía trên 2
Hướng dưới (Bottom)
Hành động phía dưới 1
Hành động phía dưới 2
Hướng trái (Left)
Hành động bên trái 1
Hành động bên trái 2
Hướng phải (Right)
Hành động bên phải 1
Hành động bên phải 2
12. So sánh Convenience API và Compound API
Linh hoạt lựa chọn giữa Convenience API cho nhu cầu thường ngày hoặc Compound API khi cần can thiệp sâu.
Convenience API
Ngắn gọn, tích hợp sẵn Trigger & Positioner
Chỉ cần 1 component duy nhất bọc prop trigger. Rất thích hợp cho 90% các dropdown menu thông thường.
Mở Convenience Menu
Thao tác 1
Thao tác 2
Xóa bỏ
Compound API
Tự do bố cục, mở rộng linh hoạt không giới hạn
Sử dụng từng viên gạch ghép nối: <ArkMenu.Root>, <ArkMenu.Trigger>, <ArkMenu.Positioner>, <ArkMenu.Content>.
Mở Compound Menu
Ghép nối linh hoạt
Tùy biến cao độ
Tích hợp Submenu
13. Mũi tên định hướng chuyên sâu (Menu.Arrow & ArrowTip)
Khai báo trực tiếp các phần tử <ArkMenu.Arrow> và <ArkMenu.ArrowTip> trong mô hình Compound, kết hợp giao diện hồ sơ người dùng (User Avatar) và menu tác vụ thanh công cụ (Toolbar).
Cơ chế hoạt động của Mũi tên (`Menu.Arrow` & `Menu.ArrowTip`)
Ark UI tự động tính toán tọa độ và góc xoay của <Menu.ArrowTip> theo hướng neo (placement). Mũi tên có kích thước chuẩn --arrow-size: 12px đến 16px với đường viền và màu nền đồng bộ với bề mặt nổi của Menu.
1. Menu Hồ sơ người dùng với Mũi tên chỉ hướng (`ArkMenu.Arrow` cỡ lớn 14px)
NC
Nguyễn Chill
Admin • Online
Nguyễn Chill
admin@chillcms.com
ChillCMS Pro Member
Hồ sơ của tôi
Cài đặt chung⌘,
Quản lý thanh toán
Thông báo
Trợ giúp & Tài liệu
Đăng xuất
2. Menu Tác vụ Thanh công cụ (Toolbar Menu có Arrow định hướng)
Thanh công cụ:Chọn màu chủ đề (Top Arrow)
Bảng màu giao diện
Tím Indigo
Xanh Emerald
Cam Amber
Đỏ Rose
Thao tác nhanh (Bottom-End Arrow)
Xuất báo cáo ngay
Chia sẻ qua URL
Khóa phiên làm việc
3. Kiểm tra Mũi tên chỉ hướng tại 4 vị trí (Top, Bottom, Left, Right)
Mũi tên phía Dưới (trỏ vào nút)
Mục menu phía trên 1
Mục menu phía trên 2
Mũi tên phía Trên (trỏ vào nút)
Mục menu phía dưới 1
Mục menu phía dưới 2
Mũi tên bên Phải
Mục menu bên trái 1
Mục menu bên trái 2
Mũi tên bên Trái
Mục menu bên phải 1
Mục menu bên phải 2
Giỏ hàng
Kiểm tra sản phẩm trước khi chuyển sang thanh toán.
Giỏ hàng của bạn đang trống
Thêm sản phẩm từ cửa hàng để xem tại đây và tiếp tục quy trình thanh toán.