--- title: "نکات کار با Tailwind CSS در پروژه‌های RTL" description: "راهنمای جامع برای استفاده از Tailwind CSS در پروژه‌های راست به چپ و چالش‌های رایج" date: "2024-11-08" tags: ["tailwind", "rtl", "css", "فارسی"] author: "علی ارغیانی" draft: false --- # نکات کار با Tailwind CSS در پروژه‌های RTL استفاده از Tailwind CSS در پروژه‌های راست به چپ (RTL) می‌تواند چالش‌برانگیز باشد. در این مقاله، نکات و راهکارهای عملی برای کار با Tailwind در پروژه‌های فارسی و عربی را بررسی می‌کنیم. ## چالش‌های RTL پروژه‌های RTL با چالش‌های خاصی روبرو هستند: - **جهت‌دهی**: تغییر جهت layout از چپ به راست - **Margin و Padding**: تبدیل left/right به start/end - **فونت‌ها**: انتخاب فونت‌های مناسب فارسی - **کامپوننت‌ها**: سازگاری کامپوننت‌های third-party ::blog-callout{type="info" title="نکته مهم"} Tailwind CSS از نسخه 3 به بعد پشتیبانی بهتری از RTL دارد! :: ## تنظیمات اولیه ابتدا باید attribute `dir` را به صورت داینامیک تنظیم کنید: ```vue ``` ## استفاده از Logical Properties به جای `left` و `right` از `start` و `end` استفاده کنید: ```html
محتوا
محتوا
``` کلاس‌های Logical در Tailwind: - `ms-*` به جای `ml-*` (margin-start) - `me-*` به جای `mr-*` (margin-end) - `ps-*` به جای `pl-*` (padding-start) - `pe-*` به جای `pr-*` (padding-end) ## تنظیم فونت‌های فارسی فونت‌های فارسی نیاز به تنظیمات خاصی دارند: ```typescript // nuxt.config.ts export default defineNuxtConfig({ fonts: { families: [ { name: 'Vazirmatn', provider: 'google', weights: [400, 500, 600, 700] } ] } }) ``` در CSS: ```css [dir="rtl"] { font-family: 'Vazirmatn', sans-serif; } [dir="ltr"] { font-family: 'Inter', sans-serif; } ``` ## مدیریت Flexbox و Grid Flexbox و Grid به صورت خودکار با RTL سازگار می‌شوند: ```html
آیتم 1
آیتم 2
آیتم 3
``` ::alert{type="success"} Flexbox و Grid در Tailwind به صورت خودکار با dir="rtl" سازگار می‌شوند! :: ## کلاس‌های شرطی RTL/LTR برای استایل‌های خاص RTL یا LTR: ```html
متن دو زبانه
``` ## مشکلات رایج و راه‌حل‌ها ### 1. آیکون‌ها برخی آیکون‌ها نیاز به چرخش در RTL دارند: ```vue ``` ### 2. بلوک‌های کد بلوک‌های کد باید همیشه LTR باشند: ```css pre, code { direction: ltr !important; text-align: left !important; } ``` ### 3. اعداد انگلیسی اعداد انگلیسی در متن فارسی: ```html 123 ``` ## بهترین روش‌ها 1. **از Logical Properties استفاده کنید**: همیشه `start/end` به جای `left/right` 2. **تست کنید**: هر دو حالت RTL و LTR را تست کنید 3. **فونت مناسب**: از فونت‌های استاندارد فارسی استفاده کنید 4. **کامپوننت‌های سازگار**: کامپوننت‌هایی که RTL را پشتیبانی می‌کنند انتخاب کنید 5. **مستندسازی**: تغییرات RTL را مستند کنید ::blog-callout{type="warning" title="توجه"} همیشه پروژه خود را در هر دو حالت RTL و LTR تست کنید! :: ## ابزارهای مفید - **Tailwind RTL Plugin**: پلاگین رسمی Tailwind برای RTL - **PostCSS RTL**: تبدیل خودکار CSS به RTL - **Browser DevTools**: برای debug کردن مشکلات layout ## نتیجه‌گیری کار با Tailwind CSS در پروژه‌های RTL با رعایت نکات ذکر شده می‌تواند بسیار ساده و کارآمد باشد. استفاده از Logical Properties و تست مداوم کلید موفقیت است. موفق باشید! 🎨