文本区域
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 插槽。