Pular para o conteúdo

🎉 Material UI v5 is out! Head to the migration guide to get started.

Sobre o lab

Este pacote hospeda os componentes da incubadora que ainda não estão prontos para mover para o core.

A principal diferença entre o lab e o core (núcleo) é como os componentes são versionados. Tendo um pacote separado para o lab, podemos liberar alterações críticas quando necessário, enquanto o pacote do core segue uma política de liberação mais lenta.

À medida que os desenvolvedores usam, testam os componentes e relatam problemas, os mantenedores aprendem mais sobre as deficiências dos componentes: recursos ausentes, problemas de acessibilidade, bugs, design de API, etc. Quanto mais antigo e mais usado for um componente, menor é a probabilidade de novos problemas serem encontrados e, consequentemente, necessidades de alterações críticas serem feitas.

Para que um componente esteja pronto para ir para o core, são considerados os seguintes critérios:

  • Ele precisa ser utilizado. A equipe do Material-UI usa o Google Analytics e outras métricas para avaliar o uso de cada componente. Um componente do lab com baixo uso significa que ainda não está totalmente funcional ou que há uma baixa demanda por ele.
  • Ele precisa atender critérios de qualidade de código, semelhante aos componentes do core. O componente não precisa ser perfeito para fazer parte do core, mas ele deve ser confiável o suficiente para que os desenvolvedores possam depender dele.
    • Cada componente precisa de definições de tipo. Atualmente, não é necessário que um componente do lab seja tipado, mas ele precisará ser tipado para passar para o core.
    • Requer boa cobertura de teste. Atualmente, alguns dos componentes do lab não têm testes abrangentes.
  • O componente pode ser usado como estratégia para incentivar os usuários a atualizar para a versão mais recente? Quanto menos fragmentada a comunidade, melhor.
  • Ele precisa ter uma baixa probabilidade de alterações críticas no curto/médio prazo. Por exemplo, se o componente precisar de um novo recurso que provavelmente precisará de alterações críticas, pode ser preferível adiar sua promoção para o core.

Instalação

Instale o pacote no diretório do seu projeto com:

// usando npm
npm install @material-ui/lab

// usando yarn
yarn add @material-ui/lab

O lab tem dependências com os componentes do core. Se você ainda não está utilizando o Material-UI em seu projeto, poderá instalá-lo com:

// utilizando o npm
npm install @material-ui/core

// utilizando o yarn
yarn add @material-ui/core

TypeScript

Para se beneficiar de CSS overrides e customização de propriedades padrão com o tema, usuários de TypeScript precisam importar os seguintes tipos. Internamente, ele usa ampliação de módulos para estender a estrutura padrão do tema com os componentes de extensão disponíveis no lab.

import type '@material-ui/lab/themeAugmentation';

const theme = createTheme({
  overrides: {
    MuiTimeline: {
      root: {
        backgroundColor: 'red',
      },
    },
  },
});