در یکی از پروژه‌های محتوایی، صاحب سایت با افتخار می‌گفت فونت لوکس و مدرنی انتخاب کرده که در گرافیک برند او را نمایندگی می‌کند. صفحه را که باز کردم، دقیقاً همان فونت لوکس، فایل ۴۵۰ کیلوبایتی با چهار وزن، بار اول در صفحه لود می‌شد و متن تا پایان لود، نامرئی می‌ماند. کاربر معمولی، این را با «سایت کند» ترجمه می‌کند — نه با «فونت زیبا». آن روز تصمیم گرفتم دربارهٔ انتخاب فونت، منظم‌تر فکر کنم. این نوشته، حاصل همان تصمیم است: چطور فونت مناسب سایت را انتخاب کنیم، بدون آن‌که تجربهٔ لود یا خوانایی قربانی سلیقه شود.

فونت مناسب سایت دقیقاً چه چیزی را تعیین می‌کند؟

پیش از هر معیار فنی، باید یادمان باشد فونت انتخاب نمی‌کنیم؛ تجربه خواندن انتخاب می‌کنیم. فونت سایت شما، در سه سطح اثر می‌گذارد: خوانایی و راحتی متن، شخصیت بصری برند، و سرعت لود صفحه. بیشتر بحث‌های عمومی روی سطح دوم می‌مانند — فونت زیبا یا لوکس — در حالی که سطح اول و سوم، تفاوت واقعی را می‌سازند. اگر با مبانی تایپوگرافی آشنا نیستید، مقالهٔ تایپوگرافی چیست و چه نقشی در طراحی دارد؟ مرزهای این بحث را روشن می‌کند؛ و برای درک چرایی اهمیت، نقش تایپوگرافی در تجربه کاربری چیست؟ نقطه شروع خوبی است.

در پروژه‌ها سه اثر قابل‌اندازه‌گیری فونت را دیده‌ام: نرخ ترک صفحهٔ اول (اگر متن سخت خوانده شود، کاربر زودتر می‌رود)، نرخ خواندن پاراگراف دوم (اگر خطوط طولانی یا فاصله‌گذاری بد باشد، کاربر سریع سراغ تیترها می‌رود)، و LCP در موبایل (اگر فونت سنگین و بدون استراتژی بار شود، همین معیار می‌سوزد). این سه، همگی به تصمیم فونت وابسته‌اند.

فونت، صدای بصری سایت شما است. همان‌طور که یک گوینده با لحن اشتباه می‌تواند بهترین متن را خراب کند، فونت اشتباه هم بهترین محتوا را ناخوانا می‌کند.

پنج معیار اصلی انتخاب فونت وب

در انتخاب فونت برای هر پروژه، پنج معیار زیر را به‌عنوان چک‌لیست اجرا می‌کنم. اگر فونتی در دو مورد از این پنج، ضعیف بود، کنار می‌گذارمش؛ گزینهٔ بعدی.

معیار اول: خوانایی در اندازه‌های کوچک

فونت باید در ۱۴ تا ۱۸ پیکسل، روی نمایشگر معمولی و در پس‌زمینهٔ سفید، راحت خوانده شود. فونت‌های با x-height پایین (ارتفاع حرف‌های کوچک)، در اندازه‌های کوچک، دشوار خوانده می‌شوند. این معیار، در انتخاب فونت برای متن اصلی سایت، بیش از شخصیت بصری اهمیت دارد. تفصیل این مفهوم در اصول تایپوگرافی در طراحی وب کدامند؟ آمده است.

معیار دوم: تنوع وزن‌ها و حالت‌ها

یک فونت خوب، حداقل چهار وزن دارد: Light، Regular، Semibold و Bold. اگر فونت‌های سایت شما در وزن‌های مختلف ارائه نشده‌اند، مجبور خواهید شد از «weight مصنوعی» مرورگر استفاده کنید که معمولاً نتیجهٔ زشتی می‌دهد. این معیار، دقیقاً همان جایی است که فونت‌های حرفه‌ای وب از فونت‌های دسکتاپی جدا می‌شوند.

معیار سوم: پشتیبانی از نویسه‌های لازم

فونت باید همهٔ نویسه‌های پرکاربرد زبان مخاطب را پوشش دهد. برای سایت‌های فارسی، این شامل نیم‌فاصله (ZWNJ)، اعداد فارسی، علامت‌های نگارشی فارسی («»، ؛، ،) و در صورت لزوم، حروف لاتین می‌شود. یک تست سریع: در CodePen یا مستندات فونت، متن ترکیبی «سلام، وقت‌تان بخیر ۱۲۳ abc» را نمایش دهید و ببینید آیا نویسه‌ها به‌درستی رندر می‌شوند. همان‌جا هم مشخص می‌شود فونت در ترکیب فارسی-انگلیسی چه رفتاری دارد.

معیار چهارم: سرعت و حجم فایل

این معیار، بیشترین بی‌توجهی را می‌بیند. یک فونت با چهار وزن، اگر کامل و بدون سابست باشد، می‌تواند به ۴۰۰ تا ۷۰۰ کیلوبایت برسد. در سرعتی که کاربر موبایلی تجربه می‌کند، این حجم معادل تأخیر محسوس است. راه‌حل‌ها را در بخش سرعت لود می‌بینید.

معیار پنجم: هم‌راستایی با شخصیت برند

این معیار، درست در جایی است که بیشتر پروژه‌ها افراط می‌کنند. فونت، باید شخصیت برند را تقویت کند، اما این شخصیت نباید خوانایی را قربانی کند. برای فروشگاه، فونت‌های ژئومتریک مدرن؛ برای سایت حقوقی، فونت‌های کلاسیک سریف؛ برای وبلاگ، فونت‌های انسانی و گرم. اگر فرق سریف و سنس‌سریف را به‌طور دقیق نمی‌دانید، تفاوت فونت سریف و سنس سریف چیست؟ را بخوانید.

سریف یا سنس‌سریف؟ پاسخ کاربردی، نه کلیشه‌ای

بحث سریف (Serif) در برابر سنس‌سریف (Sans-serif) در وب، بیشتر از آن‌که یک بحث فنی باشد، یک بحث تاریخی است. سال‌ها پیش تصور می‌شد سریف برای متن چاپی و سنس‌سریف برای نمایشگر بهتر است؛ اما امروز رزولوشن نمایشگرها بالا رفته و این تمایز کمرنگ شده است. پاسخ عملی من در پروژه‌ها: به‌جای بحث نوع، به سه پارامتر عرض، ضخامت و فاصله نگاه کنید.

عرض: فونت‌های باریک‌تر، برای متن‌های طولانی بهترند؛ فونت‌های پهن‌تر، برای تیترها. ضخامت: برای متن اصلی، ضخامت متوسط بهترین خوانایی را دارد؛ نه بیش از حد نازک و نه بیش از حد ضخیم. فاصله: فاصله حروف (letter-spacing) و فاصله خطوط (line-height) از خود فونت مهم‌ترند. در پروژه‌ای که فونت اصلی را از «A» به «B» عوض کردیم اما فاصله‌گذاری را نگه داشتیم، تفاوت محسوسی در خوانایی ندیدیم؛ ولی وقتی فاصله خطوط را از ۱.۴ به ۱.۷ رساندیم، زمان ماندگاری کاربر در صفحهٔ مقاله دو برابر شد.

در تایپوگرافی وب، ۷۰ درصد تجربه متن را فاصله‌ها می‌سازند، نه خودِ فونت.

فونت فارسی برای سایت؛ چهار نکته حیاتی

اگر سایت شما فارسی است — که برای اکثر پروژه‌های ایرانی صادق است — انتخاب فونت، لایه‌ای از پیچیدگی اضافه دارد. چهار نکته‌ای که در همه پروژه‌های فارسی‌زبان بررسی می‌کنم:

نکته اول: پشتیبانی واقعی از نیم‌فاصله

نیم‌فاصله (ZWNJ - Zero Width Non-Joiner)، یکی از حساس‌ترین نویسه‌های فارسی است. فونت‌هایی که درست پشتیبانی نکنند، عبارت «می‌شود» را به شکل نامناسب نشان می‌دهند یا فاصلهٔ اضافه تزریق می‌کنند. تست سریع: در نمونه فونت، عبارت‌های «نمی‌توان»، «به‌خصوص»، «راه‌حل» و «می‌رود» را در کنار هم ببینید. اگر یکی از این‌ها بد رندر شد، فونت رد است.

نکته دوم: وزن‌های کافی

فونت‌های فارسی، معمولاً در وزن‌های محدودتری ارائه می‌شوند. اگر قصد دارید در تیترها از وزن ضخیم استفاده کنید، قبل از انتخاب، مطمئن شوید وزن Bold واقعی وجود دارد. وزن مصنوعی، در فارسی به‌ویژه بد رندر می‌شود، چون اتصالات حروف را به‌هم می‌ریزد.

نکته سوم: حجم فایل بالا

فونت‌های فارسی، چون نویسه‌های بیشتری دارند (حالت‌های مختلف هر حرف: اول، وسط، آخر، منفرد)، معمولاً حجیم‌ترند. یک فونت فارسی با یک وزن، می‌تواند معادل دو فونت لاتین حجم داشته باشد. راه‌حل: سابست (Subset) روی نویسه‌های پرکاربرد (حدود ۵۰۰ نویسه) و حذف نویسه‌های نادر. بررسی دقیق‌تر این رویکرد در بهترین فونت‌های فارسی برای وب کدامند؟ آمده است.

نکته چهارم: هم‌خوانی با لاتین

اگر سایت شما متن ترکیبی فارسی-انگلیسی دارد، فونت باید با فونت لاتین همراه‌اش هماهنگ باشد. قاعدهٔ سرانگشتی: اگر فونت اصلی فارسی است، برای متن‌های لاتین، یک فونت هم‌خانواده انتخاب کنید (مثلاً ترکیب یک فونت ژئومتریک فارسی با یک فونت لاتین مشابه). تفصیل این تصمیم و نمونه‌های عملی در تایپوگرافی فارسی در طراحی وب چه نکاتی دارد؟ باز شده است.

وزن‌ها، ایتالیک و فونت متغیر

یکی از پرسش‌های رایج در پروژه‌ها: چند وزن از فونت را لود کنیم؟ پاسخ کوتاه، کمتر از آن‌چه فکر می‌کنید. قاعدهٔ من:

  • Regular (400): برای متن اصلی.
  • Medium (500) یا Semibold (600): برای تیترهای کوچک و تأکیدها.
  • Bold (700): برای تیترهای اصلی.

اگر یک پروژه بیش از چهار وزن بار می‌کند، معمولاً یا فونت اشتباه انتخاب شده یا طراحی درست تفکیک نشده. فونت متغیر (Variable Font) راه‌حل مدرنی است: یک فایل واحد که می‌تواند همهٔ وزن‌ها و عرض‌ها را پوشش دهد. این تکنیک، هم حجم را کاهش می‌دهد و هم انعطاف را بالا می‌برد، به شرطی که مرورگر هدف، پشتیبانی داشته باشد. اگر دربارهٔ پشتیبانی مرورگر مطمئن نیستید، برای سایت‌های با مخاطب قدیمی، از نسخهٔ استاتیک استفاده کنید.

در پروژه‌های فارسی، نکتهٔ ظریفی که کمتر دیده می‌شود: فونت متغیر برای فارسی، هنوز به اندازه لاتین بالغ نیست. اگر فونت متغیر فارسی انتخاب می‌کنید، تست کنید که وزن‌های میانی (۴۰۰ تا ۷۰۰) به‌درستی رندر شوند، نه فقط دو نقطهٔ انتهایی.

سرعت لود فونت؛ جایی که LCP قربانی می‌شود

فونت، معمولاً بزرگ‌ترین فایل صفحهٔ اول سایت‌های محتوایی است. اگر استراتژی لود نداشته باشید، همین فایل، معیارهای Core Web Vitals چیست و چرا گوگل بر آن تاکید دارد؟ را می‌سوزاند. سه تکنیک عملی که در پروژه‌ها اجرا می‌کنم:

تکنیک اول: font-display: swap

این ویژگی CSS به مرورگر می‌گوید متن را با فونت پیش‌فرض سیستم نمایش بده، و زمانی که فونت اصلی لود شد، جایگزین کن. نتیجه: کاربر، متن را می‌بیند (حتی با فونت سیستم) و منتظر نمی‌ماند. تأثیر این یک خط بر LCP، در تجربهٔ خودم قابل‌توجه است.

@font-face {
  font-family: "MyFont";
  src: url("/fonts/myfont.woff2") format("woff2");
  font-display: swap;
}

تکنیک دوم: پیش‌بارگذاری فقط فونت‌های بحرانی

فونت‌هایی که در بالای صفحه (Above the Fold) استفاده می‌شوند، با <link rel="preload"> پیش‌بارگذاری شوند. اما مراقب باشید: هر preload اضافه، از پهنای باند باارزش کاربر مصرف می‌کند و می‌تواند رقبای مهم‌تر (تصویر LCP) را عقب بیندازد. در پروژه‌ای که به جای سه فونت، یک فونت را پیش‌بارگذاری کردیم، LCP تقریباً ۳۰۰ میلی‌ثانیه بهبود یافت.

تکنیک سوم: سابست و فرمت مدرن

فرمت WOFF2 (Web Open Font Format 2)، فشرده‌ترین فرمت رایج است و اکثر مرورگرهای امروز پشتیبانی می‌کنند. سابست، نویسه‌های نادر را حذف می‌کند. ترکیب این دو، می‌تواند حجم فونت را از ۴۰۰ کیلوبایت به ۸۰ کیلوبایت برساند. برای سایت‌های فارسی، این کاهش حجم به‌ویژه ارزشمند است. اصول کلی سرعت سایت را در چگونه سرعت فرانت‌اند را افزایش دهیم؟ باز کرده‌ام؛ فونت، یکی از لایه‌های همان بحث است.

فونتی که بار اول کند می‌آید، زیبایی‌اش را در نگاه کاربر از دست می‌دهد. تجربه اول، تنها فرصتی است که فونت شما دارد.

جدول مقایسه: انتخاب محبوب در برابر اثر واقعی

تصمیماثر روی خواناییاثر روی سرعتهزینه اجرا
فونت با x-height بالامثبتبی‌اثرکم
وزن‌های محدود (۳ تا ۴ وزن)خنثیمثبتکم
فونت متغیرمثبتمثبت (فایل واحد)متوسط
font-display: swapخنثیمثبت (LCP)کم
preload انتخابیخنثیمثبتکم
سابست فارسیخنثیمثبتمتوسط
فونت تجاری لوکسوابستهخطر منفیزیاد

نگاه به این جدول، یک نتیجهٔ ساده دارد: بیشتر تصمیم‌های مؤثر، ارزان و کم‌هزینه‌اند؛ و برعکس، تصمیم‌هایی که بیشترین توجه را می‌گیرند (فونت تجاری لوکس) کم‌ترین بازده عملی را دارند، مگر آن‌که با احتیاط و بهینه‌سازی لود همراه شوند.

چطور انتخاب فونت را در پروژه آزمایش کنیم؟

انتخاب فونت، شبیه انتخاب رنگ نیست؛ رفتار آن در متن واقعی، در حالت واقعی و روی دستگاه واقعی معلوم می‌شود. چهار مرحلهٔ آزمایش که در پروژه‌ها اجرا می‌کنم:

  1. آزمون متن واقعی: سه فونت کاندیدا را در یک صفحه نمونه، روی یک پاراگراف واقعی از محتوای سایت‌تان (نه lorem ipsum) تست کنید. ستون‌های کنار هم، مقایسه را ساده‌تر می‌کند.
  2. آزمون موبایل: همان صفحه را روی گوشی متوسط، با اندازه‌های واقعی، باز کنید. اگر فونت در موبایل خوانا نیست، در دسکتاپ هم نجات نخواهد یافت. اصول اختصاصی این مرحله در چگونه تایپوگرافی را برای موبایل بهینه کنیم؟ آمده است.
  3. آزمون ترکیب فارسی-انگلیسی: اگر سایت شما اصطلاحات لاتین دارد، فونت را در ترکیب با آن‌ها تست کنید. این مرحله، بیشتر از هر چیز دیگری، فونت‌های ضعیف را لو می‌دهد.
  4. آزمون سرعت: فونت را در یک محیط استجینگ لود کنید و LCP را اندازه بگیرید. اگر LCP بالای ۲.۵ ثانیه شد، بهینه‌سازی لود را اجرا کنید، نه تعویض فونت را. برای ابزارهای این آزمون، ابزارهای تست سرعت سایت کدامند؟ راهنمای کاملی دارد.

اشتباهات رایج در انتخاب فونت سایت

پنج اشتباهی که در بازبینی سایت‌ها بیش از همه تکرار می‌شوند:

  • انتخاب فونت بر اساس زیبایی صفحه نمایش بدون تست متن طولانی. زیبایی در تیتر، چیز دیگری است؛ در پاراگراف ۵۰۰ کلمه‌ای، فونت باید اول از همه خوانا باشد.
  • بارگذاری بیش از حد وزن‌ها و خانواده‌ها. چهار وزن از سه خانواده در یک صفحه، هم حجم صفحه را زیاد می‌کند و هم زمان رندر را عقب می‌اندازد.
  • نادیده‌گرفتن فونت fallback. اگر فونت اصلی لود نشد، کاربر چه چیزی می‌بیند؟ یک فونت‌استک (font stack) درست، تجربه را در شرایط کندی اینترنت نجات می‌دهد.
  • استفاده از فونت با مجوز نامشخص. فونت‌های «رایگان» در سایت‌های ناشناس، ممکن است بعداً مشکلی حقوقی بسازند. مجوز فونت را همیشه از منبع اصلی تأیید کنید.
  • نادیده‌گرفتن نویسه‌های خاص فارسی. خیلی از فونت‌های لاتین، به‌ظاهر از فارسی پشتیبانی می‌کنند، اما در نیم‌فاصله یا اعداد فارسی، نتیجه قابل قبول نیست. فهرست این خطاها با راه‌حلشان در اشتباهات رایج در تایپوگرافی وب آمده است.

نگاه زیرپوستی به فونت به‌عنوان منبع

برای مهندسانی که فونت را به‌عنوان یک منبع سیستمی می‌بینند، فونت را می‌توان در سه پارامتر باز کرد: حجم فایل (Bandwidth)، زمان پارس و paint (CPU)، و اثر بر تجربه رندر (Rendering Cost). هر تصمیمی که در این حوزه می‌گیرید، در نهایت یکی از این سه را بهتر یا بدتر می‌کند.

سه اصل معماری که در پروژه‌های تیم‌محور اجرا کرده‌ام: یک — هر فونت، یک هدف دارد: فونت اصلی برای متن، یک فونت برای تیتر، و در موارد خاص، یک فونت ویژه برای برند. دو — تعداد وزن‌ها را ثابت و حداقلی نگه دارید: سه وزن، بیشتر از ۹۰ درصد نیازها را پوشش می‌دهد. سه — پیش از اضافه‌کردن هر فونت، بودجهٔ کارایی را بررسی کنید: فونت اضافه، مثل هر منبع اضافه، باید توجیه داشته باشد. اگر بعد از یک ماه، هیچ‌کس به آن فونتِ اضافه سر نزده بود، احتمالاً وجودش فقط هزینه است.

یک نکتهٔ معماری که در پروژه‌های چندزبانه اهمیت دارد: در سایت‌هایی که چند زبان و چند سیستم نوشتاری دارند، فونت را در قالب یک «typographic scale» واحد ببینید، نه یک تصمیم موردی. یعنی: هر زبان، نسخهٔ متناسب خودش را از همان ساختار تایپوگرافی بگیرد. این کار، هماهنگی را در سراسر سایت حفظ می‌کند. نکتهٔ کاربردی: در چنین پروژه‌ها، فونت‌ها را در یک CSS متغیر (custom property) تعریف کنید تا تغییر سراسری، بدون بازنویسی همهٔ فایل‌ها ممکن باشد.

و یک یادآوری معماری: انتخاب فونت، همیشه در دو سطح اتفاق می‌افتد. سطح اول، انتخاب خودِ فونت؛ سطح دوم، بهینه‌سازی لود آن. در پروژه‌های حساس به سرعت، توصیه می‌کنم در طراحی فونت اول خیلی وسواس به‌خرج ندهید، اما در بهینه‌سازی لود فونت، حداکثر جدیت را داشته باشید. این ترکیب، بهترین تعادل را می‌سازد.

خط پایان

فونت مناسب سایت، از سه جنس مختلف ساخته می‌شود: خوانایی برای متن، شخصیت برای برند، و سبکی برای لود. اگر انتخاب شما هر سه را به‌طور متعادل رعایت کرد، فونت درست را پیدا کرده‌اید. اگر یکی از این سه قربانی شد، معمولاً تجربهٔ کلی سایت ضربه می‌خورد — حتی اگر فونت در نگاه اول زیبا به‌نظر برسد.

اگر امروز فقط سه کار انجام دهید — فونت را در اندازه واقعی موبایل تست کنید، تعداد وزن‌ها را به سه محدود کنید، و font-display: swap را فعال کنید — بخش بزرگی از خطاهای رایج انتخاب فونت را بسته‌اید. اگر چهارمی را اضافه کنید — سابست فارسی — تجربهٔ کاربران ایرانی شما یک پلهٔ دیگر بهتر می‌شود، و این دقیقاً همان جایی است که خیلی پروژه‌ها نادیده می‌گیرند.

اگر روی پروژه‌ای فونت را با وسواس انتخاب کرده‌اید، برای من جالب است بدانم کدام معیار برایتان تصمیم‌ساز بود: خوانایی، شخصیت برند، یا سرعت لود. تجربه‌تان را در دیدگاه‌ها بنویسید؛ مخصوصاً اگر در انتخاب فونت فارسی، نکته‌ای کشف کرده‌اید که در راهنماهای عمومی دیده نمی‌شود. همان یک جزئیات، می‌تواند برای خواننده بعدی، یک هفته آزمون‌وخطا را حذف کند. 🔤