BEM – meaning block, element, modifier – is a front-end naming methodology
# block--modifier-value
.button--state-value
What do -- and __ mean in your classes? The naming convention follows this pattern.
.block {}
.block\_\_element {}
.block--modifier {}
.site-search {} /_ Block _/
.site-search\_\_field {} /_ Element _/
.site-search--full {} /_ Modifier (its a variation of Site search) _/