Components

49 primitive Tầng 1 — shadcn/ui kiểu new-york, chỉnh lại để màu đi qua một token vai trò của Comitor và theo bảng tương phản đang dùng, bảng mặc định hay data-contrast="high". API vẫn giữ dáng shadcn: variant bằng cva, asChild ở chỗ hợp lý, và móc data-slot để nhắm vào từng phần.

Mọi thứ dưới đây import từ @comitor/ui, trừ khi thẻ ghi một entry khác.

2.1.0 thêm 18 component Tầng 1 nữa, chuyển từ Dice UI và export từ cùng entry: Kanban, Stepper, Timeline, TimePicker, TagsInput, Mention, ActionBar, PhoneInput, MaskInput, Rating, CircularProgress, Banner, ResponsiveDialog, Tour, KeyValue, Cropper, ScrollSpy và BadgeOverflow. Mỗi cái là một tổ hợp nhiều phần chứ không phải một primitive, nên site này đặt chúng ở Composites — bắt đầu từ Kanban, PhoneInput hoặc ResponsiveDialog — và 49 component ở trên không tính chúng.

Hành động

Control thực hiện một việc, cái nào cũng nhận focus và dùng được bằng bàn phím. Kbd là ngoại lệ: nó chỉ hiện các phím tạo nên một phím tắt.

Nhập liệu

Control của form. Viền lúc nghỉ, hover, focus và lỗi đều đi qua token vai trò, nên vẫn đọc rõ ở cả hai bảng tương phản.

Hiển thị

Bề mặt và trạng thái. Mọi variant theo tông đều nói qua bậc -ink, nhưng không phải lúc nào cũng cùng cách: Badge đặt chữ ink trên tint của chính màu nó, còn Alert giữ nền card trơn phía sau vì bậc fill đặc kéo chữ xuống 1,59:1.

Lớp phủ

Mọi thứ nổi trên trang, từ một tooltip một dòng tới một modal đầy đủ.

Điều hướng

Đi giữa các màn hình. Tabs giữ state trên một trang; bộ tab mà mỗi mục là một route thật thì là RouteTabs.

Bố cục

Container định hình một vùng chứ không lấp đầy nó.

Entry khác

Tài liệu đặt cạnh các primitive nhưng không thuộc Tầng 1 ở entry chính — mỗi thẻ ghi rõ import từ đâu.

Ngoài các primitive

Gói có thêm hai tầng nằm trên tầng này. Composite Tầng 2 là các mẫu lặp lại trong mọi app Comitor, ráp từ các primitive ở trên và export từ cùng entry @comitor/ui. Tầng 3 là khung app, cần Next và next-themes nên nằm sau @comitor/ui/shell.