Tailwind CSS Academy · पाठ

पुनः उपयोग योग्य घटक वर्ग बनाना

वैश्विक CSS फ़ाइल में .btn, .card और .badge वर्ग बनाने के लिए @apply का उपयोग करें और HTML टेम्पलेट में दोहराव कम करें।

पाठ 2, कुल 4 में से13 चरण

पुनः उपयोग योग्य घटक वर्ग बनाना, CoddyKit पर Tailwind CSS Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Tailwind CSS Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Tailwind CSS Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

कॉम्पोनेंट क्लास बनाम यूटिलिटी क्लास

Tailwind उपयोगिता-प्रथम दृष्टिकोण को प्रोत्साहित करता है—एकल-उद्देश्य वाले वर्गों को सीधे HTML पर लागू करना। लेकिन बटन, कार्ड और बैज जैसे जटिल घटकों के लिए, जो पूरे प्रोजेक्ट में बार-बार दिखाई देते हैं, उन्हें घटक वर्गों में निकालने से दोहराव कम होता है और आपकी टीम के लिए एक सुसंगत, नामित शब्दावली बनती है। उद्देश्य पारंपरिक CSS को फिर से बनाना नहीं, बल्कि ऐसे उच्च-मूल्य वाले छोटे अमूर्तीकरणों का समूह बनाना है जहाँ दोहराव वास्तव में महँगा पड़ता है।

बटन घटक वर्ग बनाना

बटन घटक वर्ग के लिए सबसे अच्छे विकल्पों में से एक है, क्योंकि हर इंटरैक्टिव UI में एक जैसी मूल शैलियों वाले कई बटन होते हैं। साझा संरचना के लिए एक आधार .btn वर्ग परिभाषित करें, फिर अलग-अलग रूपों के लिए .btn-primary, .btn-secondary और .btn-outline जैसे संशोधक वर्ग बनाएँ। उपयोगकर्ता अंतर्निहित उपयोगिताओं को जाने बिना दोनों वर्ग लागू करके बटन की पूरी शैली प्राप्त कर सकते हैं।

@layer components {
  .btn {
    @apply inline-flex items-center justify-center gap-2
           px-4 py-2 rounded-lg text-sm font-semibold
           transition-all duration-150
           focus:outline-none focus:ring-2 focus:ring-offset-2
           disabled:opacity-50 disabled:cursor-not-allowed;
  }

  .btn-primary {
    @apply btn bg-blue-600 text-white
           hover:bg-blue-700 active:bg-blue-800
           focus:ring-blue-500;
  }

  .btn-outline {
    @apply btn border border-gray-300 text-gray-700 bg-white
           hover:bg-gray-50 active:bg-gray-100
           focus:ring-gray-400;
  }
}

HTML में बटन घटक वर्गों का उपयोग करना

घटक वर्ग परिभाषित होने के बाद HTML संक्षिप्त और पढ़ने में आसान हो जाता है। प्राथमिक बटन के लिए btn btn-primary या द्वितीयक विकल्प के लिए btn btn-outline लागू करें। विशिष्ट गुणों को बदलने के लिए अलग-अलग उपयोगिता वर्ग अब भी जोड़े जा सकते हैं—उदाहरण के लिए, बटन को पूरी चौड़ाई तक फैलाने के लिए w-full—क्योंकि Tailwind की परत-क्रम व्यवस्था में उपयोगिता वर्ग हमेशा घटक वर्गों पर प्राथमिकता पाते हैं।

<!-- Clean, readable HTML using component classes -->
<button class="btn btn-primary">Save Changes</button>
<button class="btn btn-outline">Cancel</button>

<!-- Utility override still works -->
<button class="btn btn-primary w-full">Full Width Button</button>

<!-- Disabled state from btn class -->
<button class="btn btn-primary" disabled>Loading...</button>

कार्ड घटक वर्ग बनाना

कार्ड ऐसे कंटेनर घटक होते हैं जो सामग्री के अनुभागों को घेरते हैं। एक .card आधार वर्ग दृश्य कंटेनर को संभालता है, जबकि .card-compact या .card-bordered जैसे संशोधक वर्ग अलग-अलग रूप जोड़ते हैं। यह तरीका HTML को साफ़ रखता है और लचीला विन्यास भी देता है—डेवलपर डिफ़ॉल्ट रूप के लिए card जोड़ता है और वैकल्पिक रूप से किसी संशोधक को जोड़ सकता है।

@layer components {
  .card {
    @apply bg-white rounded-xl shadow-sm border border-gray-200
           overflow-hidden;
  }

  .card-body {
    @apply p-6;
  }

  .card-header {
    @apply px-6 py-4 border-b border-gray-100 font-semibold text-gray-900;
  }

  .card-footer {
    @apply px-6 py-4 border-t border-gray-100 bg-gray-50 flex justify-end gap-3;
  }

  /* Dark mode variant */
  .dark .card {
    @apply bg-gray-800 border-gray-700;
  }
}

बैज घटक वर्ग

बैज छोटे, गोली के आकार के लेबल होते हैं, जिनका उपयोग स्थिति संकेतकों, गिनतियों और श्रेणी टैग के लिए किया जाता है। ये घटक वर्गों के लिए बेहतरीन विकल्प हैं, क्योंकि ये अक्सर दिखाई देते हैं और इनका गोली जैसा आकार हमेशा एक जैसा होता है। एक आधार .badge वर्ग और रंग के संशोधक वर्ग परिभाषित करें। इन्हें छोटा और केंद्रित रखें—बैज में जटिल आंतरिक संरचना नहीं होनी चाहिए।

@layer components {
  .badge {
    @apply inline-flex items-center px-2.5 py-0.5 rounded-full
           text-xs font-medium;
  }

  .badge-blue   { @apply badge bg-blue-100 text-blue-700; }
  .badge-green  { @apply badge bg-green-100 text-green-700; }
  .badge-yellow { @apply badge bg-yellow-100 text-yellow-700; }
  .badge-red    { @apply badge bg-red-100 text-red-700; }
  .badge-gray   { @apply badge bg-gray-100 text-gray-600; }
}

<!-- Usage -->
<span class="badge-green">Active</span>
<span class="badge-red">Overdue</span>

फ़ॉर्म इनपुट घटक वर्ग

फ़ॉर्म इनपुट में कई साझा शैलियाँ होती हैं—बॉर्डर, पैडिंग, बॉर्डर-रेडियस और फ़ोकस रिंग—जो किसी प्रोजेक्ट के हर टेक्स्ट फ़ील्ड, टेक्स्टएरिया और चयन फ़ील्ड में दोहराई जाती हैं। इन्हें .form-input वर्ग और अवस्थाओं के लिए संशोधक वर्गों में निकालें। यह खास तौर पर @tailwindcss/forms प्लगइन के साथ उपयोगी है, जो पहले ब्राउज़र की डिफ़ॉल्ट शैलियों को एकसमान करता है।

@layer components {
  .form-field {
    @apply w-full rounded-lg border border-gray-300 bg-white
           px-4 py-2.5 text-sm text-gray-900
           placeholder:text-gray-400
           focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent
           dark:bg-gray-700 dark:border-gray-600 dark:text-gray-100
           dark:placeholder:text-gray-500;
  }

  .form-field-error {
    @apply form-field border-red-500 focus:ring-red-500;
  }

  .form-label {
    @apply block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1;
  }
}

अलर्ट और टोस्ट घटक वर्ग

अलर्ट उपयोगकर्ताओं तक महत्वपूर्ण प्रतिक्रिया पहुँचाते हैं और कई अर्थपूर्ण रूपों में दिखाई देते हैं: जानकारी, सफलता, चेतावनी और त्रुटि। इन सभी की संरचना समान होती है, लेकिन रंग अलग-अलग होते हैं। लेआउट के लिए एक आधार .alert वर्ग और प्रत्येक अर्थपूर्ण प्रकार के लिए संशोधक वर्गों का समूह परिभाषित करें। आधार वर्ग पैडिंग, बॉर्डर-रेडियस और आइकन का संरेखण संभालता है, जबकि संशोधक रंग-थीम संभालते हैं।

@layer components {
  .alert {
    @apply flex items-start gap-3 p-4 rounded-lg text-sm;
  }

  .alert-info    { @apply alert bg-blue-50 text-blue-800 border border-blue-200; }
  .alert-success { @apply alert bg-green-50 text-green-800 border border-green-200; }
  .alert-warning { @apply alert bg-yellow-50 text-yellow-800 border border-yellow-200; }
  .alert-error   { @apply alert bg-red-50 text-red-800 border border-red-200; }
}

<!-- Usage -->
<div class="alert-success">
  <span>Your profile was saved successfully.</span>
</div>

नेविगेशन लिंक वर्ग

नेविगेशन लिंक भी घटक वर्गों के लिए बेहतरीन विकल्प हैं, क्योंकि उनका आधार रूप हमेशा एक जैसा होता है और सक्रिय अवस्था के अनुसार उनमें बदलाव होता है। डिफ़ॉल्ट अवस्था के लिए .nav-link वर्ग और हाइलाइट किए गए वर्तमान पृष्ठ के लिंक के लिए .nav-link-active वर्ग परिभाषित करें। यदि आप JavaScript फ़्रेमवर्क का उपयोग कर रहे हैं, तो आम तौर पर वर्तमान रूट के आधार पर सक्रिय वर्ग को प्रोग्राम के ज़रिए लागू किया जाता है।

@layer components {
  .nav-link {
    @apply flex items-center gap-2 px-3 py-2 rounded-lg text-sm font-medium
           text-gray-600 hover:bg-gray-100 hover:text-gray-900
           transition-colors duration-150;
  }

  .nav-link-active {
    @apply nav-link bg-blue-50 text-blue-700 hover:bg-blue-100;
  }
}

<nav>
  <a href="/" class="nav-link-active">Dashboard</a>
  <a href="/settings" class="nav-link">Settings</a>
</nav>

फ़ाइलों में घटक वर्गों को व्यवस्थित करना

जैसे-जैसे आपके घटक वर्गों की संख्या बढ़ती है, उन्हें श्रेणी के अनुसार अलग-अलग समर्पित CSS फ़ाइलों में व्यवस्थित रखें। @import का उपयोग करके या PostCSS के ज़रिए कई फ़ाइलें आयात करके उन सभी को अपनी मुख्य CSS प्रवेश फ़ाइल में लाएँ। एक सामान्य संरचना में बटन, फ़ॉर्म, कार्ड, बैज, नेविगेशन और टाइपोग्राफ़ी के लिए अलग-अलग फ़ाइलें होती हैं—सभी @layer components के दायरे में।

/* src/styles/main.css */
@tailwind base;
@tailwind components;
@tailwind utilities;

/* Component class files */
@import './components/buttons.css';
@import './components/cards.css';
@import './components/badges.css';
@import './components/forms.css';
@import './components/navigation.css';

/* Custom utilities */
@import './utilities/text-balance.css';

आकार संशोधकों वाले घटक वर्ग

कई घटक अलग-अलग आकारों में आते हैं—छोटे, मध्यम और बड़े। ऐसे आकार संशोधक वर्ग परिभाषित करें जो आधार वर्ग की पैडिंग और फ़ॉन्ट आकार को बदल दें। चूँकि CSS स्रोत में आकार संशोधक आधार वर्ग के बाद लागू होते हैं (उसी परत के भीतर), इसलिए वे अधिक विशिष्टता या !important की आवश्यकता के बिना आधार मानों को सही ढंग से बदल देते हैं।

@layer components {
  /* Base button */
  .btn { @apply inline-flex items-center px-4 py-2 rounded-lg text-sm font-medium; }

  /* Size modifiers */
  .btn-xs  { @apply px-2.5 py-1.5 text-xs rounded; }
  .btn-sm  { @apply px-3 py-1.5 text-sm rounded-md; }
  .btn-lg  { @apply px-5 py-2.5 text-base rounded-lg; }
  .btn-xl  { @apply px-6 py-3 text-lg rounded-xl; }
}

<!-- Usage -->
<button class="btn btn-primary btn-sm">Small Primary</button>
<button class="btn btn-primary">Default Primary</button>
<button class="btn btn-primary btn-lg">Large Primary</button>

घटक वर्गों का परीक्षण करना

एक सरल दृश्य परीक्षण पृष्ठ बनाएँ, जिसमें घटक वर्ग के हर रूपांतर को अगल-बगल दिखाया जाए। यह एक जीवंत शैली मार्गदर्शिका के रूप में काम करता है और घटक वर्गों में बदलाव करने पर आने वाली समस्याओं को पकड़ता है। हर आकार, रंग और अवस्था का रूपांतर शामिल करें। इन घटक वर्गों को उत्पादन में उपयोग करने से पहले, इच्छित डिज़ाइन सिस्टम विनिर्देश से उनका मिलान सत्यापित करने के लिए यह पृष्ठ डिज़ाइनरों के साथ साझा करें।

<!-- Component test page snippet -->
<div class="p-8 space-y-8">
  <div>
    <h3 class="text-xs font-mono text-gray-400 mb-3">Buttons</h3>
    <div class="flex flex-wrap gap-3">
      <button class="btn btn-primary">Primary</button>
      <button class="btn btn-outline">Outline</button>
      <button class="btn btn-primary" disabled>Disabled</button>
    </div>
  </div>
  <div>
    <h3 class="text-xs font-mono text-gray-400 mb-3">Badges</h3>
    <div class="flex flex-wrap gap-2">
      <span class="badge-blue">Blue</span>
      <span class="badge-green">Green</span>
      <span class="badge-red">Red</span>
    </div>
  </div>
</div>

त्वरित जाँच

Tailwind के @apply निर्देश के ज़रिए पुनः उपयोग योग्य घटक वर्ग बनाने की अपनी समझ जाँचें।

पाठ का पुनरावलोकन

इस पाठ में आपने सीखा: बटन, कार्ड और बैज के लिए @layer components के भीतर @apply का उपयोग करके आधार + संशोधक घटक वर्ग परिभाषित करना; आकार संशोधक एक ही आधार वर्ग को कई आकारों के रूपांतरों का समर्थन करने देते हैं; और प्रोजेक्ट बढ़ने पर घटक वर्गों को श्रेणी के अनुसार अलग-अलग फ़ाइलों में व्यवस्थित किया जाना चाहिए। आगे हम कस्टम CSS को व्यवस्थित करने के लिए Tailwind की @layer प्रणाली का अध्ययन करेंगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ HTML सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “पुनः उपयोग योग्य घटक वर्ग बनाना” पाठ निःशुल्क है?

हाँ—“पुनः उपयोग योग्य घटक वर्ग बनाना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Tailwind CSS Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Tailwind CSS Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“पुनः उपयोग योग्य घटक वर्ग बनाना” में मैं क्या सीखूँगा?

वैश्विक CSS फ़ाइल में .btn, .card और .badge वर्ग बनाने के लिए @apply का उपयोग करें और HTML टेम्पलेट में दोहराव कम करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Tailwind CSS Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Tailwind CSS Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Tailwind CSS Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“पुनः उपयोग योग्य घटक वर्ग बनाना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Tailwind CSS Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Tailwind CSS Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. @apply क्या करता है और इसका उपयोग कब करें
  2. पुनः उपयोग योग्य घटक वर्ग बनाना
  3. Layers से कस्टम CSS व्यवस्थित करना
  4. @apply की कमियाँ और विकल्प
← Tailwind CSS Academy पर वापस जाएँ