Pular para o conteúdo principal

PAV4-2: Estrutura da nova pasta frontend

Essa proposta traz um reordenamento da estrutura geral na questão do frontend, de uma forma que seja mais fácil criar e navegar pelos componentes, seguindo sempre o modelo que tudo no site é um componente, e também facilitar o intercâmbio das partes de um site pro outro.

Ideia central

A ideia é que a pasta comece um tanto mais simples com apenas três subdivisões:

.
└── frontend/
├── base/
├── global/
└── views/

Assim, teríamos uma pasta chamada base que contém os arquivos que são da base do V4, possuem alguns elementos de frontend que são sempre aplicados em todos os projetos, independente de cliente.

Em seguida uma pasta globals para estilos e JS que são comuns a todo o site, por exemplo: Todo título de seção no site vai ter o mesmo estilo, etc. Ou seja para aquilo que não está amarrado a um componente só.

E na view teríamos de fato todo o contexto do projeto, as páginas, header, footer, como o nome já diz. Parecida com a antiga template-parts, só que agora incluindo os arquivos SCSS e JS junto com as partes.

Explificando como poderia escalar uma estrutura da pasta frontend com alguns níveis:

.
└── frontend/
├── base/
│ └── section-breadcrumbs/
├── globals/
│ ├── _globals.scss
│ ├── masks.js
│ └── swipers.js
└── views/
├── cards/
│ ├── _card-portfolio.scss
│ └── card-portfolio.php
├── header/
├── home/
│ └── home.js
├── page-contato/
│ └── page-contato.js
└── single-portfolio/
├── section-conteudo.php
└── section-galeria/
├── _section-galeria.scss
├── section-galeria.php
└── section-galeria.js

Motivação da PAV4

Hoje os arquivos de frontend ficam espalhados em muitas direções, seria bem mais interessante deixar os estilos e comportamentos já próximos à seção ou página, para facilitar até mesmo os clones de um projeto para o seguinte.

Ficha Geral da PAV4

  • Autor da PAV4: Kevin Villanova
  • Criada em: 31/10/2024
  • Atualizada em: 31/10/2024
  • Status da Proposta: Em avaliação
  • Grau de Dificuldade de Implementação: Baixa
  • Grau de Urgência para Implementação no V4: Essencial
  • Versão-alvo: 4.0
  • Desenvolvedores a favor da implementação:
    • Kevin Villanova