ComponentPhản hồi & Overlay
Bắt đầu nhanh
Import Sheet từ entry công khai. Các ví dụ bên dưới thể hiện những kiểu tương tác và cấu hình được hỗ trợ.
component.tsxtsx
import { Sheet } from '@underverse-ui/underverse';Ví dụ tương tác
Dùng thử Sheet thật, xem mã ví dụ và tra cứu các prop đã được mô tả.
Đang tải ví dụ tương tác…
Tham chiếu
Tham chiếu API
Tra cứu các thuộc tính, kiểu dữ liệu được chấp nhận, giá trị mặc định và lưu ý về hành vi.
Dữ liệu được sinh từ API TypeScript công khai của thư viện. Kiểu dữ liệu, thuộc tính bắt buộc và giá trị mặc định luôn đồng bộ với mã nguồn.
Sheet
Component| Thuộc tính | Mô tả | Kiểu | Mặc định |
|---|---|---|---|
openBắt buộc | Trạng thái mở/đóng. | boolean | Bắt buộc |
onOpenChangeBắt buộc | Callback thay đổi trạng thái mở. | (open: boolean) => void | Bắt buộc |
side | Cạnh xuất hiện. | "left" | "right" | "top" | "bottom" | "right" |
size | Kích thước sheet. | "sm" | "md" | "lg" | "xl" | "full" | "md" |
variant | Biến thể hiển thị. | "default" | "overlay" | "push" | "default" |
childrenBắt buộc | Nội dung thân sheet. | React.ReactNode | Bắt buộc |
title | Tiêu đề phần header. | React.ReactNode | — |
description | Mô tả ở header. | React.ReactNode | — |
className | Class tuỳ chỉnh cho panel. | string | — |
showClose | Hiển thị nút đóng ở header. | boolean | true |
closeOnOutsideClick | Click overlay để đóng. | boolean | true |
closeOnEscape | Nhấn Escape để đóng. | boolean | true |
header | Header tuỳ chỉnh (ghi đè). | React.ReactNode | — |
footer | Footer tuỳ chỉnh. | React.ReactNode | — |
overlayOpacity | Tuỳ chỉnh opacity overlay từ 0 đến 1. | number | — |
resizable | Allow the user to resize the sheet from the edge closest to the page content. | boolean | false |
minSize | Minimum sheet width/height in pixels while resizing. | number | 280 |
maxSize | Maximum sheet width/height in pixels while resizing. Defaults to 90% of the viewport. | number | — |
onResize | Called with each width/height update while the user resizes the sheet. | (size: number) => void | — |
BottomSheet
Component| Thuộc tính | Mô tả | Kiểu | Mặc định |
|---|---|---|---|
snapPoints | Mã nguồn chưa cung cấp mô tả bổ sung. | string[] | ["25%", "50%", "90%"] |
defaultSnap | Mã nguồn chưa cung cấp mô tả bổ sung. | number | 1 |
childrenBắt buộc | Nội dung thân sheet. | React.ReactNode | Bắt buộc |
variant | Biến thể hiển thị. | "default" | "overlay" | "push" | — |
size | Kích thước sheet. | "sm" | "md" | "lg" | "xl" | "full" | — |
className | Class tuỳ chỉnh cho panel. | string | — |
title | Tiêu đề phần header. | React.ReactNode | — |
description | Mô tả ở header. | React.ReactNode | — |
footer | Footer tuỳ chỉnh. | React.ReactNode | — |
openBắt buộc | Trạng thái mở/đóng. | boolean | Bắt buộc |
header | Header tuỳ chỉnh (ghi đè). | React.ReactNode | — |
onOpenChangeBắt buộc | Callback thay đổi trạng thái mở. | (open: boolean) => void | Bắt buộc |
showClose | Hiển thị nút đóng ở header. | boolean | — |
closeOnOutsideClick | Click overlay để đóng. | boolean | — |
closeOnEscape | Nhấn Escape để đóng. | boolean | — |
overlayOpacity | Tuỳ chỉnh opacity overlay từ 0 đến 1. | number | — |
resizable | Allow the user to resize the sheet from the edge closest to the page content. | boolean | — |
minSize | Minimum sheet width/height in pixels while resizing. | number | — |
maxSize | Maximum sheet width/height in pixels while resizing. Defaults to 90% of the viewport. | number | — |
onResize | Called with each width/height update while the user resizes the sheet. | (size: number) => void | — |
Drawer
Component| Thuộc tính | Mô tả | Kiểu | Mặc định |
|---|---|---|---|
placement | Mã nguồn chưa cung cấp mô tả bổ sung. | "left" | "right" | "right" |
childrenBắt buộc | Nội dung thân sheet. | React.ReactNode | Bắt buộc |
variant | Biến thể hiển thị. | "default" | "overlay" | "push" | — |
size | Kích thước sheet. | "sm" | "md" | "lg" | "xl" | "full" | — |
className | Class tuỳ chỉnh cho panel. | string | — |
title | Tiêu đề phần header. | React.ReactNode | — |
description | Mô tả ở header. | React.ReactNode | — |
footer | Footer tuỳ chỉnh. | React.ReactNode | — |
openBắt buộc | Trạng thái mở/đóng. | boolean | Bắt buộc |
header | Header tuỳ chỉnh (ghi đè). | React.ReactNode | — |
onOpenChangeBắt buộc | Callback thay đổi trạng thái mở. | (open: boolean) => void | Bắt buộc |
showClose | Hiển thị nút đóng ở header. | boolean | — |
closeOnOutsideClick | Click overlay để đóng. | boolean | — |
closeOnEscape | Nhấn Escape để đóng. | boolean | — |
overlayOpacity | Tuỳ chỉnh opacity overlay từ 0 đến 1. | number | — |
resizable | Allow the user to resize the sheet from the edge closest to the page content. | boolean | — |
minSize | Minimum sheet width/height in pixels while resizing. | number | — |
maxSize | Maximum sheet width/height in pixels while resizing. Defaults to 90% of the viewport. | number | — |
onResize | Called with each width/height update while the user resizes the sheet. | (size: number) => void | — |
SidebarSheet
Component| Thuộc tính | Mô tả | Kiểu | Mặc định |
|---|---|---|---|
navigation | Mã nguồn chưa cung cấp mô tả bổ sung. | React.ReactNode | — |
childrenBắt buộc | Nội dung thân sheet. | React.ReactNode | Bắt buộc |
size | Kích thước sheet. | "sm" | "md" | "lg" | "xl" | "full" | — |
className | Class tuỳ chỉnh cho panel. | string | — |
title | Tiêu đề phần header. | React.ReactNode | — |
description | Mô tả ở header. | React.ReactNode | — |
footer | Footer tuỳ chỉnh. | React.ReactNode | — |
openBắt buộc | Trạng thái mở/đóng. | boolean | Bắt buộc |
header | Header tuỳ chỉnh (ghi đè). | React.ReactNode | — |
onOpenChangeBắt buộc | Callback thay đổi trạng thái mở. | (open: boolean) => void | Bắt buộc |
showClose | Hiển thị nút đóng ở header. | boolean | — |
closeOnOutsideClick | Click overlay để đóng. | boolean | — |
closeOnEscape | Nhấn Escape để đóng. | boolean | — |
overlayOpacity | Tuỳ chỉnh opacity overlay từ 0 đến 1. | number | — |
resizable | Allow the user to resize the sheet from the edge closest to the page content. | boolean | — |
minSize | Minimum sheet width/height in pixels while resizing. | number | — |
maxSize | Maximum sheet width/height in pixels while resizing. Defaults to 90% of the viewport. | number | — |
onResize | Called with each width/height update while the user resizes the sheet. | (size: number) => void | — |
SlideOver
Component| Thuộc tính | Mô tả | Kiểu | Mặc định |
|---|---|---|---|
childrenBắt buộc | Nội dung thân sheet. | React.ReactNode | Bắt buộc |
size | Kích thước sheet. | "sm" | "md" | "lg" | "xl" | "full" | — |
className | Class tuỳ chỉnh cho panel. | string | — |
title | Tiêu đề phần header. | React.ReactNode | — |
description | Mô tả ở header. | React.ReactNode | — |
footer | Footer tuỳ chỉnh. | React.ReactNode | — |
openBắt buộc | Trạng thái mở/đóng. | boolean | Bắt buộc |
header | Header tuỳ chỉnh (ghi đè). | React.ReactNode | — |
onOpenChangeBắt buộc | Callback thay đổi trạng thái mở. | (open: boolean) => void | Bắt buộc |
showClose | Hiển thị nút đóng ở header. | boolean | — |
closeOnOutsideClick | Click overlay để đóng. | boolean | — |
closeOnEscape | Nhấn Escape để đóng. | boolean | — |
overlayOpacity | Tuỳ chỉnh opacity overlay từ 0 đến 1. | number | — |
resizable | Allow the user to resize the sheet from the edge closest to the page content. | boolean | — |
minSize | Minimum sheet width/height in pixels while resizing. | number | — |
maxSize | Maximum sheet width/height in pixels while resizing. Defaults to 90% of the viewport. | number | — |
onResize | Called with each width/height update while the user resizes the sheet. | (size: number) => void | — |
Hướng dẫn sử dụng
Dùng Sheet để thông báo thay đổi trạng thái đúng lúc mà không làm gián đoạn tác vụ. Nội dung nên ngắn và focus phải quay về vị trí hợp lý.
Trợ năng
Khi dùng Sheet, hãy giữ trạng thái focus dễ nhận biết, cung cấp tên truy cập khi cần và kiểm tra bàn phím cùng trình đọc màn hình trong ngữ cảnh thực tế.
