Voltar ao blog

Implementando Flex Layout no Angular: Um Guia Prático

Implementando Flex Layout no Angular: Um Guia Prático

Introdução

CSS Flex Layout é usado para criar layouts fluidos flexíveis. No entanto, ao usar Angular existem cenários em que precisamos de mais controle dinâmico sobre os layouts. Além disso, usar CSS Flexbox exige uma estilização complicada que pode ser difícil para muitos desenvolvedores. O Flex Layout é um motor de componentes que visa resolver esse problema. Ele fornece um conjunto de diretivas que estão disponíveis para implementação em suas aplicações.

O Flex Layout usa Typescript tornando-o ideal para aplicações Angular. Não são necessárias folhas de estilo externas, e diferentes diretivas podem ser usadas para criar layouts responsivos. Neste tutorial, vamos criar uma aplicação Angular simples e injetar o Flex Layout para organizar nossos componentes.

Vamos começar!

Pré-requisitos

Configuração do Projeto

Aqui precisamos realizar duas etapas:

  • Precisamos configurar uma nova aplicação Angular.
  • Precisaremos instalar o Flex Layout a partir do npx para que possamos importá-lo e usá-lo em nossa aplicação.

Para criar uma nova aplicação Angular, abra seu terminal e execute o comando abaixo:

Aqui estamos criando uma nova aplicação Angular usando o @angular/cli. O nome da nossa aplicação é angular-flex-example. Usaremos CSS em vez de Sass ou Less como estilização. Além disso, especificaremos que não precisamos de roteamento. Também não estamos preocupados com os testes, por isso também os ignoramos.

Agora que sua aplicação está pronta, navegue até o diretório da aplicação e execute o comando abaixo para instalar o Flex Layout:

Assim que o comando acima concluir a instalação, adicione o código abaixo no seu módulo app para importar o FlexLayoutModule:

Em seguida, execute o comando abaixo para garantir que tudo esteja funcionando como esperado:

Sua aplicação será servida em localhost:4200 por padrão. Navegue até esta URL no navegador web. Você verá a mensagem: angular-flex-example is running!. Com essa configuração concluída, vamos projetar nosso template usando o Flex Layout.

Criar o Flex Layout

Aqui adicionaremos código em app.component.html para usar o Flex Layout com o FlexLayoutModule. Nosso resultado final será semelhante à figura abaixo:

Flex Layout in Angular image 1

Para alcançar o resultado acima, abra o app.component.css no seu editor e adicione as linhas de código abaixo:

Agora que você adicionou o código acima, abra o arquivo app.component.html e adicione o seguinte código. Este código possui duas divs container e cinco divs internas:

Depois disso, compile e execute sua aplicação. Você verá cinco divs empilhadas umas sobre as outras porque não fornecemos nenhum layout até agora. Para adicionar o fxLayout adicione o código abaixo:

No código acima, após aplicar este fxLayout, os estilos das propriedades CSS display:flex e flex-direction:row  são aplicados ao container divs. Agora, ao executar a aplicação, você terá três divs na primeira linha e duas divs na linha inferior.

Em seguida, adicionamos fxLayoutAlign e fxLayoutGap para aprimorar nosso layout:

Isso aplicará place-content: stretch center e align-items: stretch estilos ao container div. Também aplicará 10px de espaço entre os itens flex.

Agora que aplicamos fxLayout, é hora de tornar nosso layout responsivo:

Este código definirá o ponto de interrupção para as telas extra pequenas xs . A tela mudará o layout de linha padrão para coluna e o tamanho do espaçamento será reduzido de 10px para 0px nas telas extra pequenas. Você pode testar isso executando a aplicação e redimensionando a janela para xs (menos de 599px de largura). Você observará a alteração na estilização.

Para vários tamanhos de tela, temos diferentes sufixos:

  • sm  – pequeno

  • md  – médio

  • lg  – grande

  • xl  – extra grande

Também temos diretivas para elementos filhos. Adicione fxFlex  como no código abaixo:

Isso aplicará flex-grow: 1, flex-shrink: 1, e flex-basis: 100% ao layout. Se você especificar o valor de largura, ele aplicará a propriedade max-width.

Vamos adicionar fxFlexOrder e fxFlexOffset:

Usando este código, aplicamos order: 3 ao segundo item. Ele também aplicará margin-left: 50px ao quarto item. Agora, se você executar a aplicação, verá que o segundo item está na terceira posição da linha, enquanto o quarto item recebe um espaçamento de 30px a partir do início.

Resumindo

Neste tutorial, aprendemos como implementar o Flex Layout em aplicativos Angular. Isso será útil, pois poderemos usar layouts CSS Flexbox prontos para uso sem ter que codificar a estilização nós mesmos. Se precisar de mais informações, consulte a Wiki do Flex Layout na página do GitHub.

Para manter as coisas simples neste tutorial, não usamos binding para vincular valores na classe do componente. No entanto, tanto o binding unidirecional quanto o bidirecional são possíveis na classe do componente [fxLayout]="sua direção de layout". Isso lhe dará mais controle para construir layouts e casos de uso dinâmicos poderão ser tratados.

Os aplicativos Angular usam o Node.js como seu runtime. Se você quiser aprender mais sobre o Node.js e como implantar aplicativos Node.js no Docker, confira o nosso Como implantar um aplicativo Node.js (Express.js) com Docker no Ubuntu 20.04 tutorial. Para saber mais sobre o Angular, confira o nosso tutorial  Navegação com RouterLink, Navigate e NavigateByUrl no Angular Router.

Feliz Computação!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.