Hej mam problem i nie za bardzo mam pomysł jak to dobrze ugryźć. Przykład poniżej będzie uproszczonym przykładem mojego problemu. Korzystam z BEM i pierwszy raz natrafiłem na ścianę.
<div class="box box--dark">
<div class="box__title">main title</div>
<div class="box__content">
<div class="box">
<div class="box__title">sub title 1</div>
<div class="box__content">
content 1
</div>
</div>
<div class="box">
<div class="box__title">sub title 2</div>
<div class="box__content">
content 2
</div>
</div>
</div>
</div>
Przez to że używam ten sam blok BEMowy mam problem. Modyfikator dla pierwszego bloku (w tym przykładzie dark ) wpływa i modyfikuje bloki które są dziećmi. Pierwsze co przychodzi do głowy to odwrócić kolejność modyfikatorów. Np tak :
<div class="box">
<div class="box__title">main title</div>
<div class="box__content">
<div class="box box--white">
<div class="box__title">sub title 1</div>
<div class="box__content">
content 1
</div>
</div>
<div class="box box--white">
<div class="box__title">sub title 2</div>
<div class="box__content">
content 2
</div>
</div>
</div>
</div>
Ale niestety przykładowy box jest komponentem Reactowym którym dość często wykorzystujemy w systemie od ponad roku. Obecnie pierwszy raz pojawiła się potrzeba aby jeden box wrzucić do środka drugiego. A odwrócenie modyfikatorów było by dość skomplikowane. Zastanawiam się czy dało by się zabezpieczyć przed tym problemem na poziomie selektorów?
Mieliście podobne problemy? Jak je rozwiązaliście?