@fontsource/montserrat یکی از بسته های پروژه Fontsource هست و فونت Montserrat رو از مجموعه Google Fonts به شکل یه بسته npm مرتب عرضه می کنه. مجوز فونت OFL هست؛ یه مجوز آزاد که معمولا برای پروژه های شخصی و تجاری مشکلی درست نمی کنه. با این حال شرایطش رو یه بار خودت هم بخون.
مشکلی که حل می کنه ساده هست: معمولا فونت رو با یه لینک از سرویس خارجی می گیریم. وقتی اینترنت بین الملل کند یا ناپایدار می شه، همین یه درخواست می تونه باعث بشه صفحه با فونت پیش فرض مرورگر بالا بیاد یا چند ثانیه متن دیر نشون داده بشه. با این بسته فایل های فونت و CSS روی سرور خودت می شینن و مرورگر همه چیز رو از دامنه خودت می گیره. کش و سرعت هم دست خودته.
اگه پروژه ات با ابزار ساخت مثل Vite یا webpack کار می کنه، یا قالب و سایت اختصاصی می نویسی و می خوای فونت جزو فایل های پروژه باشه، این بسته به درد تو می خوره. سایت وردپرسی هم مشکلی نداره: می تونی فایل ها رو روی هاست بذاری و با یه فایل CSS به صفحه وصلشون کنی.
یه نکته رو جدی بگیر: Montserrat حروف لاتین و چند زیرمجموعه مثل سیریلیک و ویتنامی رو داره، ولی حروف فارسی نداره. اگه متن اصلی سایتت فارسیه، این فونت رو برای نام برند، تیترهای انگلیسی، منو یا بخش های لاتین بذار و برای متن فارسی یه فونت فارسی کنارش تعریف کن. وگرنه مرورگر برای حروف فارسی خودش یه فونت جایگزین انتخاب می کنه و ظاهر صفحه یکدست نمی شه.
نکته بعدی حجمه. هر وزن و هر حالت (معمولی یا کج) فایل جدا داره، پس فقط همونایی رو بیار که واقعا استفاده می کنی؛ مثلا یه وزن معمولی و یه وزن ضخیم برای تیتر. نسخه های رسمی و بدون تغییر این بسته تو مخزن داخلی ما هم هست. اگه دسترسی به منبع اصلی محدود بود، می تونی از همین جا برداری.
راهنمای استفاده
اول ببین پروژه ات ابزار ساخت داره یا نه، چون مسیر کار از همین جا جدا می شه. کد آماده برای افزودن به صفحه هم پایین همین صفحه هست.
- اگه پروژه ات با npm کار می کنه، بسته رو نصب کن و تو فایل ورودی پروژه، فایل CSS وزن مورد نظرت رو import کن. بسته برای هر وزن یه فایل CSS جدا داره.
- اگه ابزار ساخت نداری (مثلا یه سایت وردپرسی ساده)، بسته رو از مخزن بردار و فایل های CSS و پوشه فونت ها رو کنار هم روی هاست آپلود کن. بعد فایل CSS رو مثل هر استایل دیگه ای به صفحه وصل کن.
- بعدش تو CSS خودت برای عنصرهای مورد نظر، font-family رو روی Montserrat بذار. یه فونت فارسی و یه فونت عمومی هم به عنوان جایگزین کنارش اضافه کن.
- فقط وزن ها و حالت هایی رو لود کن که لازم داری. هر چی کمتر، صفحه سبک تر.
آخرش صفحه رو باز کن، بخش Network ابزار توسعه مرورگر رو ببین و مطمئن شو فایل های فونت از دامنه خودت میان، نه از یه منبع خارجی. اگه کش سرور رو درست تنظیم کنی، دفعه های بعد فونت بدون دانلود دوباره از حافظه مرورگر لود می شه.