• Home

    Escolha seu Plano

    Carreiras Alura

    Evolua com profundidade técnica, direção clara e aplicação prática.

    Jornadas guiadas do básico ao avançado com checkpoints práticos, desenhadas para quem busca profundidade e protagonismo técnico.

    Iniciante

    Comece do zero com uma trilha clara e progressiva.

    Fundamentos práticos para dar os primeiros passos com segurança e construir uma base sólida.

    Intermediário

    Continue sua evolução com cursos que conectam fundamentos, ferramentas e prática profissional. Ganhe autonomia, e avance para projetos mais completos.

    Avançado

    Aprofunde temas técnicos e estratégicos para enfrentar desafios mais complexos. Explore boas práticas, arquitetura, performance com visão profissional.

    Cursos

    Ver mais cursos de Back-end
    • Pensamento computacional: fundamentos da computação e lógica de programação
    • Lógica de programação: mergulhe em programação com JavaScript
    • DDD: fundamentos do design orientado a domínio
    • ASP.NET: autenticação e autorização em APIs e aplicações web
    • Microsserviços: migração de monólitos e modularização

    Cursos

    Ver mais cursos de Dados
    • Python para Dados: primeiros passos
    • Excel: domine o editor de planilhas
    • Engenharia de Dados: Orquestração de Pipelines com Apache Airflow
    • Power BI Desktop: construindo meu primeiro dashboard
    • Governança e Arquitetura de Dados

    Cursos

    Ver mais cursos de Inteligência Artificial
    • IA: Explorando o Potencial da Inteligência Artificial Generativa
    • Engenharia de Prompt: Criando Prompts Eficazes para IA Generativa
    • Claude para Análise de Dados: prompts, integrações e automações
    • Agno: criando agentes e sistemas multiagente
    • Engenharia de software na era da IA: segurança de aplicações com agentes, MCPs e código gerado por IA

    Cursos

    Ver mais cursos de Front-end
    • HTML e CSS: ambiente, estrutura e estilo
    • React: realizando testes avançados com Jest e Testing Library
    • React: integrando TypeScript em projetos
    • JavaScript: aprendendo a programar
    • React: aplicando arquiteturas de Micro frontends

    Cursos

    Ver mais cursos de DevOps
    • Sistema Operacional Linux: fundamentos e administração prática
    • Containers e Docker: empacotamento, isolamento e gestão
    • Redes: dos conceitos iniciais à criação de uma intranet
    • Linux: gerenciando diretórios, arquivos, permissões e processos
    • Cibersegurança: Fundamentos e práticas integradas

    Cursos

    Ver mais cursos de UX & Design
    • UX Research: mapeando a experiência da pessoa usuária
    • UX/UI Design: Entregando produtos digitais com IA
    • UI Design: Prototipação e animações interativas
    • Figma: Conhecendo o programa
    • Product Design: métricas e ciclo de vida do produto

    Cursos

    Ver mais cursos de Gestão & Negócios
    • Canva: Criação de landing pages e e-mail marketing
    • Agilidade: como ela pode ajudar a criar um time de alta performance
    • Google Analytics 4: Extrair insights e configurar eventos
    • Management 3.0: gerencie o ambiente, não as pessoas
    • Automação de processos com n8n: Inteligência de dados para Marketing

    Cursos

    Ver mais cursos de Mobile
    • React Native: Estilização e Layouts com Flexbox e StyleSheet
    • Flutter: Graphql e suporte offline
    • Android com Gemini: Trabalhando com textos e imagens na IA
    • Dart: trabalhando com orientação a objetos
    • React Native: Dominando Listas com FlatList e ScrollView

    Carreiras

    Ver mais carreiras
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA

    Cursos

    • Engenharia de Prompt: Prompts Eficazes para IA Generativa
    • Claude Code: Criando sua Primeira Aplicação
    • Python: Crie sua Primeira Aplicação
    • Git e GitHub: Compartilhando e Colaborando
    • N8N: Fluxos de Trabalho Avançados

    Cursos

    • Copilot Studio: Solução Multiagentes
    • Padrões de API HTTP e Modelagem de APIs
    • Python para Análise de Dados com SQL
    • Docker: Criando e Gerenciando Containers
    • Design com IA: Otimizando o Processo Criativo

    Cursos

    • Model Context Protocol (MCP)
    • Spec-Driven Development: Dev Assistido por Agentes
    • Arquitetura de Sistemas Distribuídos com Java
    • Governança de Modelos e Reprodutibilidade
    • Pentest: Vulnerabilidades em Aplicações Web

    Escolha seu Plano

    Skills & Go

    O Skills & Go é para Tech Leads, Product Managers, estrategistas e early adopters que transformam ideias em soluções de alto impacto. Em cursos ao vivo e 100% online, você domina a nova era da IA em tempo real.

    Aulas ao vivo

    Saiba mais
    • Agentic Engineering: orquestre múltiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA

    Escolha seu Plano

    Eventos Alura

    Nossos eventos são pensados para quem quer estar à frente das mudanças em tecnologia, IA e inovação. Em experiências presenciais, você acompanha tendências e se conecta com especialistas que estão moldando o futuro.

    Próximos eventos

    • Imersão Engenharia de Software: Dev na Era da IA
    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA

    Escolha seu Plano

    Conteúdos gratuitos

    Explore conteúdos gratuitos para aprender tecnologia no seu ritmo. Encontre artigos com conteúdos técnicos para aprender na prática, notícias para acompanhar as principais tendências do mercado e o Alura Labs, com análises e reflexões de especialistas sobre tecnologia, IA e carreira.

    Conteúdos gratuitos

    • Artigos
    • Notícias
    • Alura Labs
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Para Empresas
  • Sobre a Alura
  • Grupo Alun
  • Entrar
    • Home
    • Carreiras
    • Skills & Go
    • Talent Lab
    • Inteligência Artificial
    • Pós Graduações
    • Artigos
    • Sobre a Alura
    • Grupo Alun
    LoginContato
    • LinkedIn
    • Instagram
    • YouTube
    1. Página inicial
    2. Mobile
    3. Flutter: Temas e Cores

    Flutter: Temas e Cores

    8 min8 minutos de leitura

    8 min8 minutos de leitura

    Publicado: 17/10/2021

    1. Introdução
    2. Theme
    3. Exemplo
    4. Como usar
    5. Criando o Tema
    6. Estilo: AppBar()
    7. Estilo: FloatingActionButton()
    8. Estilo: Textos
    9. Conclusão
    10. O que você achou?
    11. Como aprender mais sobre Flutter

    Para você que não tem muito tempo: esse artigo explica como estilizar seu aplicativo, usando temas, no Flutter 2.0. Sim, o Flutter mudou! E agora é hora de atualizar nossos conhecimentos também.

    No topo, à esquerda, vemos o símbolo do Flutter e do Dart. Em seguida, temos três celulares, cada um com um tema de cores diferentes. O primeiro celular tem um tema com padrão azul e laranja, o segundo tem um tema escuro com preto e lilás, e, o terceiro, um tema customizado com opções de cores primárias.

    E o que vamos fazer?

    • Alterar o estilo do AppBar();
    • Mudar a fonte dos Textos;
    • Mudar formato e cor do FloatingActionButton().

    E porque isso é importante?

    • Entender um pouquinho sobre Theme e ThemeData vai facilitar seu trabalho quando tiver que criar uma identidade visual para os aplicativos que estão na sua fila de demandas. Ou seja, trabalhe com conforto e inteligência!
    • E claro, não podemos esquecer do Plano dos Desenvolvedores de Flutter que querem… Opa quase te dei spoiler ! Você vai ter que ler até o final pra saber isso :)

    Introdução

    Você aí, que já começou a fazer aplicativos com Flutter e agora quer que eles fiquem elegantes e bonitos, mas tem um pequeno problema:

    Muito difícil deixar meu app bonito!

    ou

    O design pediu muitos detalhes!

    Não tema, porque o Theme está aqui para te ajudar! Com poucas linhas de código, você será capaz de alterar as cores de diversos Widgets, mantendo o alinhamento de cores e a identidade do seu aplicativo!

    Essa é uma novidade que o Flutter 2.0 traz para a gente! E é bem importante aprender sobre o Theme, já que o primaryColor, o accentColor perderam espaço nessa atualização (e falaremos sobre isso mais para frente, ok?).

    Vamos conhecer o Theme, então?

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    Theme

    Quando você pensa em mudar a cor de um, você tem que procurar a propriedade de cores e alterar cada widget, um por um… Seu aplicativo pode ter centenas de componentes e lá está você, pintando cada um deles, como se fosse um livro de colorir.

    À esquerda, temos 5 lápis coloridos e,no centro, vemos uma mão pintando uma forma geométrica com o lápis roxo.

    Todos nós já passamos por isso, não é mesmo? Bom, você não precisa sofrer mais com esse problema.

    O Theme é uma classe disponibilizada pelo Flutter, que certifica que todos os seus widgets descendentes recebam as cores indicadas por você. Com o auxílio do ThemeData, ele sabe qual widget recebe qual cor. Demais não é?

    Exemplo

    Você tem um aplicativo simples:

    Imagem de Projeto padrão de Flutter, com barra de cabeçalho azul, uma mensagem e um número no centro, e um botão redondo e azul no fundo à direita.

    E deseja adicionar uma identidade visual nova nele:

    Imagem de projeto padrão de Flutter, mas agora estilizado, com uma barra de cabeçalho azul índigo, uma mensagem em itálico, um número no centro em negrito e em cor azul índigo, e um botão quadrado e amarelo no fundo à direita.

    Como usar

    Primeiro, é importante dizer que estou usando o projeto padrão do Flutter: o contador. Para obter esse projeto, basta criar um novo projeto Flutter, e pronto, o código que você encontrará na main.dart é tudo que precisamos :).

    Em segundo lugar, para usar o Theme, é necessário usar o MaterialApp como "progenitor" do seu aplicativo. Assim, ele será capaz de passar o tema para todos os widgets “filhos”:

    MaterialApp(
          title: 'Theme Demo',
          theme: tema,
          home: const MyHomePage(title: 'Theme Demo'),
        );
    

    Nossa sorte, é que o projeto Contador já vem com o MaterialApp()! Mas, caso seu projeto pessoal não possua ele, você precisa colocar, okay?

    Agora, nós precisamos criar um tema, e é aí que começa a parte divertida.

    Criando o Tema

    Para fazer o tema, crie um novo arquivo chamado theme.dart e inclua um tema que receberá um ThemeData():

    final tema = ThemeData();
    

    Nosso tema ainda está vazio, certo? Mas, para que possamos usá-lo devidamente, eu quero que você entenda um pouco mais sobre o ThemeData().

    O ThemeData é uma classe em que você pode configurar as cores, formatos e estilos dos widgets. Existem mais de 71 propriedades diferentes, cada uma delas designada para um widget específico.

    Neste artigo, vamos nos concentrar em três propriedades do ThemeData:

    1. appBarTheme;
    2. floatingActionButtonTheme;
    3. textTheme.

    Para começar, vamos mexer no estilo do AppBar().

    Estilo: AppBar()

    Uma das muitas propriedades dentro do ThemeData() é o appBarTheme. Para usá-la, precisamos de um novo widget AppBarTheme():

    O AppBarTheme é uma classe em que você pode configurar os diversos estilos disponiveis dentro de um AppBar.

    Vou alterar apenas a cor de fundo do nosso AppBar e o estilo do texto:

    appBarTheme: const AppBarTheme(
        backgroundColor: Color.fromARGB(250, 26, 35, 126),
        titleTextStyle: TextStyle(
          fontSize: 20,
          fontWeight: FontWeight.bold,
          color: Colors.white,
        ), //TextStyle
      ), //AppBarTheme
    

    GIF com o AppBar alterando a cor e o estilo de texto, do azul claro para o azul índigo.

    Como pode ver, nosso appBar mudou. Isso significa que todo appBar que você construir dentro do nosso aplicativo vai ter essa configuração!

    Mas, Kako, e se eu quiser que um AppBar específico tenha um estilo diferente, como eu faço?

    Simples! Quando você quiser que um AppBar() tenha um estilo diferente, basta alterar o estilo daquele appBar() quando você o cria:

    Scaffold(
          appBar: AppBar(
           backgroundColor: Colors.red,
            title: Text(widget.title),
          ),
    

    E isso vale para qualquer Widget, não apenas para o AppBar()!

    Agora, vamos dar uma olhadinha no nosso FloatingActionButton()?

    Estilo: FloatingActionButton()

    Outra propriedade que encontramos dentro do ThemeData() é o floatingActionButtonTheme. Para usá-lo, também precisaremos de um novo widget FloatingActionButtonTheme():

    O FloatingActionButtonTheme é uma classe em que você pode configurar os diversos estilos disponiveis dentro de um FloatingActionButton.

    Nesse aqui, eu quero alterar mais coisas. Vamos mexer na cor de fundo , na cor do primeiro plano, no formato e na elevação:

    floatingActionButtonTheme: const FloatingActionButtonThemeData(
        backgroundColor: Color.fromARGB(250, 255, 179, 0),
        foregroundColor: Colors.white,
        shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(2.0)),
    ),
        elevation: 10,
      ),
    

    GIF com o FloatingActionButton alterando a cor, do azul para o amarelo âmbar, e o formato, do redondo para o quadrado.

    Como você pode ver, nosso floatingActionButton mudou bastante, e ele vai seguir esse mesmo padrão em todo seu aplicativo.

    Mas, Kako, de onde você tirou essas cores?

    Ah! Você tem um bom olho, hein? A cor Color.fromARGB(250, 26, 35, 126) é o Azul Índigo e é a cor de fundo da Alura! Já a cor Color.fromARGB(250, 255, 179, 0) é o Amarelo mbar, usado pela escola Mobile. Legal, né?

    Estilo: Textos

    A última alteração que eu quero comentar aqui é sobre os textos no nosso aplicativo.

    Uma das propriedades do ThemeData() é o textTheme, responsável por padronizar todos os textos disponíveis. Para usá-lo, também precisaremos de um novo widget TextTheme():

    O TextTheme é uma classe em que você pode configurar os diversos tamanhos, cores e grossuras disponiveis dentro de um texto.

    Antes de alterar alguma coisa, eu sugiro que você dê uma olhadinha rápida no link do TextTheme, para que visualize o que é H1, H2 etc.

    Bom, agora que você bateu o olho nas diferentes categorias de textos (olhou né? Estou confiando!), eu quero alterar o H4 e o Body2, específicamente:

    textTheme: const TextTheme(
          bodyText2: TextStyle(
                color: Colors.black, 
    fontStyle: FontStyle.italic,
    fontSize: 20),
          headline4: TextStyle(
                color: Color.fromARGB(250, 26, 35, 126),
    fontWeight: FontWeight.bold, 
    fontSize: 40),
    ),
    

    GIF com um texto e um número centralizado, o número é aumentado até o 5. Após isso, ele muda de estilo para um texto maior, em itálico, e um número maior, em negrito, e na cor azul índigo.

    MAS, KAKO porque você decidiu mudar só o bodyText2 e o headline4?

    Inicialmente, todo widget Text usa o padrão Body 2, então, para mudar o texto no meio do aplicativo, precisávamos mudar essa categoria.

    Já o número que encontramos no centro da tela, ele segue a categoria H4, e como eu sei isso? ,quando olhamos lá no main.darte procuramos pelo widget Text(), que corresponde ao número, vemos na linha 93:

    Text(
                  '$_counter',
                  style: Theme.of(context).textTheme.headline4,
                ),
    

    Isso significa que o Text() já estava procurando pelo estilo headline 4.

    Conclusão

    Agora já sabemos como alterar o estilo dos Widgets no nosso aplicativo sem ter que ir individualmente em cada um deles. Usando as propriedades disponíveis no nosso ThemeData podemos definir globalmente a aparência dos Widgets que usamos.

    Kako, eu tenho uma última dúvida: Antes, eu podia apenas definir o primaryColor, o accentColor e pronto, o que aconteceu?

    Antes do Flutter 2.0, isso funcionava, é verdade. Mas agora (em 2021) o accentColor, foi depreciado e a forma de lidar com as cores ficou mais individual. O que aconteceu foi que os Desenvolvedores do Flutter têm um plano para organizar melhor a padronização dos Themes, e você pode ler tudo sobre isso aqui: Material Theme System Updates.

    O que você achou?

    Eu sei, eu sei, esse Artigo é tão curtinho! Dá vontade de saber mais não é?

    Eu queria colocar mais conteúdo sobre cores primárias e secundárias para que você possa se comunicar com mais facilidade com seu Designer e não sofrer tanto na hora de produzir um aplicativo bonito, mas a última coisa que eu queria era um artigo gigantesco, então, caso você tenha interesse em mais artigos sobre esse Tema, basta me pedir aqui: LinkedIn do Kako .

    Como aprender mais sobre Flutter

    Se você quer evoluir no desenvolvimento mobile, chegou o momento ideal: estão abertas as inscrições para a Imersão Mobile da Alura!

    De 14 a 16 de abril, você vai aprender a desenvolver um app de delivery para Android e iOS com Flutter. Serão três aulas 100% práticas, onde cada etapa te leva para um novo nível de conhecimento, te ajudando a consolidar habilidades essenciais para sua carreira.

    Aprenda com especialistas do mercado, encare desafios reais e crie um projeto prático, colocando a mão na massa desde o primeiro dia. Evento 100% gratuito! Inscreva-se agora neste link.

    Gostou desse artigo?

    Escreva nos comentários e nos ajude a melhorar sempre!

    Um grande abraço!

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    Avalie este artigo

    • Foto de Kako (Caio Couto Moreira)

      Autor(a)

      Kako (Caio Couto Moreira)

      Desenvolvedor Mobile apaixonado por criatividade e ensino, Kako busca sempre entender e aprender sobre o momento da tecnologia, desde o porquê de sua relevância até quais os melhores caminhos para aprender. Entusiasta por Inovação e por Invenções, está sempre em busca de novas facilidades, técnicas e tecnologias dentro do apaixonante mundo que é o Flutter.

    Explore por tópico

    • Back-end
    • Dados
    • DevOps
    • Front-end
    • Gestão & Negócios
    • Institucionais
    • Inteligência Artificial
    • Mobile
    • UX & Design

    Leia também

    • 11/06/2012

      Enviando mensagens curtas para o Android via C2DM

      Ler mais
    • 07/06/2016

      Aumentando a produtividade no Android com o Butter Knife

      Ler mais
    • 08/04/2021

      Pesquisa: o mercado Dev Android Jr em 2021

      Ler mais
    Ver mais conteúdos

    Inscreva-se em nossa Newsletter

    Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.

    Institucional

    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status
    Institucional
    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status

    A Alura

    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes
    A Alura
    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes

    Conteúdos

    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Conteúdos
    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Alura