Site institucional da Associação Brasileira de Familiares, Amigos e Portadores de Esquizofrenia (ABRE).
- Next.js 14 - Framework React com Server-Side Rendering
- React - Biblioteca JavaScript para interfaces
- TypeScript - Superset JavaScript com tipagem estática
- CSS Modules - Estilização com escopo local
- Framer Motion - Biblioteca de animações
- Contentful - Headless CMS para gerenciamento de conteúdo
- NPM
O projeto utiliza a App Router do Next.js 14 com a seguinte estrutura:
src/ ├── app/ # Rotas e páginas da aplicação ├── components/ # Componentes React reutilizáveis ├── lib/ # Configurações e integrações (ex: Contentful) ├── types/ # Tipagens TypeScript └── utils/ # Funções utilitárias
app/
: Contém as páginas e layouts da aplicação usando o App Router do Next.jscomponents/
: Componentes React reutilizáveis organizados por funcionalidadelib/
: Configurações de integrações externas como Contentfultypes/
: Definições de tipos TypeScript compartilhadosutils/
: Funções utilitárias compartilhadas
🖥️ Protótipo
- Clone o repositório:
git clone https://github.com/tech-pro-bem/abre.git
cd abre
- Instale as dependências:
npm install
- Configure as variáveis de ambiente:
Crie um arquivo
.env.local
na raiz do projeto com as seguintes variáveis:
CONTENTFUL_ENVIRONMENT=
CONTENTFUL_ACCESS_TOKEN=
- Inicie o servidor de desenvolvimento:
npm run dev
- Acesse http://localhost:3000
- Componentes: Utilizam TypeScript e CSS Modules para estilização
- Nomenclatura:
- Componentes: PascalCase
- Arquivos: kebab-case
- Funções e variáveis: camelCase
- Organização: Componentes maiores são divididos em subcomponentes em pastas próprias
- Tipagem: Uso extensivo de TypeScript para melhor manutenibilidade
O projeto utiliza o Contentful como CMS headless para gerenciar conteúdos dinâmicos. A integração é feita através do cliente Contentful configurado em src/lib/contentful.ts
.
- Albums
- Books
- Gallery
- Projects
- Reports
- Testimonials
- FAQ
- About
- Utiliza CSS Modules para estilização com escopo local
- Sistema de design tokens em
src/app/styles/theme.css
- Layout responsivo com mobile-first
- Animações com Framer Motion
- Crie uma branch para sua feature:
git checkout -b feature/nome-da-feature
- Commit suas mudanças:
git commit -m 'feat: Adiciona nova feature'
- Push para a branch:
git push origin feature/nome-da-feature
- Abra um Pull Request