रंग
कलर रोल, मोनोक्रोम प्राइमरी, अकेला ऐक्सेंट, और हर स्कीम कैसे जनरेट और जाँची जाती है।
Tanrei किसी कंपोनेंट से कभी रंग चुनने को नहीं कहता। कंपोनेंट एक रोल माँगते हैं, जैसे primary या surface-container, और सक्रिय थीम तय करती है कि उस रोल में कौन-सा रंग भरेगा। रोल Tanrei की शब्दावली से तय होते हैं, और उनके मान हर डिज़ाइन सिस्टम की लेयर से।
- इंटेंट:
primary,secondary, और स्टेटस के चार इंटेंटerror,success,warningऔरinfo। हर एक चार के सेट में आता है: रंग, उस पर रखे कॉन्टेंट के लिए उसकाon-रंग, एक हल्का-container, औरon-…-container। - सरफ़ेस:
surface, पाँच स्टेप की सीढ़ीsurface-container-lowest…surface-container-highest, और साथ मेंsurface-dimऔरsurface-bright। किसी भी सरफ़ेस पर रखा कॉन्टेंटon-surfaceया उससे हल्काon-surface-variantइस्तेमाल करता है। - आउटलाइन:
outlineऔरoutline-variant(नीचे देखें)। - इनवर्स रोल, उन एलिमेंट के लिए जो जान-बूझकर थीम को पलट देते हैं, जैसे स्नैकबार।
- फ़िक्स्ड रोल, जो लाइट और डार्क में एक ही टोन रखते हैं।
- यूटिलिटी:
scrim,shadow,focus-ringऔर एलिवेशन में इस्तेमाल होने वाले रिंग और शैडो के रंग।
फ़िल को हमेशा उसके अपने on- रोल के साथ जोड़ें। कंट्रास्ट की जाँचें इसी जोड़ी की गारंटी देती हैं।
डिफ़ॉल्ट थीम में primary लाइट मोड में लगभग काला और डार्क मोड में लगभग सफ़ेद है। इसलिए स्क्रीन की सबसे अहम क्रिया उस पर सबसे ज़्यादा कंट्रास्ट वाली चीज़ होती है, और वह प्रॉडक्ट के अपने रंगों से कभी होड़ नहीं करती। secondary सहायक क्रियाओं के लिए एक नरम न्यूट्रल है।
ऐक्सेंट कोर शब्दावली का हिस्सा नहीं है। यह एक पैलेट है जिसे डिफ़ॉल्ट Tanrei सिस्टम घोषित करता है (सीड #30a3f0), जिससे उसे वही चार रोल मिलते हैं जो किसी भी इंटेंट को: accent, on-accent, accent-container, on-accent-container। कोर रोल focus-ring इसी से रंग लेता है, और कोई नहीं: डिफ़ॉल्ट सिस्टम में link प्राइमरी का रंग लेता है, और लिंक अपने पास के टेक्स्ट से अपनी अंडरलाइन से पहचाना जाता है। प्रॉडक्ट अपने पैलेट इसी तरह घोषित करता है — ब्रैंड का ऐसा रंग जिसकी दोबारा गणना नहीं होनी चाहिए, या किसी क्विज़ का “सही” और “ग़लत” — और Material Design 3 की नक़ल करने वाला प्रीसेट tertiary को इसी तरह घोषित करता है, बजाय इसके कि Tanrei वह जगह सबके लिए ढोए। ऐक्सेंट को सजावट के लिए इस्तेमाल न करें; जब सब कुछ नीला हो, तो कुछ भी नीला नहीं रहता।
आउटलाइन के दोनों रोल देखने में मिलते-जुलते हैं और काम उलटे करते हैं।
| रोल | उद्देश्य | कंट्रास्ट |
|---|---|---|
outline |
एक कार्यात्मक सीमा: अकेली चीज़ जो बताती है कि कंट्रोल कहाँ है, जैसे ख़ाली टेक्स्ट फ़ील्ड, बिना चेक का चेकबॉक्स या आउटलाइन वाला बटन। | हर सरफ़ेस रोल के मुक़ाबले कम से कम 3:1 |
outline-variant |
एक सजावटी बारीक रेखा: डिवाइडर, कार्ड के बॉर्डर, एलिवेशन की रिंग। इसे हटाने से कोई जानकारी छिपनी नहीं चाहिए। | स्टैंडर्ड कंट्रास्ट पर कोई आवश्यकता नहीं, जहाँ यह कम अल्फ़ा वाला काला या सफ़ेद है। हर सरफ़ेस रोल के मुक़ाबले मध्यम कंट्रास्ट पर कम से कम 3:1 और उच्च पर 4.5:1, और हमेशा outline से हल्की |
सावधानी
अगर बॉर्डर ही इस बात का अकेला संकेत है कि कंट्रोल मौजूद है, तो उसे outline इस्तेमाल करना होगा। 8% अल्फ़ा की बारीक रेखा देखने में सुहावनी है, और बहुत-से लोगों को दिखती ही नहीं।
हर थीम कंट्रास्ट के तीन स्तरों पर मौजूद है। स्टैंडर्ड डिफ़ॉल्ट है। मध्यम और उच्च कॉन्टेंट के रोल को छोरों की ओर ले जाते हैं और आउटलाइन के दोनों रोल को मज़बूत करते हैं। वेब पर prefers-contrast: more के लिए उच्च कंट्रास्ट अपने आप लागू होता है; नेटिव प्लैटफ़ॉर्म अपनी-अपनी सिस्टम सेटिंग के अनुसार चलते हैं। इसे यहाँ आज़माएँ (स्विच पूरे पेज पर लागू होता है):
कंट्रास्ट
रंग हाथ से नहीं चुने जाते। एक सिस्टम फ़ाइल (tokens/systems/core.system.json) पैलेट घोषित करती है — ऐक्सेंट और error के लिए एक-एक सीड रंग, न्यूट्रल का ह्यू और क्रोमा — और डेटा के रूप में बताती है कि हर रोल लाइट और डार्क में, कंट्रास्ट के हर स्तर पर, किस पैलेट का कौन-सा टोन लेता है। बिल्ड के समय एक जनरेटर:
- Apache-2.0 लाइसेंस वाली
material-color-utilitiesलाइब्रेरी से हर मुख्य रंग को HCT कलर स्पेस में एक टोनल पैलेट में बदलता है, जहाँ टोन का कंट्रास्ट से अनुमान लगाने लायक़ संबंध है; - न्यूट्रल पैलेट को थीम के क्रोमा तक सीमित करता है, जो शुद्ध धूसर रंगों के लिए डिफ़ॉल्ट रूप से शून्य है;
- लाइट और डार्क के लिए, कंट्रास्ट के हर स्तर पर, हर रोल को एक टोन देता है;
- नतीजे को
tokens/generated/के अंतर्गत DTCG फ़ाइलों के रूप में लिखता है।
जनरेटर के एल्गोरिदम का एक वर्शन होता है (specVersion), इसलिए मैपिंग में बदलाव हर रंग में चुपचाप आया खिसकाव नहीं, बल्कि सोच-समझकर किया गया, रिव्यू हो सकने वाला क़दम होता है।
थीम और कंट्रास्ट के सभी छह संयोजनों के लिए टोकन बिल्ड तब तक विफल रहता है जब तक:
- हर
(role, on-role)जोड़ी 4.5:1 तक, और दोनों उच्च-कंट्रास्ट स्कीमों में 7:1 तक, न पहुँचे; outlineहर सरफ़ेस रोल के मुक़ाबले 3:1 तक न पहुँचे;focus-ringउन सरफ़ेस के मुक़ाबले 3:1 तक न पहुँचे जिन पर वह बनती है।
बिल्ड पास कराने के लिए थ्रेशोल्ड ढीला नहीं किया जा सकता। रोल और मानों की पूरी सूची कलर टोकन रेफ़रेंस में देखें।