Skip to content

Input 输入框

接收用户文本输入


功能描述

用于接收用户键盘输入的文本框组件。


属性规范

属性类型必需默认值说明
valuestringY-当前值
onChange(value) => voidY-值变更回调
placeholderstringN-占位提示文本
typeenumN'text'输入类型
disabledbooleanNfalse禁用状态
readOnlybooleanNfalse只读状态
errorstringN-错误信息
maxLengthnumberN-最大长度
prefixnodeN-前缀元素
suffixnodeN-后缀元素
clearablebooleanNfalse显示清除按钮

type 类型

说明键盘类型
text普通文本默认键盘
password密码默认键盘
number数字数字键盘
decimal小数带小数点的数字键盘
tel电话电话键盘
email邮箱带 @ 的键盘

状态机

                    focus
    ┌─────────┐  ──────────►  ┌─────────┐
    │  Idle   │               │ Focused │
    └─────────┘  ◄──────────  └─────────┘
         │           blur          │
         │                         │ input
         │                         ▼
         │                    ┌─────────┐
         │                    │  Dirty  │
         │                    └─────────┘
         │                         │
         │                         │ validate
         │                         ▼
         │    ┌─────────────────────────────────┐
         │    │                                 │
         │    ▼                                 ▼
         │ ┌─────────┐                    ┌─────────┐
         │ │  Valid  │                    │ Invalid │
         │ └─────────┘                    └─────────┘

         │ disabled=true

    ┌─────────┐
    │Disabled │
    └─────────┘

行为规范

必须 (MUST)

  1. focus 时显示焦点指示器(边框颜色变化)
  2. 有 error 时显示错误样式(红色边框)
  3. 有 error 时在输入框下方显示错误信息
  4. disabled 时阻止所有交互
  5. 有关联的 label

建议 (SHOULD)

  1. type="password" 时提供显示/隐藏切换按钮
  2. clearable=true 且有内容时显示清除按钮
  3. 支持 prefix/suffix 自定义元素
  4. 超出 maxLength 时阻止继续输入

可选 (MAY)

  1. 显示字符计数(当前/最大)
  2. 支持自动完成建议

可访问性

要求说明
label必须有关联的 label
aria-invaliderror 时设为 true
aria-describedby关联错误信息元素
aria-disableddisabled 时设为 true

布局规范

┌─────────────────────────────────────┐
│ Label                        [必填] │  ← 标签行
├─────────────────────────────────────┤
│ [前缀] 输入内容...        [后缀/清除] │  ← 输入框
├─────────────────────────────────────┤
│ ⚠ 错误信息                          │  ← 错误提示(可选)
└─────────────────────────────────────┘

设计标注

尺寸规格

部分规格
高度44px
内边距12px 16px
字号16px
圆角8px
边框1px

颜色规格

状态边框色背景色
default--color-border--color-background
focused--color-primary--color-background
error--color-destructive--color-destructive/5
disabled--color-border--color-muted

变体

TextArea 多行文本

继承 Input 所有属性,额外支持:

属性类型说明
rowsnumber显示行数
autoResizeboolean是否自动调整高度
maxRowsnumber最大行数

SearchInput 搜索框

继承 Input 所有属性,额外支持:

属性类型说明
onSearch(value) => void搜索回调
loadingboolean搜索中状态

视觉特征:

  • 前缀为搜索图标
  • 圆角更大(pill 形状)

Released under the MIT License.