1. परिचय
मटीरियल कॉम्पोनेंट (एमडीसी), मटीरियल डिज़ाइन लागू करने में डेवलपर की मदद करते हैं. Google के इंजीनियरों और UX डिज़ाइनर की टीम ने बनाया है. एमडीसी में दर्जनों खूबसूरत और काम करने वाले यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट हैं. यह Android, iOS, वेब, और Flutter.material.io/प्रॉडक्ट के लिए उपलब्ध है |
वेब के लिए मटीरियल कॉम्पोनेंट (एमडीसी वेब), फ़्रेमवर्क-एग्नोस्टिक होते हैं, जिन्हें सामान्य JavaScript का इस्तेमाल करके बनाया जाता है. इससे, MDC Web को आपकी डेवलपमेंट प्रोसेस के साथ आसानी से काम करने में मदद मिलती है. ज़रूरत के हिसाब से इन कॉम्पोनेंट को इंस्टॉल किया जा सकता है, ताकि आपके मौजूदा ऐप्लिकेशन में डिज़ाइन को बेहतर बनाया जा सके.
आपको क्या बनाना होगा
इस कोडलैब में, आपको कुछ मौजूदा कॉम्पोनेंट को MDC वेब से मिले फ़ॉर्म से बदलना होगा:
इस कोडलैब में मौजूद एमडीसी वेब कॉम्पोनेंट
- बटन
- चुनें
- टेक्स्ट फ़ील्ड
आपको इन चीज़ों की ज़रूरत होगी
- Node.js का नया वर्शन (जो JavaScript पैकेज मैनेजर npm के साथ बंडल में आता है).
- सैंपल कोड (अगले चरण में डाउनलोड किया जाएगा)
- एचटीएमएल, सीएसएस, और JavaScript की बुनियादी जानकारी
वेब डेवलपमेंट के अपने अनुभव को लेकर, 1 से 5 के स्केल पर आप किस हद तक संतुष्ट हैं?
2. डेवलपमेंट एनवायरमेंट सेट अप करना
स्टार्टर कोडलैब ऐप्लिकेशन डाउनलोड करना
स्टार्टर ऐप्लिकेशन, material-components-web-codelabs-master/mdc-111/starter
डायरेक्ट्री में मौजूद है. शुरू करने से पहले, उस डायरेक्ट्री में cd
करना न भूलें.
...या GitHub से इसका क्लोन बनाएं
GitHub से इस कोडलैब का क्लोन बनाने के लिए, ये निर्देश चलाएं:
git clone https://github.com/material-components/material-components-web-codelabs cd material-components-web-codelabs/mdc-111/starter
प्रोजेक्ट की डिपेंडेंसी इंस्टॉल करना
स्टार्टर डायरेक्ट्री (material-components-web-codelabs/mdc-111/starter
) से, यह चलाएं:
npm install
आपको बहुत सारी गतिविधियां दिखेंगी और आखिर में, आपके टर्मिनल में एक सफल इंस्टॉल दिखना चाहिए:
स्टार्टर ऐप्लिकेशन चलाएं
स्टार्टर डायरेक्ट्री में, यह चलाएं:
npm start
webpack-dev-server
शुरू हो जाएगा. पेज देखने के लिए, अपने ब्राउज़र को http://localhost:8080/ पर ले जाएं.
हो गया! आपको ऐप्लिकेशन का शिपिंग पते का फ़ॉर्म दिखना चाहिए:
3. बटन अपडेट करें
एमडीसी बटन इंस्टॉल करना
डेवलपमेंट सर्वर को बंद करने के लिए, Ctrl
+C
दबाएं. इसके बाद, MDC बटन NPM पैकेज इंस्टॉल करें और सर्वर को रीस्टार्ट करें:
npm install @material/button npm start
सीएसएस इंपोर्ट करें
_theme.scss
में सबसे ऊपर, .crane-button { ... }
ब्लॉक मिटाएं और उसकी जगह यह जोड़ें:
$mdc-theme-primary: $crane-primary-color;
@import "@material/button/mdc-button";
मार्कअप अपडेट करना
index.html
में, <button>
एलिमेंट से crane-button
क्लास हटाएं, mdc-button
और mdc-button--raised
क्लास जोड़ें, और लेबल को mdc-button__label
क्लास वाले <span>
एलिमेंट में नेस्ट करें:
<button type="submit" class="mdc-button mdc-button--raised">
<div class="mdc-button__ripple"></div>
<span class="mdc-button__label">Save</span>
</button>
रिपल जोड़ना
एमडीसी बटन, JavaScript के बिना इस्तेमाल किए जा सकते हैं. हालांकि, बटन में इंटरैक्टिव रिपल जोड़ने से, उपयोगकर्ता को बेहतर अनुभव मिलता है.
डेवलपमेंट सर्वर को बंद करने के लिए, Ctrl
+C
दबाएं. फिर चलाएं:
npm install @material/ripple npm start
app.js
के ऊपर यह इंपोर्ट स्टेटमेंट जोड़ें:
import {MDCRipple} from '@material/ripple';
बटन पर रिपल इफ़ेक्ट लागू करने के लिए, app.js
के नीचे यह जोड़ें:
new MDCRipple(document.querySelector('.mdc-button'));
Roboto फ़ॉन्ट इंपोर्ट करना
डिफ़ॉल्ट रूप से, Material Design, कॉम्पोनेंट टाइपफ़ेस के लिए Roboto का इस्तेमाल करता है.
index.html
में, <head>
एलिमेंट में ये जोड़कर Roboto वेब फ़ॉन्ट इंपोर्ट करें:
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700">
पेज को फिर से लोड करें. आपको कुछ ऐसा दिखेगा:
यह बटन दबाने पर, अब विज़ुअल फ़ीडबैक के तौर पर हल्का रिपल इफ़ेक्ट दिखाता है.
4. चुने गए एलिमेंट को अपडेट करना
एमडीसी सिलेक्ट कॉम्पोनेंट में, नेटिव एचटीएमएल <select>
एलिमेंट शामिल होता है. इसका इस्तेमाल उन सभी जगहों पर करें जहां आम तौर पर <select>
का इस्तेमाल किया जाता है. आइए, "स्टेटस" फ़ील्ड को अपडेट करें.
एमडीसी नोड मॉड्यूल इंस्टॉल करना
डेवलपमेंट सर्वर को बंद करने के लिए Ctrl
+C
दबाएं. फिर चलाएं:
npm install @material/select npm start
सीएसएस इंपोर्ट करें
बटन इंपोर्ट करने के ठीक बाद, _theme.scss
में ये चीज़ें जोड़ें:
@import "@material/select/mdc-select";
मार्कअप अपडेट करना
index.html
में <select>
एलिमेंट ढूंढें. crane-input
क्लास को mdc-select__native-control
से बदलें:
<select class="mdc-select__native-control" id="crane-state-input" required>
<select>
टैग के ठीक ऊपर, MDC Select कॉम्पोनेंट के ड्रॉप-डाउन ऐरो के लिए यह मार्कअप जोड़ें:
<i class="mdc-select__dropdown-icon"></i>
क्लोज़िंग </select>
टैग के ठीक नीचे, crane-label
क्लास को mdc-floating-label
से बदलें:
<label class="mdc-floating-label" for="crane-state-input">
इसके बाद लेबल के तुरंत बाद, नीचे दिया गया मार्कअप जोड़ें:
<div class="mdc-line-ripple"></div>
आखिर में, <select>
एलिमेंट के आस-पास (लेकिन crane-field
एलिमेंट के अंदर) नीचे दिए गए टैग जोड़ें:
<div class="mdc-select">
...
</div>
इससे बनने वाला मार्कअप कुछ ऐसा दिखना चाहिए:
<div class="crane-field">
<div class="mdc-select">
<i class="mdc-select__dropdown-icon"></i>
<select class="mdc-select__native-control" id="crane-state-input" required>
<option value="" selected></option>
<option value="AL">Alabama</option>
...
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
</select>
<label class="mdc-floating-label" for="crane-state-input">
State
</label>
<div class="mdc-line-ripple"></div>
</div>
</div>
JS इंपोर्ट करना
app.js
के ऊपर यह इंपोर्ट स्टेटमेंट जोड़ें:
import {MDCSelect} from '@material/select';
चुने गए को इंस्टैंशिएट करने के लिए, app.js
में नीचे दिया गया तरीका जोड़ें:
new MDCSelect(document.querySelector('.mdc-select'));
पेज को फिर से लोड करें. अब यह इस तरह दिखेगा:
एमडीसी सिलेक्ट कॉम्पोनेंट, उपयोगकर्ता के लिए जाने-पहचाने फ़ॉर्मैट में विकल्पों की सूची दिखाता है, लेकिन यह आधुनिक स्टाइल के साथ होता है.
5. टेक्स्ट फ़ील्ड अपडेट करें
सामान्य <input>
एलिमेंट की तुलना में, Material Design वाले टेक्स्ट फ़ील्ड को इस्तेमाल करना काफ़ी आसान है. इन्हें इस तरह से डिज़ाइन किया गया है कि मुश्किल कॉन्टेंट को आसानी से पहचाना जा सके. साथ ही, जब उपयोगकर्ता इनसे इंटरैक्ट करता है, तो इन्हें विज़ुअल तौर पर आसानी से दिखाया जा सकता है.
एमडीसी नोड मॉड्यूल इंस्टॉल करना
डेवलपमेंट सर्वर को बंद करने के लिए Ctrl
+C
दबाएं. फिर चलाएं:
npm install @material/textfield npm start
सीएसएस जोड़ना
चुनने के बाद इंपोर्ट करें. इसके बाद, इन्हें _theme.scss
में जोड़ें:
@import "@material/textfield/mdc-text-field";
मार्कअप अपडेट करना
index.html
में, "नाम" फ़ील्ड के लिए <input>
एलिमेंट ढूंढें. crane-input
क्लास को mdc-text-field__input
से बदलें:
<input class="mdc-text-field__input" id="crane-name-input" type="text" required autofocus>
इसके बाद, crane-label
क्लास को mdc-floating-label
से बदलें:
<label class="mdc-floating-label" for="crane-name-input">
इसके बाद लेबल के तुरंत बाद, नीचे दिया गया मार्कअप जोड़ें:
<div class="mdc-line-ripple"></div>
आखिर में, तीनों एलिमेंट को इस तरह रैप करें:
<div class="mdc-text-field">
...
</div>
इससे बनने वाला मार्कअप कुछ ऐसा दिखना चाहिए:
<div class="crane-field">
<div class="mdc-text-field">
<input class="mdc-text-field__input" id="crane-name-input"
type="text" required autofocus>
<label class="mdc-floating-label" for="crane-name-input">
Name
</label>
<div class="mdc-line-ripple"></div>
</div>
</div>
पेज पर मौजूद दूसरे सभी <input>
एलिमेंट के लिए भी यही तरीका दोहराएं.
"पता", "शहर", और "पिन कोड" फ़ील्ड के लिए मार्कअप इस तरह दिखना चाहिए:
<div class="crane-field">
<div class="mdc-text-field">
<input class="mdc-text-field__input" id="crane-address-input" type="text" required>
<label class="mdc-floating-label" for="crane-address-input">
Address
</label>
<div class="mdc-line-ripple"></div>
</div>
</div>
<div class="crane-field">
<div class="mdc-text-field">
<input class="mdc-text-field__input" id="crane-city-input" type="text" required>
<label class="mdc-floating-label" for="crane-city-input">
City
</label>
<div class="mdc-line-ripple"></div>
</div>
</div>
<div class="crane-field">
<div class="mdc-text-field">
<input class="mdc-text-field__input" id="crane-zip-code-input"
type="text" required minlength="5" maxlength="5" pattern="[0-9]*">
<label class="mdc-floating-label" for="crane-zip-code-input">
ZIP Code
</label>
<div class="mdc-line-ripple"></div>
</div>
</div>
अब _theme.scss
से .crane-label
और .crane-input
स्टाइल हटाए जा सकते हैं. इनका अब इस्तेमाल नहीं किया जाता.
JS इंपोर्ट करना
app.js
के सबसे ऊपर, इंपोर्ट स्टेटमेंट जोड़ें:
import {MDCTextField} from '@material/textfield';
टेक्स्ट फ़ील्ड को इंस्टैंशिएट करने के लिए, app.js
के नीचे यह जोड़ें:
const textFieldElements = [].slice.call(document.querySelectorAll('.mdc-text-field'));
textFieldElements.forEach((textFieldEl) => {
new MDCTextField(textFieldEl);
});
पेज को फिर से लोड करें. अब यह इस तरह दिखेगा:
मटीरियल थीम का इस्तेमाल करने के लिए, सभी टेक्स्ट फ़ील्ड को अपडेट कर दिया गया है.
6. रीकैप
आपने अपने ऐप्लिकेशन को पूरी तरह से फिर से डिज़ाइन किए बिना, कुछ सामान्य कॉम्पोनेंट (टेक्स्ट फ़ील्ड, चुनें, और बटन) को बदल दिया है. शानदार!
टॉप ऐप्लिकेशन बार और नेविगेशन ड्रॉअर जैसे अन्य कॉम्पोनेंट भी काफ़ी फ़र्क़ डाल सकते हैं.
अगले चरण
एमडीसी वेब कैटलॉग पर जाकर, एमडीसी वेब में और भी कॉम्पोनेंट देखे जा सकते हैं.
अगर आपको किसी खास फ़्रेमवर्क के साथ एमडीसी वेब का इस्तेमाल करना है, तो MDC-112: एमडीसी को वेब फ़्रेमवर्क के साथ इंटिग्रेट करना लेख पढ़ें.