文本区域
Textarea 组件为您提供一个 textarea HTML 元素,该元素可以自动调整其高度以匹配其中内容的长度。
简介
Joy UI 的 textarea 组件构建于 MUI Base TextareaAutoSize
组件之上。
<Textarea minRows={2} />
Playground
组件
在安装之后,您可以使用以下基本元素开始构建此组件
import Textarea from '@mui/joy/Textarea';
export default function MyApp() {
return <Textarea placeholder="Type anything…" />;
}
变体
textarea 组件支持四种全局变体:solid(默认)、soft、outlined 和 plain。
尺寸
textarea 组件开箱即用地提供三种尺寸:sm
、md
(默认)和 lg
。
颜色
通过使用 color
属性切换用于着色文本字段的调色板。
表单属性
标准表单属性受支持,例如 required
、disabled
等。
聚焦环
提供这些 CSS 变量到 sx
属性以控制聚焦环的外观
--Textarea-focusedInset
:聚焦环的位置,在 Textarea 的内部 (inset
) 或外部 (var(--any, )
)。--Textarea-focusedThickness
:聚焦环的大小。--Textarea-focusedHighlight
:聚焦环的颜色。
调试聚焦环
要通过模拟用户焦点来显示 Textarea 的聚焦环,请检查 Textarea 元素并切换伪状态面板。
- 如果您检查 Textarea 的根元素(带有
.MuiTextarea-root
类),则必须启用:focus-within
状态。 - 如果您检查
<input>
元素,则必须启用:focus
状态。
触发聚焦环
要以编程方式触发聚焦环,请设置 CSS 变量 --Textarea-focused: 1
。
验证
要切换错误状态,请使用 error
属性。
请注意,将 color
属性与 danger 值一起使用会得到相同的结果
<Textarea color="danger" />
行数
使用 minRows
设置要显示的最小行数,使用 maxRows
限制用户将看到的最大行数。
装饰器
使用 startDecorator
和/或 endDecorator
属性向 textarea 添加支持图标或元素。通常更常见的是看到在顶部和底部使用装饰器的 textarea 组件。
HTML textarea ref
使用 slotProps.textarea
属性将 props 传递给 ref
和其他 受支持的 HTML 属性 到 textarea 元素。
或者,您可以手动通过定位 textarea 插槽来完成
<label htmlFor="unique-id">Label</label>
<Textarea
slotProps={{
textarea: {
id: 'unique-id',
}
}}
/>
常用示例
聚焦轮廓
此示例显示如何使用 CSS 轮廓替换默认的聚焦环外观。
浮动标签
要创建浮动标签 textarea,需要自定义组件(<textarea>
和 <label>
的组合)来替换默认的 textarea 插槽。