Textarea
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 slot 手動執行此操作
<label htmlFor="unique-id">Label</label>
<Textarea
slotProps={{
textarea: {
id: 'unique-id',
}
}}
/>
常見範例
聚焦外框
此範例示範如何使用 CSS 外框取代預設的聚焦環外觀。
浮動標籤
若要建立浮動標籤 textarea,需要自訂元件(<textarea>
和 <label>
的組合)來取代預設的 textarea slot。