وہ اصل وجہ جس پر ہر کوئی Tailwind CSS v4 کے بارے میں بحث کر رہا ہے

Tailwind CSS v4 کی بحث ہر جگہ موجود ہے۔ زیادہ تر لوگ غلط چیز پر بحث کر رہے ہیں۔

اصل سوال utility classes بمقابلہ inline styles کا نہیں ہے۔ بلکہ یہ ہے کہ آپ کی styling کہاں رہتی ہے اور اس کا ذہنی بوجھ (mental cost) کون اٹھاتا ہے۔

Tailwind v4 کنفیگریشن کو آپ کی CSS فائل میں منتقل کر دیتا ہے۔ آپ JavaScript config فائل کے بجائے @theme استعمال کرتے ہیں۔ یہ ورک فلو (workflows) کو زیادہ صاف ستھرا بناتا ہے۔

لیکن یہ اس تنازع کی وجہ نہیں ہے۔ اصل تنازع اس بات سے پیدا ہوتا ہے کہ v4 کس طرح دو مختلف پیٹرنز (patterns) کو استعمال کرنا آسان بنا دیتا ہے۔

Pattern 1: آپ کے components میں utility classes۔ آپ براہ راست اپنے HTML یا JSX میں classes لکھتے ہیں۔ یہ آپ کو بالکل بتاتا ہے کہ ایک element کیسا دکھتا ہے۔

Pattern 2: @apply کا طریقہ کار۔ آپ CSS فائل میں .alert یا .alert--error جیسی semantic classes بناتے ہیں۔ یہ آپ کو بتاتا ہے کہ ایک element کیا ہے۔

دونوں طریقے کام کرتے ہیں۔ کوئی بھی غلط نہیں ہے۔ وہ مختلف فلسفوں (philosophies) پر عمل کرتے ہیں۔

Group A co-location پر یقین رکھتا ہے۔ ہر چیز ایک ہی جگہ رہتی ہے۔ Group B semantic ناموں پر یقین رکھتا ہے۔ وہ ایسے نام چاہتے ہیں جو مقصد کی وضاحت کریں۔

جب ایک ڈیزائنر error color کو سرخ سے نارنجی (orange) میں تبدیل کرتا ہے، تو Group A کوڈ فائلوں میں تلاش کرتا ہے۔ Group B ایک CSS فائل میں ایک لائن تبدیل کرتا ہے۔

Tailwind v4 @apply کو زیادہ فطری (natural) بنا دیتا ہے۔ یہ تناؤ کو مزید بڑھا دیتا ہے۔

اپنی ٹیم کے سائز کے لحاظ سے انتخاب کرنے کا طریقہ یہ ہے:

  • Small teams: utility classes استعمال کریں۔ آپ کو کلاسز کے نام رکھنے میں وقت ضائع کرنے کی ضرورت نہیں ہے۔ جب ہر کوئی ایک ہی فائلوں پر کام کرتا ہے