- Descrição: Essa é a pasta de build gerada automaticamente pelo Next.js quando você executa o projeto (
yarn dev
ouyarn build
). - Função: Armazena os arquivos de build da aplicação, otimizados para produção ou desenvolvimento. Inclui código pré-renderizado, cache de páginas, e outros arquivos que ajudam a melhorar o desempenho do projeto.
- Observação: Geralmente é ignorada pelo Git (presente no
.gitignore
), pois é uma pasta gerada automaticamente.
- Descrição: Diretório onde o Yarn (ou npm) armazena todas as dependências do projeto.
- Função: Contém os pacotes e bibliotecas que o projeto precisa para funcionar, como React, Next.js, Tailwind, entre outros.
- Observação: Também é ignorado pelo Git, pois as dependências podem ser reinstaladas a partir do
package.json
.
- Descrição: Pasta para arquivos públicos, que podem ser acessados diretamente no navegador.
- Função: Armazena imagens, ícones, fontes, e outros ativos que serão usados no projeto. Os arquivos nessa pasta são servidos diretamente no navegador, por exemplo,
public/image.jpg
pode ser acessado emhttp://localhost:3000/image.jpg
. - Observação: Não é processada pelo Webpack, então tudo aqui é servido "como está".
- Descrição: A pasta principal de código do projeto.
- Função: Geralmente, contém todo o código fonte, incluindo componentes, páginas, estilos, utilitários e qualquer outro código necessário para o funcionamento do projeto.
- Estrutura Típica: Dentro de
src
, normalmente, encontramos subpastas comocomponents
,pages
(ouapp
no Next.js 13+),styles
, entre outras.
- Função: Arquivo de configuração para o ESLint, que define regras de linting e estilos de código. Ajuda a manter o código consistente e sem erros comuns.
- Exemplo de Configuração: Pode incluir regras como a proibição de
console.log
em código de produção, ou obrigar o uso de ponto e vírgula no final de cada linha.
- Função: Lista de arquivos e pastas que o Git deve ignorar e não versionar.
- Exemplo de Conteúdo:
node_modules
,.next
,.env
, que não são necessários no repositório.
- Função: Arquivo de configuração do Prettier, que define o estilo de formatação do código (ex.: uso de aspas simples, largura máxima de linha, uso de ponto e vírgula).
- Exemplo de Configuração: Configurações como
singleQuote: true
(para usar aspas simples) eprintWidth: 100
(para limitar a linha a 100 caracteres).
- Função: Arquivo de declaração de tipos gerado automaticamente pelo Next.js para o TypeScript. Define tipos específicos do Next.js para que o TypeScript compreenda as APIs e funcionalidades do framework.
- Observação: Esse arquivo não deve ser editado manualmente, pois é gerado e atualizado automaticamente.
- Função: Arquivo de configuração do Next.js, usado para personalizar o comportamento do framework, como otimização de imagem, redirects, configurações de roteamento, e muito mais.
- Exemplo de Configuração: Configurações como habilitar imagens externas ou configurar redirects de rotas.
- Função: Arquivo principal de configuração do projeto Node.js. Define as dependências (pacotes que o projeto usa), scripts de execução (
yarn dev
,yarn build
), e outras informações do projeto. - Exemplo de Conteúdo: Dependências como
react
,next
,tailwindcss
e scripts como"dev": "next dev"
para iniciar o servidor de desenvolvimento.
- Função: Arquivo de configuração para o PostCSS, uma ferramenta de processamento de CSS. Necessário para o Tailwind CSS.
- Exemplo de Configuração: Plugins como
tailwindcss
eautoprefixer
, que adicionam funcionalidades e compatibilidade ao CSS.
- Função: Arquivo de documentação do projeto, onde normalmente se descreve o propósito do projeto, como instalar e rodar o projeto, e outros detalhes importantes para desenvolvedores ou colaboradores.
- Exemplo de Conteúdo: Instruções como
yarn install
para instalar dependências eyarn dev
para iniciar o projeto localmente.
- Função: Arquivo de configuração para o Tailwind CSS, onde se define temas personalizados, cores, fontes, e outras configurações de estilo.
- Exemplo de Configuração: Configuração de temas customizados, especificação de onde Tailwind deve procurar por classes usadas (
content
), entre outros.
- Função: Arquivo de configuração do TypeScript. Define as opções do compilador TypeScript, como quais diretórios incluir/excluir, regras de tipo e restrições.
- Exemplo de Configuração:
strict: true
para garantir verificação estrita de tipos einclude
para incluir arquivos específicos no projeto.
- Função: Arquivo de lock do Yarn, que garante que todos os desenvolvedores e ambientes usem as mesmas versões das dependências.
- Exemplo de Conteúdo: Especificações detalhadas das versões exatas das dependências e suas dependências internas, para garantir consistência no ambiente de desenvolvimento.
- Descrição: Contém as páginas e rotas principais da aplicação.
- Função: Este é o diretório onde estão as páginas que compõem o aplicativo Next.js. Cada subpasta ou arquivo dentro de
app
representa uma rota na aplicação, por exemplo,app/home
pode representar a rota/home
. - Observação: Este diretório é a base para o roteamento de páginas no Next.js, e os arquivos
page.tsx
dentro de cada subpasta representam o conteúdo dessas rotas.
- Descrição: Armazena os componentes reutilizáveis da interface do usuário (UI).
- Função: Os componentes dentro desta pasta são blocos de construção reutilizáveis que podem ser utilizados em várias partes da aplicação. Eles ajudam a criar uma UI consistente e modular, como botões, formulários, cabeçalhos, rodapés, etc.
- Observação: Manter os componentes isolados facilita a manutenção e a reutilização de elementos de UI, melhorando a consistência visual do projeto.
- Descrição: Contém definições de interfaces TypeScript utilizadas no projeto.
- Função: As interfaces definem a estrutura e os tipos dos dados que o projeto utiliza, fornecendo segurança de tipo no TypeScript. Isso ajuda a garantir que os dados sejam passados corretamente entre os componentes, evitando erros comuns de tipagem.
- Observação: Este diretório é essencial para o desenvolvimento com TypeScript, pois ajuda a manter a consistência dos dados em toda a aplicação.
- Descrição: Contém os arquivos de estilo global e temas do projeto.
- Função: Os arquivos aqui são responsáveis por definir estilos globais, configurações de tema, e quaisquer outras regras CSS que se aplicam em toda a aplicação. Isso inclui arquivos CSS, SCSS ou configurações específicas para frameworks de estilo como Tailwind CSS.
- Observação: Centralizar os estilos globais e temas facilita a gestão de estilos em um único local, assegurando uma aparência consistente em todo o projeto.
- Descrição: Armazena funções utilitárias e helpers.
- Função: Contém funções auxiliares e utilitárias que podem ser reutilizadas em várias partes do código, como formatação de datas, manipulação de strings, ou qualquer outra funcionalidade que seja útil em diferentes contextos do projeto.
- Observação: Manter funções utilitárias em
utils
ajuda a evitar duplicação de código e melhora a organização, pois concentra as funções genéricas e auxiliares em um único local.
- Descrição: Pasta que representa a seção ou página de "Artigos" no projeto.
- Arquivos:
page.tsx
: Arquivo que define o conteúdo e layout da página de artigos. Este arquivo serve como a entrada principal para a rota/articles
, exibindo uma lista de artigos ou conteúdo relacionado a essa seção.
- Descrição: Pasta que representa a seção ou página de "Educação" no projeto.
- Arquivos:
page.tsx
: Arquivo que define o conteúdo e layout da página de educação. Esse arquivo serve como a entrada principal para a rota/education
, onde é possível mostrar informações sobre a formação educacional, cursos ou qualificações.
- Descrição: Pasta que representa a seção ou página de "Experiência" no projeto.
- Arquivos:
page.tsx
: Arquivo que define o conteúdo e layout da página de experiência. Ele serve como a entrada principal para a rota/experience
, exibindo informações sobre a experiência profissional, projetos anteriores, ou outras atividades relevantes.
- Descrição: Pasta que representa a seção ou página de "Resumo" (ou currículo) no projeto.
- Arquivos:
page.tsx
: Arquivo que define o conteúdo e layout da página de resumo ou currículo. Esse arquivo serve como a entrada principal para a rota/resume
, onde pode ser mostrado um resumo das qualificações, habilidades e experiências de forma condensada.
-
page.tsx
:- Função: Esse é o arquivo que define a página principal da aplicação (geralmente a homepage ou a página de introdução). Ele serve como a entrada principal para a rota raiz
/
do projeto.
- Função: Esse é o arquivo que define a página principal da aplicação (geralmente a homepage ou a página de introdução). Ele serve como a entrada principal para a rota raiz
-
error.tsx
:- Função: Arquivo que define a página de erro, exibida para o usuário em caso de problemas na navegação ou carregamento de conteúdo. É usado para lidar com erros de forma personalizada, proporcionando uma experiência amigável para o usuário.
-
layout.tsx
:- Função: Define o layout padrão para as páginas da aplicação. Este arquivo controla o design e a estrutura comuns, como cabeçalhos, rodapés e barras de navegação, garantindo consistência visual em todas as páginas.
-
loading.tsx
:- Função: Arquivo que define um componente de carregamento (loading). Este componente é exibido enquanto a página ou conteúdo está sendo carregado, proporcionando feedback visual ao usuário e melhorando a experiência de navegação.
-
not-found.tsx
:- Função: Arquivo que define a página "Não Encontrado" (404), exibida quando o usuário tenta acessar uma rota inexistente. Esse arquivo fornece uma experiência amigável para informar que a página requisitada não foi encontrada.
Cada pasta dentro de src/app
representa uma seção específica da aplicação, enquanto os arquivos na raiz do diretório controlam o layout geral, o comportamento de carregamento, erros e a homepage. Essa estrutura organizada permite que cada rota e funcionalidade tenha seu próprio espaço, facilitando a manutenção e a navegação no projeto.
-
Descrição: Contém componentes básicos e independentes, que são os blocos fundamentais da interface do usuário (UI).
-
AbilitiesList.tsx
: Componente que exibe uma lista de habilidades. -
Button.tsx
: Componente de botão reutilizável, usado em várias partes do projeto. -
CertificateItem.tsx
: Componente que representa um item de certificado, usado para listar certificações. -
EducationItem.tsx
: Componente que exibe informações sobre uma formação educacional específica. -
ExperienceItem.tsx
: Componente que representa uma experiência de trabalho ou projeto anterior. -
Loader.tsx
: Componente de carregamento, exibido enquanto os dados ou conteúdo da página estão sendo carregados. -
MenuItem.tsx
: Componente para exibir um item do menu de navegação. -
PageHeading.tsx
: Componente de cabeçalho de página, usado para exibir títulos de seções ou páginas com estilo. -
PostItem.tsx
: Componente que representa um item de postagem, usado para listar artigos ou posts. -
SocialMediaList.tsx
: Componente que exibe uma lista de links para redes sociais. -
index.ts
: Arquivo de exportação que facilita a importação dos componentes dentro da pastaatoms
em outras partes do projeto.
-
-
Descrição: Contém componentes de layout que definem a estrutura de diferentes seções da aplicação.
DefaultLayout.tsx
: Layout padrão da aplicação, usado para envolver o conteúdo e definir a estrutura básica da página.SectionLayout.tsx
: Layout específico para uma seção, utilizado para estruturar seções dentro de uma página.index.ts
: Arquivo de exportação que facilita a importação dos componentes de layout.
-
Descrição: Contém componentes que são combinações de átomos, formando partes mais complexas da UI.
-
Biography.tsx
: Componente que exibe uma biografia ou descrição curta de uma pessoa. -
MenuList.tsx
: Componente que exibe uma lista de itens de menu, usado na navegação. -
Navbar.tsx
: Componente de barra de navegação, que inclui o menu e permite a navegação entre as páginas. -
index.ts
: Arquivo de exportação que facilita a importação dos componentes na pastamolecules
.
-
-
Descrição: Contém componentes maiores, compostos de átomos e moléculas, que representam seções inteiras da UI.
index.ts
: Arquivo de exportação que consolida componentes de organismo, facilitando a importação se novos organismos forem adicionados.
-
Descrição: Define as interfaces TypeScript que especificam a estrutura de dados utilizados no projeto, proporcionando segurança de tipos.
article.ts
: Interface que define a estrutura de um artigo.education.ts
: Interface que especifica os dados relacionados à formação educacional.experience.ts
: Interface que representa a estrutura de uma experiência profissional ou projeto.image.ts
: Interface que define os atributos de uma imagem usada no projeto.profile.ts
: Interface que descreve os dados de perfil de um usuário ou autor.project.ts
: Interface que especifica os dados de um projeto, incluindo informações como nome, descrição e URL.
-
Descrição: Contém os arquivos de estilo global do projeto.
globals.css
: Arquivo CSS global que define os estilos aplicados em toda a aplicação, como fontes, cores e estilos base. Inclui definições para garantir uma aparência consistente entre os componentes.
-
Descrição: Contém funções utilitárias e helpers que fornecem funcionalidades comuns para serem reutilizadas em várias partes do projeto.
day.util.ts
: Funções utilitárias para manipulação e formatação de datas.error.util.ts
: Funções utilitárias para tratamento e formatação de erros.fonts.util.ts
: Funções relacionadas ao gerenciamento e configuração de fontes usadas no projeto.image.util.ts
: Funções utilitárias para manipulação de imagens, lidando com URLs de imagens ou otimizações.menu.util.ts
: Funções utilitárias específicas para lidar com a navegação e estrutura de menus.random-color.util.ts
: Função que gera cores aleatórias, usada para dar um toque dinâmico na interface.
A estrutura src
está organizada para maximizar a modularidade e reutilização. Cada pasta tem uma função específica:
components
organiza a interface do usuário em átomos, moléculas e layouts.interfaces
define as estruturas de dados para garantir a segurança de tipo.styles
mantém a estilização centralizada.utils
oferece funcionalidades auxiliares reutilizáveis.
Essa organização promove a clareza e facilita a manutenção e expansão do projeto.