Tailwind CSS Academy · पाठ

टोकन और कॉन्फ़िगरेशन लेयर बनाना

अपने डिज़ाइन टोकन को CSS वैरिएबल के रूप में लागू करें, उन्हें Tailwind कॉन्फ़िगरेशन से जोड़ें और हल्के तथा गहरे मोड में उनका परीक्षण करें।

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

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

टोकन परत का अवलोकन

टोकन परत आपके डिज़ाइन निर्णयों और Tailwind की उपयोगिता निर्माण प्रक्रिया के बीच सेतु है। इसमें CSS कस्टम प्रॉपर्टीज़ (CSS स्तर पर डिज़ाइन टोकन) और उन प्रॉपर्टीज़ का संदर्भ देने वाला Tailwind कॉन्फ़िगरेशन शामिल होता है। सही ढंग से लागू किए जाने पर, थीम बदलने के लिए केवल CSS चर के मान बदलने पड़ते हैं—Tailwind क्लास नाम या घटक कोड में कोई बदलाव नहीं होता।

मूल टोकन निर्धारित करना

सभी कच्चे रंग, स्पेसिंग और टाइपोग्राफ़ी मानों को CSS कस्टम प्रॉपर्टीज़ का उपयोग करके tokens/primitives.css फ़ाइल में निर्धारित करके शुरू करें। घटक इन मूल टोकन का सीधे उपयोग नहीं करते—ये केवल अर्थपूर्ण टोकन परत को मान देने के लिए होते हैं। रंगों के लिए --color-blue-500 और स्पेसिंग मानों के लिए --space-4 जैसी संरचित नामकरण परंपरा का उपयोग करें।

/* tokens/primitives.css */
:root {
  /* Color primitives */
  --color-blue-50: #eff6ff;
  --color-blue-100: #dbeafe;
  --color-blue-500: #3b82f6;
  --color-blue-600: #2563eb;
  --color-blue-700: #1d4ed8;
  --color-blue-900: #1e3a8a;

  --color-gray-50: #f9fafb;
  --color-gray-100: #f3f4f6;
  --color-gray-500: #6b7280;
  --color-gray-900: #111827;

  --color-white: #ffffff;
  --color-black: #000000;

  /* Spacing primitives */
  --space-1: 0.25rem;
  --space-4: 1rem;
  --space-8: 2rem;
}

अर्थपूर्ण टोकन निर्धारित करना

अर्थपूर्ण टोकन मूल मानों को अर्थ देते हैं। उन्हें अलग tokens/semantic.css फ़ाइल में निर्धारित करें। हर अर्थपूर्ण टोकन किसी मूल टोकन का संदर्भ देता है और किसी मान के बजाय एक उद्देश्य दर्शाता है। थीम बदलने के लिए डार्क मोड के दायरे या अलग ब्रांड के दायरे में उसी अर्थपूर्ण टोकन का मान बदला जाता है।

/* tokens/semantic.css */
:root {
  /* Brand colors */
  --color-primary:       var(--color-blue-600);
  --color-primary-hover: var(--color-blue-700);
  --color-primary-light: var(--color-blue-50);

  /* Surface colors */
  --color-surface:         var(--color-white);
  --color-surface-elevated: var(--color-gray-50);

  /* Text colors */
  --color-text-primary:   var(--color-gray-900);
  --color-text-secondary: var(--color-gray-500);

  /* Border colors */
  --color-border: var(--color-gray-100);
}

डार्क मोड टोकन ओवरराइड

क्लास रणनीति के लिए .dark क्लास के अंतर्गत या मीडिया रणनीति के लिए @media (prefers-color-scheme: dark) के अंतर्गत अर्थपूर्ण टोकन का मान बदलें। केवल अर्थपूर्ण टोकन बदलते हैं—मूल परिभाषाएँ अपरिवर्तित रहती हैं। यही दो-स्तरीय प्रणाली की शक्ति है: डार्क मोड पूरी तरह टोकन परत में लागू होता है, और घटक CSS या Tailwind क्लास में कोई बदलाव नहीं करना पड़ता।

/* tokens/semantic.css (dark mode overrides) */
:root {
  --color-surface: #ffffff;
  --color-text-primary: #111827;
  --color-border: #f3f4f6;
}

.dark {
  --color-surface: #111827;        /* was white */
  --color-text-primary: #f9fafb;   /* was dark gray */
  --color-border: #1f2937;         /* was light gray */
  --color-surface-elevated: #1f2937;
  /* --color-primary unchanged: blue works in both modes */
}

Tailwind कॉन्फ़िगरेशन में टोकन जोड़ना

Tailwind कॉन्फ़िगरेशन के थीम विस्तार के भीतर CSS कस्टम प्रॉपर्टीज़ का संदर्भ दें। मान के रूप में var(--token-name) का उपयोग करें। इसका अर्थ है कि थीम टोकन का संदर्भ देने वाली हर Tailwind उपयोगिता रनटाइम पर CSS चर का उपयोग करेगी, जिससे पुनः संकलन के बिना लाइव थीम बदलना संभव होगा। JIT इंजन आउटपुट CSS में var() मानों वाली क्लास बनाएगा।

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        primary: {
          DEFAULT: 'var(--color-primary)',
          hover: 'var(--color-primary-hover)',
          light: 'var(--color-primary-light)',
        },
        surface: 'var(--color-surface)',
        'text-primary': 'var(--color-text-primary)',
        'text-secondary': 'var(--color-text-secondary)',
        border: 'var(--color-border)',
      },
    },
  },
};

घटकों में टोकन-आधारित उपयोगिताओं का उपयोग

कॉन्फ़िगरेशन में टोकन जोड़ने के बाद आप उनका उपयोग किसी भी अन्य Tailwind रंग की तरह करते हैं। bg-surface, --color-surface CSS चर को पृष्ठभूमि के रूप में लागू करता है। जब उपयोगकर्ता डार्क मोड पर जाता है, तो CSS चर का मान बदलता है और घटक में किसी बदलाव के बिना पृष्ठभूमि अपने-आप अपडेट हो जाती है। मार्कअप में टोकन-आधारित क्लास अंतर्निहित Tailwind क्लास जैसी ही दिखाई देती हैं।

<!-- Token-based Tailwind classes look just like built-in ones -->
<div class="bg-surface border border-border rounded-xl p-6">
  <h2 class="text-text-primary font-semibold">Card Title</h2>
  <p class="mt-2 text-text-secondary text-sm">Card description</p>
  <button class="mt-4 rounded-lg bg-primary px-4 py-2 font-semibold text-white
                 hover:bg-primary-hover transition">
    Primary Action
  </button>
</div>

टाइपोग्राफ़ी टोकन

फ़ॉन्ट परिवार, फ़ॉन्ट आकार, पंक्ति ऊँचाई और फ़ॉन्ट भार को टोकन के रूप में निर्धारित करें। फ़ॉन्ट परिवारों को CSS चर का संदर्भ देना चाहिए, ताकि ब्रांड के टाइपफ़ेस को बदलने के लिए केवल एक चर बदलना पड़े। Tailwind कॉन्फ़िगरेशन में फ़ॉन्ट आकारों को डिफ़ॉल्ट संख्यात्मक पैमाने के साथ text-display और text-caption जैसे अर्थपूर्ण नामों से बढ़ाया जा सकता है।

/* tokens/semantic.css */
:root {
  --font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif;
  --font-display: 'Cal Sans', var(--font-sans);
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}

// tailwind.config.js
theme: {
  extend: {
    fontFamily: {
      sans: ['var(--font-sans)'],
      display: ['var(--font-display)'],
      mono: ['var(--font-mono)'],
    },
    fontSize: {
      display: ['3.75rem', { lineHeight: '1.1', fontWeight: '700' }],
      caption: ['0.75rem', { lineHeight: '1.5' }],
    },
  },
},

स्पेसिंग और त्रिज्या टोकन

घटक-स्तरीय स्थिरांकों के लिए अर्थपूर्ण नामों के साथ स्पेसिंग और बॉर्डर त्रिज्या पैमाने का विस्तार करें। यह याद रखने के बजाय कि कार्ड में rounded-xl और बैज में rounded-full का उपयोग होता है, कॉन्फ़िगरेशन में radius.card: xl और radius.badge: full निर्धारित करें। इससे घटक कोड अपने-आप में दस्तावेज़ बन जाता है और मान बदलने पर भी सभी कार्डों की त्रिज्या समान रहती है।

// tailwind.config.js
theme: {
  extend: {
    borderRadius: {
      card:  '0.75rem',   // 12px — used by Card, Dialog
      input: '0.5rem',    // 8px  — used by Input, Select
      badge: '9999px',    // pill — used by Badge, Tag
      button: '0.5rem',   // 8px  — used by all Button variants
    },
    spacing: {
      18: '4.5rem',
      22: '5.5rem',
      128: '32rem',
    },
  },
},

छाया टोकन

अर्थपूर्ण नामों का उपयोग करके Tailwind कॉन्फ़िगरेशन में सुसंगत छाया स्तर निर्धारित करें। छायाएँ दृश्य पदानुक्रम बताती हैं: सपाट तत्वों के लिए none, सतह वाले तत्वों के लिए card, ड्रॉपडाउन और मोडल के लिए elevated, तथा इंटरैक्टिव स्थिति संकेतकों के लिए focus। इससे कोडबेस में मनमाने छाया मान बिखरने से बचते हैं।

// tailwind.config.js
theme: {
  extend: {
    boxShadow: {
      card:     '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',
      elevated: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',
      focus:    '0 0 0 3px var(--color-primary-light)',
    },
  },
},

<!-- Use semantic shadow names -->
<div class="shadow-card hover:shadow-elevated transition-shadow">

CI में टोकन का सत्यापन

एक CI चरण जोड़ें जो टोकन की अखंडता का सत्यापन करे—यह जाँचते हुए कि हर अर्थपूर्ण टोकन किसी मौजूद मूल टोकन का संदर्भ देता है और कोई भी अर्थपूर्ण टोकन कच्चा हेक्स मान नहीं है (जो दो-स्तरीय प्रणाली को दरकिनार कर देगा)। CSS चर वाली फ़ाइल को पार्स करने और संदर्भों की जाँच करने वाली एक सरल Node.js स्क्रिप्ट, टोकन में आया बदलाव उत्पादन तक पहुँचने से पहले पकड़ सकती है।

// scripts/validate-tokens.js
const fs = require('fs');
const semanticCss = fs.readFileSync('tokens/semantic.css', 'utf8');
const primitiveCss = fs.readFileSync('tokens/primitives.css', 'utf8');

// Extract all var() references in semantic.css
const refs = [...semanticCss.matchAll(/var\(([^)]+)\)/g)].map(m => m[1].trim());

// Check each ref exists in primitives.css
const missing = refs.filter(ref => !primitiveCss.includes(ref + ':'));
if (missing.length > 0) {
  console.error('Undefined primitive tokens:', missing);
  process.exit(1);
}
console.log('All tokens valid.');

डार्क मोड टोकन स्विचिंग का परीक्षण

html पर .dark क्लास लगाकर और यह सत्यापित करके कि हर अर्थपूर्ण रंग वाली सतह, पाठ और बॉर्डर सही ढंग से रेंडर हो रहे हैं, टोकन स्तर पर डार्क मोड का दृश्य परीक्षण करें। dark लागू करके स्क्रीनशॉट लेने और उनकी तुलना लाइट मोड की आधाररेखाओं से करने के लिए Playwright या Cypress का उपयोग करें। दृश्य प्रतिगमन तुरंत पकड़ने के लिए टोकन फ़ाइल बदलने पर यह परीक्षण-समूह चलाएँ।

// playwright/dark-mode.spec.ts
import { test, expect } from '@playwright/test';

test('tokens switch correctly in dark mode', async ({ page }) => {
  await page.goto('/tokens-preview');

  // Light mode screenshot
  await expect(page).toHaveScreenshot('tokens-light.png');

  // Enable dark mode
  await page.evaluate(() =>
    document.documentElement.classList.add('dark')
  );

  // Dark mode screenshot
  await expect(page).toHaveScreenshot('tokens-dark.png');
});

त्वरित जाँच

इस पाठ में Tailwind CSS Mastery की अवधारणाओं की अपनी समझ जाँचें।

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

इस पाठ में आपने सीखा: अलग-अलग फ़ाइलों में मूल और अर्थपूर्ण टोकन को CSS कस्टम प्रॉपर्टीज़ के रूप में निर्धारित करना, रनटाइम पर अपडेट होने के लिए var() का उपयोग करके अर्थपूर्ण टोकन को Tailwind कॉन्फ़िगरेशन में जोड़ना, और .dark क्लास के अंतर्गत केवल अर्थपूर्ण टोकन का मान बदलकर डार्क मोड लागू करना। अब हम इन टोकन का उपयोग करके घटक लाइब्रेरी बनाएँगे।

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

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

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

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

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

क्या “टोकन और कॉन्फ़िगरेशन लेयर बनाना” पाठ निःशुल्क है?

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

“टोकन और कॉन्फ़िगरेशन लेयर बनाना” में मैं क्या सीखूँगा?

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

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

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

“टोकन और कॉन्फ़िगरेशन लेयर बनाना” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. डिज़ाइन सिस्टम की योजना बनाना
  2. टोकन और कॉन्फ़िगरेशन लेयर बनाना
  3. कंपोनेंट लाइब्रेरी का निर्माण
  4. दस्तावेज़ीकरण और टीम को हस्तांतरण
← Tailwind CSS Academy पर वापस जाएँ