فارسی

پتانسیل کامل Tailwind CSS را با تکنیک‌های پیشرفته پیکربندی آزاد کنید. تم‌ها را سفارشی کنید، استایل‌های جدید اضافه کنید و گردش کار خود را برای کنترل طراحی و عملکرد بی‌نظیر بهینه سازید.

پیکربندی Tailwind CSS: تکنیک‌های پیشرفته سفارشی‌سازی

Tailwind CSS یک فریمورک CSS مبتنی بر ابزار (utility-first) است که مجموعه‌ای قوی از کلاس‌های از پیش تعریف‌شده برای استایل‌دهی سریع به عناصر HTML فراهم می‌کند. در حالی که پیکربندی پیش‌فرض آن نقطه شروع عالی‌ای را ارائه می‌دهد، قدرت واقعی Tailwind در قابلیت سفارشی‌سازی آن نهفته است. این پست وبلاگ به بررسی تکنیک‌های پیشرفته پیکربندی برای آزاد کردن پتانسیل کامل Tailwind CSS می‌پردازد و به شما امکان می‌دهد آن را کاملاً با نیازمندی‌ها و سیستم طراحی منحصر به فرد پروژه‌تان تطبیق دهید. چه در حال ساخت یک صفحه فرود ساده باشید یا یک برنامه وب پیچیده، درک این تکنیک‌ها به طور قابل توجهی گردش کار و کنترل طراحی شما را افزایش می‌دهد.

درک فایل پیکربندی Tailwind

قلب سفارشی‌سازی Tailwind CSS فایل tailwind.config.js است. این فایل به شما امکان می‌دهد تنظیمات پیش‌فرض را بازنویسی کنید، قابلیت‌های موجود را گسترش دهید و ویژگی‌های کاملاً جدیدی اضافه کنید. این فایل که در دایرکتوری ریشه پروژه شما قرار دارد، جایی است که سیستم طراحی پروژه‌تان را تعریف می‌کنید.

در اینجا یک ساختار اولیه از فایل tailwind.config.js آمده است:

module.exports = {
  content: [
    "./src/**/*.{html,js,ts,jsx,tsx}",
    "./public/**/*.html"
  ],
  theme: {
    extend: {
      // Customizations go here
    }
  },
  plugins: [],
}

بیایید بخش‌های کلیدی را بررسی کنیم:

سفارشی‌سازی تم: فراتر از اصول اولیه

بخش theme گزینه‌های سفارشی‌سازی گسترده‌ای را ارائه می‌دهد. در حالی که می‌توانید مقادیر پیش‌فرض را مستقیماً بازنویسی کنید، رویکرد توصیه‌شده استفاده از خاصیت extend است. این کار تضمین می‌کند که به طور تصادفی تنظیمات مهم پیش‌فرض را حذف نکنید.

۱. رنگ‌های سفارشی: تعریف پالت شما

رنگ‌ها برای هر سیستم طراحی اساسی هستند. Tailwind یک پالت رنگ پیش‌فرض ارائه می‌دهد، اما شما اغلب می‌خواهید رنگ‌های سفارشی خود را تعریف کنید. می‌توانید این کار را با اضافه کردن یک شیء colors در داخل بخش extend انجام دهید.

module.exports = {
  content: [
    "./src/**/*.{html,js,ts,jsx,tsx}",
    "./public/**/*.html"
  ],
  theme: {
    extend: {
      colors: {
        'primary': '#3490dc',
        'secondary': '#ffed4a',
        'accent': '#e3342f',
        'custom-gray': '#333333'
      }
    }
  },
  plugins: [],
}

اکنون می‌توانید از این رنگ‌ها در HTML خود استفاده کنید:

<button class="bg-primary text-white px-4 py-2 rounded">Primary Button</button>

برای یک رویکرد سازمان‌یافته‌تر، می‌توانید طیف‌های مختلفی از هر رنگ را تعریف کنید:

module.exports = {
  content: [
    "./src/**/*.{html,js,ts,jsx,tsx}",
    "./public/**/*.html"
  ],
  theme: {
    extend: {
      colors: {
        primary: {
          50: '#eff6ff',
          100: '#dbeafe',
          200: '#bfdbfe',
          300: '#93c5fd',
          400: '#60a5fa',
          500: '#3b82f6',
          600: '#2563eb',
          700: '#1d4ed8',
          800: '#1e40af',
          900: '#1e3a8a',
        },
      },
    }
  },
  plugins: [],
}

سپس می‌توانید از این طیف‌ها به این صورت استفاده کنید: bg-primary-500، text-primary-100، و غیره.

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

۲. فونت‌های سفارشی: ارتقاء تایپوگرافی

مجموعه فونت پیش‌فرض Tailwind کاربردی است، اما استفاده از فونت‌های سفارشی می‌تواند به طور قابل توجهی برندینگ و جذابیت بصری وب‌سایت شما را افزایش دهد. شما می‌توانید فونت‌های سفارشی را در بخش fontFamily از شیء theme.extend مشخص کنید.

ابتدا، فونت‌های مورد نظر خود را به پروژه وارد کنید، به عنوان مثال، با استفاده از Google Fonts در بخش <head> خود:

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&family=Open+Sans:wght@300;400&display=swap" rel="stylesheet">

سپس، Tailwind را برای استفاده از این فونت‌ها پیکربندی کنید:

module.exports = {
  content: [
    "./src/**/*.{html,js,ts,jsx,tsx}",
    "./public/**/*.html"
  ],
  theme: {
    extend: {
      fontFamily: {
        'roboto': ['Roboto', 'sans-serif'],
        'open-sans': ['Open Sans', 'sans-serif'],
      }
    }
  },
  plugins: [],
}

اکنون، می‌توانید این فونت‌ها را با استفاده از کلاس‌های font-roboto یا font-open-sans اعمال کنید.

<p class="font-roboto">This text uses the Roboto font.</p>

مثال (جهانی): هنگام انتخاب فونت‌ها، زبان‌هایی را که وب‌سایت شما پشتیبانی خواهد کرد در نظر بگیرید. اطمینان حاصل کنید که فونت‌هایی که انتخاب می‌کنید شامل گلیف‌ها (glyphs) برای تمام کاراکترهای لازم باشند. سرویس‌هایی مانند Google Fonts اغلب اطلاعات پشتیبانی از زبان را ارائه می‌دهند، که انتخاب فونت‌های مناسب برای مخاطبان جهانی را آسان‌تر می‌کند. همچنین به محدودیت‌های مجوز مربوط به استفاده از فونت توجه داشته باشید.

۳. فاصله‌گذاری سفارشی: کنترل دقیق‌تر

Tailwind یک مقیاس فاصله‌گذاری پیش‌فرض (مانند p-2, m-4) ارائه می‌دهد، اما شما می‌توانید آن را برای ایجاد یک سیستم طرح‌بندی متناسب‌تر و منسجم‌تر گسترش دهید. می‌توانید فاصله‌گذاری را با اضافه کردن یک شیء spacing در داخل شیء theme.extend سفارشی کنید.

module.exports = {
  content: [
    "./src/**/*.{html,js,ts,jsx,tsx}",
    "./public/**/*.html"
  ],
  theme: {
    extend: {
      spacing: {
        '72': '18rem',
        '84': '21rem',
        '96': '24rem',
        '128': '32rem',
      }
    }
  },
  plugins: [],
}

اکنون، می‌توانید از این مقادیر فاصله‌گذاری سفارشی مانند این استفاده کنید: m-72, p-96، و غیره.

<div class="m-72">This div has a margin of 18rem.</div>

۴. صفحات (Screens) سفارشی: انطباق با دستگاه‌های متنوع

Tailwind از اصلاح‌کننده‌های واکنش‌گرا (مانند sm:, md:, lg:) برای اعمال استایل‌ها بر اساس اندازه صفحه استفاده می‌کند. شما می‌توانید این نقاط شکست صفحه را برای مطابقت بهتر با دستگاه‌های هدف یا نیازمندی‌های طراحی خود سفارشی کنید. انتخاب نقاط شکست مناسب که طیف وسیعی از اندازه‌های صفحه، از تلفن‌های همراه تا مانیتورهای بزرگ دسکتاپ را در بر می‌گیرد، بسیار مهم است.

module.exports = {
  content: [
    "./src/**/*.{html,js,ts,jsx,tsx}",
    "./public/**/*.html"
  ],
  theme: {
    screens: {
      'xs': '475px',
      'sm': '640px',
      'md': '768px',
      'lg': '1024px',
      'xl': '1280px',
      '2xl': '1536px',
      'tablet': '640px',
      'laptop': '1024px',
      'desktop': '1280px',
    },
    extend: {
      // Other customizations
    }
  },
  plugins: [],
}

اکنون می‌توانید از این اندازه‌های صفحه سفارشی استفاده کنید:

<div class="sm:text-center md:text-left lg:text-right">This text is responsive.</div>

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

۵. بازنویسی مقادیر پیش‌فرض: در صورت لزوم

در حالی که گسترش (extending) به طور کلی ترجیح داده می‌شود، شرایطی وجود دارد که ممکن است لازم باشد مقادیر پیش‌فرض Tailwind را مستقیماً بازنویسی کنید. این کار باید با احتیاط انجام شود، زیرا می‌تواند بر ثبات و پیش‌بینی‌پذیری فریمورک تأثیر بگذارد. از این روش به ندرت و تنها در مواقع ضروری استفاده کنید.

module.exports = {
  content: [
    "./src/**/*.{html,js,ts,jsx,tsx}",
    "./public/**/*.html"
  ],
  theme: {
    // Overriding the default fontFamily
    fontFamily: {
      sans: ['Helvetica', 'Arial', 'sans-serif'],
    },
    extend: {
      // Other customizations
    }
  },
  plugins: [],
}

افزودن استایل‌های سفارشی با واریانت‌ها و دایرکتیوها

فراتر از تم، Tailwind مکانیزم‌های قدرتمندی برای افزودن استایل‌های سفارشی با استفاده از واریانت‌ها (variants) و دایرکتیوها (directives) فراهم می‌کند.

۱. واریانت‌ها: گسترش ابزارهای موجود

واریانت‌ها به شما امکان می‌دهند اصلاح‌کننده‌ها را به ابزارهای موجود Tailwind اعمال کنید و حالت‌ها یا رفتارهای جدیدی ایجاد کنید. به عنوان مثال، ممکن است بخواهید یک افکت هاور سفارشی به یک دکمه یا یک حالت فوکوس به یک فیلد ورودی اضافه کنید.

// tailwind.config.js
module.exports = {
  content: [
    "./src/**/*.{html,js,ts,jsx,tsx}",
    "./public/**/*.html"
  ],
  theme: {
    extend: {
      // Your theme customizations
    }
  },
  plugins: [
    function ({ addVariant }) {
      addVariant('custom-hover', '&:hover');
    },
  ],
}

اکنون می‌توانید از پیشوند custom-hover: با هر کلاس ابزار Tailwind استفاده کنید:

<button class="bg-blue-500 hover:bg-blue-700 custom-hover:bg-red-500 text-white font-bold py-2 px-4 rounded">Hover Me</button>

این دکمه به لطف کلاس custom-hover:bg-red-500 هنگام هاور شدن به رنگ قرمز تغییر می‌کند. شما می‌توانید از تابع addVariant در داخل آرایه plugins فایل tailwind.config.js خود استفاده کنید.

مثال (جهانی): زبان‌های راست-به-چپ (RTL) مانند عربی یا عبری را در نظر بگیرید. شما می‌توانید واریانت‌هایی برای برعکس کردن خودکار طرح‌بندی‌ها برای این زبان‌ها ایجاد کنید. این کار تضمین می‌کند که وب‌سایت شما برای کاربران در مناطق RTL به درستی نمایش داده شده و قابل استفاده است.

۲. دایرکتیوها: ایجاد کلاس‌های CSS سفارشی

دایرکتیو @apply در Tailwind به شما امکان می‌دهد الگوهای رایج را به کلاس‌های CSS قابل استفاده مجدد استخراج کنید. این کار می‌تواند به کاهش تکرار و بهبود قابلیت نگهداری کد کمک کند. شما می‌توانید کلاس‌های CSS سفارشی خود را در یک فایل CSS جداگانه تعریف کرده و سپس از دایرکتیو @apply برای گنجاندن ابزارهای Tailwind استفاده کنید.

/* custom.css */
.btn-primary {
  @apply bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded;
}

سپس، در HTML خود:

<button class="btn-primary">Primary Button</button>

کلاس btn-primary اکنون مجموعه‌ای از ابزارهای Tailwind را در خود جای داده و HTML شما را تمیزتر و معنایی‌تر می‌کند.

شما همچنین می‌توانید از دیگر دایرکتیوهای Tailwind مانند @tailwind، @layer و @config برای سفارشی‌سازی و سازماندهی بیشتر CSS خود استفاده کنید.

بهره‌گیری از پلاگین‌های Tailwind: گسترش عملکرد

پلاگین‌های Tailwind راهی قدرتمند برای گسترش عملکرد فریمورک فراتر از ابزارهای اصلی آن هستند. پلاگین‌ها می‌توانند ابزارها، کامپوننت‌ها، واریانت‌های جدیدی اضافه کنند و حتی پیکربندی پیش‌فرض را تغییر دهند.

۱. یافتن و نصب پلاگین‌ها

جامعه Tailwind طیف گسترده‌ای از پلاگین‌ها را برای پاسخگویی به نیازهای مختلف ایجاد کرده است. شما می‌توانید پلاگین‌ها را در npm یا از طریق مستندات Tailwind CSS پیدا کنید. برای نصب یک پلاگین، از npm یا yarn استفاده کنید:

npm install @tailwindcss/forms
# or
yarn add @tailwindcss/forms

۲. پیکربندی پلاگین‌ها

پس از نصب، باید پلاگین را به آرایه plugins در فایل tailwind.config.js خود اضافه کنید.

module.exports = {
  content: [
    "./src/**/*.{html,js,ts,jsx,tsx}",
    "./public/**/*.html"
  ],
  theme: {
    extend: {
      // Your theme customizations
    }
  },
  plugins: [
    require('@tailwindcss/forms'),
  ],
}

۳. مثال: استفاده از پلاگین @tailwindcss/forms

پلاگین @tailwindcss/forms استایل‌دهی اولیه‌ای برای عناصر فرم فراهم می‌کند. پس از نصب و پیکربندی پلاگین، می‌توانید با افزودن کلاس form-control به عناصر فرم خود، این استایل‌ها را اعمال کنید.

<input type="text" class="form-control">

دیگر پلاگین‌های محبوب Tailwind عبارتند از:

بهینه‌سازی Tailwind CSS برای محیط پروداکشن

Tailwind CSS به طور پیش‌فرض یک فایل CSS بزرگ ایجاد می‌کند که شامل تمام کلاس‌های ابزار ممکن است. این برای محیط پروداکشن ایده‌آل نیست، زیرا می‌تواند به طور قابل توجهی بر زمان بارگذاری صفحه تأثیر بگذارد. برای بهینه‌سازی Tailwind CSS خود برای پروداکشن، باید استایل‌های استفاده‌نشده را حذف (purge) کنید.

۱. حذف استایل‌های استفاده‌نشده

Tailwind به طور خودکار استایل‌های استفاده‌نشده را بر اساس فایل‌های مشخص‌شده در آرایه content فایل tailwind.config.js شما حذف می‌کند. اطمینان حاصل کنید که این آرایه به درستی تمام فایل‌هایی را که از کلاس‌های Tailwind استفاده می‌کنند، منعکس می‌کند.

module.exports = {
  content: [
    "./src/**/*.{html,js,ts,jsx,tsx}",
    "./public/**/*.html"
  ],
  theme: {
    extend: {
      // Your theme customizations
    }
  },
  plugins: [],
}

هنگامی که پروژه خود را برای پروداکشن بیلد می‌کنید (مثلاً با استفاده از npm run build)، Tailwind به طور خودکار هر کلاس CSS استفاده‌نشده را حذف می‌کند و در نتیجه فایل CSS به طور قابل توجهی کوچکتر خواهد شد.

۲. فشرده‌سازی (Minify) CSS

فشرده‌سازی CSS با حذف فاصله‌های خالی و کامنت‌ها، اندازه فایل آن را بیشتر کاهش می‌دهد. بسیاری از ابزارهای بیلد، مانند webpack و Parcel، به طور خودکار CSS را در طول فرآیند بیلد فشرده می‌کنند. اطمینان حاصل کنید که پیکربندی بیلد شما شامل فشرده‌سازی CSS است.

۳. استفاده از فشرده‌سازی CSS (Gzip/Brotli)

فشرده‌سازی فایل‌های CSS با استفاده از Gzip یا Brotli می‌تواند اندازه آنها را بیشتر کاهش داده و زمان بارگذاری صفحه را بهبود بخشد. اکثر وب سرورها از فشرده‌سازی Gzip پشتیبانی می‌کنند و Brotli به دلیل نسبت فشرده‌سازی برترش به طور فزاینده‌ای محبوب می‌شود. وب سرور خود را برای فعال کردن فشرده‌سازی CSS پیکربندی کنید.

بهترین شیوه‌ها برای پیکربندی Tailwind CSS

برای اطمینان از یک پیکربندی قابل نگهداری و مقیاس‌پذیر برای Tailwind CSS، این بهترین شیوه‌ها را دنبال کنید:

نتیجه‌گیری

Tailwind CSS انعطاف‌پذیری و کنترل بی‌نظیری بر استایل‌دهی وب‌سایت شما ارائه می‌دهد. با تسلط بر تکنیک‌های پیشرفته پیکربندی، می‌توانید Tailwind را کاملاً با نیازمندی‌های منحصر به فرد پروژه‌تان تطبیق دهید و یک سیستم طراحی بسیار قابل نگهداری و مقیاس‌پذیر ایجاد کنید. از سفارشی‌سازی تم گرفته تا بهره‌گیری از پلاگین‌ها و بهینه‌سازی برای پروداکشن، این تکنیک‌ها به شما قدرت می‌دهند تا برنامه‌های وب بصری خیره‌کننده و با عملکرد بالا بسازید.

با در نظر گرفتن دقیق پیامدهای جهانی انتخاب‌های طراحی خود، مانند پشتیبانی از زبان، الگوهای استفاده از دستگاه و ترجیحات فرهنگی، می‌توانید وب‌سایت‌هایی ایجاد کنید که برای کاربران در سراسر جهان قابل دسترس و جذاب باشند. قدرت پیکربندی Tailwind CSS را در آغوش بگیرید و پتانسیل کامل آن را برای ایجاد تجربیات کاربری استثنایی آزاد کنید.

به یاد داشته باشید که همیشه عملکرد، دسترسی‌پذیری و قابلیت نگهداری را در پروژه‌های Tailwind CSS خود در اولویت قرار دهید. با گزینه‌های مختلف پیکربندی و پلاگین‌ها آزمایش کنید تا کشف کنید چه چیزی برای نیازهای خاص شما بهترین عملکرد را دارد. با درک قوی از این تکنیک‌های پیشرفته، شما به خوبی برای ایجاد برنامه‌های وب زیبا و کارآمد با استفاده از Tailwind CSS مجهز خواهید بود.

پیکربندی Tailwind CSS: تکنیک‌های پیشرفته سفارشی‌سازی | MLOG