جفت رنگ متن و پسزمینه
سبک درست
کنشها و وضعیتها تهرنگ ملایم دارند و متن همخانوادهٔ همان رنگ را نشان میدهند. مثل نشانهای «اصلی»، «خطر»، «هشدار»، «موفقیت» و «اطلاعات»:
- پسزمینه: تهرنگ کمپررنگ همان رنگ (کپی کد، کپی کد و …)
- متن: تیرهٔ همان خانواده (کپی کد، کپی کد، کپی کد و …)
ممنوع: پرکردن کامل دکمه یا نشان با رنگ (مثلاً سبز یا قرمز) و گذاشتن متن مشکی یا سفید روی آن. این ترکیب هم زشت است هم کنتراست پایدار ندارد.
چرا
اگر پسزمینه عوض شود و متن از قاعدهٔ دیگری بماند، جفت ناسازگار میشود. مثال: دکمهٔ حذف با پسزمینهٔ قرمز و متن مرکب آبیسبز کنش اصلی. حل سیستماتیک این است که هر لحن یک جفت ثبتشده داشته باشد و هیچکس دستی آن را نسازد.
جدول جفتها
| پسزمینه (توکن) | متن جفتشده (توکن) | کاربرد |
|---|---|---|
| کپی کد · کپی کد · کپی کد | کپی کد | کنش اصلی (کپی کد با کپی کد)، برگهٔ فعال، انتخاب |
| کپی کد · کپی کد · کپی کد | کپی کد | کنش مخرب (کپی کد با کپی کد) |
| کپی کد | کپی کد | وضعیت موفقیت (نشان، هشدار، اعلان) |
| کپی کد | کپی کد | وضعیت هشدار |
| کپی کد | کپی کد | وضعیت اطلاع |
| کپی کد | کپی کد | وضعیت خطا |
| کپی کد · کپی کد | کپی کد | حالتهای سطح خنثی (کنش ثانویه) |
| بدون پسزمینه | کپی کد | کنش مخرب ثانویه یا شبح (کپی کد با کپی کد/کپی کد) |
هر متن فقط با پسزمینهٔ جفت خودش در جدول استفاده شود. مثلاً کپی کد روی تهرنگ خطر یا کپی کد روی تهرنگ کنش اصلی مجاز نیست.
قانونها
- کنش مخرب با کپی کد. تهرنگ خطر فقط با کپی کد و کپی کد ساخته شود. کپی کد (کپی کد) و کپی کد با کپی کد همین مسیر را دارند.
- هرگز کپی کد یا کپی کد دکمه را دستی عوض نکنید. نه با کپی کد، نه با کپی کد، نه با قاعدهٔ CSS جداگانه. اگر لحن مورد نیاز نیست، کپی کد یا کپی کد مناسب را انتخاب کنید.
- هرگز کپی کد برای حالت hover/active نگذارید. حالتها توکن جفتشده دارند (کپی کد، کپی کد).
- هر قاعدهٔ CSS که پسزمینهٔ پرشدهٔ معنایی میگذارد، متن را همزمان در همان قاعده تعیین کند. حالتهای کپی کد، کپی کد و کپی کد از قاعدهٔ پایه ارث میبرند و معافاند.
- عنصر غیرمتنی (نقطه، نوار، دستگیره، گرهٔ نمودار) با کامنت کپی کد علامت بخورد. این علامت به گارد میگوید متنی وجود ندارد و نیازی به جفت نیست.
- رنگ خام و هگز در کد رابط ممنوع است. متن و پسزمینه فقط از توکنهای معنایی بیایند؛ سیاه و سفید خام (کپی کد، کپی کد، کپی کد) هم همین حکم را دارد.
- جفت جدید اول ثبت، بعد استفاده شود. برای هر تهرنگ یا متن تازه: (الف) توکن معنایی در کپی کد، (ب) فراداده در کپی کد، (پ) جفت در فهرست کپی کد یا فهرست تهرنگها در کپی کد؛ سپس و فقط سپس در کامپوننت استفاده شود.
مثالها
درست:
<Button tone="danger">حذف کمپین</Button><Button tone="danger" variant="secondary">حذف ایده</Button>نادرست:
{/* پسزمینه عوض شده و متن جفت نشده */}<Button style={{ background: 'var(--tds-danger-default)' }}>حذف کمپین</Button>/* نادرست: پسزمینهٔ پرشده بدون color در همان قاعده — گارد check:tokens خطا میدهد */[data-part="confirm"][data-tone="danger"] { background: var(--tds-danger-default); }راستیآزمایی
گارد خودکار با این فرمان اجرا میشود و پیش از هر انتشار باید سبز باشد:
pnpm --filter @tokapps/tokens check:tokensاین گارد سه چیز را بررسی میکند: کنتراست همهٔ جفتهای بالا در ۶ تم × روشن/تیره × کنتراست عادی/بالا، وجود متن جفتشده در هر قاعدهٔ پسزمینهٔ معنایی، و ممنوعیت رنگ خام. بازبینی انسانی هم لازم است: آیا متن و تهرنگ همخانواده به نظر میرسند؟
مرجع فنی
- Button: کپی کد و کپی کد (کپی کد)
- AlertDialog: کپی کد
- Dialog: کپی کد
- توکنها: کپی کد، کپی کد، کپی کد
- نسخهٔ مرجع برای ایجنتها و مخزن: کپی کد