Biểu mẫu và phản hồi

<Button>, <Checkbox>, <Switch>, <RadioGroup>, <Slider>, <Dialog>, <Confirm> và thông báo toast.

Text.js có các điều khiển biểu mẫu, hộp thoại và thông báo toast. Mỗi điều khiển tham gia thứ tự Tab và phản hồi với Space hoặc Enter.

Trực tiếp72×14 · booting Turbolog…tsx
preview://controls:1
<Checkbox label="Web Analytics" description="privacy-friendly" defaultChecked /><Switch label="Edge runtime" defaultChecked /><RadioGroup orientation="horizontal" value={plan} onChange={setPlan} options={plans} /><Slider label="Concurrency" defaultValue={40} width={20} /><Button variant="primary" onPress={deploy}>Deploy</Button>

Điều khiển

ComponentPhímGiá trị
<Button>↵ SpaceonPress
<Checkbox>Space ↵checked / onChange
<Switch>Space ← →checked / onChange
<RadioGroup>↑ ↓ (hoặc ← →)value / onChange
<Slider>← →, Shift ×5, Home Endvalue / onChange

Tất cả đều nhận autoFocus, focused, id và disabled. Cả chế độ có kiểm soát và không kiểm soát (defaultChecked, defaultValue) đều hoạt động.

Nút

variant là primary, secondary, ghost hoặc danger. Khi có tiêu điểm, nút hiển thị màu nhấn trên toàn bộ nền mà không đổi kích thước.

<Dialog>

Một <Modal> có mô tả và một hàng thao tác.

<Dialog  open={open}  title="Invite teammate"  description="They'll get an email with a link."  onClose={close}  actions={<Button variant="primary" onPress={send}>Send</Button>}>  <Input autoFocus placeholder="email" /></Dialog>

<Confirm>

Có hoặc không. y và n trả lời trực tiếp; ← → di chuyển giữa các nút. destructive định kiểu nút xác nhận và đặt tiêu điểm vào nút Hủy trước.

<Confirm  open={confirming}  destructive  title="Delete project?"  message="This removes acme-web and all 312 deployments."  confirmLabel="Delete"  onConfirm={remove}  onCancel={() => setConfirming(false)}/>

Thông báo toast

Render một <Toaster />, rồi gọi useToast() ở bất kỳ đâu trong cùng root.

const toast = useToast();toast("Copied");toast.success("Deployed", { description: "dpl_8f2k is live on iad1." });toast.error("Build failed");await toast.promise(deploy(), {  loading: "Deploying…",  success: (d) => `Deployed ${d.id}`,  error: "Deploy failed",});
Tùy chọnMô tả
durationMili giây (mặc định 4000; toast đang tải vẫn ở lại)
idDùng lại để cập nhật toast tại chỗ
positionTrên <Toaster>: bottom-right (mặc định), top-center, …
maxTrên <Toaster>: số toast hiển thị cùng lúc (mặc định 3)

Toast render phía trên hộp thoại modal và không bao giờ chiếm tiêu điểm.

Sửa trang này trên GitHub