Sass 3.5 が リリースされました

2017年7月7日投稿者:Natalie Weizenbaum

Sass 3.5の安定版をリリースしたことをお知らせできて嬉しく思います。このリリースでは、新しいCSS構文との互換性に重点を置き、今後のモジュールシステムとDart Sassとの互換性の基盤を築くことを目指しています。

3.5の主要機能のほとんどは、リリース候補版ですでに提供されていました。こちらでご覧いただけます。しかし、それ以降に追加されたいくつかの変更点があります。

  • Sassは現在、セレクタ引数の拡張を含め、::slotted()擬似要素をサポートしています。

  • var()関数は、CSSの色関数rgb()rgba()hsl()hsla()に安全に渡すことができます。

  • Sassの色関数によって作成された透明色は、Internet Explorerのバグを回避するために、transparentではなくrgba(0, 0, 0, 0)として記述されるようになりました。ドキュメント内でtransparentとして記述された色は、引き続き記述されたとおりに出力されます。

Dart Sassとの互換性Dart Sassとの互換性 permalink

先月書いたように、短期的にRuby SassとDart Sassの互換性を維持するための計画があります。Sass 3.5では、Dart Sassによって追加されたいくつかの小さな動作拡張のサポートを追加することで、これらの計画の実装を開始しています。

  • スタイルシートに存在するが、統合に失敗するセレクタを@extendすることがエラーではなくなりました。拡張エラーの目的はタイプミスを防ぐことでしたが、この ケースでは発生していませんでした。

  • 引数を取る擬似セレクタは、CSS<declataion-value>構文に一致する任意の引数を取るようになりました。これにより、新しい セレクタとの前方互換性が向上します。

  • プレースホルダセレクタとプレースホルダ以外のセレクタの両方を含む擬似セレクタ(例::matches(.foo, %bar))は、削除されなくなります。これは、プレースホルダを何も一致しないセレクタとして定義したものと一致します。

  • インデント構文ファイル内のインデントを、一貫したツリー 構造を定義している限り、変更できるようになりました。

Ruby Sassでサポートされていない機能に関する非推奨事項もあります。

  • @extend .foo.barなどの複合セレクタの拡張は非推奨です。これは、extendの述べられたセマンティクスに従っていませんでした。拡張セレクタに一致する要素は、拡張された セレクタに一致するかのようスタイル設定されます。

    h1 {@extend .a.b}と記述した場合、これはすべてのh1要素が.a.bに一致するかのようにスタイル設定されることを意味するはずです。つまり、class="a b"を持つかのようになり、.a.bの両方に個別に一致します。しかし、代わりに、.a.b両方を含むセレクタのみを拡張します。これは 正しくありません。

  • 色の算術演算は非推奨です。チャネルごとの算術演算は、色の直感的な理解と密接に関連していません。Sassの色の関数のスイートは、色を動的に操作するための、はるかにクリーンで分かりやすい方法です。

  • 参照コンバイナ/foo/は非推奨です。これはしばらくの間CSS仕様に含まれておらず、Chromeからまもなく削除される予定です。

  • 旧式の:name valueプロパティ構文は非推奨です。この構文は広く使用されておらず、CSSとは不必要に異なります。

LibSassとの互換性LibSassとの互換性 permalink

LibSass(SassのC++実装)は、これらの機能すべてとの互換性に向けて順調に進んでいます。まだ完全に実現しているわけではありませんが、3.5のリリースを100%の互換性に依存させたくないという判断をしました。LibSassは、実装された 時点でこれらの機能をリリースします。

今後の予定今後の予定 permalink

最も近い将来、数ヶ月間休暇を取るので、大規模な作業は行われない可能性が高いです。休暇が終わったら、Dart Sassを完全な1.0.0リリースにすることに集中します。つまり、JavaScript APInode-sassと互換性を持たせるために多くの時間を費やすということです。

Ruby Sassに関しては、バグの修正とブラウザがサポートし始めたCSS機能のサポートを追加し続けます。Dart Sass 1.0.0がリリースされたら、1年間のサポート期間が終了するまで、RubyとDartの両方で同時に新しい機能を追加します。

しかし今は、gem update sassを実行して3.5をお楽しみください!