🌇Theme
Nesta pasta é onde vamos encontrar os arquivos para temas de Cores e TextStyles para serem utilizados na aplicação.
Documentação: Gerenciamento de Temas e Estilos de Texto
Objetivo:
O objetivo dessa implementação é centralizar e simplificar o gerenciamento de cores e estilos de texto no aplicativo, oferecendo suporte para os modos claro e escuro, baseados no tema do dispositivo. Essa abordagem permite personalização rápida e reutilização de estilos de forma consistente e fácil de manter.
Estrutura de Cores e Estilos de Texto
Cores:
Foi criada uma estrutura baseada em duas classes principais para gerenciar as cores dos temas:
AppColorsLight: Define as cores do tema claro.AppColorsDark: Define as cores do tema escuro.
A seleção do tema (claro ou escuro) é feita automaticamente com base no tema atual do dispositivo, utilizando a propriedade platformBrightness do WidgetsBinding para detectar a preferência do usuário.
Estilos de Texto:
Da mesma forma, foram criadas classes para os estilos de texto:
AppTextStylesLight: Define os estilos de texto para o tema claro.AppTextStylesDark: Define os estilos de texto para o tema escuro.
Cada classe contém os estilos predefinidos, como bodyText, headline, subtitle, entre outros. Usando o método copyWith, é possível personalizar qualquer propriedade de estilo, como color, fontSize, fontWeight, etc.
Implementação:
Definindo as Classes de Cores: As classes
AppColorsLighteAppColorsDarksão responsáveis por fornecer as cores para cada tema. Elas implementam a interfaceAppColors, garantindo que ambas as implementações sigam a mesma estrutura.
2 - Detectando o Tema do Dispositivo: A seleção do tema ativo (claro ou escuro) é feita com base no platformBrightness, acessível via WidgetsBinding.instance.window.platformBrightness.
Se o dispositivo estiver no modo escuro (
Brightness.dark), a classeAppColorsDarkserá utilizada.Caso contrário, a classe
AppColorsLightserá selecionada.
3 - Estilos de Texto: As classes AppTextStylesLight e AppTextStylesDark são usadas para definir os estilos básicos de texto, como bodyText e headline. Elas também seguem a estrutura da interface AppTextStyles.
4 - Uso do copyWith: Para personalizar dinamicamente um estilo de texto (como alterar a cor de um bodyText), o método copyWith pode ser utilizado, permitindo a alteração das propriedades dos estilos de forma eficiente.
Exemplo de personalização de estilo:
Uso:
Acesso às Cores e Estilos: Para acessar as cores e estilos de texto, utilize a função
currentTheme, que retorna a classe de tema ativa com base no tema do dispositivo.Exemplo de uso de cores:
Exemplo de uso de estilos de texto:
Personalização com
copyWith: Se você precisar personalizar dinamicamente um estilo de texto, utilize o métodocopyWith.Exemplo de personalização de estilo:
Motivos e Benefícios:
Centralização: Todos os estilos de cores e textos são definidos de maneira centralizada, garantindo consistência entre os temas claro e escuro.
Facilidade de Manutenção: Alterações nas cores ou estilos de texto podem ser feitas em um único local, sem a necessidade de modificar múltiplos widgets manualmente.
Simplicidade: A lógica de alternância entre os modos claro e escuro é simples e baseada no tema do dispositivo, eliminando a necessidade de estruturas complexas.
Flexibilidade: O uso do método
copyWithnos estilos de texto permite personalização rápida, sem precisar criar novos estilos manualmente.Reusabilidade: Com as classes
AppColorseAppTextStyles, é fácil reutilizar as definições de estilo em diferentes partes da aplicação, mantendo uma UI consistente e facilmente ajustável.
Considerações Finais:
Essa abordagem fornece uma maneira eficiente e flexível de gerenciar temas e estilos de texto, mantendo a simplicidade e garantindo que o aplicativo se adapte automaticamente ao tema do dispositivo. A possibilidade de personalizar dinamicamente os estilos com copyWith oferece ainda mais controle sobre o visual da aplicação, sem complicações adicionais.
Last updated