Skip to content
通用组件

输入框Input

单行 / 多行文字输入。30 / 36 / 44 三档与按钮同高;前后缀与按钮拼成输入组。

Vue
实验import { AkInput, AkInputGroup } from "@mooncellwiki/prts-design-vue"Storybook ↗源码 ↗

单行 / 多行文字输入(同 Naive UI 的 n-input)。v-model 是文字;type="textarea" 换成多行(<textarea class="ak-textarea">,最小高 90px、只能竖向拉)。其余属性(name、autocomplete、@focus / @blur / @keydown …)都落到原生 <input> / <textarea> 上。数字用数字输入,搜索用搜索框。

单行 · 多行 ​

不在表单字段里、旁边也没有 <label> 时写 label(作 aria-label);占位提示只做提示,不承载必填等信息。

尺寸 ​

高 30 / 36 / 44,与按钮同一刻度:sm 给表格里、工具栏,默认 36,lg 给独立的大输入。

状态 ​

禁用 = surface-3 底 + 禁用色;只读 = 下沉底,仍可选中复制——计算器里「只显示不编辑」的结果用 readonly,不要用 disabled。status="error" 红边(aria-invalid)、success 绿边;放在字段里时跟字段的 validation-status。输入框不做悬停态,焦点是青边 + 3px 淡青环(鼠标点进去也亮)。

前后缀 · 输入组 ​

#prefix / #suffix 是贴在输入框两边的灰底块(.ak-input-group__addon:路径前缀、单位)。要和按钮拼成一条,外面包 AkInputGroup(同 Naive 的 n-input-group):相邻边重叠、中间不留圆角,size 同时给组内的输入框和按钮。

Vue API ​

AkInput ​

属性类型默认说明
type"text""textarea""password""email""url""tel""text"类型:textarea 渲染多行 <textarea class="ak-textarea">(同 Naive);其余是 <input> 的 type。数字用 AkInputNumber,搜索用 AkSearch
placeholderstring—占位提示(只做提示,不承载必填等信息)
size"md""sm""lg"—尺寸:sm 30 · md 36 · lg 44(px 高),与按钮同一刻度;多行输入不适用。不写时跟 AkInputGroup,再不然是 md
status"success""error"—校验状态:error 红边(aria-invalid)· success 绿边;不写时跟 AkField 的 validation-status
disabledbooleanfalse禁用
readonlybooleanfalse只读:下沉底色,仍可选中复制——计算器「只显示不编辑」的结果用它,不要用 disabled
maxlengthnumber—最多字数(原生 maxlength)
rowsnumber—多行输入的可见行数(原生 rows);不写时由 CSS 的最小高 90px 定
labelstring—可访问名(aria-label):不在 AkField 里、旁边也没有 <label> 时必填
modelValuestring—输入的文字
事件参数说明
update:modelValue[value: string | undefined]
插槽说明
prefix前缀(输入框左边的 .ak-input-group__addon,如「wiki/」);多行输入不适用
suffix后缀(输入框右边的 .ak-input-group__addon,如单位「%」);多行输入不适用

AkInputGroup ​

属性类型默认说明
size"md""sm""lg"—组内输入框与按钮的默认尺寸(各自写了 size 以各自为准)
插槽说明
defaultAkInput(可带 #prefix / #suffix)与 AkButton

CSS 实现 ​

<input class="ak-input"> / <textarea class="ak-textarea">;尺寸 .ak-input--sm / --lg;状态 [readonly] :disabled .is-invalid / [aria-invalid="true"] / :user-invalid .is-valid。输入组 .ak-input-group > .ak-input-group__addon + .ak-input + .ak-btn。

块元素 __修饰 --

文本 CC BY-NC-SA 4.0 · 游戏素材版权归鹰角网络所有