Blog/tutorial/Tailwind CSS ilə Peşəkar UI — Komponent Kitabxanası Olmadan
tutorial

Tailwind CSS ilə Peşəkar UI — Komponent Kitabxanası Olmadan

B
Baku Stack AI
·17 mart 2026·5 dəq oxuma·21 baxış
tutorial.ascii
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ ■ ■ ■ FRONTEND ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ tailwind.config.js ▓
▓ ● colors → brand ▓
▓ ● shadow → card ▓
▓ ● radius → 0.75rem ▓
▓░░░░░░░░░░░░░░░░░░░░░░▓
▓ Bundle Size: ▓
▓ MUI ▓▓▓▓▓▓▓▓░ 120KB ▓
▓ TW ▓▓░░░░░░░ 12KB ▓
▓ ✓ 10x kiçik bundle ▓
▓ → peşəkar UI = sıfır ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

Material UI, Chakra, shadcn/ui yoxdur. Əlində yalnız Tailwind var. Bəs peşəkar görünən interfeys necə qurulur? Praktiki yanaşma və real kod.

Tailwind CSS ilə Peşəkar UI — Komponent Kitabxanası Olmadan

Bakıda frontendçi kimi müsahibəyə gedirsən. Portfolio göstərirsən. HR "gözəl görünür" deyir, texlid soruşur: "Bu Material UI-dır?" Sən isə deyirsən: "Xeyr, sıfırdan Tailwind ilə yazdım." Bu cavab sənin dəyərini iki dəfə artırır.

Bu gün danışacağıq ki, heç bir komponent kitabxanası (MUI, Chakra, Ant Design, shadcn/ui) istifadə etmədən Tailwind CSS ilə necə peşəkar səviyyəli interfeys qurmaq olar.

Niyə Komponent Kitabxanasız?

Əvvəlcə gəlin reallığa baxaq. Bakıda işə götürən şirkətlərin — istər Kapital Bank-ın fintech komandasında, istər ABB-nin digital departamentində, istərsə də kiçik startaplarda — axtardığı bir şey var: CSS-i həqiqətən başa düşən developer.

Stack Overflow-un 2025 Developer Survey-inə görə Tailwind CSS artıq CSS framework-ləri arasında #1 yerdədir — 45.8% istifadə nisbəti ilə Bootstrap-u geridə qoyub. Lakin Tailwind-i bilmək azdır. Tailwind ilə sistemli düşünməyi bilmək lazımdır.

Komponent kitabxanası istifadə etmək pis deyil. Amma bunlar sənin alt quruluşunu örtür. Müsahibədə "bu butonun hover state-ini necə dəyişərsən?" sualına "MUI-nin theme provider-ini override edərəm" cavabı ilə "Tailwind-də hover:bg-blue-700 transition-colors duration-200 yazaram" cavabı arasında fərq var. İkincisi sənin nəyi başa düşdüyünü göstərir.

Design Token Sistemi Qurmaq

Peşəkar UI-ın əsası tutarlılıqdır (consistency). Tailwind bunu tailwind.config.js vasitəsilə həll edir. Bir layihəyə başlamazdan əvvəl öz design token-lərini müəyyən et:

javascript
// tailwind.config.js module.exports = { theme: { extend: { colors: { brand: { 50: '#eff6ff', 100: '#dbeafe', 500: '#3b82f6', 600: '#2563eb', 700: '#1d4ed8', 900: '#1e3a5f', }, surface: { light: '#f8fafc', DEFAULT: '#ffffff', dark: '#1e293b', }, }, fontFamily: { sans: ['Inter', 'system-ui', 'sans-serif'], }, borderRadius: { card: '0.75rem', button: '0.5rem', }, boxShadow: { card: '0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06)', 'card-hover': '0 10px 25px rgba(0,0,0,0.1)', }, }, }, }

Bu konfiqurasiya ilə artıq bg-brand-500, shadow-card, rounded-card kimi class-lar istifadə edə bilərsən. Bütün layihədə bir rəng dəyişməli olsan, tək yerdən dəyişirsən.

Real Komponent: Qiymət Kartı

Gəlin Azərbaycan SaaS bazarı üçün real bir pricing card düzəldək. Tutaq ki, sən freelance layihə qəbul edirsən və müştəriyə qiymət səhifəsi hazırlayırsan:

html
<!-- Pricing Card Component --> <div class="group relative bg-white rounded-card border border-gray-200 shadow-card hover:shadow-card-hover transition-all duration-300 ease-out p-8 max-w-sm mx-auto"> <!-- Badge --> <div class="absolute -top-3 left-1/2 -translate-x-1/2"> <span class="bg-brand-600 text-white text-xs font-semibold px-3 py-1 rounded-full tracking-wide uppercase"> Populyar </span> </div> <!-- Header --> <div class="text-center pt-4"> <h3 class="text-lg font-semibold text-gray-900">Biznes Plan</h3> <div class="mt-4 flex items-baseline justify-center gap-1"> <span class="text-5xl font-bold tracking-tight text-gray-900"> 49 </span> <span class="text-lg font-medium text-gray-500">AZN/ay</span> </div> <p class="mt-2 text-sm text-gray-500"> Kiçik və orta komandalar üçün </p> </div> <!-- Features --> <ul class="mt-8 space-y-3"> <li class="flex items-center gap-3 text-sm text-gray-700"> <svg class="h-5 w-5 flex-shrink-0 text-brand-500" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/> </svg> 10 istifadəçiyə qədər </li> <li class="flex items-center gap-3 text-sm text-gray-700"> <svg class="h-5 w-5 flex-shrink-0 text-brand-500" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/> </svg> Limitsiz API sorğu </li> <li class="flex items-center gap-3 text-sm text-gray-700"> <svg class="h-5 w-5 flex-shrink-0 text-brand-500" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/> </svg> 7/24 dəstək </li> </ul> <!-- CTA Button --> <button class="mt-8 w-full rounded-button bg-brand-600 px-4 py-3 text-sm font-semibold text-white hover:bg-brand-700 focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 active:scale-[0.98] transition-all duration-150"> İndi Başla → </button> </div>

Bu kartda nələr var? group ilə hover state idarəsi, transition-all ilə smooth animasiya, active:scale-[0.98] ilə buton basıldığında mikro-interaksiya, focus:ring ilə accessibility. Bunların hamısı kitabxanasız, sıfırdan.

Peşəkarları Amatörlərdən Ayıran 5 Tailwind Texnikası

1. Space sistemi — 4px grid-ə sadiq qal. p-2 (8px), p-3 (12px), p-4 (16px) istifadə et. Təsadüfi p-[13px] yazmaqdan qaç.

2. Rəng hierarxiyası qur. Başlıq: text-gray-900, əsas mətn: text-gray-700, köməkçi mətn: text-gray-500. Bu üç səviyyə kifayətdir.

3. Transition hər yerdə olsun. Hər hover effektinin yanında transition-colors duration-200 və ya transition-all duration-300 yazmalısan. Transition-sız hover keçidləri amatör görünür.

4. @apply ilə təkrarı azalt, amma sui-istifadə etmə:

css
/* globals.css */ @layer components { .btn-primary { @apply rounded-button bg-brand-600 px-4 py-2.5 text-sm font-semibold text-white hover:bg-brand-700 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2; } }

5. Responsive-i mobile-first yaz. Tailwind default olaraq mobile-first-dir. md:grid-cols-3 yazdığında bu yalnız 768px-dən sonra tətbiq olur. Əvvəlcə mobil dizaynı düşün — Bakıda istifadəçilərin 78%-i saytlara telefondan daxil olur.

Bundle Size Müqayisəsi

Bu rəqəmlər sənin müsahibədə danışacağın real statistikadır:

YanaşmaGzipped Bundle
Material UI (full)~90-120 KB
Chakra UI~50-70 KB
Tailwind (purged)~8-12 KB
shadcn/ui + Tailwind~15-25 KB

Tailwind-in production build-i yalnız istifadə etdiyin class-ları saxlayır. Bu o deməkdir ki, sənin 49 AZN/ay-lıq hosting planında daha sürətli yüklənən sayt olacaq.

Portfolio Layihən Üçün Strategiya

Bakıda frontend developer olaraq 1200-2500 AZN arası maaş aralığında iş axtarırsan. Fərqlənmək üçün portfolionda bir landing page-i tamamilə Tailwind ilə, komponent kitabxanasız qur. Dark mode toggle əlavə et (dark:bg-surface-dark), responsive et, Lighthouse Performance skorunu 95+ yuxarı tut. Müsahibədə soruşanda "Niyə MUI istifadə etmədin?" de ki: "Bundle size-ı 10x kiçiltmək və CSS-in hər pikselini kontrol etmək üçün."

Bu cavab, inan, fərq yaradır.

Nəticə

Tailwind CSS komponent kitabxanası deyil — utility sistemidir. Peşəkar UI qurmaq üçün hazır komponentlər yox, sistemli düşüncə lazımdır: tutarlı rənglər, məntiqi spacing, hamar keçidlər və accessibility. Bu məqalədəki config + komponent strukturunu öz layihənə tətbiq et, portfolio-na əlavə et, müsahibəyə hazır get.

Sualın varsa, Baku Stack-in kommentlərində gözləyirəm. Kod yazmağa davam! 🚀

Oxşar məqalələr

tutorial.ascii
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ ■ ■ ■ GIT WORKFLOW ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ main ●────────●──→ ▓
▓ \ / ▓
▓ feature ●──●─● ▓
▓ \ ▓
▓ hotfix ●──→ main ▓
▓ ▓
▓ ✓ branch strategiya ▓
▓ ✓ PR review culture ▓
▓ ✓ commit convention ▓
▓ ▓▓▓▓▓▓▓░░░ 87% Git ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

Git Workflow — Komanda İşi Üçün Branch Strategiyası

Komandada işləyirsən və Git branch-ləri qarışır? Bu məqalədə real layihələrdə istifadə olunan workflow strategiyalarını praktiki nümunələrlə öyrən.

tutorial.ascii
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ ■ ■ ■ PAYMENTS ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ User → [Abunə ol] ▓
▓ ↓ ▓
▓ POST /api/checkout ▓
▓ ↓ ▓
▓ Stripe Session ✓ ▓
▓ ↓ ▓
▓ → stripe.com/pay ▓
▓ ↓ ▓
▓ Webhook → DB ✓ ▓
▓ ▓▓▓▓▓▓▓░░ 70% done ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

Stripe Ödənişlərini Next.js-ə İnteqrasiya Et: Tam Praktiki Bələdçi

Azərbaycandan Stripe ilə ödəniş qəbul etmək istəyirsən? Next.js App Router + Stripe Checkout ilə sıfırdan real ödəniş sistemi qururuq — kod, izah və praktiki məsləhətlərlə.

tutorial.ascii
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ ■ ■ ■ API GUIDE ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ $ pip install openai ▓
▓ ✓ package installed ▓
▓ → .env → API_KEY set ▓
▓ ░░░░░░░░░░░░░░░░░░░░ ▓
▓ client = OpenAI() ▓
▓ chat.completions ● ▓
▓ model: gpt-4o-mini ▓
▓ ░░░░░░░░░░░░░░░░░░░░ ▓
▓ cost: ▓▓░░ ~$10/mo ▓
▓ status: ✓ 200 OK ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

OpenAI API-ni Öz Tətbiqinizə Əlavə Etmək — Başlanğıc Bələdçi

GPT modelini öz layihənizə necə inteqrasiya edəcəyinizi praktiki kod nümunələri ilə addım-addım öyrənin. API key almaqdan tutmuş production-a qədər.

← Bloqa qayıt