متن برجسته (HighlightedText)

علامت‌گذاری عبارت‌های جست‌وجو در متن ساده، با یکسان‌سازی «ی/ي»، «ک/ك» و نیم‌فاصله

معرفی

HighlightedText یک متن ساده را نشان می‌دهد و عبارت‌های داده‌شده را با <mark> علامت می‌زند؛ مثلاً عنوان یا خلاصهٔ یک نتیجهٔ جست‌وجو. با normalize="fa" نوشتار عربی و فارسی «ی» و «ک» با هم جور درمی‌آیند و نیم‌فاصله اختیاری است، پس «می‌رود» با «ميرود» هم پیدا می‌شود.

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

  • برای متن پست کاربر با هشتگ و منشن — از SocialText یا Post با prop ‏highlight استفاده کنید
  • برای مارک‌داون — از Prose استفاده کنید
  • فروشگاه از امروز جشنوارهٔ تخفیف فصلی را شروع می‌کند
  • مشتریان می‌گویند ارسال رایگان کمپين پاييزي دیر رسید
  • گزارش هفتگی: بحث دربارهٔ کیفیت بسته‌بندی بیشتر شد
  • پیشنهاد ويژه برای خریداران کتاب در کمپین پاییزی
«کمپين پاييزي» با «ي» عربی هم پیدا می‌شود، چون normalize="fa" است. علامت سبز برند کم‌رنگ است و متن رنگ خودش را نگه می‌دارد.

زمین بازی

با تغییر تنظیمات زیر، پیش‌نمایش زنده را مشاهده کنید.

زمین بازی

مشتریان می‌گویند ارسال رایگان کمپين پاييزي دیر رسید

تنظیمات
محتوا
import { HighlightedText } from '@partodata/ui'

<HighlightedText text="مشتریان می‌گویند ارسال رایگان کمپين پاييزي دیر رسید" terms={["کمپین","پاییزی"]} normalize="fa" />

استفاده

import { HighlightedText } from '@partodata/ui/highlighted-text'
<HighlightedText text={result.title} terms={[query]} normalize="fa" />

با RegExp

<HighlightedText text={log} terms={/خطا|هشدار/} />

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

بکنید

برای ورودی کاربر فارسی‌زبان همیشه normalize="fa" بدهید؛ صفحه‌کلیدهای مختلف «ی» و «ک» متفاوت می‌نویسند.

نکنید

RegExp را از ورودی خام کاربر نسازید؛ آرایهٔ عبارت‌ها را بدهید تا نویسه‌های ویژه escape شوند.

نکنید

برای علامت جست‌وجو <mark> دستی با رنگ دیگر (زرد، کهربایی یا رنگ هشدار) نسازید؛ HighlightedText یا prop ‏highlight در SocialText و Post همان علامت مشترک را می‌دهند تا نتیجه‌های جست‌وجو و پست‌ها یک‌شکل بمانند.

Props

HighlightedText

Prop

Type

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

  • علامت‌ها عنصر معنایی <mark> هستند و متن کامل بدون تغییر خوانده می‌شود
  • علامت سبز برند با شفافیت 30 درصد است (bg-brand/30) و متن رنگ اصلی خودش را نگه می‌دارد (text-foreground)؛ کنتراست متن روی علامت روی صفحه، کارت (surface-100) و نوار surface-200 در تم روشن دست‌کم 15.9:1 و در تم تیره دست‌کم 7.4:1 است (AAA)
  • علامت حاشیه و متن سبز ندارد، پس با Badge موفقیت (پرکنندهٔ 10 درصد، متن سبز و حاشیه) و با رنگ انتخاب متن مرورگر اشتباه نمی‌شود
  • معنا فقط با رنگ منتقل نمی‌شود: عنصر <mark> برای فناوری‌های کمکی هم نشانه است

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

  • SocialText — متن پست با هشتگ، منشن و همین علامت‌گذاری
  • Post — prop ‏highlight برای عبارت جست‌وجو