Sassを標準CSSに変換 — Numio
Sass のインデント構文(.sass、波括弧やセミコロンなし)を Dart Sass でプレーンな CSS にコンパイルし、選んだブラウザーターゲットに対して Autoprefixer を実行します。変数、mixin(=name / +name)、ネストはフラットな CSS ルールに展開されます。
古い Rails や Bulma 系プロジェクトのインデント構文 .sass ファイルが何にコンパイルされるかを、Sass のツールチェーンを用意せずに確認する。
Sass
CSS
こんなときに使えます
- 古い Rails や Bulma 系プロジェクトのインデント構文 .sass ファイルが何にコンパイルされるかを、Sass のツールチェーンを用意せずに確認する。
- Sass を受け付けない CMS、メールテンプレート、codepen に貼るために、.sass スニペットからプレーンな CSS を作る。
使い方
- Sass エディターに Sass を貼り付けるか、.sass ファイルをドロップします。
- 「設定」を開き、Autoprefixer のターゲットを選びます: defaults、not ie < 11、last 2 versions、iOS 7、last 3 iOS versions。初期状態では "defaults" のみオンです。
- CSS パネルの結果をコピーします。プレーンな CSS なので、そのまま .css ファイルとして保存できます。
Sass 入力
$primary: #3b82f6
$radius: 6px
=flex-center
display: flex
align-items: center
.button
+flex-center
border-radius: $radius
background: $primary
user-select: none
&:hover
background: darken($primary, 10%)CSS
.button {
display: flex;
align-items: center;
border-radius: 6px;
background: #3b82f6;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
.button:hover {
background: #0b63f3;
}仕様と制限
コンパイルはサーバーで行われます。ページはコードを /api/sass-to-css に POST し、そこでインデント構文を指定して Dart Sass の compileString が呼ばれます。その後の Autoprefixer と Prettier による整形はブラウザー内の Web Worker で実行されます。
入力は毎回、単独の 1 ファイルとしてコンパイルされます。自分の partial を @use や @import すると "Can't find stylesheet to import" で失敗します。@use "sass:math" などの組み込みモジュールは使えます。
ベンダープレフィックスは選択したターゲットによって決まります。例では "defaults" クエリのもとで user-select に -webkit- と -moz- のプレフィックスが付きます。
入力から CSS が生成されない場合(変数、mixin、関数だけの場合)、エラーではなく、CSS が生成されなかったことを示す CSS コメントが 1 つ出力されます。
FAQ
ここでの Sass と SCSS の違いは何ですか?
このページはインデント構文を前提としています。インデントでネストし、波括弧やセミコロンはなく、=mixin と +include の省略記法を使います。波括弧スタイルのコードには SCSS to CSS ページを使ってください。どちらも同じ API を、異なる構文フラグで呼び出します。
_variables.sass のような partial をインポートできますか?
できません。サーバーは貼り付けたテキストだけをコンパイルし、ファイルシステムやロードパスがないため、自分のファイルのインポートは失敗します。代わりに、partial の内容をそれを使うコードの上に貼り付けてください。
ファイルに変数や mixin しか含まれていない場合はどうなりますか?
Sass は一度も使われない宣言に対して CSS を出力しないため、ページにはコメント /* No CSS generated: ... */ が表示されます。変数を使うルールや mixin を include するルールを追加すると出力が得られます。
出力は minify されますか?
されません。CSS は展開形式で、Prettier で整形されます。&:hover などのネストしたセレクターは、.button:hover のような個別のルールとして書き出されます。