@comitor/ui 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -5
- package/dist/components/composite/data-table.d.ts +16 -1
- package/dist/components/composite/data-table.js +41 -7
- package/dist/components/composite/data-table.js.map +1 -1
- package/dist/components/composite/status-config.d.ts +9 -1
- package/dist/components/composite/status-config.js.map +1 -1
- package/dist/components/ui/command.js +1 -1
- package/dist/components/ui/command.js.map +1 -1
- package/dist/components/ui/context-menu.js +4 -4
- package/dist/components/ui/context-menu.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js +4 -4
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/item.js +1 -1
- package/dist/components/ui/item.js.map +1 -1
- package/dist/components/ui/menubar.js +4 -4
- package/dist/components/ui/menubar.js.map +1 -1
- package/dist/components/ui/select.js +1 -1
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/table.js +2 -2
- package/dist/components/ui/table.js.map +1 -1
- package/dist/shell/display-axis-constants.d.ts +35 -0
- package/dist/shell/display-axis-constants.js +27 -0
- package/dist/shell/display-axis-constants.js.map +1 -0
- package/dist/shell/display-axis-controls.d.ts +51 -0
- package/dist/shell/display-axis-controls.js +70 -0
- package/dist/shell/display-axis-controls.js.map +1 -0
- package/dist/shell/display-axis-provider.d.ts +40 -0
- package/dist/shell/display-axis-provider.js +101 -0
- package/dist/shell/display-axis-provider.js.map +1 -0
- package/dist/shell/index.d.ts +3 -0
- package/dist/shell/index.js +3 -0
- package/dist/shell/index.js.map +1 -1
- package/dist/shell/shell-context.d.ts +9 -1
- package/dist/shell/shell-context.js +14 -4
- package/dist/shell/shell-context.js.map +1 -1
- package/dist/shell/sidebar-menu-item.js +1 -1
- package/dist/shell/sidebar-menu-item.js.map +1 -1
- package/package.json +4 -4
- package/styles.css +83 -2
package/styles.css
CHANGED
|
@@ -450,6 +450,20 @@
|
|
|
450
450
|
--sidebar-width-icon: 3.5rem; /* 56px, sidebar thu gọn */
|
|
451
451
|
--header-height: 3.5rem; /* 56px */
|
|
452
452
|
|
|
453
|
+
/* ─ Thang MẬT ĐỘ — giá trị lúc THOẢI MÁI (mặc định) ─
|
|
454
|
+
Bốn token này là toàn bộ đường bật của "bố cục gọn"; khối 5d ghi đè chúng và không đụng gì
|
|
455
|
+
khác. Chỉ trục DỌC: gọn nghĩa là thấy nhiều dòng hơn, không phải chữ dính vào mép.
|
|
456
|
+
|
|
457
|
+
⚠ PHẢI khai ở đây kể cả khi giá trị bằng đúng literal cũ. Cổng tương phản chỉ đọc bốn khối
|
|
458
|
+
(:root · .dark · hai khối tương phản cao); token nào vắng mặt ở :root thì với cổng nó là
|
|
459
|
+
chuỗi rỗng, `parseLength` trả null và `measureShape` mất khả năng phân loại hình — hỏng ÂM
|
|
460
|
+
THẦM chứ không đỏ. */
|
|
461
|
+
--row-py: 0.75rem; /* 12px — py-3 của ô bảng */
|
|
462
|
+
--menu-item-py: 0.375rem; /* 6px — py-1.5 của mục menu */
|
|
463
|
+
--list-item-py: 0.75rem; /* 12px — py-3 của mục danh sách */
|
|
464
|
+
--nav-item-py: 0.375rem; /* 6px — py-1.5 của mục thanh bên */
|
|
465
|
+
--table-head-h: 2.5rem; /* 40px — h-10 của hàng tiêu đề bảng */
|
|
466
|
+
|
|
453
467
|
/* ─ Thang ĐỔ BÓNG (elevation) ─
|
|
454
468
|
Giá trị THÔ nằm ở đây chứ không nằm trong @theme, vì bóng phải đổi theo light/dark:
|
|
455
469
|
@theme thường "đóng băng" giá trị lúc build, chỉ biến CSS thật mới được khối .dark
|
|
@@ -469,7 +483,12 @@
|
|
|
469
483
|
--elevation-card: 0 1px 2px rgba(14, 17, 22, 0.04), 0 8px 24px rgba(14, 17, 22, 0.06);
|
|
470
484
|
--elevation-overlay: 0 8px 32px rgba(14, 17, 22, 0.16);
|
|
471
485
|
|
|
472
|
-
|
|
486
|
+
/* 6px — chữ ký thị giác của Comitor, docs/spec-package.md §2 quy tắc 2 khoá cứng.
|
|
487
|
+
Viết bằng px chứ KHÔNG phải 0.375rem, và đó là điều kiện để trục CỠ CHỮ (khối 5c) đúng: cỡ
|
|
488
|
+
chữ phóng theo tỉ lệ nên mọi giá trị tính bằng rem đi theo — bo góc mà đi theo thì ở mức
|
|
489
|
+
`lg` nó thành 6,75px, tức chữ ký thị giác đổi theo tuỳ chọn của người dùng. Ở mức mặc định
|
|
490
|
+
hai cách cho ra cùng một con số nên đây không phải thay đổi hình thức. */
|
|
491
|
+
--radius: 6px;
|
|
473
492
|
}
|
|
474
493
|
|
|
475
494
|
/* ────────────────────────────────────────────────────────────────────────────
|
|
@@ -604,7 +623,7 @@
|
|
|
604
623
|
phân cấp "cái này thao tác được" ⇄ "cái này chỉ là đường kẻ", và cả trang thành lưới ô.
|
|
605
624
|
· Giữ nó dưới 3:1 cũng giữ đúng tiền đề của hợp đồng: --border là token KHÔNG chịu ngưỡng.
|
|
606
625
|
Cổng tương phản dựa vào đúng tiền đề đó để bắt lỗi "vẽ hình control bằng token trang trí"
|
|
607
|
-
(4 ca trong `test:
|
|
626
|
+
(4 ca trong `test:a11y-gate`) — nâng --border lên 3,83:1 là bốn ca đó hết bắt được. */
|
|
608
627
|
--border: #a4a4a6;
|
|
609
628
|
--sidebar-border: #a4a4a6;
|
|
610
629
|
/* Ở bảng này viền ô nhập và viền checkbox/radio CÙNG một bậc — trỏ bằng var() để đổi --input
|
|
@@ -667,6 +686,68 @@
|
|
|
667
686
|
--yellow: #facc15;
|
|
668
687
|
}
|
|
669
688
|
|
|
689
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
690
|
+
5c. TRỤC THỨ TƯ — CỠ CHỮ `<html data-font-size="sm|lg">`
|
|
691
|
+
|
|
692
|
+
Đây là PHÓNG THEO TỈ LỆ, không phải "chỉ đổi cỡ chữ" — và đó là chủ ý.
|
|
693
|
+
|
|
694
|
+
Icon trong gói lấy cỡ từ thang KHOẢNG CÁCH chứ không phải thang chữ: 128 chỗ `size-3/4/5`
|
|
695
|
+
cộng 21 chỗ tự-động-cỡ `[&_svg:not([class*='size-'])]:size-4`, tất cả compile ra
|
|
696
|
+
`calc(var(--spacing) * n)`. Chiều cao control cũng vậy (`h-9`, `h-10`). Nếu chỉ ghi đè
|
|
697
|
+
`--text-*` thì ở mức `lg`: chữ 16px nằm cạnh icon vẫn 16px trong mọi hàng menu, nhãn
|
|
698
|
+
checkbox to ra trong khi ô `size-4` đứng yên, và `Kbd` (hộp 20px chứa chữ 12px) vỡ trước
|
|
699
|
+
tiên. Đổi `font-size` ở gốc thì mọi thứ tính bằng rem đi theo cùng nhau, tỉ lệ icon⇄chữ giữ
|
|
700
|
+
nguyên, và không phải sửa ~149 chỗ icon.
|
|
701
|
+
|
|
702
|
+
⚠ PHẢI LÀ PHẦN TRĂM, KHÔNG ĐƯỢC LÀ px. Người dùng có thể đã tăng cỡ chữ mặc định của trình
|
|
703
|
+
duyệt; khai `font-size: 16px` ở <html> là XOÁ lựa chọn đó — tự tay vi phạm WCAG 1.4.4 ngay
|
|
704
|
+
bên trong một tính năng trợ năng. Phần trăm là phần trăm CỦA CHÍNH cỡ đó nên vẫn tôn trọng.
|
|
705
|
+
|
|
706
|
+
⚠ Mức `md` KHÔNG có khối nào. Provider gỡ hẳn thuộc tính thay vì ghi `data-font-size="md"`,
|
|
707
|
+
nên ở mức mặc định không có một dòng CSS nào can thiệp vào cỡ gốc của trình duyệt.
|
|
708
|
+
|
|
709
|
+
Vì sao KHÔNG cần khai `--text-*` trong @theme: đã biên dịch thử bằng đúng tailwindcss 4.3.3
|
|
710
|
+
của repo — `text-sm` sinh ra `font-size: var(--text-sm); line-height: var(--tw-leading,
|
|
711
|
+
var(--text-sm--line-height))` dù gói có khai token hay không, và mặc định nằm trong
|
|
712
|
+
`@layer theme`. Ta không đụng tới chúng; ta đổi cỡ GỐC mà chúng quy chiếu.
|
|
713
|
+
──────────────────────────────────────────────────────────────────────────── */
|
|
714
|
+
[data-font-size="sm"] {
|
|
715
|
+
font-size: 87.5%;
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
[data-font-size="lg"] {
|
|
719
|
+
font-size: 112.5%;
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
723
|
+
5d. TRỤC THỨ BA — MẬT ĐỘ `<html data-density="compact">`
|
|
724
|
+
|
|
725
|
+
Bố cục gọn KHÔNG ghi đè `--spacing` toàn cục. Đã cân nhắc và loại: một dòng là xong, nhưng
|
|
726
|
+
nó co CẢ chiều ngang lẫn icon — `size-4` tụt còn ~12,8px, padding trái/phải hụt theo, và cả
|
|
727
|
+
quãng trượt của tw-animate cũng ngắn lại. Gọn về mã, xấu về kết quả.
|
|
728
|
+
|
|
729
|
+
Thay vào đó là một nhóm token nhắm đúng những bề mặt người dùng thấy CHẬT: hàng bảng, mục
|
|
730
|
+
menu, mục danh sách, mục thanh bên. Chỉ trục DỌC — chiều ngang giữ nguyên, vì "gọn" nghĩa là
|
|
731
|
+
thấy nhiều dòng hơn chứ không phải chữ dính vào mép.
|
|
732
|
+
|
|
733
|
+
⚠ Mỗi token PHẢI có giá trị mặc định ở `:root` (khối 4). Cổng tương phản chỉ đọc bốn khối
|
|
734
|
+
`:root` · `.dark` · `[data-contrast="high"]` · `.dark[data-contrast="high"]`; token nào chỉ
|
|
735
|
+
khai trong khối này thì với cổng nó là chuỗi rỗng — `parseLength` trả null, `measureShape`
|
|
736
|
+
mất `isBar`/`isBox`/`isTinyAxis`, và nền theo token BỀ MẶT thôi không còn chịu ngưỡng 3:1.
|
|
737
|
+
Hỏng ÂM THẦM, không đỏ. (Với token MÀU thì lỗi này nổ ra thành phát hiện, với token ĐỘ DÀI
|
|
738
|
+
thì không.)
|
|
739
|
+
|
|
740
|
+
Đây cũng là khoản mà docs/spec-package.md §2 quy tắc 1 đã đòi từ đầu ("mọi khoảng cách là CSS
|
|
741
|
+
variable"), nên nó là TRẢ NỢ chứ không phải thêm ý tưởng mới.
|
|
742
|
+
──────────────────────────────────────────────────────────────────────────── */
|
|
743
|
+
[data-density="compact"] {
|
|
744
|
+
--row-py: 0.375rem;
|
|
745
|
+
--menu-item-py: 0.25rem;
|
|
746
|
+
--list-item-py: 0.5rem;
|
|
747
|
+
--nav-item-py: 0.25rem;
|
|
748
|
+
--table-head-h: 2rem;
|
|
749
|
+
}
|
|
750
|
+
|
|
670
751
|
/* ────────────────────────────────────────────────────────────────────────────
|
|
671
752
|
6. MAP BIẾN → NAMESPACE TAILWIND (sinh bg-*, text-*, border-*, rounded-*…)
|
|
672
753
|
|