TextArea

多行文本录入框,支持计数(maxCount/字素)、清除、校验态、IME 与 autosize 自适应高度(minRows/maxRows)。

设计文档

如何引入

import { TextArea } from '@chenzy-design/svelte';

基本用法

通过 bind:value 双向绑定输入值,并支持 placeholder 占位提示。

当前值:(空)

尺寸

提供 large / default / small 三种尺寸。

状态

支持禁用、warning、error 等状态。

功能

可清除、字数统计 + 长度限制、密码输入等功能。

0/20

输入组合

InputGroup 把多个输入控件拼接为一体(相邻边框合并、首尾圆角),size 经 context 回退统一透传。

价格区间

前后缀

prefix / suffix 在输入框内渲染前后缀内容(图标、单位等)。

🔍
¥

前后置标签

addonBefore / addonAfter 在输入框外拼接前置/后置标签(如协议、域名后缀)。

https://
.com
用户名

受控

value 完全由外部持有,配合 onChange,可编程式设置。

当前值:受控内容

自定义计数

getValueLength 自定义字符计数(emoji 按可见长度计),配合 showCount / maxLength。

0/10
自定义计数 0 · 原生 length 0

输入法模式

composition 开启后,输入法未确认期间不触发 onChange,确认后触发一次。

onChange 触发次数:0

API 参考

TextArea

Props

属性说明类型默认值
value受控值;提供则为受控stringundefined
defaultValue非受控初始值string''
size'small'|'default'|'large'default
disabledbooleanfalse
readonlybooleanfalse
placeholderstringundefined
showCount显示字符计数booleanfalse
maxLength原生硬性长度限制(截断输入)numberundefined
maxCount计数上限(计数展示与超限提示,不截断)numberundefined
countGraphemes按视觉字符(Intl.Segmenter 字素)计数而非 code point,正确处理 emoji/组合字符booleanfalse
showClear显示清除按钮(非空且非禁用/只读)booleanfalse
autoFocus挂载后自动聚焦booleanfalse
status校验态'default'|'warning'|'error'default
validateStatusForm 注入别名,等价 status(仅当未显式传 status 时生效)'default'|'warning'|'error'undefined
rowsnumber3
autosize随内容自适应高度boolean | { minRows?: number; maxRows?: number }false
resize原生手动调整把手(autosize 时强制 none)'none'|'vertical'|'both''none'
namestringundefined
idstringundefined
class透传根类名string''
ariaLabelstringundefined
ariaDescribedbystringundefined
onChange(v: string) => voidundefined
onInput(v: string) => voidundefined
onClear点击清除按钮() => voidundefined
onFocus获得焦点(e: FocusEvent) => voidundefined
onBlur失去焦点(e: FocusEvent) => voidundefined
onEnterPress按下 Enter(含修饰键信息,供 Ctrl+Enter 提交)(p: { value: string; event: KeyboardEvent }) => voidundefined
onResizeautosize 高度变化(p: { height: number }) => voidundefined
onCompositionStartIME 开始(e: CompositionEvent) => voidundefined
onCompositionEndIME 结束(e: CompositionEvent) => voidundefined

Slots

名称说明
count自定义计数器渲染(覆盖内建)
clearIcon自定义清除图标

Accessibility

ARIA roletextbox
  • 原生 textarea
  • error 时 aria-invalid
  • IME composition 安全
  • 超限经 aria-live=polite 播报
  • 清除按钮可 Tab 到达,aria-label 来自 i18n

设计变量

变量默认值用法
--cd-transition-delay-input-bg var(--cd-motion-delay-none)输入框-背景色-延迟时间
--cd-transition-delay-input-border var(--cd-motion-delay-none)输入框-边框-延迟时间
--cd-transition-delay-input-text var(--cd-motion-delay-none)输入框-文字或图标-延迟时间
--cd-transition-duration-input-bg var(--cd-motion-duration-none)输入框-背景色-动画持续时间
--cd-transition-duration-input-border var(--cd-motion-duration-none)输入框-边框-动画持续时间
--cd-transition-duration-input-text var(--cd-motion-duration-none)输入框-文字或图标-动画持续时间
--cd-transition-function-input-bg var(--cd-motion-ease-in)输入框-背景色-过渡曲线
--cd-transition-function-input-border var(--cd-motion-ease-in)输入框-边框-过渡曲线
--cd-transition-function-input-text var(--cd-motion-ease-in)输入框-文字或图标-过渡曲线