Módulo 04: HTML5 e CSS3 Moderno • Bloco 3: Layouts Modernos • Demonstrações Práticas


1. Exemplo: Header com Flexbox, Galeria de Cards com Wrap e Alinhamentos

<!-- flexbox_full_layout_demo.html -->
<!DOCTYPE html>
<html lang="pt-BR">
<head>
  <meta charset="UTF-8">
  <title>Layout Completo com Flexbox</title>
  <style>
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    body { font-family: system-ui, sans-serif; background: #f8fafc; color: #1e293b; }

    /* 1. Header Flexbox com Space-Between */
    .site-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 16px 32px;
      background: #0f172a;
      color: white;
    }

    .nav-menu {
      display: flex;
      gap: 20px;
      list-style: none;
    }

    .nav-menu a { color: #38bdf8; text-decoration: none; font-weight: 500; }

    /* 2. Galeria com Flex Wrap e Gap */
    .cards-container {
      display: flex;
      flex-wrap: wrap;
      gap: 24px;
      padding: 32px;
      max-width: 1200px;
      margin: 0 auto;
    }

    .flex-card {
      flex: 1 1 280px; /* grow: 1, shrink: 1, basis: 280px */
      background: white;
      padding: 24px;
      border-radius: 12px;
      border: 1px solid #e2e8f0;
      box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .btn-action {
      margin-top: 16px;
      padding: 10px;
      background: #2563eb;
      color: white;
      border: none;
      border-radius: 6px;
      font-weight: 600;
      cursor: pointer;
    }
  </style>
</head>
<body>

  <header class="site-header">
    <h2>TechPortal</h2>
    <ul class="nav-menu">
      <li><a href="#home">Home</a></li>
      <li><a href="#cursos">Cursos</a></li>
      <li><a href="#contato">Contato</a></li>
    </ul>
  </header>

  <main class="cards-container">
    <div class="flex-card">
      <div>
        <h3>Módulo Flexbox</h3>
        <p>Aprenda a criar alinhamentos dinâmicos e distribuir espaços livres entre componentes.</p>
      </div>
      <button class="btn-action">Iniciar Aula</button>
    </div>

    <div class="flex-card">
      <div>
        <h3>CSS Grid Layout</h3>
        <p>Domine grades bidimensionais em linhas e colunas com a unidade fracionária fr.</p>
      </div>
      <button class="btn-action">Iniciar Aula</button>
    </div>

    <div class="flex-card">
      <div>
        <h3>Design Responsivo</h3>
        <p>Projete experiências fluidas e otimizadas para smartphones, tablets e desktops.</p>
      </div>
      <button class="btn-action">Iniciar Aula</button>
    </div>
  </main>

</body>
</html>