Gerador de Flexbox

Configure um contentor flex e os seus itens com controlos visuais, veja o layout reagir em tempo real e copie o CSS com um único clique.

Predefinições
Contentor
Direção
Quebra de linha (Wrap)
Alinhamento principal (Justify content)
Alinhar itens (Align items)
Itens
Item 1
Alinhar-se (Align self)
CSS
Ajuste o contentor e os itens para moldar o seu layout.

O seu layout é criado diretamente no seu navegador. Nada do que definir aqui é carregado para o BroBroGo.

Perguntas Frequentes

Qual é a diferença entre justify-content and align-items?

Justify-content distribui os itens ao longo do eixo principal — a direção em que a linha ou coluna flui —, enquanto align-items os posiciona ao longo do eixo transversal. Mude a direção de linha (row) para coluna (column) e os dois eixos invertem-se, fazendo com que o justify-content passe a funcionar de cima para baixo e o align-items da esquerda para a direita.

Como funcionam os controlos individuais por item?

Selecione um item pelo seu número e defina o quanto ele cresce para preencher o espaço restante (grow), o quanto encolhe quando o espaço está apertado (shrink), o seu tamanho inicial (basis) e o seu próprio alinhamento no eixo transversal. A propriedade order move um item para antes ou depois no ecrã sem alterar o HTML. Apenas os itens que realmente modificar receberão uma regra própria no CSS.

Quando as propriedades wrap e align-content fazem diferença?

Com a quebra (wrap) desativada, todos os itens são forçados a ficar numa única linha e podem ser espremidos. Ao ativá-la, os itens que já não couberem passam para a linha seguinte — é aí que o align-content entra em ação, distribuindo as linhas como um grupo. A propriedade gap define o espaço entre os itens e entre as linhas, sem a necessidade de margens.

O Modelo de Layout Flexbox do CSS

O CSS Flexible Box Layout, vulgarmente conhecido como Flexbox, é um modelo de design unidimensional concebido para distribuir o espaço entre itens num contentor e alinhar esses mesmos elementos de forma previsível. Ao contrário dos métodos tradicionais de posicionamento, o Flexbox destaca-se pela sua capacidade de alterar a largura, a altura e a ordem dos seus itens para preencher melhor o espaço disponível, adaptando-se a diferentes tamanhos de ecrã.

Este modelo é estruturado em torno de dois eixos: o eixo principal (main axis) e o eixo transversal (cross axis). O comportamento destes eixos depende diretamente da direção definida para o contentor. Compreender esta relação é fundamental para dominar o alinhamento e a distribuição de elementos em interfaces web modernas.


Propriedades do Contentor Flex

O contentor flex (flex container) é o elemento pai que ativa o contexto de layout para os seus filhos diretos. O Gerador de Flexbox permite configurar visualmente as seguintes propriedades estruturais do contentor:

  • Direção: Define o eixo principal do layout. As opções incluem Linha (os itens alinham-se horizontalmente), Linha inversa (horizontalmente, mas em sentido inverso), Coluna (os itens alinham-se verticalmente) e Coluna inversa (verticalmente, de baixo para cima).
  • Quebra de linha (Wrap): Controla se os itens são forçados a manter-se numa única linha ou se podem passar para linhas seguintes. Disponibiliza as opções Sem quebra (todos os itens na mesma linha), Quebrar linha (os itens que não cabem passam para a linha seguinte) e Quebra inversa (os itens que não cabem passam para a linha anterior).
  • Alinhamento principal (Justify content): Define como o espaço livre é distribuído ao longo do eixo principal. Pode ser configurado para Início, Fim, Centralizar, Espaço entre (Space between), Espaço ao redor (Space around) ou Espaço igual (Space evenly).
  • Alinhar itens (Align items): Determina o alinhamento dos itens ao longo do eixo transversal na linha atual. As opções são Início, Fim, Centralizar, Esticar (Stretch) (os itens esticam para preencher o contentor) e Linha de base (Baseline) (os itens alinham-se pelas suas linhas de base de texto).
  • Alinhar conteúdo (Align content): Atua apenas quando existe mais do que uma linha no contentor (com a quebra de linha ativa). Alinha as próprias linhas ao longo do eixo transversal, suportando Início, Fim, Centralizar, Esticar (Stretch), Espaço entre (Space between), Espaço ao redor (Space around) e Espaço igual (Space evenly).
  • Espaçamento (Gap): Define um valor numérico que estabelece a distância direta entre os itens e entre as linhas geradas, sem a necessidade de recorrer a margens externas nos elementos individuais.

Propriedades dos Itens Flex

Cada elemento filho direto de um contentor flex torna-se um item flex. O comportamento individual de cada item pode ser ajustado de forma independente através das seguintes propriedades:

  • Ordem (Order): Um valor numérico que altera a sequência visual em que os itens aparecem, sem modificar a estrutura do código HTML.
  • Crescimento (Grow): Um valor numérico que dita a capacidade de um item crescer para ocupar o espaço disponível no contentor.
  • Encolhimento (Shrink): Um valor numérico que define a capacidade de um item encolher quando o espaço do contentor é insuficiente.
  • Base (Basis): Define o tamanho inicial de um item antes da distribuição do espaço restante. Pode ser um valor numérico específico ou Automático.
  • Alinhar-se (Align self): Permite que um item individual ignore o alinhamento geral definido em Alinhar itens (Align items) e adote o seu próprio alinhamento no eixo transversal, utilizando as opções Automático, Início, Fim, Centralizar, Esticar (Stretch) ou Linha de base (Baseline).

Funcionamento do Gerador de Flexbox

O Gerador de Flexbox funciona como um ambiente visual de testes em tempo real. À medida que manipula os controlos do painel lateral, as alterações são aplicadas instantaneamente na área de pré-visualização.

Ao clicar no botão Adicionar item, um novo elemento (por exemplo, "Item 5") é inserido no contentor. Se desejar remover o último elemento, pode utilizar a opção Remover item.

O código CSS correspondente ao contentor e aos itens é gerado de forma dinâmica na secção CSS. Uma regra importante do gerador é que apenas os itens que sofreram alterações nas suas propriedades individuais terão regras CSS próprias geradas no código final. Quando o layout estiver concluído, basta clicar em Copiar CSS para transferir o código para a área de transferência, alterando temporariamente o estado do botão para indicar que foi copiado.

Toda a criação do layout ocorre localmente. O processamento é feito diretamente no seu navegador web e nenhuma das definições ou dados introduzidos na ferramenta é carregado para servidores externos.


Padrões Comuns de Layout

O Flexbox simplifica a criação de várias estruturas de design recorrentes na web:

  • Centralizado: Alinha perfeitamente um elemento no centro vertical e horizontal do contentor, combinando Centralizar em Alinhamento principal (Justify content) e Alinhar itens (Align items).
  • Barra de navegação: Distribui os links de navegação horizontalmente com espaçamento uniforme, utilizando frequentemente a direção Linha e o alinhamento Espaço entre (Space between).
  • Pilha: Organiza elementos verticalmente numa coluna uniforme através da direção Coluna.
  • Cartões: Cria uma grelha flexível de cartões que se ajustam ao ecrã, combinando a quebra de linha ativa com valores de crescimento nos itens para que preencham as linhas de forma proporcional.
  • Barra lateral: Posiciona uma barra de conteúdo lateral fixa ao lado de uma área de conteúdo principal que se expande para ocupar o espaço restante.

Perguntas Frequentes

Qual é a diferença entre justify-content and align-items?

Justify-content distribui os itens ao longo do eixo principal — a direção em que a linha ou coluna flui —, enquanto align-items os posiciona ao longo do eixo transversal. Mude a direção de linha (row) para coluna (column) e os dois eixos invertem-se, fazendo com que o justify-content passe a funcionar de cima para baixo e o align-items da esquerda para a direita.

Como funcionam os controlos individuais por item?

Selecione um item pelo seu número e defina o quanto ele cresce para preencher o espaço restante (grow), o quanto encolhe quando o espaço está apertado (shrink), o seu tamanho inicial (basis) e o seu próprio alinhamento no eixo transversal. A propriedade order move um item para antes ou depois no ecrã sem alterar o HTML. Apenas os itens que realmente modificar receberão uma regra própria no CSS.

Quando as propriedades wrap e align-content fazem diferença?

Com a quebra (wrap) desativada, todos os itens são forçados a ficar numa única linha e podem ser espremidos. Ao ativá-la, os itens que já não couberem passam para a linha seguinte — é aí que o align-content entra em ação, distribuindo as linhas como um grupo. A propriedade gap define o espaço entre os itens e entre as linhas, sem a necessidade de margens.