Versão do Projeto: HTML, CSS e JavaScript
-
- Visual fiel ao Figma.
- Este é o ambiente padrão sem sistema de tradução.
- A cor ativa do menu está funcionando corretamente.
-
- Este é o ambiente padrão sem sistema de tradução.
- A cor ativa do menu não está aplicada.
-
🌍 Com sistema de tradução | ✅ Menu com cor ativa ON
- Tradução funcionando.
- Visual fiel ao Figma.
- Cor ativa do menu aplicada corretamente.
-
🌍 Com sistema de tradução | 🌙 Menu com cor ativa OFF
- Este ambiente está totalmente fiel ao Figma.
- Sistema de tradução integrado.
- A cor ativa do menu não está aplicada.
Desenvolver um layout proposto utilizando HTML, CSS e JavaScript.
- Criar a estrutura da página conforme o layout fornecido.
- Aplicar estilos garantindo um layout responsivo (Desktop e Mobile).
🔍 Versão Desktop:
📱 Versão Mobile:
- Objetivo: Implementar um campo de busca.
- Funcionalidade:
- Ao clicar no botão de busca, exibe a mensagem:
Você buscou por: 'termo digitado'
- Ao clicar no botão de busca, exibe a mensagem:
🔍 Versão Desktop:
📱 Versão Mobile:
O Search.JS gerencia o histórico de buscas de um usuário. Quando um termo é pesquisado, ele:
- Exibe a mensagem de "Você buscou por: 'termo digitado'".
- Adiciona a pesquisa ao histórico (limitado a 10 entradas).
- Exibe uma lista de buscas anteriores, com a possibilidade de limpar ou selecionar uma pesquisa passada.
- Se o campo de busca estiver vazio, mostra um aviso solicitando ao usuário para digitar algo.
- Permite ao usuário fechar o popup ou visualizar o histórico.
- Gerenciamento do Histórico de Buscas: O histórico é armazenado localmente no navegador e exibido quando o usuário clica no botão de histórico.
- Eventos de Interação: O código detecta interações, como pressionamento da tecla Enter ou cliques no ícone de busca.
- Feedback Visual: O código fornece feedback visual, como mensagens de erro ou confirmação, dependendo do estado da pesquisa.
Esse script melhora a experiência de busca ao fornecer feedback em tempo real e permitir o acesso rápido a buscas anteriores.
🔍 Versão Desktop:
📱 Versão Mobile:
O Carousel.JS controla a exibição interativa de produtos em um carrossel. Ele:
1️⃣ Cria dinamicamente os cards de produtos a partir de um array.
2️⃣ Permite navegar entre páginas com botões e bolinhas indicadoras.
3️⃣ Se adapta automaticamente à largura da tela (responsivo).
4️⃣ Move os itens com transição suave utilizando transform: translateX(...).
-
🧱 Geração dos Cards de Produto:
Cada produto é renderizado com imagem, nome, preços e botão de compra. -
🔘 Indicadores Clicáveis:
Pequenas bolinhas (dots) indicam a página atual e podem ser clicadas para navegação direta. -
↔️ Botões Anterior/Próximo:
Permite alternar entre páginas do carrossel manualmente. -
📐 Responsivo:
Detecta a largura da tela e exibe de 1 a 5 produtos por página automaticamente. -
⏱️ Autoplay (opcional):
Troca de páginas automaticamente em intervalos definidos, para manter o conteúdo sempre em movimento.
🔍 Versão Desktop:
O MenuHandler gerencia a navegação do menu desktop do site. Ele:
- Inicializa e popula os menus de departamentos e categorias.
- Permite abrir e fechar o menu de navegação.
- Alterna entre a visualização de departamentos e categorias.
- Expõe métodos globais para interação com o menu.
- Gerenciamento de Elementos: Manipula containers e conteúdos para menus de departamentos e categorias.
- Criação Dinâmica: Gera itens de departamentos (com suporte a tradução) e categorias.
- Interatividade: Implementa funções para abrir e fechar o menu, com controle visual dos elementos.
- Internacionalização: Integra com um sistema de tradução para textos do menu.
📱 Versão Mobile:
O MobileMenu gerencia a versão móvel do menu de navegação. Ele:
- Controla a exibição do menu através de botões de toggle.
- Popula listas de categorias com itens predefinidos.
- Implementa a navegação entre departamentos e atualiza o título da seção.
- Inicializa a interface apenas quando os elementos necessários estão presentes.
- Toggle do Menu: Adiciona/remove a classe 'active' para mostrar/esconder o menu.
- População Dinâmica: Cria e adiciona itens às listas de categorias.
- Navegação Contextual: Atualiza o título conforme o departamento selecionado.
- Inicialização Condicional: Verifica a existência dos elementos antes de inicializar.
Ambos os componentes trabalham de forma complementar para fornecer uma experiência de navegação consistente em diferentes dispositivos, adaptando a apresentação e a interatividade conforme o tamanho da tela.
O arquivo JSON contém traduções para uma loja virtual em três idiomas:
- Português (pt) - idioma principal/padrão
- Inglês (en)
- Espanhol (es)
O arquivo organiza as traduções nas seguintes seções principais:
"menu": {
"pt": "Português",
"en": "Inglês",
"es": "Espanhol"
}Define como cada idioma é exibido no seletor de idiomas.
Contém strings para o campo de busca, mensagens de erro e histórico de pesquisas:
- Placeholders do campo de busca
- Mensagens de erro e resultados
- Gerenciamento do histórico
Textos para banners promocionais e ofertas:
- Mensagens de desconto para novos usuários
- Informações sobre cupons
- Destaque de novos produtos
Termos para o sistema de navegação:
- Cabeçalhos de departamentos
- Botões de ação ("Ver todos", "Limpar")
- Títulos de seções da loja
Formulário de inscrição para newsletter:
- Campos de entrada (nome, email)
- Textos de concordância com políticas
- Botão de registro
Informações da empresa organizadas em subseções:
- Links institucionais (Sobre Nós, Termos e Condições)
- Central de ajuda (FAQ, Entregas, Trocas)
- Atendimento ao cliente (Contato, Horários)
- Textos legais
- Estrutura consistente entre os três idiomas
- Suporte a formatação com placeholders "{0}"
- Organização hierárquica para facilitar manutenção
- Textos específicos adaptados culturalmente para cada idioma (ex: formatos de horário e moeda)
🔍 Versão Desktop:
📱 Versão Mobile:
O LanguageSelector implementa um seletor de idiomas para a aplicação. Ele:
- Inicializa um seletor de idiomas nas versões desktop e mobile do site.
- Gerencia a preferência de idioma do usuário, armazenando-a no localStorage.
- Conecta-se ao sistema de tradução para atualizar textos da interface.
- Exibe opções de idioma com base na configuração de idiomas suportados.
- Inicialização Dinâmica: Importa e integra-se com o TranslationManager.
- Criação de Interfaces: Gera seletores para as versões desktop e mobile.
- Persistência de Preferências: Salva a escolha do idioma no armazenamento local.
- Atualização em Tempo Real: Atualiza todos os textos quando o idioma é alterado.
O TranslationManager gerencia o sistema de internacionalização da aplicação. Ele:
- Carrega arquivos de tradução a partir de um JSON.
- Aplica traduções aos elementos da interface conforme o idioma selecionado.
- Suporta formatação HTML, placeholders e traduções aninhadas.
- Persiste a preferência de idioma do usuário e disponibiliza métodos para alterá-la.
- Carregamento de Traduções: Obtém as traduções via fetch de um arquivo JSON.
- Tradução Dinâmica: Aplica traduções a elementos com base em seletores e atributos.
- Formatos Avançados: Suporta HTML, placeholders e hierarquias de chaves de tradução.
- Fallback Inteligente: Utiliza o idioma padrão quando uma tradução não está disponível.
- Atualização Global: Método para atualizar todos os textos traduzíveis da interface.
Ambos os componentes trabalham em conjunto para proporcionar uma experiência multilíngue fluida, permitindo que os usuários alternem entre idiomas e mantenham sua preferência entre sessões.
[Kauan Vidigal] - Desenvolvedor Full Stack - Versão do Projeto: HTML, CSS e JavaScript









