Sebenta · Implementar interfaces interativas (UC04377)
- Introdução
- 1. Interfaces interativas: visão geral
- 2. HTML: a estrutura da interface
- 3. CSS: estilo e layout
- 4. JavaScript: interatividade e correção de bugs
- 5. Frameworks
- 6. Princípios de composição e layout
- 7. Tipografia, cor, texto e imagens
- 8. Wireframes, mockups e design UX
- 9. Design responsivo
- 10. Prototipagem, testes de usabilidade e publicação
- Erros comuns
- Glossário
- Síntese
- Exercícios resolvidos
Introdução
Esta sebenta ensina a construir uma interface interativa de raiz: desde a análise dos requisitos até à publicação para diferentes suportes. Uma interface interativa é o ponto de contacto entre uma pessoa e um produto digital, seja um site, uma app móvel ou um sistema interno. É construída em três camadas técnicas, HTML, CSS e JavaScript, e moldada por princípios de design visual e de experiência do utilizador (UX).
O percurso desta UC segue quatro etapas, que são também as quatro realizações do referencial oficial: analisar o layout e os requisitos, montar o protótipo, testar e ajustar a usabilidade, e publicar a interface para diferentes suportes. É o mesmo ciclo que qualquer profissional de front-end ou de UX/UI segue numa agência digital, numa empresa de software ou a trabalhar como freelancer.
Objetivos de aprendizagem (referencial): diferenciar tipos de linguagem para interfaces web (HTML, CSS, JavaScript) e tipos de frameworks; caracterizar princípios de composição e hierarquia visual; definir o layout para uma interface; diferenciar ferramentas de wireframes e mockups; aplicar os princípios de design UX e de design responsivo; usar ferramentas de prototipagem; efetuar testes de usabilidade; corrigir bugs e problemas de desempenho; usar ferramentas para gerar interfaces para diferentes dispositivos; aplicar as normas de segurança, saúde no trabalho e proteção ambiental.
1. Interfaces interativas: visão geral
Uma interface interativa é a camada com que a pessoa utilizadora comunica com uma aplicação. Não é apenas um ecrã bonito: é um sistema que responde a comandos, guia a navegação e entrega informação de forma clara.
O referencial organiza o trabalho em três camadas de linguagem:
| Camada | Linguagem | Responsabilidade |
|---|---|---|
| Estrutura | HTML | organizar o conteúdo em elementos com significado |
| Estilo | CSS | definir cores, tipografia, espaçamentos, layout |
| Interatividade | JavaScript | reagir a eventos, validar dados, atualizar o ecrã |
Estas três camadas não são independentes: uma interface real é sempre o resultado da combinação das três. Um site sem CSS é ilegível; um site sem JavaScript é surdo aos comandos do utilizador; um site sem HTML semântico é difícil de indexar e de tornar acessível.
Onde se trabalha com interfaces interativas
O referencial identifica três contextos profissionais principais: agências digitais (design, desenvolvimento e marketing digital), empresas de desenvolvimento de software, e o exercício como profissional liberal/freelancer. Em qualquer um destes contextos, o ciclo de trabalho é o mesmo: analisar, montar, testar e publicar.
Critérios de desempenho que atravessam toda a UC
Cinco critérios definem o que é uma interface bem implementada, e vão aparecer repetidamente ao longo desta sebenta:
- Resposta rápida e eficiente aos comandos do utilizador.
- Navegação rápida e eficiente na interface.
- Consistência dos elementos visuais em toda a interface.
- Adaptação adequada a diferentes tamanhos de ecrã.
- Ausência de redundâncias e excessos.
Vale a pena memorizar estes cinco pontos: são o critério com que qualquer interface produzida nesta UC deve ser avaliada.
2. HTML: a estrutura da interface
O HTML (HyperText Markup Language) organiza o conteúdo em elementos identificados por tags. Cada tag comunica um significado: um título é <h1>, um parágrafo é <p>, uma lista é <ul> ou <ol>.
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="UTF-8">
<title>Interface de exemplo</title>
</head>
<body>
<header>
<h1>Loja de artesanato</h1>
<nav>
<a href="#produtos">Produtos</a>
<a href="#contactos">Contactos</a>
</nav>
</header>
<main>
<section id="produtos">
<h2>Os nossos produtos</h2>
<p>Peças únicas, feitas à mão.</p>
</section>
</main>
<footer>© 2026 Loja de artesanato</footer>
</body>
</html>
Tags semânticas vs genéricas
Uma das decisões mais importantes ao estruturar HTML é escolher entre tags semânticas (que descrevem o significado) e tags genéricas (<div>, <span>, que não dizem nada sobre o conteúdo).
| Tag semântica | Significado |
|---|---|
<header> |
cabeçalho da página ou secção |
<nav> |
bloco de navegação |
<main> |
conteúdo principal, único por página |
<article> |
conteúdo autónomo (post, notícia) |
<section> |
agrupamento temático de conteúdo |
<footer> |
rodapé |
<aside> |
conteúdo secundário, relacionado |
Usar tags semânticas melhora a acessibilidade (leitores de ecrã percebem a estrutura), o SEO (motores de busca entendem melhor a página) e a manutenção (o código lê-se como um documento organizado).
Formulários: a porta de entrada de dados
Os formulários HTML recolhem informação do utilizador: nome, email, mensagem, escolhas.
<form>
<label for="nome">Nome</label>
<input type="text" id="nome" name="nome" required>
<label for="email">Email</label>
<input type="email" id="email" name="email" required>
<label for="mensagem">Mensagem</label>
<textarea id="mensagem" name="mensagem"></textarea>
<button type="submit">Enviar</button>
</form>
Repara em três detalhes que fazem a diferença entre um formulário amador e um profissional: o <label for="..."> associado ao id do campo (essencial para acessibilidade e para que clicar no texto foque o campo); o atributo type="email", que já valida o formato sem uma linha de JavaScript; e o atributo required, que impede o envio de campos vazios.
Exemplo resolvido: estruturar um cartão de produto
Problema: criar em HTML a estrutura de um cartão de produto com imagem, nome, preço e botão de compra.
Passo 1: identificar os elementos: imagem, título, preço, botão. Nenhum destes tem uma tag semântica própria específica de "produto", por isso usa-se <article> para representar um item autónomo, repetível.
Passo 2: escrever a estrutura:
<article class="cartao-produto">
<img src="tapecaria.jpg" alt="Tapeçaria artesanal em lã, tons terra">
<h3>Tapeçaria em lã</h3>
<p class="preco">34,90 €</p>
<button>Adicionar ao carrinho</button>
</article>
Passo 3: validar: o alt da imagem descreve o conteúdo (não apenas "imagem de produto"); o preço está num <p> com uma classe para estilo posterior; o botão é <button>, não uma <div> clicável (o <button> já é acessível por teclado por natureza).
3. CSS: estilo e layout
O CSS (Cascading Style Sheets) aplica estilo aos elementos HTML: cor, tipografia, espaçamento, posicionamento.
.cartao-produto {
border: 1px solid #e2e2e2;
border-radius: 12px;
padding: 16px;
text-align: center;
}
.cartao-produto img {
width: 100%;
border-radius: 8px;
}
.preco {
font-weight: bold;
color: #2563eb;
}
A cascata e o box model
O nome "Cascading" vem da forma como os estilos se combinam: quando há regras em conflito, ganha a mais específica, ou, em empate, a última declarada no ficheiro. Compreender a cascata evita o hábito (mau) de resolver tudo com !important.
Todo o elemento HTML é, para o CSS, uma caixa (box model), composta por quatro camadas, de dentro para fora:
| Camada | O que é |
|---|---|
| content | o conteúdo em si (texto, imagem) |
| padding | espaço interno, entre o conteúdo e a borda |
| border | a linha à volta da caixa |
| margin | espaço externo, entre esta caixa e as vizinhas |
A maior parte dos problemas de "porque é que este espaçamento não bate certo" resolve-se voltando a este modelo e perguntando: é padding ou é margin?
Flexbox e Grid: os dois motores de layout
| Ferramenta | Melhor para | Ideia central |
|---|---|---|
| Flexbox | alinhamento em uma dimensão (linha ou coluna) | itens numa fila que se distribuem e alinham |
| Grid | organização em duas dimensões (linhas e colunas) | uma grelha explícita onde se posicionam os itens |
.galeria {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px;
}
.barra-navegacao {
display: flex;
justify-content: space-between;
align-items: center;
}
Estados, transições e feedback visual
O CSS também comunica que a interface reagiu a uma interação, mesmo antes de qualquer JavaScript:
:hover: o que acontece quando o rato passa por cima.:focus: destaque quando um campo ou botão está selecionado (essencial para navegação por teclado).:active: o momento exato do clique.transition: suaviza a mudança entre estados, em vez de um salto brusco.
.botao-principal {
background: #2563eb;
transition: background 0.2s ease, transform 0.1s ease;
}
.botao-principal:hover {
background: #1d4ed8;
transform: translateY(-1px);
}
Exemplo resolvido: uma barra de navegação responsiva
Problema: construir uma barra de navegação que, em desktop, mostra os links lado a lado, e que se mantém legível em ecrãs pequenos.
Passo 1: estrutura HTML:
<nav class="barra-navegacao">
<a href="#">Início</a>
<a href="#">Produtos</a>
<a href="#">Contactos</a>
</nav>
Passo 2: layout base com Flexbox:
.barra-navegacao {
display: flex;
gap: 24px;
padding: 16px;
}
Passo 3: adaptar a ecrãs pequenos com flex-wrap, para que os links passem para a linha seguinte em vez de saírem do ecrã:
@media (max-width: 480px) {
.barra-navegacao {
flex-wrap: wrap;
gap: 12px;
}
}
Resultado: em desktop os links ficam numa fila; em telemóvel, se não couberem, quebram para uma segunda linha, sem barra de deslize horizontal nem texto cortado.
4. JavaScript: interatividade e correção de bugs
O JavaScript é a camada que torna a interface reativa: lê e altera o HTML em tempo real, em resposta a eventos.
const formulario = document.querySelector("form");
formulario.addEventListener("submit", (evento) => {
evento.preventDefault();
const email = document.querySelector("#email").value;
if (!email.includes("@")) {
alert("Introduz um email válido.");
return;
}
alert("Formulário enviado com sucesso!");
});
O DOM: a ponte entre HTML e JavaScript
O DOM (Document Object Model) é a representação em árvore do HTML que o JavaScript consegue ler e modificar. document.querySelector() procura um elemento; .addEventListener() regista uma função para correr quando um evento acontece (click, submit, input, scroll, entre outros).
Corrigir bugs e problemas de desempenho
O referencial pede explicitamente a capacidade de corrigir bugs e problemas de desempenho no código. Um método simples e eficaz:
- Reproduzir o erro de forma consistente.
- Isolar: comentar ou remover código até encontrar a linha responsável.
- Ler a consola (DevTools do browser): a mensagem de erro indica normalmente o ficheiro, a linha e o tipo de problema.
- Corrigir uma coisa de cada vez e testar de novo antes de avançar.
| Sintoma | Causa provável |
|---|---|
undefined is not a function |
a variável não é o que se pensava, ou o script correu antes do HTML carregar |
| Botão não responde ao clique | addEventListener a apontar para um elemento que ainda não existia no DOM |
| Interface lenta a reagir | demasiados eventos a disparar a mesma função repetidamente, ou imagens/scripts pesados |
Exemplo resolvido: validar um formulário passo a passo
Problema: impedir o envio de um formulário de contacto se o campo de email estiver vazio ou mal formatado.
Passo 1: capturar o evento de submissão e impedir o comportamento padrão (que recarregaria a página):
formulario.addEventListener("submit", (evento) => {
evento.preventDefault();
Passo 2: ler o valor do campo:
const email = document.querySelector("#email").value.trim();
Passo 3: validar com uma condição simples (uma validação completa usaria uma expressão regular, mas uma verificação básica já evita a maioria dos erros):
if (email === "" || !email.includes("@")) {
mostrarErro("Introduz um email válido.");
return;
}
Passo 4: se passar na validação, dar feedback positivo e (num caso real) enviar os dados:
mostrarSucesso("Mensagem enviada. Obrigado!");
});
Resultado: o utilizador nunca consegue submeter um formulário claramente inválido, e recebe sempre uma resposta visível, seja de erro seja de sucesso: o que cumpre diretamente o critério de "resposta rápida e eficiente aos comandos do utilizador".
5. Frameworks
Um framework é um conjunto de ferramentas, regras e componentes prontos que aceleram o desenvolvimento e garantem consistência.
| Tipo de framework | Função | Exemplos |
|---|---|---|
| CSS framework | grelhas e componentes visuais prontos | Bootstrap, Tailwind CSS |
| JS framework/biblioteca | interfaces reativas, gestão de estado | React, Vue, Angular |
| Ferramenta de prototipagem | protótipos navegáveis sem código de produção | Figma, Adobe XD |
Quando usar (ou não usar) um framework
- Um site institucional pequeno e maioritariamente estático não precisa de React: HTML/CSS puro, ou um framework CSS leve, resolve com menos complexidade.
- Uma aplicação com muitos estados (carrinho de compras, dashboard com dados em tempo real) beneficia de um framework JS, que gere automaticamente a atualização da interface quando os dados mudam.
- Ferramentas de prototipagem móvel (Figma, Adobe XD) servem para validar o design antes de escrever código, e não substituem o desenvolvimento real.
A escolha certa nasce sempre da análise de requisitos, a primeira realização desta UC, e não da popularidade da ferramenta.
6. Princípios de composição e layout
Composição visual
O referencial pede a capacidade de caracterizar princípios de composição e hierarquia visual. Estes princípios vêm do design gráfico clássico e aplicam-se diretamente a interfaces digitais:
| Princípio | O que significa |
|---|---|
| Equilíbrio | distribuição harmoniosa do "peso" visual (cor, tamanho, texto) |
| Ritmo | repetição de padrões (espaçamentos, formas) que cria previsibilidade |
| Proporção | relação de tamanho entre elementos, coerente com a sua importância |
| Hierarquia visual | uso de tamanho, cor e posição para indicar o que é mais importante |
| Foco visual | um ponto de entrada claro que guia o primeiro olhar |
| Perspetiva | profundidade e camadas (sombra, sobreposição) |
Layout: estrutura e elementos
O layout organiza estes princípios no espaço da página:
- A grelha (grid) garante alinhamento consistente entre secções.
- Os elementos estruturais típicos são cabeçalho, navegação, conteúdo principal, barra lateral e rodapé.
- O espaço em branco (whitespace) não é espaço desperdiçado: separa grupos de informação e dá "respiração" à leitura.
Exemplo resolvido: aplicar hierarquia visual a uma página de destino
Problema: uma página de destino (landing page) tem título, subtítulo, três parágrafos de texto corrido e um botão de ação, todos com o mesmo tamanho de letra. O cliente queixa-se de que "ninguém sabe o que fazer" na página.
Passo 1: diagnosticar: sem hierarquia, tudo compete pela mesma atenção; o olho não sabe por onde começar.
Passo 2: aplicar hierarquia por tamanho e peso:
| Elemento | Antes | Depois |
|---|---|---|
| Título | 16px, normal | 40px, bold |
| Subtítulo | 16px, normal | 20px, normal, cor secundária |
| Texto corrido | 16px | 16px (mantém-se, é a base) |
| Botão de ação | 16px, sem destaque | 18px, fundo de cor, bem visível |
Passo 3: aplicar foco visual: o botão de ação ganha uma cor de destaque que não é usada em mais nenhum outro elemento da página, para que seja inequívoco o que se espera que o utilizador faça.
Resultado: a mesma informação, reorganizada por hierarquia, resolve a queixa sem acrescentar uma única palavra de texto.
7. Tipografia, cor, texto e imagens
Tipografia
- Limitar a 2-3 famílias tipográficas por interface (por exemplo, uma para títulos, outra para corpo de texto).
- Definir uma escala tipográfica clara: títulos, subtítulos, corpo, legendas, cada um com um tamanho definido.
- A altura de linha (
line-height) recomendada para corpo de texto ronda 1,4 a 1,6 vezes o tamanho da letra, para não "esmagar" as linhas.
Cor
- Definir uma paleta: cor primária (ação, identidade), cor secundária (apoio), neutros (fundos, texto).
- O contraste entre texto e fundo é uma questão de legibilidade e de acessibilidade: texto claro sobre fundo claro é ilegível, por mais bonito que pareça no ecrã de quem desenha.
Texto: composição, tratamento e ritmos de leitura
- Composição: parágrafos curtos, títulos claros, listas em vez de blocos densos de texto.
- Tratamento: negrito para destacar palavras-chave, sem exagerar (texto todo em negrito perde o efeito de destaque).
- Ritmos de leitura: em páginas web, o olhar tende a seguir padrões em "F" ou em "Z"; o conteúdo mais importante deve estar nesses percursos, tipicamente no topo e à esquerda.
Imagens
- Escolher imagens de bancos de imagem, sons e vídeos com licença adequada.
- Otimizar o peso do ficheiro: uma imagem pesada atrasa diretamente a resposta da interface.
- Preencher sempre o texto alternativo (alt): acessibilidade para leitores de ecrã e melhor indexação em motores de busca.
- Escolher o formato: JPEG para fotografia, PNG quando é preciso transparência, SVG para ícones e logótipos (escala sem perder qualidade).
8. Wireframes, mockups e design UX
Wireframes: baixa fidelidade
Um wireframe é um esboço de baixa fidelidade, sem cor nem conteúdo final, focado apenas na estrutura e disposição dos elementos. Serve para validar a organização da informação antes de investir tempo em design visual.
Mockups: alta fidelidade
Um mockup já tem cor, tipografia e imagens reais (ou muito próximas do final), mas normalmente ainda não é clicável. É o passo entre o esboço e o protótipo interativo.
| Etapa | Fidelidade | Clicável? | Ferramentas típicas |
|---|---|---|---|
| Wireframe | baixa | não | papel, Balsamiq, Figma |
| Mockup | alta | normalmente não | Figma, Adobe XD, Sketch |
| Protótipo | alta | sim | Figma, Adobe XD |
Design UX: conhecer o utilizador
O Design UX (user experience) começa por três perguntas:
- Quais são as necessidades do utilizador?
- Quais são os seus comportamentos ao navegar?
- Quais são as suas preferências, moldadas por outras interfaces que já usa?
Análise da concorrência e arquitetura de informação
- A análise da concorrência estuda interfaces semelhantes já existentes: o que funciona bem, o que falha, o que os utilizadores já esperam encontrar.
- A arquitetura de informação organiza o conteúdo em categorias lógicas e hierarquizadas.
- O mapa do site representa essa hierarquia em diagrama:
Início
├── Produtos
│ ├── Categoria A
│ └── Categoria B
├── Sobre nós
└── Contactos
- O fluxo de navegação descreve o caminho que o utilizador percorre para completar uma tarefa concreta (por exemplo: entrar no site → escolher um produto → adicionar ao carrinho → finalizar compra).
- O esquema de taxonomia é o sistema de categorias e etiquetas usado para organizar o conteúdo de forma coerente.
9. Design responsivo
O design responsivo garante que a interface se adapta a diferentes tamanhos e contextos: computador, tablet, telemóvel, ecrãs de alta resolução.
Princípios
- Unidades relativas (
%,rem,vw,vh) em vez de valores fixos em píxeis, para que os elementos escalem com o ecrã. - Media queries no CSS aplicam regras diferentes consoante a largura da janela:
/* Base: mobile-first */
.coluna {
width: 100%;
}
@media (min-width: 768px) {
.coluna {
width: 50%;
}
}
@media (min-width: 1024px) {
.coluna {
width: 33%;
}
}
- Mobile-first: desenhar primeiro para o ecrã pequeno e depois expandir, em vez de desenhar para desktop e "espremer" depois. Evita retrabalho e obriga a priorizar o essencial desde o início.
Breakpoints comuns
| Suporte | Largura aproximada |
|---|---|
| Telemóvel | até 480px |
| Tablet | até 768px |
| Desktop | a partir de 1024px |
| Ecrã grande / alta resolução | a partir de 1440px |
Cuidados específicos
- Menus: em ecrãs pequenos, transformam-se normalmente num menu "hambúrguer" (ícone que abre/fecha a navegação).
- Tabelas largas: precisam de scroll horizontal contido ou de reorganização em cartões empilhados.
- Alvos de toque: em ecrãs táteis, botões e links devem ter uma área mínima recomendada de cerca de 44px, para serem fáceis de tocar sem erro.
Exemplo resolvido: adaptar uma grelha de produtos
Problema: uma grelha de produtos mostra 4 colunas em desktop. Em telemóvel, as colunas ficam demasiado estreitas e o texto corta.
Passo 1: definir a base mobile-first, com 1 coluna:
.grelha-produtos {
display: grid;
grid-template-columns: 1fr;
gap: 16px;
}
Passo 2: adicionar breakpoints progressivos:
@media (min-width: 768px) {
.grelha-produtos { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
.grelha-produtos { grid-template-columns: repeat(4, 1fr); }
}
Passo 3: testar nos três breakpoints e confirmar que nenhum texto corta e nenhuma imagem distorce.
Resultado: a mesma grelha, com 1, 2 ou 4 colunas consoante o ecrã, sem duplicar HTML nem CSS específico para cada dispositivo.
10. Prototipagem, testes de usabilidade e publicação
Montar o protótipo
Montar o protótipo é a segunda realização do referencial: transformar o mockup estático em algo navegável.
- Definir os ecrãs necessários, a partir do mapa do site.
- Ligar os ecrãs com interações (clicar em X leva a Y).
- Adicionar microinterações: estados de hover, transições entre ecrãs.
- Rever a consistência visual: mesmas cores, tipografia e espaçamentos em toda a interface, o que cumpre diretamente o critério de desempenho correspondente.
Testar e ajustar a usabilidade
A terceira realização junta dois verbos que andam sempre juntos: testar e ajustar.
- Testes com utilizadores reais: observar alguém a tentar completar uma tarefa concreta, sem ajuda, e registar onde hesita ou falha.
- Testes extensivos: percorrer todos os fluxos previstos, em todos os suportes (desktop, tablet, telemóvel), antes de publicar.
- Ajustar significa corrigir bugs, melhorar desempenho, simplificar navegação e eliminar redundâncias e excessos: os cinco critérios de desempenho da UC, todos revistos nesta fase.
Publicar para diferentes suportes
Publicar é tornar a interface acessível ao público, confirmando que funciona em todos os contextos previstos:
- Web: alojamento, domínio, certificado HTTPS.
- Dispositivos móveis: site responsivo, PWA (aplicação web progressiva) ou app nativa distribuída em loja.
- Ecrãs de alta resolução: imagens e ícones que não perdem qualidade em ecrãs "retina"/HiDPI (por exemplo, usando SVG para ícones).
Checklist final antes de publicar
| Item | Confirmado? |
|---|---|
| Testado em desktop, tablet e telemóvel | |
| Imagens otimizadas e com texto alternativo | |
| Sem erros na consola do browser | |
| Formulários validam e dão feedback | |
| Navegação consistente, sem redundâncias | |
| Resposta rápida e percetível aos comandos |
Segurança, saúde no trabalho e proteção ambiental
O referencial inclui normas transversais que também fazem parte de uma boa prática profissional:
- Ergonomia: postura correta, altura do ecrã, pausas regulares.
- Segurança da informação: nunca expor palavras-passe ou dados sensíveis no código publicado.
- Proteção ambiental: código e imagens otimizados reduzem o consumo de dados e de energia, tanto do lado do servidor como da bateria dos dispositivos dos utilizadores.
Erros comuns
- Misturar
<div>genéricas onde deveria haver tags semânticas, o que prejudica acessibilidade e SEO. - Resolver conflitos de CSS com
!importantem vez de perceber a cascata e a especificidade dos seletores. - Manipular o DOM antes de a página terminar de carregar, provocando erros de "elemento não encontrado".
- Saltar diretamente para o design visual sem passar por wireframe, perdendo a validação barata da estrutura.
- Desenhar só para desktop e adaptar depois a mobile, em vez de seguir mobile-first.
- Testar apenas o "caminho feliz", ignorando o que acontece quando o utilizador comete um erro.
- Publicar sem repetir os testes depois de qualquer alteração de última hora.
- Encher a interface de elementos "porque cabem", ignorando o critério de evitar redundâncias e excessos.
Glossário
- HTML · linguagem de estrutura do conteúdo web.
- CSS · linguagem de estilo visual do conteúdo web.
- JavaScript · linguagem de comportamento e interatividade.
- DOM · representação em árvore do HTML, manipulável por JavaScript.
- Framework · conjunto de ferramentas e convenções que aceleram o desenvolvimento.
- Wireframe · esboço de baixa fidelidade da estrutura de uma interface.
- Mockup · representação de alta fidelidade, ainda não interativa.
- Protótipo · simulação navegável de uma interface, antes do código de produção.
- UX (user experience) · disciplina centrada na experiência do utilizador.
- UI (user interface) · disciplina centrada na aparência e interação da interface.
- Arquitetura de informação · organização lógica e hierárquica do conteúdo.
- Design responsivo · adaptação da interface a diferentes tamanhos de ecrã.
- Breakpoint · largura de ecrã a partir da qual o layout muda.
- Mobile-first · abordagem de desenho que começa pelo ecrã pequeno.
- Usabilidade · facilidade e eficiência de uso de uma interface.
- Bug · erro no código que provoca comportamento inesperado.
- PWA · aplicação web progressiva, instalável e com comportamento próximo do nativo.
Síntese
Uma interface interativa nasce da combinação de HTML (estrutura), CSS (estilo) e JavaScript (comportamento), moldada por princípios de composição visual, layout, tipografia, cor e imagens. O processo de design segue o percurso wireframe → mockup → protótipo, sustentado por design UX (conhecer o utilizador, a concorrência e a arquitetura de informação) e por design responsivo (adaptar a qualquer ecrã). O ciclo de produção fecha-se em quatro etapas: analisar requisitos, montar o protótipo, testar e ajustar a usabilidade, e publicar para diferentes suportes, sempre respeitando normas de segurança, saúde no trabalho e proteção ambiental.
Exercícios resolvidos
1. Classifica cada elemento HTML como semântico ou genérico: <div>, <nav>, <span>, <article>.
Resolução:
<div>e<span>são genéricos (sem significado próprio);<nav>e<article>são semânticos (descrevem o papel do conteúdo). Preferir os semânticos sempre que exista um equivalente adequado.
2. Um botão não reage ao clique, mesmo com addEventListener corretamente escrito. Qual é a causa mais provável?
Resolução: o script correu antes de o elemento existir no DOM. Solução: colocar o
<script>no fim do<body>, ou envolver o código num eventoDOMContentLoaded.
3. Uma página tem título, subtítulo e botão de ação todos com o mesmo tamanho de letra. Que princípio de composição está em falta, e como o corrigir?
Resolução: falta hierarquia visual. Corrige-se aumentando o tamanho e o peso do título, distinguindo o subtítulo por cor ou tamanho intermédio, e dando destaque próprio (cor de fundo, tamanho) ao botão de ação.
4. Explica a diferença entre wireframe, mockup e protótipo, com um exemplo de ferramenta para cada.
Resolução: o wireframe é um esboço de baixa fidelidade da estrutura, sem cor (ex.: papel ou Balsamiq); o mockup é uma versão de alta fidelidade, com cor e tipografia, mas normalmente não clicável (ex.: Figma); o protótipo é o mockup com ligações clicáveis entre ecrãs, simulando a navegação real (ex.: Figma em modo de prototipagem).
5. Uma equipa desenhou uma interface só para desktop e agora está a tentar "encaixá-la" em telemóvel, com dificuldade. Que abordagem deveria ter seguido desde o início?
Resolução: deveria ter seguido mobile-first: desenhar primeiro para o ecrã pequeno, definindo o essencial, e só depois expandir progressivamente com media queries para ecrãs maiores. Isto evita o retrabalho de "espremer" um design pensado só para desktop.
6. Numa fase de testes de usabilidade, três utilizadores não conseguiram encontrar o botão de contacto. O que se deve fazer a seguir?
Resolução: ajustar a interface: aumentar a visibilidade do botão (posição, cor, tamanho), simplificar a navegação até ele, e depois testar de novo com novos utilizadores para confirmar que o problema foi resolvido. Testar e ajustar é um ciclo, não um passo único.