Input group
将 Input 的输入槽拆分开来:输入框两端可放置任意数量的附加项,如文字、图标、按键或小按钮。
安装
# once per project: where @zzzui items come frompnpm dlx shadcn@latest registry add @zzzui=https://zzzui.catforest.dev/r/{name}.jsonpnpm dlx shadcn@latest add @zzzui/input-group示例
单位与按钮,图标与按键
cr
/
import { SearchIcon } from "@/components/zero/icons";import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText,} from "@/components/zero/input-group";import { Kbd } from "@/components/zero/kbd";export default function InputGroupReward() { return ( <div className="grid w-full max-w-sm gap-4"> <InputGroup> <InputGroupAddon> <InputGroupText>cr</InputGroupText> </InputGroupAddon> <InputGroupInput placeholder="Minimum reward" aria-label="Minimum reward" inputMode="numeric" /> <InputGroupAddon align="end"> <InputGroupButton>Max</InputGroupButton> </InputGroupAddon> </InputGroup> <InputGroup> <InputGroupAddon> <SearchIcon /> </InputGroupAddon> <InputGroupInput placeholder="Search jobs" aria-label="Search jobs" /> <InputGroupAddon align="end"> <Kbd>/</Kbd> </InputGroupAddon> </InputGroup> </div> );}行为
输入槽的表现与 Input 一致:焦点框、校验失败时的描边、禁用时的填充。禁用时的填充只取决于输入框本身:发送按钮在未输入内容时处于禁用状态,不会改变输入槽的外观。放置附加项的一端,该侧的内边距改由附加项提供。若只需一个图标或一个操作,使用 Input 自带的 start 与 end 更简洁。
属性
InputGroup
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| size | "sm" | "md" | "lg" | "md" | 与 Input 相同的高度档位。 |
| cut | "end" | "start" | "both" | "none" | "end" | 斜切哪一侧。 |
InputGroupAddon
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| align | "start" | "end" | "start" | 位于哪一端。 |