التخطّي إلى المحتوى
menumenu tanreiexpand_morecontrasttranslate
tanreiexpand_more
البدءWebReactSwiftUIJetpack ComposeFlutterReact Nativeالإعدادات الجاهزةنظام التصميم الخاص بكاستخدام Tanrei مع وكلاء الذكاء الاصطناعيالعلامة التجاريةرموز التصميمأنظمة التصميم والتخصيصTheme Studioاللونالطباعةالأيقوناتالشكلالارتفاعالحركةحالات التفاعلالسلوكالتخطيطإمكانية الوصولالكلماترموز الألوانرموز السلّم الطباعيرموز الشكلرموز الارتفاعرموز الحركةرموز الحالةرموز التباعد والقياسالمكوّناتالزرزر الإجراء الرئيسيالزر المقسَّممجموعة الأزرارزر مع قائمةشريط الأدواتزر النسخخانة الاختيارزر الاختيارمفتاح التبديلالرقاقةقائمة الخياراتشريط التمريرحقل شريط التمريرالتقويمDateTimePickerمجموعة الحقولمجموعة أزرار الاختيارمجموعة خانات الاختيارعنصر الاختيارحقل الاختيارشريط القوائمرفع الملفاتمنتقي الملفات متقدّمساحة الإفلاتحقل إدخال النص متقدّمحقل النصحقل الرقاقاتالحقلمربع التحرير والسرد متقدّمحقل التحرير والسردحقل إدخال العدد متقدّمحقل العددحقل إدخال اللون متقدّمحقل اللونحقل إدخال الرمز لمرة واحدة متقدّمحقل الرمز لمرة واحدةحقل إدخال النص المدمج متقدّممربع كتابة الرسائلالبطاقةالفاصلالطبقة النمطية متقدّممربع الحوارالقائمة (list)صف القائمةاللوحة السفليةاللوحة الجانبيةالعرض الدوّاركتلة الشيفرةالجدولاللوحة المنبثقةالخطواتالأكورديونقائمة الوصفالشكل التوضيحيهيكل التطبيقرأس الصفحةالعرض الشجريالخط الزمنيمعاينة الصورمقبض تغيير الحجمالإطار القابل لتغيير الحجممنطقة التمريرالشارةمؤشر التقدمالعدّادعارض الأرقام المتحرّكمؤشر التحميلشريط الإشعار (Snackbar)التلميحاختصار لوحة المفاتيحالوسمالشيفرة المضمَّنةالتنويهالصورة الرمزيةالحالة الفارغةمجموعة الوسومهيكل التحميلعنصر الملفمربع اللونالنص المتحركعلامات التبويبعرض التبويباتشريط التطبيقشريط التنقلدرج التنقلالبحثالرابطالتنقل بين الصفحاتروابط السابق والتاليمؤشر الخطواتمسار التنقلجدول المحتوياتبطاقة الرابطقائمة FABالحالةكيف يُبنى Tanreiالمساهمةالترخيص والإسناد
الرئيسيةالبدءJetpack Compose

Jetpack Compose

أضف Tanrei إلى تطبيق Android مبني بـ Jetpack Compose.

content_copyعرض بتنسيق Markdown

توفّر مكتبة Compose دوال composable و TanreiTheme وكائنات رموز (tokens) مولَّدة. تعتمد المكتبة على Compose Foundation لا على مكتبة مكوّنات Material، فلا تجلب إلى تطبيقك نظام تصميم ثانيًا.

لم يُنشر بعد

io.github.chnotchy:tanrei غير موجودة بعدُ على Maven Central. تُنشر المنصة حين تلحق بالمواصفات الحالية، والتكامل المستمر (CI) الخاص بـ Jetpack Compose متوقف حتى ذلك الحين. يبيّن قسم «من الشيفرة المصدرية» أدناه كيف تُضاف الحزمة من chnotchy/tanrei، ويبيّن قسم «بعد نشرها» طريقة التثبيت حينها.

التثبيت

من الشيفرة المصدرية

لا تُبنى اليوم

لم تلحق مكتبة Compose بعد بالمواصفات والرموز (tokens) الحالية: كُتبت مصادرها على إصدار سابق من شيفرة الرموز المولَّدة، ولا تُترجَم (compile) على شيفرة اليوم. والتكامل المستمر (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 في المواصفة تقابل عكسها. وتوجد صيغة أخرى للدالة ذات منفذ (slot) تأخذ دالة content حين تحتاج إلى أكثر من تسمية نصية.

السمة والتباين

يتبع TanreiTheme افتراضيًّا السمة الداكنة للنظام وإعداد التباين فيه. ويمكن تثبيت الاثنين:

TanreiTheme(theme = TanreiThemeMode.Dark, contrast = TanreiContrast.High) {
  App()
}

الخطوط

يُحَلّ السلّم الطباعي افتراضيًّا إلى عائلة الخطوط الافتراضية للمنصة. مرِّر TanreiFontFamilies خاصًّا بك إلى TanreiTheme لاستخدام Inter (و Noto Sans JP و Roboto Mono) من موارد الخطوط في تطبيقك. تُسمّى أنماط النص بحسب المستوى (TanreiTheme.tokens.typescale.heading2 و .body و .label؛ و .toTextStyle() يحوّل أحدها إلى TextStyle في Compose)، و TanreiTheme.tokens.typescale.heading1.emphasized() هو النمط نفسه بوزنه مضافًا إليه درجة التوكيد الخاصة بفئة العناوين (وخارج التركيب: emphasized(system.typescale.emphasis)).