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.