Eu gosto muito do sistema de domínios (ou contextos), nos projetos em que trabalhei costumou ser bem escalável
src/
domains/
<nome-do-dominio>/ (ex: users)
services/ -> funcões/modulos relacionadas aquele domínio
components/ -> aqui poderiam ficar seus arquivos de componentes css voltado ao domínio
mappers/ -> mapeamentos de valores
shared/
services/ -> funcões/modulos comuns
components/ -> aqui poderiam ficar seus arquivos de componentes css comuns
mappers/ -> mapeamentos de valores comuns
core/
css/ -> normalize.css, globals.css, etc
api/ -> se utiliza axios por exemplo, da pra encapsular isso e criar interceptors dentro
public/
assets/
images/
documents/
<nome-da-pagina>/
index.html
...
index.html
Para as telas eu usaria alguma coisa para dizer ao browser que minha pasta principal é a public. Acho que começaria me organizando assim e ir adaptando e melhorando conforme vou desenvolvendo o projeto. Não existe bala de prata, o melhor é montar algo de base e ir evoluindo.