Skip to content

CCard

Khung nội dung có tiêu đề, dùng để gom một nhóm thông tin thành khối nhìn thấy được. Bọc a-card, thêm biến thể khung và chế độ thu gọn.

Dùng khi: chia trang thành các khối có tên gọi — thông tin chung, bộ lọc, khối chỉ số, nhóm trường trong form dài.

Không dùng khi: bọc CTable (bảng đã có khung card riêng, lồng vào sẽ thành hai lớp viền), hoặc khi khối chỉ có một câu chữ — khoảng cách là đủ, không cần thêm khung.

Biến thể khung

typeHình thứcDùng cho
primary (mặc định)Header nền navyKhối chính của trang
defaultHeader nền trắng, có viềnKhối phụ, nhiều khối cạnh nhau
outlineGạch nhấn màu primaryKhối cần nổi hơn một chút
filledNền mờKhối thông tin nền, ít tương tác
ghostTrong suốtGom nhóm mà không muốn thấy khung

borderless mặc định là true (không viền, không bóng). Đặt :borderless="false" khi các khối đặt sát nhau và cần ranh giới rõ.

Thu gọn

collapsible biến phần thân thành khối đóng mở được; default-open quyết định trạng thái ban đầu. Dùng cho nội dung phụ — đừng giấu thứ người dùng cần thấy ngay sau khi mở trang.

API

Props

TênKiểuMặc địnhMô tả
titlestring''Tiêu đề ở header; slot #title để tuỳ biến. Rỗng và không có slot thì ẩn header.
collapsiblebooleanfalseCho phép thu gọn nội dung.
defaultOpenbooleantrueTrạng thái mở ban đầu khi collapsible.
borderlessbooleantrueBỏ viền + bóng.
type"default" | "primary" | "outline" | "ghost" | "filled"'primary'Biến thể: primary (header navy), outline (gạch primary), filled, ghost, default.

Slot

TênProps của slotMô tả
#titleanyThay phần tiêu đề ở header (mặc định hiện `title`).
#actionsanyNút hành động bên phải header.
#defaultanyNội dung thẻ.

Mọi thuộc tính khác của a-card (body-style, loading, size…) được chuyển tiếp nguyên vẹn.

Giao diện

Nền --tasco-color-surface, bo góc --tasco-radius-lg, viền --tasco-color-border. Khoảng đệm thân card lấy từ --tasco-card-padding-block--tasco-card-padding-inline; tiêu đề dùng --tasco-font-family-heading cỡ --tasco-card-heading-font-size.

Style của từng type nằm trong base.css của @tasco/theme (.c-card-primary, .c-card-outline…) vì ant-design-vue 4.x bỏ qua theme.components. Muốn đổi mật độ cho toàn hệ thống thì sửa density trong @tasco/theme, không ghi đè ở từng dự án — xem Theme & design token.

Khả năng tiếp cận

  • Tiêu đề card render bằng thẻ văn bản thường, không phải heading — muốn nó là mốc điều hướng cho trình đọc màn hình thì đặt heading thật vào slot #title.
  • Ở chế độ thu gọn, phần header là nút đóng mở của antd: có aria-expanded, thao tác được bằng bàn phím. Đừng lồng nút khác vào vùng header ngoài slot #actions.

Lưu ý

  • Không lồng CCard trong CCard: hai lớp khung làm mất tôn ti thông tin. Cần chia nhỏ thì dùng tiêu đề phụ và đường kẻ.
  • Không bọc CTable bằng CCard — xem Trang danh sách.
  • Nhiều khối cạnh nhau thì cho cùng một type để không loạn; chỉ khối chính mới khác biệt.

Liên quan