@fontsource-variable/noto-sans-tc نسخه variable فونت Noto Sans TC رو به شکل یه بسته npm در اختیارت می ذاره. Noto Sans TC فونت بدون سریف گوگل برای چینی سنتی (Traditional Chinese) است و این بسته فونت رو طوری بسته بندی کرده که بتونی خودت میزبانی کنی. خود فونت با مجوز متن باز OFL منتشر شده.
مشکلی که حل می کنه روشنه. خیلی ها فونت رو مستقیم از Google Fonts لود می کنن، یعنی سایتشون برای نمایش درست متن به یه سرویس بیرونی وابسته می شه. توی شرایط ایران، مخصوصا روزهایی که اینترنت بین الملل محدود می شه، این وابستگی می تونه صفحه رو کند کنه یا کلا فونت رو نیاره. با self-host فایل ها از همون هاست یا دامنه خودت سرو می شن و دیگه به دسترسی بیرونی گیر نمی دی.
نسخه variable یعنی به جای یه فایل جدا برای هر وزن (نازک، معمولی، ضخیم و...) یه فایل داری که محور وزن داره، و هر وزنی بینشون رو بدون دانلود اضافه می تونی استفاده کنی. فونت چینی چون هزاران حرف داره ذاتا سنگینه. بسته های Fontsource معمولا فونت رو بر اساس unicode-range تکه تکه می کنن تا مرورگر فقط تکه هایی رو بگیره که توی صفحه لازمه. جزئیاتش رو توی مستندات بسته چک کن.
کجا به کار می آد؟ اگه سایتت چندزبانه باشه و بخش چینی سنتی داشته باشه، مثلا فروشگاه یا شرکت واردات و صادرات با مشتری تایوانی یا هنگ کنگی، یا سایت آموزش زبان چینی، این بسته انتخاب خوبیه. ولی دو چیز رو یادت نره. اول اینکه این فونت حروف فارسی رو نداره. برای متن فارسی یه فونت فارسی جدا لازم داری و این فونت رو فقط کنارش توی font-family می ذاری. دوم اینکه برای چینی ساده یا ژاپنی و کره ای معمولا باید سراغ نسخه های دیگه همین خانواده بری، نه این یکی.
موقع استفاده فقط همون چیزی رو import کن که لازم داری و برای fallback هم یه فونت بذار. مجوز OFL معمولا استفاده توی پروژه های تجاری و وب رو راحت می ذاره، ولی یه بار متنش رو بخون. نسخه رسمی و بدون تغییر این بسته توی مخزن داخلی ما هم هست، برای وقتی که دسترسی به npm مشکل داره.
راهنمای استفاده
اگه پروژه ات با ابزار ساخت مثل Vite یا webpack بالا می آد، کار کوتاهیه:
- بسته رو با npm نصب کن.
- توی فایل ورودی جاوااسکریپت یا CSS پروژه، بسته رو import کن. کد آماده پایین همین صفحه هست.
- توی CSS برای المان مورد نظرت یا کل بدنه، font-family بنویس. اسم family توی این بسته ها معمولا همون اسم فونت با پسوند Variable است، ولی از مستندات بسته مطمئن شو.
- بعد از فونت چینی، فونت فارسی خودت و آخرش sans-serif رو بذار تا هر متنی فونت مناسب خودش رو بگیره.
اگه سایتت وردپرسیه و ابزار ساخت نداری:
- فایل های فونت و CSS بسته رو روی هاست خودت آپلود کن، مثلا توی پوشه قالب یا قالب فرزند.
- فایل CSS رو با کد آماده پایین صفحه توی قالب لود کن.
- مسیر فایل های فونت توی CSS رو با ساختار پوشه هات تطبیق بده. مسیر اشتباه رایج ترین دلیل نیومدن فونته.
آخرش یه صفحه با متن چینی باز کن، تب Network مرورگر رو نگاه کن و ببین فایل فونت از دامنه خودت لود می شه یا نه. اگه لود نشد، اول دنبال خطای 404 بگرد.