Aula 10/03/2026 - Programação do leiaute de dashboard - Parte I

Nesta aula, utilizamos os conhecimentos adquiridos sobre divs e estilização de divs com flex-layout para elaborar uma página com leiaute admin - ou dashboard, como é conhecido popularmente -. Esse tipo de leiaute é muito utilizado para criação de sistemas de gestão online, ou páginas de administração de sistemas.

Pré-requisitos

Para esta aula, é necessário que você tenha conhecimento sobre divs, seletores em CSS e leiaute em Flexbox. Esses conteúdos estão disponíveis em:

Objetivo da aula

O objetivo desta aula é apresentar aos alunos os conceitos fundamentais de estruturação de leiaute utilizando HTML e CSS, por meio da organização de elementos com divs estruturais e da aplicação do Flexbox para controle de distribuição de espaço na página. Ao final da aula, espera-se que o você seja capaz de construir a base estrutural de um dashboard web, compreendendo o papel da div container como estrutura principal do viewport, bem como a separação lógica entre as áreas de menu e conteúdo, além da subdivisão dessas áreas em elementos funcionais como logo, left-navbar e top-navbar.

Resultado esperado

O resultado final esperado após a realização da aula é um leiaute organizado em divs, sendo a div container, responsável por abrigar as divs estruturais da pagina; a div menu, responsável para separação de 1/5 da pagina, e a div conteudo, responsável por conter o conteúdo da página apresentado em 4/5 da página:

Estruturação da página: div container e divs estruturais

A página de dashboard possui três divs principais, sendo a div container, responsável pela organização do leiaute do viewport, a principal estrutura.

  <div class="container">
    <div class="menu">
      <div class="logo"></div>
      <div class="left-navbar"></div>
    </div>
    <div class="conteudo">
      <div class="top-navbar"></div>
    </div>
  </div>

Essa div ocupará todo os espaço disponível do viewport, com height: 100vh. A div também estrutura as divs internas (menu e conteudo) utilizando flex-layout com orientação padrão horizontal.

.container {
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: rgb(153, 153, 248);
}

Observe que as divs menu e conteúdo possuem divs internas, sendo as divs logo e left-navbar para menu e top-navbar para conteúdo. A div logo estrutura seus filhos também usando flex-leyout, porém com a orientação vertical. Seus filhos tem a proporção 35/100 e 65/100.

.menu {
  height: 100%;
  flex: 1;
  display: flex;
  flex-direction: column;
  background-color: rgb(254, 251, 251);
}

.conteudo {
  height: 100%;
  flex: 4;
  background-color: rgb(244, 28, 28);
}

.top-navbar {
  height: 7%;
  background-color: rgb(32, 244, 28);
}

.logo {
  flex: 35;
  background-image: url('./images/logo.png');
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.left-navbar {
  flex: 65;
  background-color: rgba(0, 0, 0, 0.656);
}

Note que também foi utilizado o reset de leiaute do css no início do arquivo, utilizando o seletor *:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: Arial, Helvetica, sans-serif;
}

Conclusão

Nesta aula, foi apresentada a construção da estrutura base de um dashboard, utilizando divs organizadas de forma hierárquica e controladas por flex-layout. Foi possível entender como a div container atua como elemento principal de organização do viewport, distribuindo os espaços entre menu e conteúdo, além de permitir a criação de subdivisões internas responsáveis pela navegação e apresentação das informações da página.

Também foi demonstrado o uso de proporções com flex-layout, o controle de altura relativa ao viewport (vh), e a importância do reset de CSS para padronizar o comportamento dos elementos no navegador, principalmente para remover bordas e espaçamentos internos (padding).