Compose लाइब्रेरी में कंपोज़ेबल, एक TanreiTheme और जनरेट किए गए टोकन ऑब्जेक्ट मिलते हैं। यह किसी Material कंपोनेंट लाइब्रेरी पर नहीं, बल्कि Compose Foundation पर निर्भर है, इसलिए यह आपके ऐप में कोई दूसरा डिज़ाइन सिस्टम नहीं खींच लाती।
अभी प्रकाशित नहीं
io.github.chnotchy:tanrei अभी Maven Central पर नहीं है। कोई प्लैटफ़ॉर्म मौजूदा स्पेक की बराबरी पर आने के बाद ही प्रकाशित होता है, और तब तक Jetpack Compose का CI रुका हुआ है। नीचे “सोर्स से” बताता है कि पैकेज chnotchy/tanrei से कैसे जोड़ा जाता है; “प्रकाशित होने के बाद” बताता है कि तब इंस्टॉल कैसे होगा।
आज बिल्ड नहीं होती
Compose लाइब्रेरी अभी मौजूदा स्पेक और टोकन तक नहीं पहुँची है: उसका सोर्स जनरेट किए गए टोकन कोड के एक पुराने वर्ज़न के हिसाब से लिखा गया था, और आज के कोड के साथ कंपाइल नहीं होता। जब तक वह बराबरी पर नहीं आती, उसका CI रुका हुआ है, और स्थिति पेज उसके कंपोनेंट को पीछे के रूप में दिखाता है। नीचे के चरण बताते हैं कि उसे किसी ऐप में कैसे जोड़ा जाता है; लाइब्रेरी के बराबरी पर आने के बाद ये काम करेंगे।
रिपॉज़िटरी को अपने ऐप के बग़ल में क्लोन करें और उसका Gradle बिल्ड शामिल करें, जिसमें लाइब्रेरी :tanrei प्रोजेक्ट के रूप में है:
// settings.gradle.kts
includeBuild("../tanrei/packages/compose") {
dependencySubstitution {
substitute(module("io.github.chnotchy:tanrei")).using(project(":tanrei"))
}
}// build.gradle.kts
dependencies {
implementation("io.github.chnotchy:tanrei")
}// build.gradle.kts
dependencies {
implementation("io.github.chnotchy:tanrei:<version>")
}अपने कॉन्टेंट को एक बार, रूट के पास, TanreiTheme में लपेटें:
import io.github.chnotchy.tanrei.components.TanreiButton
import io.github.chnotchy.tanrei.theme.TanreiTheme
import io.github.chnotchy.tanrei.tokens.TanreiButtonVariant
@Composable
fun DeployScreen(isDeploying: Boolean, onDeploy: () -> Unit) {
TanreiTheme {
TanreiButton(
text = "डिप्लॉय करें",
onClick = onDeploy,
variant = TanreiButtonVariant.Filled,
enabled = !isDeploying,
)
}
}Compose की परिपाटी सकारात्मक फ़्लैग enabled है, इसलिए Tanrei भी वही इस्तेमाल करता है; स्पेक की disabled प्रॉपर्टी इसके उलटे मान से मैप होती है। जब आपको टेक्स्ट लेबल से ज़्यादा कुछ चाहिए, तो एक स्लॉट ओवरलोड content लैम्ब्डा लेता है।
TanreiTheme डिफ़ॉल्ट रूप से सिस्टम की डार्क थीम और सिस्टम की कंट्रास्ट सेटिंग के अनुसार चलता है। दोनों को तय किया जा सकता है:
TanreiTheme(theme = TanreiThemeMode.Dark, contrast = TanreiContrast.High) {
App()
}डिफ़ॉल्ट रूप से टाइप स्केल प्लैटफ़ॉर्म की डिफ़ॉल्ट फ़ॉन्ट फ़ैमिली पर रिज़ॉल्व होता है। अपने ऐप के फ़ॉन्ट रिसोर्स से Inter (और Noto Sans JP, Roboto Mono) इस्तेमाल करने के लिए TanreiTheme को अपनी TanreiFontFamilies दें। टेक्स्ट स्टाइल के नाम उनके स्तर पर रखे गए हैं (TanreiTheme.tokens.typescale.heading2, .body, .label; .toTextStyle() इनमें से किसी को Compose के TextStyle में बदल देता है), और TanreiTheme.tokens.typescale.heading1.emphasized() वही स्टाइल है जिसके वेट में हेडिंग फ़ैमिली का एम्फ़ेसिस स्टेप जुड़ा है (कंपोज़िशन के बाहर, emphasized(system.typescale.emphasis))।