// apostila completa · dev + design

Elementos, Componentes e Design Web: do fundamento ao futuro

Um guia progressivo para quem já conhece o básico de HTML/CSS e quer dominar o front-end moderno, o design de interfaces e as mudanças trazidas pela inteligência artificial — com foco direto no mercado de trabalho.

12 módulos40+ exemplos de código30+ exercícioscarreira & portfóliotendências 2026+
MÓDULO 1.0Básico

Como a Web funciona

Antes de escrever uma linha de código profissional, você precisa entender o que acontece entre digitar uma URL e ver uma página na tela. Entrevistas técnicas adoram essa pergunta.

1.1 O caminho de uma requisição

  1. DNS — o navegador traduz exemplo.com em um endereço IP.
  2. Conexão — abre-se uma conexão segura (TLS/HTTPS) com o servidor, hoje geralmente via HTTP/2 ou HTTP/3.
  3. Requisição e resposta — o navegador envia um GET e recebe HTML, que referencia CSS, JS, imagens e fontes.
  4. Renderização — o navegador constrói o DOM (estrutura do HTML) e o CSSOM (estilos), combina os dois na render tree, calcula layout e pinta os pixels.
No mercado

Saber explicar o fluxo requisição → DOM → render é um filtro clássico em entrevistas de estágio e júnior. Quem entende isso também entende por que um site fica lento — e otimizar velocidade é uma das habilidades mais pagas do front-end (veja o Módulo 7).

1.2 Front-end, back-end e o papel de cada um

CamadaO que fazTecnologias típicas
Front-endTudo que o usuário vê e tocaHTML, CSS, JavaScript, React, Vue, Svelte
Back-endRegras de negócio, dados, autenticaçãoNode.js, Python, Go, bancos de dados
Design UI/UXDecide como a interface se comporta e por quêFigma, design systems, pesquisa com usuários

Este material foca no par front-end + design — a combinação mais valorizada em times pequenos, startups e trabalho freelancer, onde uma pessoa que projeta e implementa vale por duas.

Exercício 1 — Inspecione a rede básico

Abra qualquer site, pressione F12 → aba Network e recarregue. Responda: quantas requisições foram feitas? Qual foi o maior arquivo? Quanto tempo levou o primeiro HTML? Repita em um site de notícias e compare.

MÓDULO 2.0Básico → Intermediário

HTML semântico e elementos

Você já sabe o básico de HTML. Este módulo eleva o nível: semântica correta, formulários profissionais, mídia e acessibilidade — o que separa um código amador de um código contratável.

2.1 Semântica: o HTML que máquinas e pessoas entendem

Elementos semânticos descrevem significado, não aparência. Eles melhoram SEO, acessibilidade (leitores de tela) e — cada vez mais importante — a capacidade de agentes de IA lerem e operarem seu site.

estrutura-semantica.html
<!-- Ruim: sopa de divs -->
<div class="topo">...</div>

<!-- Bom: semântica clara -->
<header>
  <nav aria-label="principal">...</nav>
</header>
<main>
  <article>
    <h1>Título único da página</h1>
    <section>
      <h2>Subtema</h2>
    </section>
  </article>
  <aside>Conteúdo relacionado</aside>
</main>
<footer>...</footer>

Regras de ouro

  • Um único <h1> por página; níveis de título sem pular (h1 → h2 → h3).
  • <button> para ações, <a> para navegação. Nunca uma div clicável.
  • <div> e <span> só quando nenhum elemento semântico servir.

2.2 Formulários que convertem (e não frustram)

Formulário é onde o dinheiro acontece: cadastro, checkout, contato. HTML moderno valida muita coisa sem JavaScript.

form-profissional.html
<form>
  <label for="email">E-mail</label>
  <input type="email" id="email" name="email"
         required autocomplete="email"
         placeholder="voce@exemplo.com">

  <label for="tel">Telefone</label>
  <input type="tel" id="tel" name="tel"
         inputmode="tel" autocomplete="tel">

  <button type="submit">Criar conta</button>
</form>
  • autocomplete correto aumenta conversão em mobile — o navegador preenche sozinho.
  • inputmode abre o teclado certo no celular (numérico, e-mail, URL).
  • Todo input precisa de um label associado. Placeholder não substitui label.

2.3 Imagens e mídia modernas

imagem-responsiva.html
<picture>
  <source srcset="foto.avif" type="image/avif">
  <source srcset="foto.webp" type="image/webp">
  <img src="foto.jpg" alt="Descrição real da imagem"
       width="800" height="600" loading="lazy">
</picture>
  • AVIF/WebP: formatos até 50% menores que JPEG.
  • width/height evitam "pulo" de layout (CLS — Módulo 7).
  • loading="lazy" adia imagens fora da tela.

2.4 Acessibilidade essencial (a11y)

Acessibilidade não é opcional: é lei em vários países (no Brasil, LBI — Lei 13.146), é critério de contratação e melhora o produto para todos.

  • Alt text descritivo em imagens informativas; alt="" em decorativas.
  • Contraste mínimo 4.5:1 para texto (WCAG AA).
  • Navegação por teclado: tudo que é clicável deve funcionar com Tab e Enter.
  • ARIA só quando o HTML nativo não resolve — a primeira regra do ARIA é não usar ARIA.
Impacto da IA

HTML semântico ganhou um novo cliente: agentes de IA que navegam e executam tarefas em sites (comprar, agendar, preencher). Sites com semântica limpa, landmarks e formulários rotulados são muito mais fáceis de operar por agentes — e isso está virando requisito de negócio, não só de acessibilidade.

Exercício 2 — Refatore para semântica básico

Pegue uma página antiga sua (ou crie uma com só divs) e refatore usando header, nav, main, article, section, aside e footer. Valide em validator.w3.org.

Exercício 3 — Formulário de cadastro completo intermediário

Crie um formulário de cadastro com nome, e-mail, senha (com minlength="8"), data de nascimento e aceite de termos. Use validação nativa, autocomplete e teste a navegação apenas com o teclado.

MÓDULO 3.0Intermediário → Avançado

CSS moderno

O CSS de 2026 é outra linguagem comparado ao de 2018. Muita coisa que exigia JavaScript ou pré-processadores hoje é nativa. Dominar isso te coloca à frente de boa parte do mercado.

3.1 Layout: Flexbox e Grid — quando usar cada um

FerramentaMelhor paraExemplo
FlexboxUma dimensão (linha OU coluna)Barra de navegação, cards em fileira, alinhar itens
GridDuas dimensões (linhas E colunas)Layout de página, galerias, dashboards
grid-responsivo.css
/* Galeria que se adapta sozinha — sem media queries */
.galeria {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.5rem;
}

3.2 Custom Properties (variáveis CSS) e design tokens

Variáveis CSS são a base dos design systems: mude uma vez, atualize tudo — inclusive em tempo real (tema escuro, personalização).

tokens.css
:root {
  --cor-primaria: #0E7C66;
  --espaco-m: 1rem;
  --radius: 10px;
}
@media (prefers-color-scheme: dark) {
  :root { --cor-primaria: #6EE7C8; }
}
.botao {
  background: var(--cor-primaria);
  padding: var(--espaco-m);
  border-radius: var(--radius);
}

3.3 O CSS que substituiu JavaScript

Recursos que já têm suporte amplo nos navegadores e que você deve conhecer para se destacar:

Container Queries — componentes que se adaptam ao contêiner

container-queries.css
.card-wrapper { container-type: inline-size; }

@container (min-width: 400px) {
  .card { flex-direction: row; } /* card horizontal se couber */
}

Diferente de media queries (que olham a tela), container queries olham o espaço disponível — essencial para componentes reutilizáveis.

:has() — o "seletor de pai"

has.css
/* Destaca o campo cujo input está inválido */
.campo:has(input:invalid) { border-color: crimson; }

/* Layout muda se houver imagem no card */
.card:has(img) { grid-template-rows: auto 1fr; }

Nesting nativo, cascade layers e mais

  • Nesting nativo — aninhe seletores sem Sass: .card { &:hover { ... } }
  • @layer — organize a cascata em camadas (reset, base, componentes, utilitários) e acabe com guerras de especificidade.
  • Subgrid — filhos alinhados ao grid do avô; cards com alturas perfeitamente alinhadas.
  • clamp() — tipografia fluida: font-size: clamp(1rem, 2.5vw, 1.5rem).
  • color-mix() e oklch() — cores mais perceptualmente uniformes e mistura nativa.

3.4 Animações modernas Avançado

Scroll-driven animations (sem JS)

scroll-animation.css
/* Barra de progresso de leitura, 100% CSS */
@keyframes crescer { to { transform: scaleX(1); } }

.barra-progresso {
  transform: scaleX(0);
  transform-origin: left;
  animation: crescer linear;
  animation-timeline: scroll(root);
}

View Transitions — transições entre páginas

A View Transitions API permite animações suaves entre estados e até entre páginas diferentes, aproximando sites da fluidez de apps nativos:

view-transitions.css
@view-transition { navigation: auto; } /* MPA: entre páginas */

.produto-img { view-transition-name: produto-hero; }
/* A imagem "voa" da listagem para a página de detalhe */
Atenção

Sempre respeite prefers-reduced-motion: usuários com sensibilidade a movimento podem desativar animações no sistema. Envolva animações não essenciais em @media (prefers-reduced-motion: no-preference).

No mercado

Vagas de front-end pleno/sênior em 2026 citam com frequência: container queries, cascade layers, view transitions e CSS sem framework de utilitários como diferencial. Saber quando não usar Tailwind/Bootstrap é tão valioso quanto saber usá-los.

Exercício 4 — Galeria auto-adaptável intermediário

Crie uma galeria de 12 cards com auto-fit + minmax, tema claro/escuro via prefers-color-scheme e variáveis CSS. Zero media queries.

Exercício 5 — Card container-aware avançado

Construa um card de produto que fica vertical em espaços estreitos e horizontal em espaços largos usando container queries. Coloque o mesmo card em uma sidebar (300px) e no conteúdo principal (800px) para provar que funciona.

Exercício 6 — Progresso de leitura sem JS avançado

Implemente uma barra de progresso de leitura fixa no topo usando animation-timeline: scroll(). Adicione fallback: se o navegador não suportar, a barra simplesmente não aparece (use @supports).

MÓDULO 4.0Intermediário

Design UI/UX na prática

Código sem design é um produto que ninguém quer usar. Aqui estão os fundamentos que designers cobram — e que desenvolvedores que sabem aplicar ganham mais por dominar.

4.1 Hierarquia visual: guiando o olhar

O usuário não lê, ele escaneia. Hierarquia é o que decide o que ele vê primeiro:

  • Tamanho — o maior elemento é lido primeiro.
  • Contraste — peso, cor e fundo destacam o que importa.
  • Espaço — espaço em branco agrupa e separa; é o recurso mais subestimado por iniciantes.
  • Posição — em interfaces ocidentais, o padrão de leitura é F ou Z.

4.2 Tipografia funcional

  • Corpo de texto: 16px no mínimo; altura de linha 1.5–1.7.
  • Largura de linha ideal: 45–75 caracteres (use max-width: 65ch).
  • Escala tipográfica: escolha uma razão (1.25, 1.333…) e derive todos os tamanhos dela.
  • Máximo de 2 famílias por projeto: uma para títulos, uma para texto.

4.3 Cor com método

  • Regra 60-30-10: 60% cor dominante (fundos), 30% secundária, 10% destaque (ações).
  • Defina cores por função, não por gosto: primária (ação), sucesso, alerta, erro, neutros.
  • Teste contraste (WCAG AA: 4.5:1 para texto, 3:1 para texto grande e componentes).
  • Nunca comunique só com cor: erro = cor + ícone + texto.

4.4 Espaçamento em sistema

Adote uma escala baseada em múltiplos (4px ou 8px): 4, 8, 12, 16, 24, 32, 48, 64. Decisões de espaçamento viram escolhas em um cardápio, não chutes — e o layout inteiro ganha ritmo.

4.5 Heurísticas de usabilidade (Nielsen) — as 5 mais cobradas

  1. Visibilidade do status — o sistema sempre informa o que está acontecendo (loading, salvo, erro).
  2. Controle do usuário — desfazer, cancelar, voltar sempre disponíveis.
  3. Consistência — mesma ação, mesmo nome, mesmo lugar, em todo o produto.
  4. Prevenção de erros — melhor que boas mensagens de erro é impedir o erro (confirmação, formatos claros).
  5. Reconhecimento em vez de memorização — mostre opções em vez de exigir que o usuário lembre.

4.6 Fluxo de trabalho com Figma

O Figma é o padrão da indústria. O fluxo profissional típico:

  1. Wireframe — estrutura sem estética (caixas cinzas).
  2. UI Design — aplicação do design system: cores, tipografia, componentes.
  3. Protótipo — telas conectadas e clicáveis para teste.
  4. Handoff — dev inspeciona medidas, tokens e assets (Dev Mode).
Dica de ouro

Como dev + designer, seu superpoder é projetar já pensando no CSS: use no Figma os mesmos tokens (escala de 8px, variáveis de cor, auto layout ≈ flexbox) que usará no código. Handoff de si para si mesmo é o mais rápido do mundo.

Impacto da IA

Ferramentas de IA geram telas e variações em segundos (Figma AI, geradores de UI, design-to-code). O que a IA não faz bem: entender o contexto do negócio, priorizar o que importa para o usuário real e manter consistência de produto ao longo de meses. O designer de 2026 cura, dirige e valida — menos "empurrar pixels", mais decisão.

Exercício 7 — Redesign com hierarquia intermediário

Escolha um site local (padaria, oficina, salão) com design fraco. Refaça a home aplicando: escala tipográfica, sistema de espaçamento 8px, regra 60-30-10 e um único call-to-action dominante. Documente antes/depois — isso vira peça de portfólio.

Exercício 8 — Auditoria de heurísticas intermediário

Avalie um app que você usa diariamente contra as 5 heurísticas acima. Registre 5 violações com captura de tela e proponha correção para cada uma. Esse formato de auditoria é usado em processos seletivos de UX.

MÓDULO 5.0Intermediário

JavaScript e interatividade

JavaScript transforma documentos em aplicações. Aqui está o essencial moderno — o suficiente para construir interfaces reais e entender qualquer framework depois.

5.1 DOM e eventos com delegação

eventos.js
// Delegação: um listener no pai cuida de todos os filhos,
// inclusive os criados depois
const lista = document.querySelector('.tarefas');

lista.addEventListener('click', (e) => {
  const botao = e.target.closest('[data-acao="remover"]');
  if (botao) botao.closest('li').remove();
});

5.2 Assíncrono: fetch + async/await

api.js
async function carregarUsuarios() {
  try {
    const resp = await fetch('https://api.exemplo.com/usuarios');
    if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
    const dados = await resp.json();
    renderizar(dados);
  } catch (erro) {
    mostrarErro('Não foi possível carregar. Tente novamente.');
  }
}

Padrão profissional: sempre trate os três estados — carregando, sucesso e erro. Interfaces que ignoram o estado de erro são o defeito nº 1 em testes técnicos de júnior.

5.3 JavaScript moderno que você deve dominar

  • Desestruturação e spread: const { nome, ...resto } = usuario
  • Optional chaining: usuario?.endereco?.cidade
  • Módulos ES: import / export nativos no navegador.
  • Array methods: map, filter, reduce, find, e os imutáveis toSorted, toReversed.
  • Intl: formatação nativa de moeda e data — new Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).

5.4 TypeScript: o padrão do mercado Avançado

TypeScript adiciona tipos ao JavaScript e domina as vagas: a maioria das posições de front-end pleno+ exige. O ganho: erros pegos antes de rodar, autocompletar confiável e código autodocumentado — e é também o que torna a colaboração com IA mais segura, pois o compilador valida o que a IA gera.

usuario.ts
interface Usuario {
  id: number;
  nome: string;
  email: string;
  plano?: 'free' | 'pro';  // opcional e restrito
}

function saudacao(u: Usuario): string {
  return `Olá, ${u.nome}!`;
}
Exercício 9 — Lista de tarefas sem framework intermediário

Construa um to-do com: adicionar, concluir, remover e filtro (todas/ativas/concluídas), usando delegação de eventos e persistência em memória. Extra: renderize a partir de um array de estado único (padrão que prepara para React).

Exercício 10 — Consumo de API com 3 estados intermediário

Consuma uma API pública (ex.: https://pokeapi.co) e exiba resultados em cards. Implemente explicitamente: skeleton de carregamento, estado de erro com botão "tentar novamente" e estado vazio ("nenhum resultado").

MÓDULO 6.0Avançado

Componentes e Design Systems

Componentização é a ideia central do front-end moderno: interfaces são montadas com blocos reutilizáveis, testáveis e documentados. É aqui que dev e design se encontram de verdade.

6.1 Pensando em componentes: Atomic Design

NívelO que éExemplo
ÁtomoElemento indivisívelBotão, input, ícone, label
MoléculaÁtomos combinadosCampo de busca (input + botão)
OrganismoSeção funcionalHeader com nav e busca
TemplateEstrutura da páginaLayout de listagem
PáginaTemplate com conteúdo realHome publicada

6.2 Web Components: componentes nativos do navegador

badge-status.js
class BadgeStatus extends HTMLElement {
  connectedCallback() {
    const tipo = this.getAttribute('tipo') ?? 'info';
    this.attachShadow({ mode: 'open' }).innerHTML = `
      <style>
        span { padding: 2px 10px; border-radius: 999px; font: 600 12px sans-serif; }
        .ok    { background: #E3F2EE; color: #0E7C66; }
        .erro  { background: #FBEAE6; color: #B3402E; }
      </style>
      <span class="${tipo}"><slot></slot></span>`;
  }
}
customElements.define('badge-status', BadgeStatus);

// Uso: <badge-status tipo="ok">Ativo</badge-status>

Shadow DOM encapsula estilos (nada vaza para dentro ou para fora) e <slot> permite conteúdo customizado. Web Components funcionam em qualquer framework — por isso são a base de design systems corporativos multiplataforma.

6.3 Frameworks: o mapa de 2026

FrameworkPerfilQuando escolher
ReactLíder de mercado; maior nº de vagasEmpregabilidade, ecossistema, apps grandes
Next.jsMeta-framework React (SSR, rotas, server components)Padrão de mercado para produtos React completos
Vue/NuxtCurva suave, muito usado no Brasil e ÁsiaTimes menores, produtividade
SvelteCompilado, quase sem runtimePerformance, projetos enxutos
AstroSites orientados a conteúdo, "zero JS por padrão"Blogs, marketing, documentação

O modelo mental do React (vale para todos)

Contador.jsx
import { useState } from 'react';

function Contador() {
  const [total, setTotal] = useState(0);
  return (
    <button onClick={() => setTotal(total + 1)}>
      Cliques: {total}
    </button>
  );
}

A ideia-chave: UI = função(estado). Você não manipula o DOM; você muda o estado e a interface se atualiza. Entenda isso profundamente e qualquer framework fica fácil.

6.4 Design Systems profissionais

Um design system é mais que uma biblioteca de componentes: é tokens + componentes + documentação + governança.

  1. Tokens — decisões nomeadas (cor, espaço, tipo, sombra) compartilhadas entre Figma e código, cada vez mais no padrão W3C Design Tokens (JSON).
  2. Componentes — acessíveis por padrão, com estados definidos (hover, focus, disabled, loading, erro).
  3. Documentação — Storybook é o padrão: cada componente com exemplos vivos, props e diretrizes de uso.
  4. Governança — quem aprova mudanças, versionamento (semver), changelog.

Referências para estudar: Material Design (Google), Polaris (Shopify), Primer (GitHub) — todos públicos.

No mercado

"Design system engineer" e "UI engineer" são cargos em alta que pagam acima da média exatamente por exigirem o híbrido dev + design que você está construindo. Ter no portfólio um mini design system documentado no Storybook diferencia você de 90% dos candidatos júnior/pleno.

Exercício 11 — Biblioteca de átomos avançado

Crie 5 átomos (botão com 3 variantes, input com estados de erro/sucesso, badge, avatar, spinner) usando apenas HTML/CSS com custom properties. Todos devem ter estado de foco visível e funcionar com teclado.

Exercício 12 — Web Component reutilizável avançado

Transforme o card de produto do Exercício 5 em um Web Component <card-produto> com atributos para título, preço e imagem, Shadow DOM e um slot para ações. Use-o 3 vezes com conteúdos diferentes na mesma página.

MÓDULO 7.0Avançado → Expert

Performance, arquitetura e segurança

O que separa o profissional sênior: não basta funcionar, tem que ser rápido, escalável e seguro. Este módulo é o que mais aparece em entrevistas de nível pleno e sênior.

7.1 Core Web Vitals — as métricas que o Google (e recrutadores) medem

MétricaMedeMeta (bom)
LCP (Largest Contentful Paint)Tempo até o maior elemento aparecer< 2,5s
INP (Interaction to Next Paint)Resposta à interação do usuário< 200ms
CLS (Cumulative Layout Shift)Estabilidade visual (pulos de layout)< 0,1

Como melhorar cada uma:

  • LCP: otimize imagens (AVIF/WebP), use fetchpriority="high" no herói, sirva de CDN, minimize CSS bloqueante.
  • INP: quebre tarefas longas de JS, use web workers para trabalho pesado, evite re-renders desnecessários.
  • CLS: reserve espaço com width/height e aspect-ratio; nunca insira conteúdo acima do que já está visível.

7.2 Estratégias de renderização

SiglaNomeMelhor para
CSRClient-Side RenderingApps internos, dashboards atrás de login
SSRServer-Side RenderingConteúdo dinâmico que precisa de SEO
SSGStatic Site GenerationBlogs, docs, marketing (mais rápido e barato)
ISRIncremental Static RegenerationE-commerce: estático + atualização periódica
RSCReact Server ComponentsReduzir JS enviado ao cliente (padrão emergente)

7.3 Otimização de carregamento

  • Code splitting — carregue só o JS da rota atual (import() dinâmico).
  • Tree shaking — o bundler remove código não usado.
  • Preload / preconnect — antecipe recursos críticos e conexões.
  • Cache e Service Workers — funcionamento offline e cargas instantâneas (PWA).
  • Debounce/throttle — limite a frequência de eventos caros (scroll, resize, digitação).

7.4 Segurança front-end essencial

  • XSS — nunca injete HTML de usuário sem sanitizar; prefira textContent a innerHTML.
  • CSP (Content Security Policy) — cabeçalho que restringe de onde scripts podem vir.
  • HTTPS sempre e cookies com HttpOnly, Secure, SameSite.
  • Nunca exponha chaves/segredos no front-end — eles são públicos por definição.
  • Dependências — audite pacotes (npm audit); a maior parte dos ataques hoje vem da cadeia de suprimentos.
Atenção

Validação no front-end é para experiência, nunca para segurança. Toda validação precisa ser refeita no back-end — o usuário (ou um atacante) pode burlar qualquer coisa no navegador.

7.5 Ferramentas de qualidade que times sérios usam

  • Lighthouse / PageSpeed — auditoria de performance, a11y, SEO.
  • ESLint + Prettier — padronização e prevenção de bugs.
  • Testes — Vitest/Jest (unidade), Playwright (end-to-end).
  • CI/CD — GitHub Actions rodando lint, testes e deploy automáticos.
Exercício 13 — Auditoria Lighthouse avançado

Rode o Lighthouse em um projeto seu. Anote as pontuações de Performance, Acessibilidade, Boas Práticas e SEO. Corrija os 3 maiores problemas apontados e documente o ganho — antes/depois é ótimo conteúdo de portfólio.

Exercício 14 — Eliminando CLS expert

Crie uma página com imagens e um banner que carrega via fetch. Meça o CLS, depois corrija reservando espaço com aspect-ratio e placeholders. Prove no DevTools (Performance → Layout Shifts) que o CLS caiu a zero.

MÓDULO 8.0Expert · o que muda tudo

IA no desenvolvimento e no design

A inteligência artificial não substituiu desenvolvedores e designers — mudou o que eles fazem. Este módulo é sobre trabalhar com IA para se tornar mais valioso, não obsoleto.

8.1 Como a IA está mudando o front-end

  • Escrever código deixou de ser o gargalo. Assistentes geram componentes, testes e refatorações em segundos. O gargalo virou saber o que pedir, revisar e integrar.
  • O valor migrou para cima. Arquitetura, decisões de produto, acessibilidade, performance e julgamento de qualidade — coisas que a IA sugere mas não garante.
  • Design-to-code encurtou a distância entre Figma e produção, tornando o perfil dev+design ainda mais estratégico.

8.2 Fluxo de trabalho assistido por IA (o novo normal)

  1. Especificar — você descreve intenção, restrições e critérios de aceitação com clareza.
  2. Gerar — a IA produz um rascunho (componente, layout, função, teste).
  3. Revisar criticamente — você audita: está acessível? seguro? performático? condiz com o design system?
  4. Integrar e testar — ajusta ao projeto real, roda testes, valida em navegadores.
  5. Iterar — refina com feedback específico.
Habilidade nova e valiosa: engenharia de contexto

A diferença entre um profissional que "usa IA" e um que alavanca IA está em dar bom contexto: fornecer o design system, os padrões do projeto, exemplos de código bom e critérios claros. Quem estrutura o contexto (com TypeScript, testes, componentes bem definidos) obtém resultados muito superiores. Isso é uma competência contratável em 2026.

8.3 Projetando para a era da IA

Interfaces conversacionais e generativas

Cada vez mais produtos têm um copiloto, busca semântica ou UI que se adapta ao usuário. Padrões de UX que você deve dominar:

  • Streaming de respostas — mostrar texto surgindo aos poucos reduz percepção de espera.
  • Estados de incerteza — IA erra; a interface precisa deixar revisar, corrigir e reverter.
  • Transparência — indicar quando o conteúdo é gerado por IA e permitir controle humano.
  • Skeletons e loaders inteligentes — respostas de IA têm latência variável; a UX precisa acomodar isso.

Sites legíveis por agentes

Uma mudança estrutural: parte do seu "usuário" agora é um agente de IA que navega, extrai informação e executa ações em nome de pessoas. Implicações práticas:

  • HTML semântico e dados estruturados (Schema.org / JSON-LD) tornam seu site operável por agentes.
  • Fluxos claros, formulários bem rotulados e estados previsíveis ajudam agente e humano igualmente.
  • Emergem convenções para expor capacidades e conteúdo a agentes de forma controlada — vale acompanhar, pois deve amadurecer em 2026.

8.4 O que a IA não faz (seu diferencial)

  • Entender o contexto de negócio e priorizar o que realmente importa para usuários reais.
  • Assumir responsabilidade por decisões de arquitetura, segurança e acessibilidade.
  • Garantir coerência de produto ao longo do tempo e entre equipes.
  • Ter gosto: julgar o que é bom, o que fica no lugar do que é possível.
No mercado

Vagas de 2026 pedem cada vez mais "proficiência com ferramentas de IA" ao lado dos fundamentos. Mas o candidato que se destaca é o que domina os fundamentos — porque só quem entende o que a IA gera consegue revisar, corrigir e responder por isso. IA amplifica quem sabe; expõe quem não sabe.

Exercício 15 — Componente com copiloto avançado

Peça a uma IA para gerar um componente de card. Depois, faça uma revisão crítica documentada: liste o que estava acessível, o que não estava, problemas de performance ou de design system, e reescreva as partes fracas. O documento de revisão é a peça de portfólio — mostra julgamento, não só uso.

Exercício 16 — Interface de chat com estados expert

Construa uma UI de chat (pode simular a resposta) com: streaming de texto caractere a caractere, indicador de "digitando", botão de parar geração, tratamento de erro e opção de regenerar. Respeite prefers-reduced-motion no efeito de streaming.

MÓDULO 9.0Futuro · 2026+

Tendências mapeadas para 2026 em diante

Um mapa das direções que estão se consolidando. A regra vale para todas: acompanhe, mas construa sobre fundamentos sólidos — modas passam, princípios ficam.

Como ler este módulo

Tendências são projeções, não certezas. Este material foi escrito com conhecimento até o início de 2026; adoção e detalhes podem mudar. Trate como bússola de estudo, não como verdade fixa — e verifique a maturidade de cada item antes de apostar em produção.

9.1 Tendências técnicas (código)

  • CSS cada vez mais poderoso — a plataforma nativa absorve o que antes exigia bibliotecas: scroll-driven animations, view transitions, :has(), container queries e novas primitivas de layout consolidam-se, reduzindo a dependência de JS.
  • Server Components e "menos JS" — a tendência é enviar menos JavaScript ao navegador, com renderização no servidor e ilhas de interatividade. Arquiteturas como RSC e "islands" ganham espaço.
  • Meta-frameworks maduros — a escolha migra de "qual framework" para "qual meta-framework" (Next, Nuxt, SvelteKit, Astro), com foco em performance e DX.
  • Build tooling mais rápido — ferramentas em Rust/Go (bundlers e toolchains de nova geração) tornam builds quase instantâneos.
  • TypeScript como padrão de fato — praticamente onipresente em vagas de nível pleno+.
  • WebAssembly — expande o que roda no navegador com desempenho quase nativo (edição de mídia, jogos, ferramentas pesadas).

9.2 Tendências de design (UI/UX)

  • Interfaces adaptativas e generativas — UIs que se ajustam ao contexto, à intenção e ao histórico do usuário, muitas vezes montadas dinamicamente com apoio de IA.
  • Design para multimodalidade — voz, texto, toque e câmera coexistindo; a tela deixa de ser o único canal.
  • Big/expressive typography e layouts editoriais — tipografia como protagonista, quebra de grid, mais personalidade e menos "template".
  • Motion com propósito — micro-interações e transições que orientam, viabilizadas nativamente por view transitions.
  • Dark mode e personalização como padrão — temas, densidade e preferências de acessibilidade como requisito, não extra.
  • Design ético e sustentável — acessibilidade real, redução de padrões manipulativos (dark patterns) e web de baixo consumo energético entram na pauta.
  • Espacial e 3D no navegador — WebGL/WebGPU e cenas 3D leves para produtos e portfólios que querem se destacar.

9.3 Tendências de processo e carreira

  • Perfis híbridos valorizados — "product engineer", "design engineer", "UI engineer": quem cruza design, código e produto ganha protagonismo.
  • IA como colega de trabalho — fluência em ferramentas de IA vira requisito básico; o diferencial é o julgamento humano por cima.
  • Design tokens padronizados — o padrão W3C de Design Tokens aproxima ainda mais design e engenharia.
  • Foco renovado em fundamentos — com IA gerando o trivial, dominar HTML, CSS, acessibilidade e performance volta a ser o que separa profissionais.
Estratégia de estudo à prova de futuro

Divida seu tempo: ~70% em fundamentos que quase não mudam (HTML semântico, CSS, acessibilidade, JS, princípios de design, arquitetura), ~20% no ecossistema atual do seu nicho (um framework, um meta-framework) e ~10% explorando o emergente. Assim você surfa tendências sem ser levado por elas.

MÓDULO 10Carreira

Carreira e mercado de trabalho

Conhecimento técnico abre a porta; posicionamento consegue a vaga. Este módulo é o mapa prático para transformar o que você aprendeu em uma carreira.

10.1 Trilhas de carreira dev + design

CargoFocoCombina bem com este material?
Front-end DeveloperImplementação de interfacesSim — base completa
UI Engineer / Design EngineerPonte entre design e código, design systemsIdeal — é o seu perfil
UI/UX DesignerPesquisa, fluxos, protótiposSim, com aprofundamento em pesquisa
Product EngineerProduto ponta a ponta em times enxutosÓtimo — dev+design é diferencial

10.2 Portfólio que contrata

Recrutadores olham portfólio antes do currículo. O que faz diferença:

  • 3 a 5 projetos fortes valem mais que 15 fracos. Qualidade sobre quantidade.
  • Estudos de caso, não só telas — mostre o problema, suas decisões, alternativas descartadas e o resultado. Processo > pixel.
  • Diversidade proposital — um app com estado, um site institucional performático, um componente/design system, um projeto com IA.
  • Código no GitHub — README claro, commits organizados, deploy funcionando (Vercel/Netlify/GitHub Pages).
  • O próprio site do portfólio é sua maior peça: acessível, rápido (Lighthouse 90+) e com personalidade.
Projetos deste material que viram portfólio

Vários exercícios aqui já são peças de portfólio: o redesign com hierarquia (Ex. 7), a auditoria de heurísticas (Ex. 8), a mini biblioteca de componentes no Storybook (Ex. 11–12), a auditoria de performance (Ex. 13) e a revisão crítica de código gerado por IA (Ex. 15). Documente cada um como estudo de caso.

10.3 Currículo e presença profissional

  • Currículo de 1 página, focado em resultados ("reduzi o LCP de 4s para 1,8s"), não em lista de tecnologias soltas.
  • LinkedIn atualizado; publique aprendizados — visibilidade gera oportunidade.
  • GitHub ativo diz mais que qualquer declaração de habilidade.
  • Contribua para open source, mesmo que pequeno (documentação, correções): prova colaboração real.

10.4 Preparação para entrevistas técnicas

  • Fundamentos — box model, especificidade CSS, event loop, closures, diferença entre == e ===, o que é o DOM.
  • Live coding — pratique construir um componente do zero pensando em voz alta; comunicar o raciocínio conta mais que acertar de primeira.
  • Acessibilidade e performance — cada vez mais cobradas; saber falar de Core Web Vitals e WCAG impressiona.
  • Perguntas de sistema/design (pleno+) — "como você estruturaria um design system?", "como otimizaria uma listagem com 10 mil itens?".
  • Comportamentais — use o método STAR (Situação, Tarefa, Ação, Resultado).

10.5 Freelance e primeiros clientes

  • Comece por negócios locais sem presença digital decente — problema real, resultado visível.
  • Precifique por valor/projeto, não por hora, quando puder.
  • Contrato simples sempre: escopo, prazo, valor, número de revisões.
  • Todo cliente satisfeito = depoimento + case novo no portfólio.
Plano de 90 dias sugerido

Dias 1–30: solidifique HTML semântico, CSS moderno e JS (Módulos 2, 3, 5) construindo pequenos projetos.
Dias 31–60: aprofunde design (Módulo 4), componha um framework (Módulo 6) e monte 2 projetos de portfólio.
Dias 61–90: performance e a11y (Módulo 7), integre fluxo com IA (Módulo 8), finalize portfólio, ajuste currículo/LinkedIn e comece a aplicar.

MÓDULO 11Capstone

Projetos-desafio (capstone)

Três projetos completos que reúnem tudo. Cada um foi desenhado para virar uma peça central de portfólio e provar competências que recrutadores procuram.

Projeto A — Landing page de produto (dev + design + performance)

Objetivo: uma landing page real, do design ao deploy.

  • Design no Figma com escala tipográfica, sistema de 8px e paleta com contraste AA.
  • HTML semântico, CSS moderno (grid, container queries, variáveis), zero framework.
  • Uma animação com propósito (scroll-driven ou view transition).
  • Meta: Lighthouse 95+ em todas as categorias; LCP < 2s; CLS 0.
  • Deploy público + estudo de caso documentando decisões.

Projeto B — App com estado e API (JS/framework + UX)

Objetivo: uma aplicação interativa que consome dados reais.

  • Ex.: painel de clima, buscador de filmes, gestor de tarefas com categorias.
  • Três estados sempre tratados: carregando, erro, vazio.
  • Roteamento, componentes reutilizáveis e estado bem organizado.
  • Acessível por teclado e leitor de tela; responsivo de 320px a 1440px.
  • Bônus: TypeScript e ao menos um teste automatizado.

Projeto C — Mini Design System com IA no fluxo (o diferencial)

Objetivo: demonstrar o perfil dev+design de ponta.

  • 8–10 componentes com tokens compartilhados (cor, espaço, tipo) e estados completos.
  • Documentação viva no Storybook, com diretrizes de uso.
  • Todos os componentes acessíveis por padrão (foco visível, ARIA quando necessário).
  • Use IA para acelerar a geração e documente sua revisão crítica de cada saída.
  • Escreva um README explicando a governança (versionamento, como contribuir).
Por que estes três

Juntos, cobrem o tripé que uma vaga de front-end/design engineer avalia: craft visual (Projeto A), lógica e dados (Projeto B) e escala/sistematização (Projeto C). Um portfólio com esses três responde, na prática, a quase toda pergunta de entrevista.

MÓDULO 12Referência

Glossário

Termos que você vai encontrar em documentações, vagas e entrevistas — em ordem alfabética.

Acessibilidade (a11y)
Práticas que tornam a web utilizável por todas as pessoas, incluindo usuários de tecnologias assistivas.
ARIA
Atributos que descrevem papéis e estados a tecnologias assistivas quando o HTML nativo não é suficiente.
Bundler
Ferramenta que empacota e otimiza módulos JS/CSS para produção (ex.: Vite, esbuild, Turbopack).
Cascade Layers (@layer)
Recurso CSS que organiza a cascata em camadas nomeadas, controlando prioridade sem "guerra de especificidade".
CDN
Rede de servidores distribuídos que entrega arquivos a partir do ponto mais próximo do usuário.
CLS
Cumulative Layout Shift: métrica de estabilidade visual; mede "pulos" inesperados de layout.
Container Query
Estilo condicional baseado no tamanho do contêiner do elemento, não da tela.
Core Web Vitals
Conjunto de métricas do Google (LCP, INP, CLS) para experiência do usuário.
CSR / SSR / SSG / ISR
Estratégias de renderização: no cliente, no servidor, estática e estática incremental.
Design System
Conjunto de tokens, componentes, documentação e regras que garante consistência de produto.
Design Tokens
Decisões de design nomeadas (cores, espaços, tipos) reutilizáveis entre design e código.
DOM
Document Object Model: representação em árvore do HTML que o JS manipula.
Flexbox / Grid
Sistemas de layout CSS para uma dimensão (Flexbox) e duas dimensões (Grid).
:has()
Seletor CSS relacional que estiliza um elemento com base em seus descendentes ("seletor de pai").
INP
Interaction to Next Paint: mede a rapidez com que a interface responde a interações.
Islands Architecture
Padrão que hidrata apenas partes interativas da página, mantendo o resto estático.
LCP
Largest Contentful Paint: tempo até o maior elemento de conteúdo ficar visível.
PWA
Progressive Web App: site com capacidades de app (offline, instalável) via Service Workers.
RSC
React Server Components: componentes renderizados no servidor que reduzem o JS enviado ao cliente.
Shadow DOM
Encapsulamento de estrutura e estilo dentro de um Web Component.
Skeleton
Placeholder que simula o layout enquanto o conteúdo real carrega.
SPA / MPA
Single-Page Application (uma página que troca conteúdo via JS) vs Multi-Page Application.
Storybook
Ferramenta para desenvolver e documentar componentes de UI isoladamente.
Tree shaking
Remoção automática de código não utilizado durante o build.
TypeScript
Superset de JavaScript com tipagem estática; padrão de mercado em projetos sérios.
View Transitions API
API que anima transições entre estados e páginas de forma nativa.
WCAG
Web Content Accessibility Guidelines: diretrizes internacionais de acessibilidade (níveis A, AA, AAA).
WebAssembly (Wasm)
Formato binário que roda no navegador com desempenho quase nativo.
Web Component
Componente reutilizável nativo do navegador (Custom Elements + Shadow DOM + templates).
XSS
Cross-Site Scripting: injeção de scripts maliciosos; mitigada por sanitização e CSP.