Tailwind CSS โ bu so'nggi yillarda frontend dasturchilar orasida tezda ommalashgan utility-first (utilitar-birinchi) CSS framework. An'anaviy yondashuvda biz alohida CSS fayl ochib, u yerda klass nomlari o'ylab topamiz va selektorlar yozamiz, keyin esa ularni HTML elementlariga ulaymiz. Tailwind esa bu jarayonni butunlay o'zgartiradi: u sizga oldindan tayyorlangan minglab kichik yordamchi klasslar to'plamini beradi va siz uslublashni to'g'ridan-to'g'ri HTML markup ichida, klasslar orqali bajarasiz. Natijada siz dizaynni ko'rib turgan joyingizning o'zida yasaysiz va alohida fayllar o'rtasida sakrab yurishingizga hojat qolmaydi.
Utility-first yondashuv aslida nima degani
Utility-first falsafasining mohiyati shundaki, har bir klass faqat bitta yoki bir nechta aniq CSS xususiyatini ifodalaydi. Masalan, p-4 klassi elementga ichki bo'shliq (padding) qo'shadi, text-center matnni markazga tekislaydi, flex esa elementni flexbox konteyneriga aylantiradi. Siz bu kichik "g'ishtchalar"ni HTML'da birlashtirib, murakkab dizaynlarni quryapsiz. Bu Bootstrap kabi komponentga asoslangan kutubxonalardan tubdan farq qiladi, chunki Bootstrap sizga tayyor "card", "navbar", "button" komponentlarini beradi, Tailwind esa sizga shu komponentlarni o'zingiz xohlagandek qurish uchun atomik vositalarni taqdim etadi.
Quyidagi misolda an'anaviy CSS bilan Tailwind o'rtasidagi farqni ko'rishingiz mumkin. An'anaviy usulda biz alohida klass nomi o'ylab topib, uni CSS faylga yozamiz, Tailwind'da esa hammasi bir joyda turadi:
<!-- An'anaviy CSS yondashuvi -->
<button class="btn-primary">Yuborish</button>
/* style.css faylida alohida */
.btn-primary {
padding: 0.5rem 1rem;
background-color: #2563eb;
color: white;
border-radius: 0.375rem;
}
<!-- Tailwind yondashuvi -->
<button class="px-4 py-2 bg-blue-600 text-white rounded-md">
Yuborish
</button>
Eng ko'p ishlatiladigan asosiy klasslar
Tailwind bilan ishni boshlash uchun bir nechta asosiy klass guruhlarini bilish kifoya. Joylashuv (layout) uchun flex, grid, block kabi klasslar, bo'shliqlar uchun p-* (padding) va m-* (margin), o'lchamlar uchun w-* va h-* ishlatiladi. Matn bilan ishlashda text-lg, font-bold, text-gray-700 kabi klasslar, ranglar uchun esa bg-* (fon rangi) klasslari qo'l keladi. Eng muhimi, bu klasslarning barchasi izchil masshtablash tizimiga ega: p-1 kichik bo'shliq, p-8 esa kattaroq bo'shliq beradi, shuning uchun dizayningiz har doim mutanosib bo'lib qoladi.
<div class="flex items-center justify-between p-6 bg-white rounded-lg shadow">
<h3 class="text-xl font-bold text-gray-800">Mahsulot nomi</h3>
<span class="text-green-600 font-semibold">120 000 so'm</span>
</div>
Responsive dizayn va holatlar
Tailwind'ning eng kuchli tomonlaridan biri uning responsiv (moslashuvchan) dizayn tizimi va holat modifikatorlaridir. Ekran o'lchamiga qarab uslubni o'zgartirish uchun klass oldiga md:, lg: kabi prefikslar qo'shasiz. Masalan, flex-col md:flex-row degani: kichik ekranlarda elementlar ustun bo'lib joylashadi, o'rta va katta ekranlarda esa qator bo'lib teriladi. Xuddi shunday, foydalanuvchi sichqonchani element ustiga olib kelganda uslub o'zgarishi uchun hover: prefiksini ishlatasiz. Bu yondashuv mobil-birinchi (mobile-first) prinsipga asoslangani uchun siz avval kichik ekran uchun yozasiz, keyin kattalashtirib borasiz.
<div class="flex flex-col md:flex-row gap-4">
<button class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded
transition focus:ring-2 focus:ring-blue-400">
Saqlash
</button>
</div>
Sozlash, JIT va nega bu tez ishlaydi
Tailwind loyihangizga tailwind.config.js fayli orqali sozlanadi va aynan shu yerda siz o'z ranglaringiz, shriftlaringiz va masshtab qiymatlaringizni qo'shib, framework'ni brendingizga moslashtirasiz. Zamonaviy versiyalardagi JIT (Just-In-Time) kompilyatori esa faqat siz haqiqatan ishlatgan klasslarnigina yakuniy CSS faylga kiritadi, shu sababli chiqadigan fayl juda kichik bo'ladi va sayt tez yuklanadi. Ishlab chiqish jarayonining tezligi esa kontekst almashinuvi yo'qligidan kelib chiqadi: siz HTML, CSS fayl va brauzer o'rtasida sakrab yurmaysiz, balki barcha ishni bitta joyda, markup ichida bajarasiz, bu esa diqqatni saqlab, ishni tezlashtiradi.
Tanqidlar va komponentlarga ajratish
Tailwind'ga eng ko'p bildiriladigan tanqid โ HTML markup'ning juda ko'p klasslar bilan to'lib ketishi va o'qish qiyinlashishidir. Bitta tugma yoki kartochkada o'nlab klasslar yig'ilib qolishi mumkin, bu esa boshida g'alati ko'rinadi. Biroq bu muammoning yechimi oddiy: takrorlanuvchi elementlarni React, Vue yoki Blade kabi komponent tizimlari yordamida alohida komponentlarga ajratasiz, shunda klasslar bir marta yoziladi va ko'p marta qayta ishlatiladi. Shu tarzda siz Tailwind'ning tezligini saqlab qolasiz, ammo kodingiz toza va boshqariladigan bo'lib turadi. Agar sayt yoki onlayn do'kon yaratmoqchi bo'lsangiz, bunday zamonaviy frontend yondashuvlari sayt.uz xizmatlari bilan birgalikda tez va sifatli natija berishi mumkin.