INOVAR CODE AIEntrar
← Voltar
JavaScriptPromptscódigo abertocomércio localCSSHTMLJavaScriptpedidos onlinesite para hamburgueriasite para pizzariasite para restauranteWhatsApp

Crie um site gratuito para seu comércio com pedidos, WhatsApp, Instagram e horários

Aprenda a criar um site profissional para hamburgueria, pizzaria, lanchonete, restaurante ou comércio local usando apenas HTML, CSS e JavaScript.

13/09/20264 min de leitura

Um site simples pode ser tudo que um pequeno comércio precisa

Muitos pequenos comércios dependem apenas do Instagram, WhatsApp ou de plataformas de terceiros para receber clientes.

O problema é que o comerciante acaba não tendo um endereço próprio na internet onde possa centralizar suas informações.

Pensando nisso, neste tutorial vamos criar uma página completa para comércio local usando apenas:

HTML
CSS
JavaScript

Não será necessário WordPress, banco de dados ou framework.

O projeto pode ser utilizado por:

hamburguerias;
pizzarias;
lanchonetes;
restaurantes;
açaiterias;
sorveterias;
bares;
padarias;
lojas;
salões;
oficinas;
prestadores de serviços;
praticamente qualquer comércio local.

O objetivo é deixar o código preparado para que mesmo quem não é programador consiga alterar principalmente uma pequena área de configuração.

O que o site terá

A página que vamos construir possui:

nome do estabelecimento;
descrição;
botão para fazer pedido;
botão do WhatsApp;
botão do Instagram;
endereço;
link para Google Maps;
telefones;
horário de funcionamento;
indicação automática de Aberto agora ou Fechado agora;
layout responsivo para celular;
informações para mecanismos de busca;
dados estruturados para comércio local;
botão de compartilhamento;
configuração centralizada;
instalação sem banco de dados.

E o mais interessante:

todo o site funciona em apenas um arquivo index.html.

Estrutura do projeto

Crie uma pasta com o nome que desejar.

Por exemplo:

meu-comercio/
│
├── index.html
├── robots.txt
└── sitemap.xml

O arquivo principal será o index.html.

1. Código completo do index.html

Crie um arquivo chamado:

index.html

E copie todo o código abaixo.

Javascript
<!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0" > <title id="page-title">Meu Comércio</title> <meta id="meta-description" name="description" content="Conheça nosso comércio, consulte horários e faça seu pedido." > <meta name="robots" content="index, follow"> <meta name="theme-color" content="#b91c1c"> <!-- Open Graph --> <meta property="og:type" content="website" > <meta id="og-title" property="og:title" content="Meu Comércio" > <meta id="og-description" property="og:description" content="Conheça nosso comércio." > <meta id="og-url" property="og:url" content="" > <style> :root { --primary: #b91c1c; --primary-dark: #991b1b; --background: #f8fafc; --surface: #ffffff; --text: #18181b; --text-light: #71717a; --border: #e4e4e7; --success: #15803d; --danger: #b91c1c; --radius: 18px; --shadow: 0 10px 35px rgba(0, 0, 0, 0.08); } * { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } body { font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--background); color: var(--text); line-height: 1.6; } a { color: inherit; text-decoration: none; } button, a { -webkit-tap-highlight-color: transparent; } .container { width: min(100% - 32px, 900px); margin-inline: auto; } /* HERO */ .hero { background: linear-gradient( 135deg, var(--primary-dark), var(--primary) ); color: white; padding: 70px 0 60px; text-align: center; } .business-type { display: inline-block; margin-bottom: 14px; font-size: 0.9rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.85; } .hero h1 { font-size: clamp( 2.2rem, 8vw, 4rem ); line-height: 1.05; margin-bottom: 18px; } .hero-description { max-width: 620px; margin: 0 auto 24px; font-size: 1.08rem; opacity: 0.92; } /* STATUS */ .status { display: inline-flex; align-items: center; gap: 9px; padding: 9px 14px; border-radius: 999px; background: rgba( 255, 255, 255, 0.15 ); font-weight: 700; backdrop-filter: blur(10px); } .status-dot { width: 10px; height: 10px; border-radius: 50%; background: #ffffff; } /* ACTIONS */ .actions { display: grid; grid-template-columns: repeat( 3, minmax(0, 1fr) ); gap: 12px; margin-top: 30px; } .button { display: flex; justify-content: center; align-items: center; min-height: 54px; padding: 13px 18px; border-radius: 13px; font-weight: 800; transition: transform 0.2s ease, opacity 0.2s ease; } .button:hover { transform: translateY(-2px); } .button-primary { background: white; color: var(--primary); } .button-secondary { background: rgba( 255, 255, 255, 0.14 ); color: white; border: 1px solid rgba( 255, 255, 255, 0.25 ); } /* CONTENT */ main { padding: 34px 0 60px; } .grid { display: grid; grid-template-columns: repeat( 2, minmax(0, 1fr) ); gap: 20px; } .card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); padding: 26px; } .card-full { grid-column: 1 / -1; } .card h2 { margin-bottom: 17px; font-size: 1.3rem; } .info { color: var(--text-light); } .address { font-style: normal; } .link { display: inline-block; margin-top: 14px; color: var(--primary); font-weight: 800; } /* PHONES */ .phone-list { display: grid; gap: 10px; } .phone { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; background: var(--background); border-radius: 12px; } .phone a { color: var(--primary); font-weight: 800; } /* OPENING HOURS */ .hours { display: grid; gap: 4px; } .hours-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 12px 4px; border-bottom: 1px solid var(--border); } .hours-row:last-child { border-bottom: 0; } .hours-row.today { color: var(--primary); font-weight: 800; } .closed { color: var(--text-light); } /* SHARE */ .share-button { width: 100%; margin-top: 18px; border: 0; cursor: pointer; font: inherit; background: var(--text); color: white; } /* FOOTER */ footer { text-align: center; padding: 10px 20px 40px; color: var(--text-light); font-size: 0.9rem; } /* RESPONSIVE */ @media (max-width: 700px) { .hero { padding-top: 52px; } .actions { grid-template-columns: 1fr; } .grid { grid-template-columns: 1fr; } .card-full { grid-column: auto; } } </style> </head> <body> <header class="hero"> <div class="container"> <span id="business-type" class="business-type" > Comércio Local </span> <h1 id="business-name"> Meu Comércio </h1> <p id="business-description" class="hero-description" > Qualidade, atendimento e facilidade para nossos clientes. </p> <div id="status" class="status" > <span class="status-dot"></span> <span id="status-text"> Consultando horário... </span> </div> <div class="actions"> <a id="order-button" class=" button button-primary " href="#" target="_blank" rel="noopener" > 🛒 Fazer pedido </a> <a id="whatsapp-button" class=" button button-secondary " href="#" target="_blank" rel="noopener" > 💬 WhatsApp </a> <a id="instagram-button" class=" button button-secondary " href="#" target="_blank" rel="noopener" > 📷 Instagram </a> </div> </div> </header> <main> <div class="container"> <div class="grid"> <!-- ENDEREÇO --> <section class="card"> <h2>📍 Endereço</h2> <address id="address" class=" address info " ></address> <a id="maps-link" class="link" href="#" target="_blank" rel="noopener" > Como chegar → </a> </section> <!-- TELEFONES --> <section class="card"> <h2>☎️ Telefones</h2> <div id="phones" class="phone-list" ></div> </section> <!-- HORÁRIOS --> <section class=" card card-full " > <h2> 🕐 Horário de funcionamento </h2> <div id="hours" class="hours" ></div> </section> <!-- SOBRE --> <section class=" card card-full " > <h2>Sobre nós</h2> <p id="about" class="info" ></p> <button id="share-button" class=" button share-button " type="button" > Compartilhar este comércio </button> </section> </div> </div> </main> <footer> <span id="footer-business-name"> Meu Comércio </span> · <span id="year"></span> </footer> <script>

Comentários

0

Entrar para comentar.