À propos du projet
MaterialKolor est une bibliothèque Compose Multiplatform permettant de construire des palettes de couleurs Material Design 3 dynamiques à partir de n'importe quelle couleur source. Elle cible Android, iOS, le bureau JVM et JavaScript/wasm, et est publiée sur Maven Central sous com.materialkolor:material-kolor.
L'idée centrale provient des material-color-utilities de Google, qui étaient uniquement en Java ; MaterialKolor les porte vers Kotlin Multiplatform et ajoute des assistants orientés Compose inspirés du projet m3color. Un artefact distinct, com.materialkolor:material-color-utilities, expose le portage sans dépendances Compose.
L'utilisation s'articule autour de dynamicColorScheme() et rememberDynamicColorScheme(), qui prennent une couleur source et un indicateur sombre/clair et renvoient un ColorScheme. Un paramètre PaletteStyle (par exemple Expressive) ajuste la palette générée, et ColorSpec.SpecVersion.SPEC_2025 active la spécification de couleur Material 3 Expressive plus récente ; la valeur par défaut est SPEC_2021. Deux composables de commodité enveloppent MaterialTheme : DynamicMaterialTheme, qui peut animer entre les schémas, et DynamicMaterialExpressiveTheme, qui utilise par défaut le style de palette Expressive et SPEC_2025 pour des résultats plus vibrants.
Au-delà de la génération de thèmes, la bibliothèque fournit des utilitaires de couleur : harmonize() pour aligner une couleur sur une autre (avec un indicateur optionnel matchSaturation), harmonizeWithPrimary(), lighten() et darken(), ainsi que des vérifications de température isWarm()/isCold(). Elle peut aussi dériver des couleurs sources appropriées à partir d'un ImageBitmap via themeColors(), themeColor(), rememberThemeColors() et rememberThemeColor(), utile pour thématiser à partir de photos de profil ou d'images d'arrière-plan, bien que le README note que cela peut être lent et qu'il vaut mieux le faire de manière anticipée.
La configuration se fait via Gradle, soit dans un source set commun pour les projets multiplateformes, soit dans un fichier de build au niveau de l'application pour les projets Android uniquement, avec un exemple de catalogue de versions fourni. Un générateur hébergé sur materialkolor.com démontre la bibliothèque et peut exporter du code MaterialKolor ou Material 3 simple ; la KDoc est publiée sur docs.materialkolor.com. Le module material-color-utilities est sous licence Apache-2.0, tandis que le reste du projet est sous licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.