久方ぶりにSASSを使ってみる
このブログのリニューアルで久々に一からCSSを書いている。
そしてCSS設計の本を読んだこともありBEMを使ってみている。
それにともなって素のCSSを書いて行くのはだるいなということで久々にSASSを使ってみることに。
だいぶ見通しがよくなってよろしい。
こういうSCSSを書くと
.header {
padding-top: 20px;
&__inner {
max-width: 1230px;
}
}
CSSの出力はこうなる。
.header {
padding-top: 20px; }
.header__inner {
max-width: 1230px; }
&が便利で素晴らしい。
ちなみに一昔前はLESSとか色々選択肢があったけど、今はSASS(SCSS)一強なんですな。
インストール
昔はRubyで動かしていたけど最近の流れではNodeで動かすのがメジャーでありましょう。
$ npm i -D sass
動作確認
main.scssを修正がmain.cssに反映されているか確認。
$ sass src/assets/scss/main.scss:src/assets/css/main.css
watch
修正のたびにいちいちコマンドを打つのはさすがに暇人の所業なので、main.scssを修正したら自動でmain.cssに変更が反映されるようにする。
$ sass --watch src/assets/scss/main.scss:src/assets/css/main.css
npm-scripts
ついでにあとで他のフロントエンド開発系のタスクが追加されたときのことも考え、npm-scriptsでまとめて実行できるようにpackage.jsonに以下のように書いた。
シンプルなタスクはgulpとか使わずnpm-scriptsでやってしまうのが最近トレンドらしい。
{
"scripts": {
"build": "npm run build:sass",
"build:sass": "sass src/assets/scss/main.scss:src/assets/css/main.css",
"watch": "npm run watch:sass",
"watch:sass": "sass --watch src/assets/scss/main.scss:src/assets/css/main.css"
}
}
これでwatchは
$ npm run watch
で実行できるし、ビルドが必要なら、
$ npm run build
でサイトに必要なものをすべてまとめてビルドすることができる。