Sassという言葉を知っていますか?
HTMLやCSSといった言語に触れていると一度は聞いたことがあると思います。
私は初めて、目にした時クラウドのサービス形態である「saas」の誤字かと思っていました(笑)
今回は、WebデザイナーやWebエンジニアの方が従来のCSSへの不満を解消するきっかけになるスタイルシート「Sass」についてCSSとの違いについても交えながら解説していきます!
Sassて何?
そもそもさっきから使っている言葉「Sass」って何なの?てところです。
Sass(Syntactically Awesome Style Sheets)は、CSSをより効率的なスタイルシートとして作成できるようにしたものになります。
難しい言い方をすれば、CSSの「メタ言語」です。
メタ言語ってなんやねんという風になっている人もいるかと思いますので簡単に説明します。
メタ言語
その特定の言語に対して何らかを記述した言語です。
つまり、「言語を作るための言語」
JavaScriptとTypeScriptの関係性が分かりやすい例かと思います。
Sassの特徴、CSSとの違い
Sassについて、少しだけイメージがついたところでSassの特徴について、CSSとの違いも交えて説明していきます。
変数が利用できる!
私の中では、これが一番大きな点であると思います。
CSSは、変数をサポートしていません。
変数を使うことで、色、フォントサイズ、余白などの値を一箇所で定義しておきます。後で変更が必要な場合には変数の値を変えるだけでOK。
全ての関連するスタイルを変数で管理できるのは大きなメリットです。
ネスト構造
Sassは、親要素内に子要素のスタイルを記載するネスト構造で記述することができます。
CSSでは重複して長いセレクタを記述していたものもネスト構造によって簡潔になります。
(ネストが深すぎると後々面倒なのでそこは避けましょう。)
ネスト構造の例については以下のようなものです。
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
li {
display: inline-block;
}
a {
text-decoration: none;
}
}
}
ミックスイン
再利用可能なスタイルのセットを作成して、必要な個所で呼び出すことができます。
そのため、同じスタイルを繰り返し記述する手間が省けます!
CSSにはなかった機能です。
例として以下のコードは、button-stylesという名前のミックスインを定義して.boxクラスで呼び出してスタイルを適用しています。
//ミックスインの定義
@mixin button-styles {
display: inline-block;
width: 200px;
padding: 20px 10px;
border: none;
background-color: #fff;
color: #000000;
text-align: center;
text-decoration: none;
}
.box {
@include button-styles; //@includeでスタイルを呼び出し
}
関数と演算
Sassには色や数値の操作、計算、文字列操作などが可能な関数が備わっています。
そのため、色の変更や数値の計算等が容易になります。
こちらについてもCSSにはなかった機能です。
例として、色を変更する関数について記述します。
$base-color: #333;
.element {
background-color: adjust-hue($base-color, 30deg);
}
ファイルの分割
Sassはファイルを複数に分割し、必要な部分をインポートすることができます!
そのため、プロジェクト全体のスタイルをより管理しやすくなるというメリットがあります。
例として以下のように感じに分割します。
- _header.scss ←ヘッダーの記述
- _buttons.scss ←ボタンの記述
このようにすると、デザインを修正する際に「あ、ここの修正すればいいのか」 と該当箇所が分かりやすくなります。
まとめ
今回、SassについてCSSとの違いについて交えて解説しました!
Sassって何なのてところから、Sassって便利!となっている方も多いと思います。
CSSに加えて学習コストがかかるというデメリットもありますが、一度試しに、コーディングしてみてはいかがでしょうか?
学習方法としては、Udemyに動画が何件かありますのでセールを利用して購入がおすすめです。