register_block_type() する前にブロックの名前を考えなきゃならんのですが、この名前がブロックのクラス名になるので、適当に決めるとあとで面倒です。

$namespace/$blockname

ブロックの class属性は .wp-block-{$namespace}-{$blockname} となる。

core/$blockname とした場合のみ .wp-block-{$blockname} となるが、この名前空間は WordPress コアのブロック以外には許可されていない。$namespace と $blockname をいかにシンプルにするかが、CSSセレクタをいかにシンプルにするかにかかってくる。

Gutenberg の post_content って、ぶっちゃけ文章量よりもセレクタの文字数のほうが多いんじゃないだろうか。しかもクラス名が長すぎる。わかりやすいけど。

has-white-background-color は、 has-background-color–white とかがいいと思う。あ、更に長くなる。

CSSにも名前空間がほしい。@namespace とかできそう。

@namespace .has-background-color {
  white {
    background-color: white;
  }
}

/* -> .has-background-color--white { background-color: white } */

そこはまぁ Sass でやれと。

.has-background-color {
  @at-root #{&}--white {
    background-color: white;
  }
}

// -> .has-background-color--white { background-color: white }