src/less
├── animations.less (универсальные анимации вроде fade-in)
├── colors.less (цветовая схема: константы + вспомогательные классы)
├── components (тут все компоненты, их много-много)
│ ├── accordion.less
│ ├── badge.less
│ ├── blockquote.less
│ ├── breadcrumb.less
│ ├── button-dropdown.less
│ ├── button-group.less
│ ├── button.less
│ ├── card.less
│ ├── carousel.less (у сложных компонентов могут быть внутренние
компоненты, которые нигде больше не используются,
соответственно они лежат в одном файле с родительским)
│ ├── checkbox.less
│ ├── grid.less (да, сетка - это тоже компонент)
│ ├── . . . . и.т.д.
├── constants.less (константы, это что-то вроде глобального конфига)
├── fonts.less (все, что связано с типографикой)
├── helpers.less (классы-хелперы с перебиваниями стилей)
├── main.less (сюда все импортируется в нужном порядке)
├── normalize-ext.less (расширение стандартного normalize.css)
└── utils.less (миксины, их обычно довольно мало.
все хаки и фиксы добавляет PostCSS, так что тут их нет)
Рядом с этим лежат скрипты (структура для обычного не-spa варианта). Эти файлы создаются по мере надобности - может так статься, что все в одном-двух файлах будет, если делается лендинг какой-нибудь:
src/js
├── component.js (если компонентов много - они все наследуются
от базового компонента. единообразие важно.)
├── components
│ ├── . . . . тут сами компоненты, называются аналогично своим *.less файлам
├── components.js (индекс для компонентов)
├── controls
│ ├── . . . . тут могут быть (а могут не быть) утилиты-обертки
для клавиатуры/тачпада; это иногда позволяет сильно
разгрузить остальной код.
├── dependencies.js (обертки-адаптеры для зависимостей)
├── events.js (следилка за событиями)
├── factory.js (маленькая фабрика компонентов)
├── main.js
├── polyfills.js (обертки-адаптеры для полифилов)
├── store.js (минимальное хранилище, иногда является оберткой
для какого-то стороннего решения)
├── utils
│ ├── . . . . (тут могут быть файлы с разными утититами, иногда их вообще нет)
└── utils.js (если файлов с утилитами много, этот файл является индексом для них)