پرتوپرتو

ناحیه متن (Textarea)

فیلد ورودی چند خطی

معرفی

کامپوننت Textarea برای ورودی متن چند خطی استفاده می‌شود.

چه زمانی استفاده نکنیم:

  • برای ورودی تک‌خطی — از Input استفاده کنید
  • برای محتوای Rich Text (bold، italic، لیست) — به ادیتور نیاز دارید
  • برای ورودی‌هایی با حجم خیلی زیاد (مثل paste کردن JSON) — از کامپوننت مخصوص استفاده کنید

استفاده

import { Textarea } from '@parto-system-design/ui'
<Textarea placeholder="متن خود را وارد کنید..." />

زمین بازی

با تغییر تنظیمات زیر، ناحیه متن را به صورت زنده مشاهده کنید.

زمین بازی
تنظیمات
import { Textarea } from '@parto-system-design/ui'

<Textarea />

با Label

import { Textarea, Label } from '@parto-system-design/ui'
;<div className="grid gap-2">
  <Label htmlFor="message">پیام</Label>
  <Textarea id="message" placeholder="پیام خود را بنویسید..." rows={4} />
</div>

غیرفعال

<Textarea disabled placeholder="این فیلد غیرفعال است" />

با خطا

<Textarea aria-invalid="true" placeholder="مقدار اجباری است" />

حالت‌ها و انواع

حالت‌های مختلف

<div className="flex flex-col gap-4 max-w-sm" dir="rtl">
  <Textarea placeholder="متن پیش‌فرض" />
  <Textarea placeholder="غیرفعال" disabled />
  <Textarea placeholder="فقط خواندنی" readOnly defaultValue="این متن فقط خواندنی است" />
  <Textarea placeholder="با خطا" aria-invalid="true" />
</div>

راهنمای استفاده

بکنید

  • برای متن‌های چندخطی مانند توضیحات، نظرات یا پیام‌ها از Textarea استفاده کنید - مقدار rows را متناسب با حجم مورد انتظار متن تنظیم کنید - همیشه از Label همراه با Textarea استفاده کنید تا هدف فیلد مشخص باشد

نکنید

  • برای ورودی‌های تک‌خطی مانند نام یا ایمیل از Textarea استفاده نکنید — از Input استفاده کنید - از Textarea برای محتوای Rich Text (bold، italic، لیست) استفاده نکنید — به ادیتور اختصاصی نیاز دارید - بدون placeholder یا Label از Textarea استفاده نکنید

Props

Prop

Type

دسترسی‌پذیری

  • از id و Label[htmlFor] برای اتصال برچسب به فیلد استفاده کنید
  • در حالت خطا، aria-invalid="true" را تنظیم کنید تا screen reader وضعیت را اعلام کند
  • از aria-describedby برای اتصال پیام خطا یا راهنمایی استفاده کنید

تعامل با کیبورد

  • Tab: انتقال فوکوس به فیلد - متن چندخطی با Enter وارد می‌شود (Enter در Textarea خط جدید ایجاد می‌کند، نه submit فرم)

کامپوننت‌های مرتبط

  • Input — اگر نیاز به ورودی تک‌خطی دارید، از Input استفاده کنید
  • Field — اگر نیاز به Textarea با label و validation message دارید، از Field استفاده کنید