ورودی رمز عبور (PasswordInput)
فیلد رمز عبور با دکمه نمایش/مخفی کردن توکار و جهت پایدار در RTL
منسوخ از 4.3
یک فیلد رمز یک مدل دارد: Input با kind="password" — همان دکمهٔ نمایش رمز و همان جهت پایدار.
مسیر مهاجرت: <PasswordInput /> ← <Input kind="password" />، showLabel/hideLabel ← revealLabels={{ show, hide }}.
در 5.0 حذف میشود.
معرفی
PasswordInput یک Input تخصصی برای دریافت رمز عبور است: بهصورت پیشفرض مقدار را ماسک میکند و یک دکمه چشم برای نمایش/مخفیکردن موقت مقدار در کنار فیلد قرار میدهد. برخلاف ترکیب دستی Input + endAdornment، این کامپوننت جهت (dir) فیلد را همیشه ltr نگه میدارد تا هنگام تغییر حالت نمایش، آدورنمنت چشم جابهجا نشود — مشکلی که در ترکیب دستی رخ میدهد چون Input جهت را فقط برای نوع password بهطور خودکار روی ltr تنظیم میکند و با تغییر نوع به text به جهت صفحه (rtl) برمیگردد.
چه زمانی استفاده کنیم:
- برای هر فیلد ورود/تغییر رمز عبور در فرمهای ورود، ثبتنام یا تنظیمات حساب
- وقتی کاربر باید بتواند مقدار تایپشده را قبل از ارسال بازبینی کند
چه زمانی استفاده نکنیم:
- وقتی فرم یک راه دیگر و در دسترس با کیبورد برای نمایش رمز دارد (مثلاً چکباکس «نمایش رمز» جدا) — در این حالت
enableVisibilityToggle={false}بگذارید تا دکمه تکراری نشود
زمین بازی
با تغییر تنظیمات زیر، پیشنمایش زنده را مشاهده کنید.
import { PasswordInput } from '@partodata/ui'
<PasswordInput aria-label="رمز عبور" placeholder="رمز عبور خود را وارد کنید" />استفاده
import { PasswordInput } from '@partodata/ui'
export default function LoginForm() {
return <PasswordInput placeholder="رمز عبور خود را وارد کنید" />
}حالتها و انواع
بدون دکمه نمایش/مخفیکردن
برای فرمهایی که یک affordance جداگانه برای نمایش رمز دارند:
<PasswordInput enableVisibilityToggle={false} placeholder="رمز عبور" />برچسبهای سفارشی
aria-label دکمه در دو حالت پیشفرض «نمایش رمز» و «مخفی کردن رمز» است؛ برای متن اختصاصی:
<PasswordInput showLabel="نمایش رمز عبور" hideLabel="پنهان کردن رمز عبور" />حالت خطا
<PasswordInput aria-invalid="true" placeholder="رمز عبور" />غیرفعال
<PasswordInput disabled placeholder="رمز عبور" />راهنمای استفاده
بکنید
- همیشه یک
Labelمرتبط (باhtmlFor) در کنارPasswordInputقرار دهید - اجازه دهید دکمه نمایش/مخفیکردن در مسیر Tab طبیعی فیلد باقی بماند؛ این دکمه راه اصلی بازبینی مقدار تایپشده برای کاربر کیبورد است - برای فرم تغییر رمز، از دو نمونه جدا (رمز جدید / تکرار رمز) باPasswordInputاستفاده کنید
نکنید
toggleTabIndex={-1}را صرفاً برای کوتاهکردن مسیر Tab نگذارید — این گزینه فقط برای زمانی است که فرم راه دیگری برای نمایش رمز با کیبورد فراهم کرده باشد - برای نمایش یک راز موجود (کلید API، توکن) ازPasswordInputاستفاده نکنید — ازCopyButtonکنار متن استفاده کنید -dirرا رویrtloverride نکنید؛ آدورنمنت چشم برای جهتltrجایگذاری شده است
Props
دسترسیپذیری
- دکمه نمایش/مخفیکردن یک
<button type="button">واقعی باaria-labelوaria-pressedاست و بهصورت پیشفرض در مسیر Tab قرار دارد — طبق WCAG 2.1.1 نمایش رمز نباید فقط با ماوس ممکن باشد aria-pressedوضعیت فعلی (نمایش/مخفی) را برای صفحهخوان اعلام میکند و متنaria-labelهمزمان بین «نمایش رمز» و «مخفی کردن رمز» تغییر میکند- حلقه focus مرئی روی دکمه با رنگ برند ثابت طراحی شده (نه یک رنگ متغیر با تم)
تعامل با کیبورد
Tab: انتقال فوکوس بین فیلد و دکمه نمایش/مخفیکردن -Enter/Space: تغییر حالت نمایش رمز وقتی دکمه فوکوس دارد