Skip to content

code7tecbr/abit-site

Repository files navigation

ABIT Projetos & Engenharia - Site Institucional

Next.js React TypeScript Tailwind CSS FSD

Site institucional moderno e responsivo para ABIT Projetos & Engenharia, desenvolvido com Next.js 15 + React 19 + TypeScript seguindo a arquitetura Feature-Sliced Design.


Preview

Desktop:

  • Header fixo com navegação
  • Hero section fullscreen com gradiente
  • Grid 3x3 de serviços
  • 3 valores circulares dourados
  • 3 pilares de missão
  • Formulário newsletter funcional
  • Footer com 4 colunas

Mobile:

  • Menu hambúrguer animado
  • Layout responsivo 1 coluna
  • Botão WhatsApp flutuante
  • Scroll suave entre seções

Tecnologias

Core Stack

  • Next.js 15.5.3 - App Router, React Server Components
  • React 19.1.0 - Última versão estável
  • TypeScript 5.x - Strict mode, zero any
  • Tailwind CSS 4.1.13 - Utility-first CSS framework

Dev Tools

  • ESLint 9.x - Linting de código
  • Steiger 0.5.11 - FSD architecture linter
  • @tailwindcss/postcss - PostCSS plugin

Arquitetura FSD

Estrutura baseada em Feature-Sliced Design:

src/
├── shared/         # Componentes e utilitários base
├── entities/       # Entidades de negócio (service, value, mission)
├── features/       # Funcionalidades (newsletter-form, mobile-menu)
└── widgets/        # Widgets compostos (header, hero, footer, etc)

app/
├── layout.tsx      # Root layout
├── page.tsx        # Home page
└── globals.css     # Estilos globais

Regras de Importação:

shared → entities → features → widgets → app

📖 Documentação completa: FSD_STRUCTURE.md


Instalação

Pré-requisitos

  • Node.js 20+ (recomendado: 20.x LTS)
  • npm ou pnpm

Passo a Passo

# 1. Clone o repositório
git clone <repo-url>
cd abit-site

# 2. Instale dependências
npm install

# 3. (Opcional) Limpe arquivos legados
rm -rf src/pages src/app

# 4. Execute em modo desenvolvimento
npm run dev

Acesse: http://localhost:3000


Scripts Disponíveis

npm run dev          # Inicia servidor de desenvolvimento
npm run build        # Build de produção
npm start            # Serve build de produção
npm run lint         # ESLint + Steiger (FSD)

Validação TypeScript

npx tsc --noEmit     # Verifica erros de tipo

Estrutura de Páginas

Home Page (Única Página Atual)

Seção ID Componente
Header - Header
Hero #inicio Hero
Serviços #servicos ServicesSection
Sobre Nós #sobre AboutSection
Missão #missao MissionSection
Newsletter - NewsletterSection
Footer #contato Footer

Design System

Cores

Primária:   #FFD700  /* Amarelo/Dourado */
Fundo:      #000000  /* Preto */
Fundo Claro:#1A1A1A  /* Cinza Escuro */
Texto:      #FFFFFF  /* Branco */

Tipografia

  • Font: Geist Sans (Google Font via next/font)
  • Tamanhos: Mobile-first (text-sm → md:text-base → lg:text-lg)
  • Pesos: Regular (400), Semibold (600), Bold (700)

Breakpoints

mobile:    0px     (base)
tablet:    768px   (md:)
desktop:   1024px  (lg:)
wide:      1280px  (xl:)

Componentes

Shared UI (6 componentes)

  • Button - Botão primary/secondary
  • Input - Input com validação
  • Card - Card com hover effect
  • Container - Container responsivo (max-width 1280px)
  • Section - Seção com padding vertical
  • SectionTitle - Título amarelo centralizado

Entities (4 entidades)

  • service - Serviços da empresa (6 cards)
  • value - Valores (3 badges circulares)
  • mission - Pilares de missão (3 cards)
  • process-badge - Badges de processo (5 badges)

Features (2 features)

  • newsletter-form - Formulário com validação
  • mobile-menu - Menu hambúrguer animado

Widgets (7 widgets)

  • header - Navegação fixa
  • hero - Hero section
  • services-section - Grid de serviços
  • about-section - Sobre nós
  • mission-section - Missão
  • newsletter-section - Newsletter
  • footer - Rodapé

Funcionalidades

✅ Navegação

  • Menu fixo no topo
  • Links com scroll suave
  • Menu mobile responsivo
  • Overlay animado

✅ Newsletter

  • Validação de e-mail
  • Feedback visual (sucesso/erro)
  • Estado de carregamento

✅ WhatsApp

  • Botão flutuante
  • Link direto para chat

✅ Responsividade

  • Mobile First
  • Grid adaptativo
  • Imagens responsivas

Validação e Testes

TypeScript

npx tsc --noEmit

Expectativa: 0 erros

FSD Architecture

npm run lint

Expectativa: 0 violações

Build

npm run build

Expectativa: Build successful

📖 Guia completo: VALIDATION_GUIDE.md


Métricas de Performance

Otimizações

  • ✅ React Server Components
  • ✅ Client Components apenas onde necessário
  • ✅ Zero CSS-in-JS
  • ✅ Fonte otimizada (next/font)
  • ✅ Lazy loading automático

Metas

  • First Contentful Paint: < 1.5s
  • Largest Contentful Paint: < 2.5s
  • Time to Interactive: < 3.5s
  • Bundle size: < 100kb (gzipped)

Compliance

FSD

  • ✅ Public API Pattern
  • ✅ Hierarquia de Importação
  • ✅ Isolamento de Camadas

TypeScript

  • ✅ strict: true
  • ✅ Zero any types
  • ✅ Interfaces explícitas

Acessibilidade

  • ✅ Semantic HTML
  • ✅ ARIA labels
  • ✅ Contraste WCAG AA
  • ✅ Focus visible

Deploy

Vercel (Recomendado)

# 1. Instale Vercel CLI
npm i -g vercel

# 2. Deploy
vercel

Netlify

# 1. Build
npm run build

# 2. Deploy pasta .next
netlify deploy --prod --dir=.next

Docker

FROM node:20-alpine
WORKDIR /app
COPY . .
RUN npm install && npm run build
CMD ["npm", "start"]

Estrutura de Arquivos

abit-site/
├── app/                    # Next.js App Router
│   ├── layout.tsx
│   ├── page.tsx
│   └── globals.css
├── src/                    # FSD Architecture
│   ├── entities/          # Entidades (24 arquivos)
│   ├── features/          # Features (6 arquivos)
│   ├── shared/            # Shared (13 arquivos)
│   └── widgets/           # Widgets (21 arquivos)
├── .steiger/              # FSD config
├── public/                # Assets estáticos
├── FSD_STRUCTURE.md       # Docs arquitetura
├── VALIDATION_GUIDE.md    # Guia validação
├── PROJECT_INVENTORY.md   # Inventário
└── package.json

Total: 80 arquivos criados

📖 Inventário completo: PROJECT_INVENTORY.md


Dados da Empresa

Nome: ABIT Projetos & Engenharia Endereço: Rua Emílio Castelar N. 70 - Boa Viagem - Recife/PE Telefones: (81) 98175-5099 / (81) 99620-0937 E-mail: contato@abitprojetos.com WhatsApp: https://wa.me/5581981755099


Customização

Atualizar Dados da Empresa

Edite: src/shared/config/site.ts

Modificar Cores

Edite: src/shared/config/design-tokens.ts + app/globals.css

Adicionar Serviços

Edite: src/entities/service/model/services-data.ts

Adicionar Seções

  1. Crie novo widget em src/widgets/nova-secao/
  2. Importe em app/page.tsx

Roadmap

Curto Prazo

  • Substituir emojis por ícones SVG
  • Adicionar imagens reais
  • Integrar newsletter com API

Médio Prazo

  • Página de Cursos
  • Página de Portfólio
  • Testes unitários (Vitest)
  • Storybook

Longo Prazo

  • CMS headless
  • Área do cliente
  • Blog com MDX
  • i18n (PT/EN)

Suporte

Documentação

  • README.md - Este arquivo
  • FSD_STRUCTURE.md - Arquitetura detalhada
  • VALIDATION_GUIDE.md - Guia de validação
  • IMPLEMENTATION_SUMMARY.md - Resumo técnico
  • PROJECT_INVENTORY.md - Inventário completo

Recursos Externos


Licença

© 2025 ABIT Projetos & Engenharia. Todos os direitos reservados.


Desenvolvedor

Desenvolvido seguindo as melhores práticas de:

  • ✅ Feature-Sliced Design
  • ✅ TypeScript Strict Mode
  • ✅ Mobile First Responsiveness
  • ✅ WCAG Accessibility
  • ✅ Clean Code Principles

Status: ✅ Production Ready

About

site-institucional

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •