Bỏ qua tới nội dung
Component / 005 / NEXOFRAME

Popover

Mẫu chuẩn

Lớp nổi không chặn trang. Không màn che. Không mũi tên.

Radix PopoverKhông variantKhông sizeKhông modal

Playground

Panel được portal, nên nó theo theme của trang. Trigger theo brand đang chọn.

LIVE PREVIEW
TSX
import { Button, Popover, PopoverContent, PopoverTrigger } from "@nexobox/ui";

<Popover>
  <PopoverTrigger asChild>
    <Button type="button">Ghi chú</Button>
  </PopoverTrigger>
  <PopoverContent>
    <p>Ghi chú ngắn.</p>
  </PopoverContent>
</Popover>

Khi nào sử dụng

Nên dùng

Giao diện ngắn neo vào một nút: ghi chú, menu nhỏ, xác nhận nhẹ.

Tránh dùng

Chọn một giá trị thì dùng Select. Việc phải xong trước khi dùng tiếp trang thì dùng Dialog. Panel sát đáy thì dùng Sheet. Không dùng làm tooltip.

Anatomy

PopoverTrigger bọc Button. PopoverContent là panel. PopoverClose là nút thật. Không có mũi tên vì kit không có token mũi tên.

States

CLOSED

Chỉ còn trigger.

FOCUS

Vòng focus của Button. Không chỉ dựa vào màu.

DISABLED

Disabled đặt trên Button. Không mở.

Bấm nút Ghi chú để mở. Không có empty, loading, hay invalid. Không có size.

Design tokens

Panel đọc --nf-semantic-surface-raised, --nf-semantic-border-subtle, --nf-component-overlay-shadow, --nf-component-panel-radius, --nf-motion-overlay-in. Không có token --nf-component-popover-*.

API & triển khai

PropMặc địnhQuy ước
PopoverTrigger asChild—Bọc Button thật. Tên lấy từ chữ của nút hoặc aria-label.
PopoverContentalign startPanel. Không chặn trang.
PopoverClose—Nút thật để đóng.

Accessibility & nội dung

Enter hoặc Space trên trigger để mở.
Escape đóng và trả tiêu điểm về trigger.
Tab đi qua phần tử trong panel rồi ra ngoài. Không nhốt trang.
Không có màn che.