Sobre o projeto
MaterialKolor é uma biblioteca Compose Multiplatform para construir paletas de cores dinâmicas do Material Design 3 a partir de qualquer cor semente. Ela tem como alvo Android, iOS, JVM desktop e JavaScript/wasm, e é publicada no Maven Central como com.materialkolor:material-kolor.
A ideia central vem do material-color-utilities do Google, que era apenas Java; o MaterialKolor o porta para Kotlin Multiplatform e adiciona auxiliares orientados ao Compose inspirados no projeto m3color. Um artefato separado, com.materialkolor:material-color-utilities, expõe o port sem dependências do Compose.
O uso gira em torno de dynamicColorScheme() e rememberDynamicColorScheme(), que recebem uma cor semente e um sinalizador claro/escuro e retornam um ColorScheme. Um parâmetro PaletteStyle (por exemplo, Expressive) ajusta a paleta gerada, e ColorSpec.SpecVersion.SPEC_2025 habilita a especificação de cor mais recente do Material 3 Expressive; o padrão é SPEC_2021. Dois composables de conveniência envolvem o MaterialTheme: DynamicMaterialTheme, que pode animar entre esquemas, e DynamicMaterialExpressiveTheme, que usa por padrão o estilo de paleta Expressive e SPEC_2025 para resultados mais vibrantes.
Além da geração de temas, a biblioteca oferece utilitários de cor: harmonize() para alinhar uma cor com outra (com um sinalizador opcional matchSaturation), harmonizeWithPrimary(), lighten() e darken(), e verificações de temperatura isWarm()/isCold(). Ela também pode derivar cores semente adequadas de um ImageBitmap via themeColors(), themeColor(), rememberThemeColors() e rememberThemeColor(), útil para tematizar a partir de fotos de perfil ou imagens de fundo, embora o README observe que isso pode ser lento e é melhor feito antecipadamente.
A configuração é via Gradle, seja em um conjunto de fontes comum para projetos multiplataforma ou em um arquivo de build no nível do app para projetos apenas Android, com um exemplo de catálogo de versões fornecido. Um construtor hospedado em materialkolor.com demonstra a biblioteca e pode exportar código MaterialKolor ou Material 3 puro; o KDoc é publicado em docs.materialkolor.com. O módulo material-color-utilities é licenciado sob Apache-2.0, enquanto o restante do projeto é licenciado sob MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.