کوئری کانتینر در Tailwind CSS v4 برای کامپوننت‌های قابل‌حمل

بریک‌پوینت‌های viewport صفحه را می‌چینند. کوئری کانتینر اجازه می‌دهد کارت با جایگاهی که در آن نشسته سازگار شود. Tailwind v4 این را درجه یک کرده—این مدل ذهنی است.

فضای کار طراحی با چیدمان روی صفحه

کوئری کانتینر در Tailwind CSS v4 برای کامپوننت‌های قابل‌حمل

یک دهه طراحی ریسپانسیو عمدتاً یعنی media query روی viewport. برای هدر و
گرید صفحه خوب کار می‌کند. برای کامپوننت قابل‌استفاده مجدد شکست می‌خورد: همان
کارت در ستون پهن اصلی و سایدبار باریک نباید هر دو منتظر lg: روی پنجره
بمانند.

کوئری کانتینر CSS این را درست می‌کند. یک عنصر بر اساس اندازه والد خود
استایل می‌گیرد. Tailwind CSS v4 این را به هسته آورده—دیگر به پلاگین
@tailwindcss/container-queries نیاز نیست.

مدل ذهنی دولایه

لایه ابزار سؤالی که جواب می‌دهد
پوسته صفحه sm: md: lg: پوسته چیدمان با دستگاه چگونه عوض شود؟
درون کامپوننت @sm: @md: @lg: این ویجت با عرض جایگاه چگونه عوض شود؟

جمع‌شدن ناوبری، نمایش سایدبار و گرید چندستونه صفحه روی variantهای viewport
می‌مانند. درون کارت، ویجت نظر و کاشی قیمت به variantهای کانتینر می‌روند تا
قابل‌حمل بمانند.

الگوی حداقلی

<article class="@container">
  <div class="flex flex-col gap-4 @md:flex-row @md:items-center">
    <img class="w-full @md:w-40" src="..." alt="" />
    <div>
      <h3 class="text-lg @md:text-xl">عنوان</h3>
      <p class="text-sm @lg:text-base">خلاصه…</p>
    </div>
  </div>
</article>

والد را با @container علامت بزنید، بعد روی فرزندان md: را با @md: عوض
کنید. یادتان باشد: مقیاس بریک‌پوینت کانتینر با viewport فرق دارد (@md
معمولاً باریک‌تر از md است). اگر توکن‌های طراحی‌تان لازم داشت، با @theme
تنظیم کنید.

چیدمان تو در تو: کانتینر را نام‌گذاری کنید

وقتی کانتینرها تو در تو می‌شوند، جد مشخص را هدف بگیرید:

<div class="@container/main">
  <aside class="@container/sidebar">
    <div class="@md/sidebar:block @md/main:hidden">…</div>
  </aside>
</div>

تله‌هایی که بعدازظهرها را می‌سوزانند

  1. والد بدون اندازه. فرزند flex بدون عرض واقعی ممکن است برای کوئری
    کانتینر ۰ گزارش دهد. مطمئن شوید کانتینر inline size می‌سازد.
  2. مخفی کردن خود کانتینر. display: none روی @container عرض اندازه‌گیری
    را صفر می‌کند—به‌جایش یک wrapper بیرونی را مخفی کنید.
  3. مخلوط بی‌دقت لایه‌ها. روی یک property، @md: را با md: «fallback»
    نکنید مگر عمداً هم قانون صفحه و هم جایگاه را می‌خواهید.

چرا برای سایت‌های جنگو + Tailwind مهم است

partialهای سرورساید (و جابه‌جایی HTMX) همان کامپوننت را در ناحیه‌های مختلف
می‌نشانند. با کوئری کانتینر، وقتی جایگاه عوض می‌شود مرورگر استایل را دوباره
حل می‌کند—بدون propهای size="compact" و بدون watcherهای Alpine برای عرض.

ساختار صفحه را با بریک‌پوینت کلاسیک بفرستید. به کامپوننت‌ها یاد دهید به
کانتینرشان احترام بگذارند. این تفکیک، معماری ریسپانسیو پایدار است که
Tailwind v4 بالاخره راحت کرده است.

اشتراک‌ گذاری

این مطلب را در تلگرام، واتساپ به اشتراک بگذارید یا لینک را کپی کنید.

تلگرام واتساپ

ادامه مطالعه

مطالب مرتبط

آموزش گام‌به‌گام اتصال الستیک‌سرچ به لاراول: جستجوی فوق‌سریع در دیتابیس‌های بزرگ

اگر تا به حال در پروژه‌ای با حجم دیتای بالا کار کرده باشید، قطعاً متوجه شده‌اید که کوئری‌های سنتی نظیر `LIKE %keyword%` در MySQL یا PostgreSQL وقتی رکوردها به صدها هزار یا میلیون‌ها ردیف می‌رسند، فشار سنگینی به سرور تحمیل کرده و زمان پاسخ‌گویی را به شدت کند می‌کنند.

ادامه مطلب

نوشته‌های بیشتر

کاوش در کل وبلاگ

مقالات بیشتری درباره سیستم‌های بک‌اند، API و ساخت محصولات قابل اعتماد بخوانید.

همه مطالب