O E-commerce Master é uma loja virtual fictícia desenvolvida com HTML, CSS e JavaScript puro. O projeto prioriza responsividade, acessibilidade e código modular. Conta com um carrinho de compras funcional, cálculo de frete via API, menu responsivo e modal interativo.
📱 Versão Mobile | 💻 Versão Desktop |
---|---|
![]() |
![]() |
-
Clone o repositório:
git clone https://github.com/slayer-br/projeto-ecommerce.git
-
Abra o arquivo
index.html
no navegador.
✅ Nenhum servidor backend ou instalação de dependências é necessário.
- HTML5 semântico
- CSS3 com variáveis, media queries e layout mobile-first
- JavaScript moderno (ES6 Modules)
- Organização modular de arquivos
- Acessibilidade e usabilidade como prioridade
- Cores principais: Roxo, verde-claro e cinza-escuro
- Fonte: Roboto (Google Fonts via CDN)
- Unidades responsivas com
rem
- Variáveis CSS centralizadas com
:root
para facilitar manutenção
O layout foi desenvolvido com abordagem mobile-first:
- Colunas empilhadas em telas pequenas
- Grid de produtos com múltiplas colunas em tablets e desktops
- Menu hamburguer para dispositivos móveis
- Menu horizontal adaptado para telas maiores
- Adição e remoção de produtos com persistência via
localStorage
- Controle de quantidade diretamente no modal do carrinho
- Máscara de CEP com validação em tempo real
- Subtotal e total atualizados automaticamente
- Integração com n8n via
fetch
(webhook público) - Envio de dados estruturados dos produtos (peso, dimensões) com base em
measures-products.json
- Retorno do valor do frete, exibido dinamicamente
- Revalidação automática ao alterar itens do carrinho
O código JavaScript está separado por responsabilidade:
cartServices.js
: Lógica de carrinho (adicionar, remover, atualizar)shippingServices.js
: Cálculo e controle de exibição do freteutilities.js
: Validações, como verificação de CEPcart.js
: Integra a DOM com os serviçosmenu.js
emodal.js
: Interações da interface
- Máscara automática e validação de CEP
- Feedback visual para erros
- Prevenção de valores inválidos nas quantidades
- Atualizações em tempo real sem recarregar a página
.
├── assets/
│ └── images/ # Imagens do projeto (produtos e ícones)
├── css/
│ ├── reset.css # Reset de estilos cross-browser
│ └── style.css # Estilos principais da aplicação
├── js/
│ ├── services/
│ │ ├── cartServices.js # Lógica do carrinho
│ │ └── shippingServices.js # Lógica de frete
│ ├── utilities/
│ │ └── utilities.js # Validações auxiliares
│ ├── cart.js # Controlador principal do carrinho
│ ├── measures-products.json # Dimensões e pesos dos produtos
│ ├── menu.js # Comportamento do menu
│ └── modal.js # Comportamento do modal
├── index.html # Página principal
- MicroModal.js – Para modais acessíveis
- Google Fonts – Roboto – Tipografia principal
O projeto considera práticas de acessibilidade como:
- Estrutura semântica (
<header>
,<main>
,<footer>
) - Atributos
aria-*
nos modais - Alto contraste e legibilidade da fonte
- Teclado navegável
Os produtos são fictícios e utilizam imagens locais:
camiseta_roxa.jpg
caneca_devemdobro.jpg
Ícones em SVG personalizados estão localizados em assets/images
.
Este projeto está licenciado sob a licença MIT.
Carlos Alberto da Silva 🔗 GitHub – @slayer-br