Правильно ли я понял, что блоки бем должны быть независимы от внешнего окружения.
Например у меня есть переключатель языка :
<nav class="header__lang-nav lang">
<span class="lang__item"><a class="lang__link" hreflang="ru" href="/" lang="ru">RU </a></span>
<span class="lang__item"><a class="lang__link" hreflang="en" href="/en" lang="en">EN </a></span>
</nav>
Который в данный момент находится только в header, но в теории его можно будет запихать еще куда-то.
Стили для этого lang я должен писать в файле header.scss или мне нужно создавать под каждый блок отдельный файл (ну это бред же).
Просто на самом сайте бэм написано:
разделение кода на отдельные части — логика работы каждого блока, его опциональных элементов и модификаторов описывается в отдельных файлах;
Или это нужно применять только в случае если блок точно будет повторятся?
Но если это так, то значит нет смысла создавать новый блок и миксовать его с элементом, так как обращение в scss все равно будет идти к элементу от родительского блока? Например:
<header class="header container row space-between align-center">
<div class="header__logo logo"> <!-- Нет смысла здесь создавать блок logo?Ведь он уникальный на всем сайте -->
<a class="logo__link" href="/"><img class="logo__image" src="/assets/logo.0241cb85.svg" alt="Логотип" /></a>
</div>
</header>
А если и можно создавать такой блок, то как к нему обращаться в scss?В каком файле?Во вложении header по &__logo или по .logo?