An open API service indexing awesome lists of open source software.

https://github.com/kleber-goncalves/autono


https://github.com/kleber-goncalves/autono

gsap-scroll gsap-scrolltrigger javascript lenis-scroll nodejs react-awesome-reveal react-router-dom reactjs swiper-js swiper-slider tailwind-css vercel vercel-deployment vitejs-react

Last synced: 13 days ago
JSON representation

Awesome Lists containing this project

README

          

# Autono - Projeto de Estudo em React

[![React](https://img.shields.io/badge/React-19.2.0-61DAFB?style=for-the-badge&logo=react)](https://reactjs.org/)
[![Vite](https://img.shields.io/badge/Vite-7.2.4-646CFF?style=for-the-badge&logo=vite)](https://vitejs.dev/)
[![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-4.1.17-38B2AC?style=for-the-badge&logo=tailwind-css)](https://tailwindcss.com/)
[![GSAP](https://img.shields.io/badge/GSAP-3.14.1-0AC775?style=for-the-badge&logo=greensock)](https://greensock.com/gsap/)
[![Vercel](https://img.shields.io/badge/Vercel-Deployed-000000?style=for-the-badge&logo=vercel)](https://vercel.com)

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge)](http://makeapullrequest.com)
[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg?style=for-the-badge)](https://github.com/kleber-goncalves/autono/graphs/commit-activity)

---

## 🚀 Destaque do Projeto

### ✨ **Por que o Autono se destaca?**

| 🎯 **Performance Excepcional** | 📱 **95% Responsivo** | 🔧 **58% Reutilizável** |
| :----------------------------: | :-----------------------: | :-------------------------: |
| FCP < 1.2s • TTI < 2.1s | Desktop • Tablet • Mobile | Componentes • Hooks • Utils |
| Bundle 487KB (77% menor) | Lighthouse Score: 95+ | Arquitetura Escalável |

### 🏆 **Tecnologias de Ponta**

![React](https://img.shields.io/badge/React-20232A?style=flat&logo=react&logoColor=61DAFB)
![Vite](https://img.shields.io/badge/Vite-646CFF?style=flat&logo=vite&logoColor=white)
![Tailwind](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=flat&logo=tailwind-css&logoColor=white)
![GSAP](https://img.shields.io/badge/GSAP-0AC775?style=flat&logo=greensock&logoColor=white)
![Lenis](https://img.shields.io/badge/Lenis-Scroll-FF6B6B?style=flat)

---

## Navegação Rápida

- [Sobre o Projeto](#sobre-o-projeto)
- [Funcionalidades](#funcionalidades)
- [Tecnologias Utilizadas](#tecnologias-utilizadas)
- [Arquitetura do Projeto](#arquitetura-do-projeto)
- [Instalação e Execução](#instalação-e-execução)
- [Estrutura de Arquivos](#estrutura-de-arquivos)
- [Performance e Otimizações](#performance-e-otimizações)
- [Testes e Qualidade](#testes-e-qualidade)
- [Contribuição](#contribuição)
- [Licença](#licença)

## Sobre o Projeto

O **Autono** é um projeto fictício desenvolvido para fins de estudo e demonstração de boas práticas em desenvolvimento web moderno. Este projeto foi cuidadosamente planejado utilizando metodologias profissionais de desenvolvimento, incluindo controle de versão com Git, templates de pull requests e commits descritivos.

### Características Principais

- **Projeto de Estudo**: Desenvolvido para demonstrar conceitos avançados de React e arquitetura web
- **Planejamento Profissional**: Utiliza Git com templates de pull request e commits padronizados
- **Arquitetura Moderna**: Implementa conceitos de arquitetura de software para escalabilidade
- **Performance Otimizada**: Testado e ajustado para máxima velocidade de carregamento
- **Altamente Reutilizável**: 58% dos componentes e hooks foram projetados para reutilização
- **Responsivo**: 95% compatível com diferentes tamanhos de tela
- **Componentes Reutilizáveis**: Hooks e componentes customizados para máxima reutilização

## Funcionalidades

- **Navegação Dinâmica**: Sistema de rotas com React Router
- **Animações Avançadas**: GSAP com ScrollTrigger para efeitos visuais
- **Scroll Suave**: Lenis para experiência premium de rolagem
- **Carregamento Inteligente**: Code Splitting e lazy loading
- **Interface Responsiva**: Design adaptável para desktop, tablet e mobile
- **Formulários Interativos**: Validação e feedback em tempo real
- **Modal System**: Sistema de modais acessíveis e animados
- **Loading States**: Telas de carregamento personalizadas por página

## Tecnologias Utilizadas

### Core Technologies

- **React 19**: Framework JavaScript para construção de interfaces
- **React Router DOM**: Gerenciamento de rotas e navegação
- **Tailwind CSS**: Framework CSS utilitário para estilização
- **Vite**: Build tool moderno e rápido para desenvolvimento

### UI/UX Libraries

- **Lucide React**: Biblioteca de ícones moderna e consistente
- **React Awesome Reveal**: Animações de entrada para componentes
- **Swiper**: Carrossel touch-friendly para mobile

### Performance & Animation

- **Lenis**: Biblioteca para scroll suave e otimizado
- **GSAP**: Plataforma de animação profissional
- **GSAP ScrollTrigger**: Animações baseadas em scroll

### Development Tools

- **Node.js**: Runtime JavaScript para desenvolvimento
- **Vercel**: Plataforma de deploy e hosting
- **ESLint**: Linting e padronização de código

## Arquitetura do Projeto

Este projeto foi desenvolvido seguindo princípios de arquitetura de software, garantindo manutenibilidade, escalabilidade e reutilização de código.

### Estrutura Arquitetural

```
┌─────────────────────────────────────────────────────────────┐
│ AUTONO ARCHITECTURE │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────┐ │
│ │ PRESENTATION LAYER │ │
│ │ ├─ Pages (Routes) ──────────────────────────────┐ │ │
│ │ │ ├── Home (/): Landing page principal │ │ │
│ │ │ ├── Tecnologia (/tecnologia): Seção tech │ │ │
│ │ │ ├── Sobre (/sobre): Sobre a empresa │ │ │
│ │ │ └── Carreiras (/carreiras): Vagas │ │ │
│ │ └───────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ├─ Components (Reusable) ──────────────────────┐ │ │
│ │ │ ├── Nav: Navegação principal │ │ │
│ │ │ ├── ModalTrigger: Sistema de modais │ │ │
│ │ │ ├── LoadingScreens: Estados de loading │ │ │
│ │ │ └── CustomCursor: Cursor interativo │ │ │
│ │ └───────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────┐ │
│ │ BUSINESS LOGIC LAYER │ │
│ │ ├─ Hooks (Custom) ─────────────────────────────┐ │ │
│ │ │ ├── useForm: Gerenciamento de formulários │ │ │
│ │ │ ├── useScrollDirection: Detecção de scroll │ │ │
│ │ │ └── useMinimumLoadingTime: Controle loading │ │ │
│ │ └───────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ├─ Utils (Helpers) ────────────────────────────┐ │ │
│ │ │ ├── MinimumLoadingWrapper: Wrapper loading │ │ │
│ │ │ └── Quebrar-texto: Utilitário de texto │ │ │
│ │ └───────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────┐ │
│ │ DATA & ASSETS LAYER │ │
│ │ ├─ Static Assets ──────────────────────────────┐ │ │
│ │ │ ├── public/: Imagens, fontes, modelos 3D │ │ │
│ │ │ └── assets/: Recursos otimizados │ │ │
│ │ └───────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ├─ Configuration ──────────────────────────────┐ │ │
│ │ │ ├── vite.config.js: Config build │ │ │
│ │ │ ├── tailwind.config.js: Config estilos │ │ │
│ │ │ └── vercel.json: Config deploy │ │ │
│ │ └───────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────┐ │
│ │ INFRASTRUCTURE LAYER │ │
│ │ ├─ Build & Deploy ─────────────────────────────┐ │ │
│ │ │ ├── Vite: Build tool moderno │ │ │
│ │ │ ├── Vercel: Hosting e CDN │ │ │
│ │ │ └── Git: Version control profissional │ │ │
│ │ └───────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
```

### Princípios Arquiteturais Aplicados

- **Separação de Responsabilidades**: Cada camada tem propósito específico
- **Reutilização**: 58% dos componentes projetados para múltiplos contextos
- **Performance**: Code splitting e lazy loading implementados
- **Manutenibilidade**: Estrutura organizada e documentada
- **Escalabilidade**: Arquitetura preparada para crescimento

## Instalação e Execução

### Pré-requisitos

- Node.js (versão 18 ou superior)
- npm ou yarn
- Git

### Passos para Instalação

1. **Clone o repositório**:

```bash
git clone https://github.com/kleber-goncalves/autono.git
cd autono
```

2. **Instale as dependências**:

```bash
npm install
```

3. **Execute em modo desenvolvimento**:

```bash
npm run dev
```

4. **Build para produção**:
```bash
npm run build
npm run preview
```

## Estrutura de Arquivos

```
autono/
├── public/ # Assets estáticos
│ ├── vite.svg # Logo Vite
│ └── ... # Outros assets
├── src/
│ ├── components/ # Componentes reutilizáveis
│ │ ├── Nav.jsx # Navegação principal
│ │ ├── ModalTrigger.jsx # Sistema de modais
│ │ ├── SubscribeModal.jsx # Modal de assinatura
│ │ ├── CustomCursor.jsx # Cursor personalizado
│ │ └── Loadings/ # Telas de carregamento
│ │ ├── LoadingScreenAutono.jsx
│ │ └── ...
│ ├── pages/ # Páginas da aplicação
│ │ ├── page1/
│ │ │ └── autono.jsx # Página inicial
│ │ ├── page2-tec/
│ │ │ └── Tecnologia.jsx # Página tecnologia
│ │ └── ...
│ ├── hooks/ # Hooks customizados
│ │ ├── useForm.js # Gerenciamento formulários
│ │ ├── useScrollDirection.js # Detecção scroll
│ │ └── ...
│ ├── utils/ # Utilitários
│ │ ├── MinimumLoadingWrapper.jsx
│ │ └── Quebrar-texto.jsx
│ ├── style/ # Estilos customizados
│ ├── docs/ # Documentação
│ └── ...
├── dist/ # Build de produção (gerado)
├── node_modules/ # Dependências
├── package.json # Configuração projeto
├── vite.config.js # Configuração Vite
├── vercel.json # Configuração Vercel
└── README.md # Esta documentação
```

## Performance e Otimizações

### Métricas de Performance

- **First Contentful Paint**: < 1.2s
- **Time to Interactive**: < 2.1s
- **Bundle Size Inicial**: 487KB (77% menor que sem otimizações)
- **Mobile Loading (3G)**: < 2.3s
- **Lighthouse Score**: 95+
- **Responsividade**: 95% compatível

### Otimizações Implementadas

#### Code Splitting com React.lazy()

```
SEM Code Splitting COM Code Splitting
┌─────────────────────────────────┐ ┌─────────────────────────────────┐
│ Bundle Único (2.1MB) │ │ Bundle Principal (487KB) │
│ │ │ │
│ ├─ Página Home │ │ ├─ Core do App │
│ ├─ Página Tecnologia │ │ └─ Componentes Comuns │
│ ├─ Página Sobre │ │ │
│ ├─ Página Carreiras │ └─────────────────────────────────┘
│ └─ Todas as outras páginas │
└─────────────────────────────────┘ ┌─────────────────────────────────┐
│ Chunk Home (320KB) │
│ └─ Só carrega quando acessado │
└─────────────────────────────────┘
```

#### Sistema de Loading Personalizado

Cada página possui sua própria tela de carregamento, garantindo experiência consistente:

```javascript
// App.jsx
}
minDuration={900}
>


}

```

#### Cache Estratégico (vercel.json)

```json
{
"headers": [
{
"source": "/(.*)\\.(js|css|png|jpg|jpeg|webp|avif|svg|ico|woff2)",
"headers": [
{
"key": "Cache-Control",
"value": "public, max-age=31536000, immutable"
}
]
}
]
}
```

## Testes e Qualidade

### Responsividade

- **Desktop**: 1920px - 1440px
- **Tablet**: 1024px - 768px
- **Mobile**: 425px - 320px
- **Compatibilidade**: 95% dos dispositivos testados

### Performance Testing

- **Lighthouse**: Pontuação média 95+
- **Web Vitals**: Todos os indicadores verdes
- **Loading Speed**: Otimizado para conexões lentas
- **Memory Usage**: Monitorado e otimizado

### Code Quality

- **ESLint**: Configurado para padronização
- **Git Hooks**: Commits padronizados
- **Pull Request Templates**: Revisões estruturadas
- **Documentation**: README e docs internos

## Documentação Técnica

Este projeto conta com uma documentação técnica abrangente e profissional, desenvolvida para facilitar o aprendizado, manutenção e evolução do código. Cada componente e hook foi documentado em detalhes, criando um repositório de conhecimento valioso para desenvolvedores.

### READMEs Especializados Criados

#### Componentes Documentados

- **Nav.jsx - Sistema de Navegação**

- Documentação completa sobre implementação da navegação principal
- Explicação detalhada de cada função e estado
- Guias de personalização e extensão
- Exemplos práticos de uso

- **ModalTrigger.jsx - Sistema de Modais**

- Arquitetura completa do sistema modal
- Estados de abertura/fechamento e animações
- Integração com formulários e validações
- Padrões de acessibilidade implementados

- **SubscribeModal.jsx - Modal de Assinatura**

- Fluxo completo de captura de leads
- Validação de formulários e feedback
- Integração com APIs de email marketing
- Métricas de conversão e otimização

- **CustomCursor.jsx - Cursor Personalizado**

- Implementação de cursor interativo
- Animações baseadas em movimento do mouse
- Otimizações de performance para 60fps
- Compatibilidade cross-browser

- **Scroll-bar.jsx - Barra de Progresso**
- Sistema de indicador visual de progresso
- Integração com Lenis para scroll suave
- Cálculos de progresso e animações
- Responsividade e acessibilidade

#### Sistema de Loading Screens

- **LoadingScreenAutono.jsx** - Tela inicial
- **LoadingScreenTecnologia.jsx** - Página tecnologia
- **LoadingScreenSobre.jsx** - Página institucional
- **LoadingScreenCarreiras.jsx** - Página de carreiras
- **Sistema de Telas de Carregamento** - Arquitetura completa

Cada tela de loading possui documentação detalhada sobre:

- Animações personalizadas por página
- Otimizações de performance
- Padrões de UX/UI
- Integração com MinimumLoadingWrapper

#### Hooks Customizados

- **useForm.js - Gerenciamento de Formulários**

- Validação em tempo real
- Estados de erro e sucesso
- Integração com APIs
- Padrões de acessibilidade

- **useScrollDirection.js - Detecção de Scroll**

- Detecção precisa de direção do scroll
- Debouncing para performance
- Integração com animações GSAP
- Uso em navegação e efeitos visuais

- **useMinimumLoadingTime.js - Controle de Loading**

- Garantia de tempo mínimo de exibição
- Prevenção de flickering
- UX consistente
- Integração com lazy loading

- **useMediaImage.js - Gerenciamento de Mídias**
- Otimização de imagens responsivas
- Lazy loading inteligente
- Cache de imagens
- Performance em conexões lentas

#### Utilitários e Efeitos

- **MinimumLoadingWrapper.jsx - Wrapper de Loading**

- Padrão para carregamento de componentes
- Controle de estados de loading
- Error boundaries integrados
- Métricas de performance

- **Quebrar-texto.jsx - Utilitário de Texto**
- Quebra inteligente de texto longo
- Responsividade automática
- Animações de entrada
- SEO otimizado

#### Efeitos GSAP Documentados

- **useEfeito-simples_scrollTigger.jsx** - Efeitos básicos
- **useGsapEfeitoZoomScroll.js** - Zoom com scroll
- **Zoom-out-com-ScrollTrigger.md** - Documentação técnica
- **Scroll-Suave-Lenis.md** - Integração Lenis + GSAP

#### Configurações Técnicas

- **Confg-portas-vite.md** - Configuração de portas Vite
- **perfomace.md & perfomaceV2.md** - Otimizações de performance
- **esfeito-barra.md** - Sistema de barras de progresso
- **modalNav.md** - Navegação modal
- **Nav.-Expli.md** - Explicação detalhada do Nav

### Benefícios da Documentação

#### Para Aprendizado

- **Base de Conhecimento**: Cada componente serve como exemplo prático
- **Padrões de Código**: Documentação de melhores práticas implementadas
- **Arquitetura Explicada**: Decisões técnicas justificadas
- **Exemplos Reais**: Casos de uso concretos e funcionais

#### Para Manutenção

- **Busca Rápida**: Localizar informações específicas rapidamente
- **Onboarding**: Novos desenvolvedores aprendem rapidamente
- **Debugging**: Soluções documentadas para problemas comuns
- **Refatoração**: Guias para modificações seguras

#### Para Escalabilidade

- **Reutilização**: Componentes documentados são mais fáceis de reutilizar
- **Padrões Consistentes**: Documentação garante implementação uniforme
- **Code Review**: Referências claras para revisões
- **Evolução**: Base sólida para futuras expansões

### Estrutura da Documentação

```
docs/
├── Componentes/
│ ├── Nav.-Expli.md # Navegação principal
│ ├── modalNav.md # Sistema modal
│ ├── CustomCursor-README.md # Cursor personalizado
│ └── Scroll-bar.md # Barra de progresso
├── Hooks/
│ ├── useForm-README.md # Formulários
│ └── useEfeito-simples_scrollTigger-gsap-V2.md
├── Sistema/
│ ├── SistemadeTeladeCarregamento.md
│ ├── TeladeCarregamento.md
│ └── perfomace.md / perfomaceV2.md
├── Configurações/
│ ├── Confg-portas-vite.md # Vite
│ └── FormularioCandidatura-README.md
└── Integrações/
└── Como-Implementar-modelo-3D.md
```

### Metodologia de Documentação

- **Padrão Consistente**: Todos os READMEs seguem estrutura similar
- **Exemplos Práticos**: Código real e funcional
- **Diagramas Visuais**: ASCII art para explicar fluxos complexos
- **Links Cruzados**: Referências entre documentos relacionados
- **Atualização Contínua**: Documentação mantida atualizada com código

Esta abordagem de documentação transforma o projeto em um recurso educacional valioso, permitindo que outros desenvolvedores aprendam com implementações reais e profissionais de conceitos avançados em React.

## Roadmap

### Próximas Implementações

- [ ] **Integração com 3D**: Adição de modelos Three.js interativos
- [ ] **PWA**: Transformação em Progressive Web App
- [ ] **Internacionalização**: Suporte a múltiplos idiomas
- [ ] **CMS Integration**: Sistema de gerenciamento de conteúdo
- [ ] **Analytics**: Integração com ferramentas de análise
- [ ] **Testing Suite**: Cobertura completa de testes automatizados

### Melhorias Planejadas

- **Performance**: Otimizações adicionais para Core Web Vitals
- **Acessibilidade**: Conformidade total com WCAG 2.1
- **SEO**: Otimizações avançadas para motores de busca
- **Monitoramento**: Sistema de observabilidade e logs

## Suporte e Comunidade

### Como Contribuir

**🤝 Sua contribuição é bem-vinda!**

[![GitHub issues](https://img.shields.io/github/issues/kleber-goncalves/autono?style=for-the-badge)](https://github.com/kleber-goncalves/autono/issues)
[![GitHub pull requests](https://img.shields.io/github/issues-pr/kleber-goncalves/autono?style=for-the-badge)](https://github.com/kleber-goncalves/autono/pulls)
[![GitHub stars](https://img.shields.io/github/stars/kleber-goncalves/autono?style=for-the-badge)](https://github.com/kleber-goncalves/autono/stargazers)

### Processo de Desenvolvimento

1. **Fork** o projeto
2. **Clone** sua fork: `git clone https://github.com/seu-usuario/autono.git`
3. **Crie uma branch**: `git checkout -b feature/nova-feature`
4. **Commit** suas mudanças: `git commit -m 'feat: adiciona nova funcionalidade'`
5. **Push** para sua branch: `git push origin feature/nova-feature`
6. **Abra um Pull Request** usando o template disponível

### Padrões de Commit

```
feat: nova funcionalidade
fix: correção de bug
docs: atualização de documentação
style: formatação de código
refactor: refatoração de código
test: adição de testes
chore: tarefas de manutenção
```

### Pull Request Template

- **Descrição**: O que foi implementado
- **Tipo de mudança**: Feature, bug fix, etc.
- **Como testar**: Passos para validação
- **Screenshots**: Se aplicável
- **Checklist**: Itens obrigatórios

## Licença

Este projeto é licenciado sob a MIT License - veja o arquivo [LICENSE](LICENSE) para detalhes.

---

### ⭐ **Feito com dedicação para a comunidade de desenvolvedores**

**Se este projeto te ajudou, considere dar uma estrela! ⭐**

[![GitHub stars](https://img.shields.io/github/stars/kleber-goncalves/autono?style=social)](https://github.com/kleber-goncalves/autono/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/kleber-goncalves/autono?style=social)](https://github.com/kleber-goncalves/autono/network/members)

**Desenvolvido para fins de estudo e demonstração de boas práticas em desenvolvimento React moderno.**

[Navegação Rápida](#navegação-rápida)

----