WDD 231: Desenvolvimento Frontend para Web I

S01 - Tarefa: Página Inicial do Site

Visão Geral

Esta tarefa demonstra seu conhecimento prévio com uso de HTML, CSS e JavaScript para o design e desenvolvimento da página inicial do site.

Tarefa

Crie e desenvolva sua página usando o exemplo a seguir como guia para o layout e o conteúdo. A página deve atender aos padrões do curso, ser responsiva e passar nos testes de acessibilidade, melhores práticas e SEO das auditorias do Lighthouse do DevTools.

Capturas de Tela
Captura de Tela da Página de Exemplo
Exemplo de Página Inicial – Desktop
Captura de Tela da Página de Exemplo
Exemplo de Página Inicial – Dispositivo Móvel

Instruções

Configuração de Arquivo e Pasta

  1. No VS Code, abra a pasta wdd231 que você clonou da sua conta do GitHub durante a atividade Configuração: Hospedagem no GitHub.
  2. Crie uma página inicial padrão para esse repositório, assim, quando for publicada no GitHub, seja renderizada em https://nome-de-usuario.github.io/wdd231. Qual deve ser o nome deste arquivo?
    Avalie Seu Conhecimento
    index.html
  3. Crie pastas de suporte, com nomes apropriados, para arquivos de imagens, CSS e JavaScript.
    Essas subpastas devem ser colocadas no diretório raiz, wdd231.
    Avalie Seu Conhecimento
    • As imagens serão armazenadas em uma pasta chamada imagens
    • Os arquivos CSS serão armazenados em uma pasta chamada estilos
    • Os arquivos JavaScript serão armazenados em uma pasta chamada scripts

    Reveja a atividade de aprendizagem Convenções de Nomenclatura.

    Observe que as palavras diretório e pasta têm essencialmente o mesmo significado. Diretório é o termo mais preciso para sistemas de arquivos, enquanto "pasta" 📂 se refere à metáfora gráfica que é geralmente aceita porque está relacionada ao termo "arquivo" no mundo organizado.

  4. Adicione os arquivos CSS conforme necessário. Você deverá escrever seu próprio arquivo CSS personalizado neste curso. Frameworks e bibliotecas não são permitidos. A tarefa exige que você crie um layout responsivo para todas as larguras de tela, de 320 px para mais. Para esta aula, você pode usar um arquivo normalize.css de normalização (reset) de CSS. A aula exige que você use um arquivo telas-pequenas.css seguido de um arquivo telas-grandes.css. O arquivo css para telas grandes deve conter um Media Query (sem tradução para o português, está relacionado à adaptação de tamanhos de telas).
  5. Adicione vários arquivos JavaScript conforme necessário. Por exemplo, crie arquivos para dar suporte à navegação responsiva (navegacao.js), datas (data.js) e cartões de informações do curso (curso.js). Faça referência a eles em head, usando o método de atributo defer. À medida que você avançar neste curso, você precisará adicionar mais arquivos JS. Carregue somente os arquivos necessários para cada página.

HTML

  1. Adicione a estrutura padrão do documento HTML ao documento.
  2. Adicione os elementos necessários a <head>, incluindo o title, meta description e meta author.
  3. Use HTML semântico para criar a estrutura básica do layout da página.
    Use um elemento header, um nav, um main e um footer.
  4. Adicione o conteúdo conforme mostrado nas capturas de tela de exemplo acima.
  5. Observe que todas as imagens usadas em suas páginas devem ser otimizadas.

    Nesta classe, o limite de tamanho de cada imagem é de 125 kB.

  6. A tag <header> precisa conter um logotipo do site (usando um arquivo svg) e seu nome renderizado com uma tag <span> e um ícone de hambúrguer em telas pequenas.
  7. O menu de navegação responsivo <nav> contém três links:
    • Página Inicial – esta página atual.
    • Projeto da Câmara – terá um link para o projeto do site da câmara de comércio (semana 02).
    • Projeto Final – terá link para o projeto final (semana 06).
  8. O elemento <main> contém o seguinte:
    • Página Inicial renderizada com uma tag <h1>.
    • Três tags <section> com títulos <h2>, conforme mostrado nas capturas de tela de exemplo acima.
  9. O elemento <footer> tem três itens.
    1. O primeiro item é uma série de links de mídia social, incluindo GitHub e LinkedIn, mais um ou dois da sua escolha. Esses ícones devem estar vinculados ao seu repositório do GitHub e à sua conta do LinkedIn.
    2. A próxima linha contém o seguinte:
      • o símbolo de direitos autorais e o ano atual, escritos dinamicamente usando JavaScript
        Avalie Seu Conhecimento

        Em HTML, forneça um espaço reservado que possa ser facilmente selecionado usando JavaScript.

        Exemplo: <span id="anoAtual"></span>

      • seu nome
      • seu estado ou país
    3. O segundo parágrafo tem um id de "ultimaModificacao" e será preenchido dinamicamente, com código JavaScript.

CSS

  1. Ao estilizar e definir o layout da sua página, certifique-se de que os seguintes princípios de web design e práticas recomendadas sejam atendidos.
    • São utilizados princípios de design apropriados de proximidade, alinhamento, repetição e contraste. Aprenda mais sobre esse tema no artigo Princípios fundamentais do design gráfico do Clube do Design.
    • Não há rolagem horizontal em visualizações entre 320 px e 1200 px de largura.
    • O texto não encosta na borda da tela, causando um erro de tangente visual.
    • Qualquer sobreposição de texto com imagens, outros elementos ou outro texto/conteúdo é legível e não transborda em visualizações menores.
    • Não há tremores (twitching) na navegação ao passar o mouse.
    • As imagens não são comprimidas nem distorcidas quando a página é redimensionada.
    • As imagens não são muito grandes a ponto de causar pixelização.
  2. Use seu próprio esquema de cores e opções de tipografia.
  3. Use a Google Fonts API - (conteúdo em inglês) para selecionar uma família de fontes para usar nesta página. Abordamos isso na semana 01 de WDD131, caso você precise se lembrar do Google Fonts
  4. A navegação responsiva deve oferecer suporte aos seguintes recursos:

    O design responsivo inclui proporcionar ao usuário uma experiência positiva de legibilidade, usabilidade, acessibilidade e apelo visual que se adapta ao dispositivo do usuário por tamanho, orientação e resolução.

    • navegação tipo hambúrguer em tela pequena
    • navegação horizontal em tela grande, usando CSS Flex
    • orientação do usuário
    • efeito hover (foco ao passar o mouse) para itens de menu
  5. Seu design não pode ter apenas um layout simples de uma coluna (layout de fluxo padrão) em todas as visualizações para garantir consideração total de crédito.

JavaScript

  1. Faça referência aos arquivos JavaScript usando uma referência <script> no elemento head do arquivo HTML e usando o atributo defer.

    Visite o site da MDN para saber por que o atributo booleano defer é importante.

  2. Use JavaScript para dar suporte ao menu responsivo.
  3. Use JavaScript para gerar dinamicamente o seguinte:
    • o ano dos direitos autorais (ano atual) no primeiro parágrafo do rodapé

      Observe este resumo do CodePen do objeto Date.

    • a data em que o documento foi modificado pela última vez no segundo parágrafo

      Você pode usar a propriedade lastModified (última modificação) do objeto de documento para obter essa data/hora de forma dinâmica.

      Observe que document.lastModified retorna uma string simples. Portanto, você não precisa manipular sua saída.

  4. Copie este array de objetos do curso em um arquivo JavaScript: Array de Lista de Cursos

    Este array contém as informações do curso para os cursos obrigatórios que estão no primeiro certificado chamado Programação de Computadores e Web do Diploma de Bacharelado em Ciências Aplicadas - Desenvolvimento de Software.

  5. Modifique o conteúdo do array de cursos no seu arquivo script, alterando a propriedade completed (completado) para true (verdadeiro) se você tiver concluído um curso.
  6. Exiba dinamicamente todos os cursos na seção de certificados, conforme mostrado no exemplo acima. Os cursos que você concluiu devem ser marcados de forma diferente daqueles que não concluiu. Use o esquema de cores da sua página. A página deve se ajustar automaticamente se a fonte de dados mudar.
  7. Usando botões que respondem ao evento de clique, permita que o usuário selecione a exibição de Todos os Cursos, Cursos WDD ou Cursos CSE. Dica: Use o método filter de arrays.
    Demonstração da Saída da Interface do Usuário com Filtragem de Cursos
  8. Crie os cartões de curso para indicar os cursos que você concluiu em um estilo diferente e complementar em relação aos demais, indicando que foram finalizados.
  9. Forneça um número total de créditos necessários dinamicamente usando uma função reduce (não mostrada nas capturas de tela). O número de créditos exibidos deve refletir apenas os cursos que estão sendo exibidos no momento.

Teste

  1. Verifique continuamente seu trabalho carregando-o no seu navegador, usando o Servidor Local.
  2. Captura de tela do ícone de erro do console no DevTools
    Use o DevTools do navegador para verificar erros de tempo de execução do JavaScript no console ou clique no ícone vermelho de erro no canto superior direito do DevTools.
    "DevTools" é uma abreviação de "Developer Tools" (Ferramentas do Desenvolvedor) do navegador. Refere-se a um conjunto de ferramentas ou utilitários fornecidos pelos navegadores da web para ajudar os desenvolvedores a depurar, criar perfis e analisar páginas da web durante o processo de desenvolvimento. As ferramentas podem ser acessadas pressionando a tecla de função F12, Ctrl+Shift+I, ou selecionando as ferramentas do desenvolvedor no menu do navegador.
  3. Use Visão geral do CSS: identifique possíveis melhorias no CSS do site Chrome DevTools para verificar o contraste de cores.
  4. Gere o relatório do Lighthouse do DevTools e execute diagnósticos de Acessibilidade, Melhores Práticas e SEO nas visualizações de dispositivos móveis e Desktop.

    Use o modo Privado ou Anônimo para testar sua página ao usar o Lighthouse. O padrão é atingir uma pontuação de 95+ em cada uma dessas categorias.

Envio e Auditoria

  1. Adicione, confirme, envie e sincronize as alterações do seu trabalho local com o repositório wdd231 habilitado para o GitHub Pages.

    Sequência do fluxo comum do Git:
    add → adiciona as mudanças ao staging area
    commit → confirma as mudanças localmente
    push → envia as mudanças para o repositório remoto
    pull → baixa e sincroniza com o repositório remoto

  2. Use esta ferramenta de ☑️ Auditoria de Páginas para verificar se seu trabalho contém alguns dos elementos HTML e conteúdo CSS necessários. A ferramenta de auditoria também é usada pela equipe de avaliação.
  3. Volte ao Canvas e envie seu URL habilitado para GitHub Pages para wdd231, por exemplo,
    https://nome-de-usuario.github.io/wdd231

    Você não precisa incluir index.html na referência de URL porque index.html é o arquivo padrão retornado em uma solicitação de pasta no GitHub Pages.