نیمفاصله، عدالتِ کوچک: مبانیِ تایپوگرافیِ فارسی در محصول
نیمفاصله، کشیده، اعدادِ فارسی و فونت — یادداشتی دربارهٔ همان جزئیاتِ بهظاهر کوچکِ تایپوگرافیک که اعتبارِ بصریِ یک محصولِ ایرانی را میسازند یا در سکوت میشکنند.
وقتی متنی فارسی را در یک محصول میخوانم، پیش از آنکه به محتوا برسم، چشمم روی فاصلهها میلغزد. این عادتِ شغلی است، اما عادتِ بدی نیست. متنِ فارسی، اگر بد تایپ شده باشد، حتی پیش از خوانده شدن، حسِ بیاعتمادی میسازد. کاربر نمیداند دقیقاً چرا، اما چیزی در رابط میلنگد. آن چیز، اغلب، نیمفاصله است.
این یادداشت دربارهٔ آن جزئیاتِ بهظاهر کوچک است که اعتبارِ بصریِ یک محصولِ ایرانی را میسازند یا میشکنند. دربارهٔ نیمفاصله، کشیده، اعدادِ فارسی، فونت و وزن، و چند ابزارِ ساده که هر روز استفاده میکنم. سعی کردهام درسنامه ننویسم؛ بیشتر، فهرستی از خطاهایی است که در محصولاتِ ایرانی بارها دیدهام و در محصولاتِ خودم بارها مرتکب شدهام.
نیمفاصله از کجا آمد
نیمفاصله، یا همان ZWNJ (zero-width non-joiner)، یک کاراکترِ نامرئی در یونیکد است که میگوید: «این دو حرف به هم نچسبند، اما فاصلهٔ کاملِ کلمه هم بینشان نیست.» یعنی نه «می روم» و نه «میروم»، بلکه «میروم». این کاراکتر در دههٔ ۱۳۸۰ بهطورِ گسترده در کیبوردهای فارسی جا افتاد و امروز روی هر سیستمعاملی با ترکیبِ Shift+Space یا Alt+Space در دسترس است.
ماجرا فقط زیباییشناسی نیست. نیمفاصله معنی را عوض میکند. «خانه ها» یعنی «خانه» در حالتِ جمع که بد تایپ شده، اما «خانهها» یعنی جمعِ خانه. در جستوجو، در شمارشِ کلمات، در تشخیصِ متن توسطِ موتورهای جستوجو، و حتی در ترجمهٔ ماشینی، این تفاوت اهمیت دارد. وقتی Google یا یک LLM میخواهد بفهمد متنِ شما دربارهٔ چیست، نیمفاصلهٔ درست، یعنی توکنبندیِ درست.
نکتهٔ ظریفتر این است که نیمفاصله، در فارسی، یک نشانهٔ احترام است. متنی که نیمفاصلهاش درست باشد، بیآنکه خواننده بداند چرا، حسِ «این آدم میداند چه میکند» را منتقل میکند. این همان عدالتِ کوچکی است که در عنوان آوردم.
هفت موردِ پُرتکرار که در رابطِ کاربری اشتباه مینویسیم
اول، «می» و «نمی» در افعال. «میروم»، «نمیخواهم»، «میتوانم». این پُرتکرارترین خطا است و در دکمهها بیشتر دیده میشود: «می خواهم ثبتنام کنم» به جای «میخواهم ثبتنام کنم».
دوم، «ها»ی جمع. «کتابها»، «کاربرها»، «پروژهها». استثنا: کلماتی که قبلاً به فاصلهٔ کامل عادت کردهاند، مثل «خانمها و آقایان» که در متنِ رسمی هم دیده میشود. اما در محصول، یکدست بودن مهمتر از سنت است.
سوم، پسوندهای «تر» و «ترین». «بزرگتر»، «کوچکترین»، «بهتر» (این یکی استثنا است و سرِ هم نوشته میشود). در داشبوردها، «جدیدترین» و «پربازدیدترین» را اگر بد بنویسید، چشم خسته میشود.
چهارم، «ای» اضافهشده به فعل. «رفتهای»، «دیدهای»، «نوشتهام». این مورد در پیامهای خوشآمدگوییِ محصول زیاد اشتباه میشود: «خوش آمدی» درست است، اما «خوشآمد گفتیم به تو» باید با نیمفاصله نوشته شود.
پنجم، اعدادِ ترتیبی. «دومین»، «سومین»، «دهمین». نه «دومین» با فاصلهٔ کامل، نه «دومین» سرِ هم.
ششم، اسمهای مرکب. «دستنوشته»، «پیشنمایش»، «هماکنون»، «نرمافزار». اینجا دیکشنریِ ذهنیتان مهم است؛ من خودم گاهی شک میکنم و به ویراستیار رجوع میکنم.
هفتم، ضمایرِ ملکیِ چسبان. «کتابم»، «خانهام»، «دوستانمان». این یکی ظریف است: «کتابم» سرِ هم، اما «خانهام» با نیمفاصله، چون ریشه به «ـه» ختم میشود.
اگر این هفت مورد را در محصولِ خود درست کنید، هشتاد درصدِ خطاهای تایپوگرافیک حل میشود.
اعدادِ فارسی، انگلیسی، یا هر دو
این پرسش، در هر پروژهای، حداقل یکبار به آن برمیخورم. پاسخِ من ساده است و در دو سالِ گذشته تغییر نکرده: اعدادِ فارسی (۰۱۲۳۴۵۶۷۸۹) برای متنِ روایی، اعدادِ انگلیسی (0123456789) برای داده.
یعنی در پاراگرافِ معرفی، مینویسم «بیش از سه هزار کاربر». در جدول، مینویسم 3,247. در قیمت، اگر فضای کافی دارم، «۲٬۵۰۰٬۰۰۰ تومان»، و اگر در یک ستونِ تنگ هستم، «2,500,000». در شمارهٔ تلفن، همیشه انگلیسی، چون کاربر میخواهد آن را کپی کند یا شمارهگیری کند.
دلیلش این است: اعدادِ فارسی زیباترند و حسِ بومی میدهند، اما در صفحاتِ پُرداده، چشم باید سریع اسکن کند و اعدادِ انگلیسی برای این کار آموزشدیدهتر است. ضمناً اعدادِ فارسی در بعضی فونتهای وب، عرضِ ناهماهنگ دارند و ستونها را به هم میریزند.
یک قاعدهٔ سادهتر: اگر کاربر قرار است عدد را بخواند، فارسی. اگر قرار است با آن کاری کند (کپی، مقایسه، مرتبسازی)، انگلیسی. در محصولهانت، در صفحهٔ /leaderboard، رتبهها و تعدادِ رأیها را انگلیسی نوشتم و در توضیحاتِ هر محصول، فارسی.
فونت و وزن — انتخابِ کمادعا که حرفهایتر است
در فارسی، انتخابِ فونت سختتر از انگلیسی است، چون تعدادِ فونتِ خوبِ آزاد محدود است و خیلیها سعی میکنند با وزنهای زیاد، کمبودِ کیفیت را جبران کنند. نتیجه میشود یک رابط که در سه وزنِ مختلف از یک فونت، سه شخصیتِ مختلف دارد.
پیشنهادِ من، که سالها روی محصولهای خودم آزمودهام: یک فونتِ خوب، حداکثر سه وزن. وزنِ معمولی برای متنِ بدنه، وزنِ متوسط (Medium، نه Bold) برای عناوینِ کوچک، و وزنِ پُررنگتر (Semibold یا Bold) فقط برای تیترهای بزرگ. اگر نمیدانید کدام، Vazirmatn یا IRANYekanX را شروع کنید. هر دو آزاد و خوباند، هر دو در فرمهای متفاوت در دسترساند.
اندازهها هم در فارسی متفاوت رفتار میکنند. حروفِ فارسی، در مقایسه با لاتین، فضای عمودیِ بیشتری میگیرند و خواناییشان در اندازههای کوچک افت میکند. اگر در طراحیِ انگلیسی متنِ ۱۴ پیکسل خوب بود، در فارسی ۱۵ یا ۱۶ پیکسل را امتحان کنید. ارتفاعِ خط (line-height) هم باید سخاوتمندانهتر باشد، حدودِ ۱.۷ تا ۱.۸، نه ۱.۵.
و در نهایت، کمادعا بودن: فونتی که خودش دیده نشود، خواننده را بهتر هدایت میکند. در صفحهٔ /about محصولهانت، من از یک فونتِ ساده با وزنِ معمولی استفاده کردم و در عوض، فضای سفید و فاصلهٔ بینِ پاراگرافها را جدی گرفتم. این تصمیمی است که اگر دربارهٔ ابزارهای ساخت محصول میخوانید (مثلاً در /categories/devtools)، تکرارش به نفعتان است.
ابزارهایی که هر روز استفاده میکنم
اول، ویراستیار (virastyar.ir). یک افزونهٔ آزاد برای Word و چند ابزارِ تحتِ وبِ مشابه که خطاهای نیمفاصله را بهسرعت پیدا میکند. من قبل از هر انتشار، متنِ مقاله را از آن میگذرانم. حتی این یادداشت را.
دوم، Persian Text Tools در VS Code. اگر کدنویس هستید و در فایلهای JSON یا MDX متنِ فارسی مینویسید، این افزونهها نیمفاصله را در یک کلیک اضافه میکنند.
سوم، یک regex سادهٔ خودم برای پیداکردنِ «می » و «نمی » با فاصلهٔ کامل، که قبل از merge شدنِ هر PR، روی محتوا اجرا میشود. این جزو ابزارهای کمنمایش اما پُرکاربردی است که اگر در فهرستِ /trending دنبالِ ابزارهای ویرایش هستید، ارزشِ ساختن دارد.
چهارم، خواندنِ بلندِ متن. آخرین ابزار، خودم هستم. متن را با صدایِ بلند میخوانم. هرجا که زبانم بند میآید، احتمالاً نیمفاصله غایب است.
اگر این یادداشت برای شما مفید بود و میخواهید عمیقتر دربارهٔ UX فارسی بخوانید، یادداشتِ قبلیام در mahsoolhunt.ir/rozname/persian-ux-fundamentals را پیشنهاد میکنم. و اگر خودتان ابزاری ساختهاید که این جزئیاتِ کوچک را برای فارسینویسها حل میکند، در /submit ثبتش کنید — جا برای ابزارهای زبانیِ خوب در اکوسیستمِ ایرانی هنوز خالی است.