عن المشروع
MaterialKolor هي مكتبة Compose Multiplatform لبناء لوحات ألوان Material Design 3 ديناميكية من أي لون أساسي. تستهدف Android وiOS وJVM لسطح المكتب وJavaScript/wasm، وهي منشورة على Maven Central باسم com.materialkolor:material-kolor.
الفكرة الأساسية تأتي من material-color-utilities من Google، والتي كانت مقتصرة على Java؛ تقوم MaterialKolor بنقلها إلى Kotlin Multiplatform وإضافة مساعدات موجهة لـ Compose مستوحاة من مشروع m3color. قطعة أثرية منفصلة، com.materialkolor:material-color-utilities، تعرض النسخة المنقولة بدون تبعيات Compose.
الاستخدام يتمحور حول dynamicColorScheme() وrememberDynamicColorScheme()، والتي تأخذ لونًا أساسيًا وعلمًا للوضع الداكن/الفاتح وتُرجع ColorScheme. معامل PaletteStyle (مثل Expressive) يضبط اللوحة المولدة، وColorSpec.SpecVersion.SPEC_2025 يتيح مواصفات ألوان Material 3 Expressive الأحدث؛ الافتراضي هو SPEC_2021. هناك مكوّنان ملائمان يغلّفان MaterialTheme: DynamicMaterialTheme، الذي يمكنه التحريك بين الأنظمة، وDynamicMaterialExpressiveTheme، الذي يضع افتراضيًا نمط لوحة Expressive وSPEC_2025 لنتائج أكثر حيوية.
بالإضافة إلى توليد السمات، توفر المكتبة أدوات ألوان: harmonize() لمواءمة لون مع آخر (مع علامة matchSaturation اختيارية)، وharmonizeWithPrimary()، وlighten() وdarken()، وفحوصات درجة الحرارة isWarm()/isCold(). يمكنها أيضًا اشتقاق ألوان أساسية مناسبة من ImageBitmap عبر themeColors() وthemeColor() وrememberThemeColors() وrememberThemeColor()، وهو مفيد لتنسيق السمات من صور الملفات الشخصية أو صور الخلفية، على الرغم من أن ملف README يلاحظ أن هذا قد يكون بطيئًا ومن الأفضل القيام به مسبقًا.
الإعداد يتم عبر Gradle، إما في مجموعة مصادر مشتركة لمشاريع متعددة المنصات أو في ملف بناء على مستوى التطبيق لمشاريع Android فقط، مع مثال على كتالوج الإصدارات. منشئ مستضاف في materialkolor.com يعرض المكتبة ويمكنه تصدير كود MaterialKolor أو Material 3 العادي؛ وثائق KDoc منشورة في docs.materialkolor.com. وحدة material-color-utilities مرخصة بموجب Apache-2.0، بينما بقية المشروع مرخص بموجب MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.