sass 3.3.0.rc.3 から、インターポレーションなしで、「&」を含んだセレクタが作れる!!!!

先日、LessでBEMってみたらかなりさくさくコーディングできた!という話という記事で、Sassを全力でDisったような気がしますが、

いい加減にsass3.3を導入しようとついに一念発起して、sass3.3.0.rc.3を突っ込んでみました。

Compassも1.0.0の開発版にアップデートし、いざ、SassでBEMるぞ!!!と、かの有名なBEM用Mix-in

@mixin e($name) {
  @at-root   #{&}__#{$name} {
    @content;
  }
}


@mixin m($name) {
  @at-root   #{&}--#{$name} {
    @content;
  }
}

を突っ込んでみたんですが、このMix-inでコンパイルエラー。これはrc.2にしてみたらうまくいったのですが、Compassのバージョンを落としたりが面倒くさくて挫折。rc.3のバグなのかな?と思っていました。

そして、本日、rc.4が出ていたので、改めて再トライ。しかし同じエラーが出現。これはいくら何でも。。。と思い、Sassどうした!って思っていたのですが、試しに、

@mixin e($name) {
  @at-root   &__#{$name} {
    @content;
  }
}


@mixin m($name) {
  @at-root   &--#{$name} {
    @content;
  }
}

としてみたら、コンパイルが通ってしまいました。

ちゃんとMix-inも無事動きます!
rc.3でも動きました。Oh…

もちろん、これも動きます!しかも、@at-root書かなくても大丈夫。Lessとかと全く同じ挙動です。
BEM用Mix-inなんていらんかったんや・・・・・

.foo {
	&__bar {
		
	}
}

SassのRC版は、

gem install sass --pre

Compassは、

gem install compass --pre

でインストールできます。

やっぱりSassは最強でした。