Compose Material 3

Crie IUs do Jetpack Compose usando componentes do Material Design 3, a nova evolução do Material Design. O Material 3 inclui temas e componentes atualizados, além de recursos de personalização do Material You, como cores dinâmicas, e foi desenvolvido para ser coeso com o novo estilo visual do Android 12 e com a IU do sistema.
Atualização mais recente Versão estável Candidata a lançamento Versão Beta Versão Alfa
18 de maio de 2022 - - - 1.0.0-alpha12

Estrutura

O Compose é uma combinação de sete IDs de grupos do Maven no androidx. Cada grupo contém um subconjunto direcionado de funcionalidades, cada um com um conjunto próprio de notas da versão.

Esta tabela explica os grupos e contém links para cada conjunto de notas da versão.

GrupoDescrição
compose.animationCrie animações nos aplicativos Jetpack Compose para enriquecer a experiência do usuário.
compose.compilerTransforme funções @Composable e ative otimizações com um plug-in do compilador Kotlin.
compose.foundationCrie aplicativos do Jetpack Compose com blocos de construção prontos e amplie a base para criar suas próprias peças de sistema de design.
compose.materialCrie IUs do Jetpack Compose com componentes do Material Design prontos para uso. Este é o ponto de entrada de nível mais alto do Compose, projetado para fornecer componentes que correspondam aos descritos em www.material.io.
compose.material3Crie IUs do Jetpack Compose usando componentes do Material Design 3, a nova evolução do Material Design. O Material 3 inclui temas e componentes atualizados, além de recursos de personalização do Material You, como cores dinâmicas, e foi desenvolvido para ser coeso com o novo estilo visual do Android 12 e com a IU do sistema.
compose.runtimeElementos fundamentais do modelo de programação e do gerenciamento de estado do Compose e do ambiente de execução principal do plug-in Compose Compiler.
compose.uiComponentes fundamentais do Compose UI necessários para interagir com o dispositivo, incluindo layout, desenho e entrada.

Declarar dependências

Para adicionar uma dependência ao Compose, adicione o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários no arquivo build.gradle para seu app ou módulo:

Groovy

dependencies {
    implementation "androidx.compose.material3:material3:1.0.0-alpha10"
    implementation "androidx.compose.material3:material3-window-size-class:1.0.0-alpha10"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.2.0-alpha08"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.material3:material3:1.0.0-alpha10")
    implementation("androidx.compose.material3:material3-window-size-class:1.0.0-alpha10")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.2.0-alpha08"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Para ver mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.0

Versão 1.0.0-alpha12

18 de maio de 2022

Lançamento de androidx.compose.material3:material3:1.0.0-alpha12 e androidx.compose.material3:material3-window-size-class:1.0.0-alpha12. A versão 1.0.0-alpha12 contém estas confirmações.

Correções de bugs

  • O controle deslizante pai agora pode ter 0 largura (b/231707291).

Versão 1.0.0-alpha11

11 de maio de 2022

Lançamento de androidx.compose.material3:material3:1.0.0-alpha11 e androidx.compose.material3:material3-window-size-class:1.0.0-alpha11. A versão 1.0.0-alpha11 contém estas confirmações.

Novos recursos

  • O RangeSlider foi adicionado ao Material 3 (I18e38).
  • Foi adicionado suporte para AssistChip e InputChip no Material3 (I0d25a).
  • Foi adicionado suporte para FilterChip e SuggestionChip no Material3 (I9fdf3).

Mudanças na API

  • O elemento de composição TextFieldDefaults.BorderStroke que desenha um traço de borda em OutlinedTextField foi renomeado como TextFieldDefaults.BorderBox (I5f295).
  • Mudanças visuais no m3 (Iab30e).
  • Permissão para transmitir cores aos botões de ícone padrão (Ia2445).

Correções de bugs

  • Foi adicionada a verificação de lint a material3/Scaffold para garantir que o padding interno seja usado (I72293, b/226951418).

Versão 1.0.0-alpha10

20 de abril de 2022

Lançamento de androidx.compose.material3:material3:1.0.0-alpha10 e androidx.compose.material3:material3-window-size-class:1.0.0-alpha10. A versão 1.0.0-alpha10 contém estas confirmações.

Novos recursos

  • A material3-window-size-class é uma nova biblioteca que oferece suporte a classes de tamanho de janela: um conjunto de pontos de interrupção opinativos de janela de visualização para você projetar, desenvolver e testar layouts redimensionáveis de aplicativos. Você pode usar a calculateWindowSizeClass para extrair uma instância de classe de tamanho de janela, que pode ser usada para determinar como a IU vai ser exibida. Por exemplo, mostrar uma coluna de navegação em vez da navegação inferior para tamanhos de janela maiores. Veja mais informações e exemplos de uso na documentação de referência da API de WindowSizeClass. Para mais informações sobre definições de classe de tamanho de janela, consulte a orientação pública sobre como oferecer suporte a diferentes tamanhos de tela.

Mudanças na API

  • Foi adicionada uma elevação padrão do FAB para a BottomAppBar e a lambda final de BottomAppBar com o FAB foi removida (I92c47).
  • Foram adicionados os elementos FilledIconButton, FilledTonalIconButton e OutlinedIconButton do Material3 (Ib2bda).
  • A API Snackbar do Material 3 foi atualizada para aceitar valores de cor para a ação opcional e a de dispensa (Ibe4b4).
  • O consumo parcial (para baixo OU na posição) foi descontinuado em PointerInputChange. Use consume() para consumir a mudança completamente. Você pode usar isConsumed para determinar se outra pessoa já consumiu a mudança.
  • Agora, o PointerInputChange::copy() sempre faz uma cópia superficial. Isso significa que as cópias de PointerInputChange serão consumidas quando uma delas for consumida. Se você quiser criar uma PointerInputChange desvinculada, use o construtor (Ie6be4, b/225669674).
  • Mudanças na API Cards para receber as cores do contêiner e do conteúdo por uma interface CardColors e oferecer suporte a um estado desativado para cards clicáveis (I927df).
  • O parâmetro backgroundColor foi renomeado como containerColor nos campos de texto do Material 3 para melhorar a consistência com outros componentes (I6fbd9).

Correções de bugs

  • O IconButton padrão foi atualizado para ficar alinhado à especificação do Material3 (I09eab).
  • A altura da barra de cima do Scaffold do Material3 foi movida para o padding transmitido ao conteúdo, permitindo que o conteúdo seja renderizado abaixo da barra de apps de cima. Se os PaddingValues forem ignorados, o conteúdo vai poder ser coberto pela barra de cima (I83cbc, b/217776202).

Versão 1.0.0-alpha09

6 de abril de 2022

Lançamento de androidx.compose.material3:material3:1.0.0-alpha09. A versão 1.0.0-alpha09 contém estas confirmações.

Novos recursos

  • A API Material 3 Switch foi adicionada (I2c3ad).

Mudanças na API

  • Foi adicionado suporte a menus suspensos com campos de texto (também conhecidos como "menus suspensos expostos" ou "caixas de combinação") (I1b832).
  • Foi adicionado um parâmetro de forma aos subsistemas MaterialTheme e Shape (I37426).
  • Foi adicionado um parâmetro expandido a ExtendedFloatingActionButton para controlar se o FAB é expandido ou recolhido, com animações entre cada estado. Uma sobrecarga foi adicionada para FABs estendidos com texto à direita para ExtendedFABs sem ícone (Iba7f1).

Versão 1.0.0-alpha08

23 de março de 2022

Lançamento de androidx.compose.material3:material3:1.0.0-alpha08. A versão 1.0.0-alpha08 contém estas confirmações.

Novos recursos

Mudanças na API

  • O divisor padrão foi incluído no menu (I01374).
  • O parâmetro de cor surfaceTint foi adicionado à classe ColorScheme (I2f558).

Correções de bugs

  • Correção no botão do Material3 para ler o valor do estilo de texto padrão do MaterialTheme (Ie62fc).

Versão 1.0.0-alpha07

9 de março de 2022

Lançamento de androidx.compose.material3:material3:1.0.0-alpha07. A versão 1.0.0-alpha07 contém estas confirmações.

Mudanças na API

  • Atualizações na API Surface da biblioteca Material 3, que traz as funções sobrecarregadas para superfícies clicáveis, além de adicionar uma função para oferecer suporte a superfícies selecionáveis e alternáveis (I4bf18).
  • As APIs LazyVerticalGrid e LazyHorizontalGrid agora estão na versão estável (I307c0).
  • LazyVerticalGrid/LazyHorizontalGrid e todas as APIs relacionadas foram movidas para o subpacote .grid. Atualize as importações de androidx.compose.foundation.lazy para androidx.compose.foundation.lazy.grid (I2d446).
  • A mudança anterior foi revertida para depender apenas de uma visualização para WindowInsetsControllerCompat e voltou a exigir uma janela necessária para gerenciar algumas sinalizações de janela. O uso de ViewCompat.getWindowInsetsController foi descontinuado e substituído por WindowCompat.getInsetsController para garantir que a janela correta seja usada. Por exemplo, se a visualização estiver em uma caixa de diálogo (I660ae, b/219572936).
  • Uma nova API LazyVerticalGrid foi adicionada para definir o tamanho de eixos cruzados (I17723).

Correções de bugs

  • Atualizações na API Card para acompanhar as mudanças na API Surface (I3c8b9).

Versão 1.0.0-alpha06

23 de fevereiro de 2022

Lançamento de androidx.compose.material3:material3:1.0.0-alpha06. A versão 1.0.0-alpha06 contém estas confirmações.

Mudanças na API

  • A NavigationDrawerItem que representa um único destino nas gavetas foi adicionada (Ic396f, b/218286829).
  • PermanentNavigationDrawer e DismissibleNavigationDrawer foram adicionadas como APIs experimentais. Essas são as gavetas adequadas para dispositivos de tela grande (I5f8ab, b/218286829).
  • Foi adicionado suporte à barra de baixo de apps do Material 3 (Ic432a).
  • A interface NavigationDrawer foi renomeada como ModalNavigationDrawer (I1807d, b/218286829).
  • Foram adicionados tokens e a classe de Slider do Material 3 (I1ccee).
  • A implementação de guia foi adicionada. Consulte a documentação para ver um exemplo de uso (Ie0146).

Correções de bugs

  • Um problema em que a navegação linear do leitor de tela TalkBack selecionava um título vazio para a barra de apps da parte de cima foi corrigido (Id4690).
  • O IconSize foi adicionado a FloatingActionButtonDefaults (Ia71cf).
  • Um bug em que botões da AlertDialog ficavam ocultos quando um texto longo era adicionado com uma LazyColumn foi corrigido (Ib2cc9, b/216663029).

Versão 1.0.0-alpha05

9 de fevereiro de 2022

Lançamento de androidx.compose.material3:material3:1.0.0-alpha05. A versão 1.0.0-alpha05 contém estas confirmações.

Novos recursos

Inclusão de componentes do Material Design 3

Mudanças na API

  • A função Surface, que recebe um callback onClick, foi descontinuada. As superfícies clicáveis precisam ser criadas com uma InteractionSource e um Modifier.clickable() (I211c6).
  • Inclusão de suporte para elevação pressionada e em foco para FAB (Ibb584).
  • Mudança na API Surface para que receba uma InteractionSource, que permite controlar a aparência em estados diferentes (Iafbc8).

Correções de bugs

  • Foram incluídas cores terciárias ausentes em esquemas de cores dinâmicas (I456c4, b/214588434).

Versão 1.0.0-alpha04

26 de janeiro de 2022

Lançamento de androidx.compose.material3:material3:1.0.0-alpha04. A versão 1.0.0-alpha04 contém estas confirmações.

Mudanças na API

  • A anotação NonRestartableComposable foi adicionada a métodos que são sobrecargas de métodos já existentes sem lógica complexa. Isso reduz as verificações de memorização geradas pelo compilador (igual a) para todos os parâmetros repetidos na função interna chamada (I90490).
  • Adição do divisor do Material 3 (Ica5fc).
  • Marcação da caixa de seleção e RadioButton com uma anotação de API experimental (Ie44bb).
  • Inclusão de suporte para indicadores de progresso do Material 3 (Iff232, b/205023841).

Correções de bugs

  • Atualização da cor de um contêiner TextButton's desativado para que ele fique transparente (I6b248, b/213339737).

Versão 1.0.0-alpha03

12 de janeiro de 2022

Lançamento de androidx.compose.material3:material3:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estas confirmações.

Correções de bugs

Atualizações de dependência

  • Agora depende do Kotlin 1.6.10.

Versão 1.0.0-alpha02

1.º de dezembro de 2021

Lançamento de androidx.compose.material3:material3:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.

Novos recursos

  • Foi adicionado suporte a caixas de seleção e botões de opção.
  • Atualização para ser compatível com o Kotlin 1.6.0.

Mudanças na API

  • A gaveta do scaffold foi removida do Material 3 (I04f51).
  • Foi adicionado suporte ao Checkbox do Material 3 (Id5542).
  • Adicionado suporte ao RadioButton do Material 3 (I20334).

Correções de bugs

  • O raio da ondulação do IconButton foi removido de 40dp para 20dp (I68bbe, b/206674345).
  • Caminho rápido da string de porta para mudanças de Text de compose.material (I30b03).
  • O botão fixado no código foi corrigido para que ele fique sempre ativado (Iea832, b/205335456).

Versão 1.0.0-alpha01

27 de outubro de 2021

Lançamento de androidx.compose.material3:material3:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estas confirmações.

Novos recursos

Temas do Material Design 3 e cores dinâmicas do Material You

Componentes do Material Design 3

Para ver mais informações, consulte a seção Material Design 3 e Material You no guia Temas do Material Design no Compose.