Gerador de Flexbox e Grid CSS
Cria layouts flexbox e CSS grid de forma visual. Define propriedades do contentor e dos itens, dá nomes às áreas e copia CSS e HTML limpos.
Predefinições
Clica num item da pré-visualização para o selecionar e editar as suas propriedades mais abaixo.
Como usar o gerador de Flexbox e Grid
- Escolhe um Layout: Flexbox ou Grid, ou parte de uma das Predefinições (Centrado, Barra de navegação, Cartões com quebra de linha, Barra lateral, Grelha de cartões responsiva, Holy grail, 12 colunas).
- Define as propriedades do Contentor. Em flexbox:
flex-directioneflex-wrap. Em grid:grid-template-columns,grid-template-rows,grid-auto-flow,justify-itemsegrid-template-areas. Os dois modos partilhamjustify-content,align-items,align-content,row-gap (px)ecolumn-gap (px). - Gere os Itens com Adicionar item, Remover item selecionado e Repor item selecionado. Clica num item da pré-visualização (ou chega lá com Tab e carrega em Enter) para o selecionar.
- Edita o item selecionado:
orderealign-selfnos dois modos,flex-grow,flex-shrinkeflex-basisem flexbox, egrid-area,grid-column,grid-rowejustify-selfem grid. - Copia o Código CSS e o Código HTML correspondente com os respetivos botões Copiar.
Todos os controlos são campos de formulário normais, por isso o gerador funciona por completo só com o teclado. O CSS contém apenas as propriedades que alteraste em relação aos valores por omissão, o que o mantém curto, e os itens com definições idênticas partilham uma única regra (.item quando são todos iguais).
Flexbox em poucas palavras
O flexbox dispõe os itens ao longo de um eixo. flex-direction define o eixo principal (uma linha ou uma coluna); justify-content distribui os itens ao longo dele (center, space-between…) e align-items posiciona-os no eixo transversal. Com flex-wrap: wrap, os itens que não cabem passam para uma nova linha, e align-content distribui então essas linhas.
Cada item tem três propriedades de tamanho, normalmente escritas em conjunto como flex:
flex-basis: o tamanho inicial (autousa o conteúdo ou awidth);flex-grow: quanto do espaço livre o item ocupa (0 = nenhum, 1 = uma parte igual);flex-shrink: quanto cede quando falta espaço (0 = nunca encolhe).
A predefinição Barra lateral mostra o padrão clássico: uma barra lateral com flex-basis: 200px e flex-shrink: 0, e uma área principal com flex-grow: 1.
CSS Grid em poucas palavras
O grid dispõe os itens em duas dimensões. grid-template-columns: repeat(3, 1fr) cria três colunas iguais; fr é uma fração do espaço livre. repeat(auto-fill, minmax(120px, 1fr)) cria tantas colunas de pelo menos 120px quantas couberem, o que dá uma grelha de cartões responsiva sem qualquer media query.
Os itens preenchem as células por ordem, a não ser que os posiciones: grid-column: span 2 faz um item ocupar duas colunas, e grid-column: 1 / -1 estica-o por toda a linha.
grid-template-areas permite desenhar o layout com nomes. Escreve uma fila por linha, por exemplo header header e depois nav main, e dá aos itens grid-area: header ou grid-area: main. Um ponto marca uma célula vazia. Todas as filas precisam do mesmo número de células e cada nome tem de formar um retângulo; caso contrário, a ferramenta avisa-te.
Perguntas frequentes
Devo usar flexbox ou grid?
Flexbox para conteúdo numa só dimensão, como barras de ferramentas, grupos de botões ou centrar elementos. Grid quando as linhas e as colunas têm de ficar alinhadas, como em layouts de página e galerias de cartões. Os dois combinam bem: uma grelha de cartões cujo interior usa flexbox.
Porque é que align-items não muda nada?
Numa linha, os itens esticam por omissão até à altura do contentor, e o contentor só é tão alto quanto o seu conteúdo. Dá-lhe uma altura, ou observa a pré-visualização, que tem uma altura mínima.
Para que serve o gap?
Define o espaço entre os itens (não à volta deles). Funciona tanto em flexbox como em grid em todos os navegadores atuais.
O order altera a ordem de leitura?
Não. order só move os itens visualmente; os leitores de ecrã e a navegação por teclado continuam a seguir a ordem do HTML, por isso usa-o com moderação.
Ferramentas relacionadas
- Formatador e minificador de CSS Formata CSS desarrumado com uma indentação limpa ou minifica-o com o csso, e vê o tamanho antes e depois. Corre no navegador; nada é enviado.
- Gerador de border-radius Molda o border-radius CSS de forma visual com pontos arrastáveis. Define cada canto em px ou %, usa a sintaxe elíptica de 8 valores e copia o código.
- Gerador de box-shadow Cria sombras CSS box-shadow em camadas com pré-visualização ao vivo. Ajusta deslocamento, desfoque, expansão, cor, opacidade e inset e copia o código.