DartScssの記述方法
ScssをCSSへコンパイルしましょう #2/3
Vscodeの拡張機能であるLive Sass Compilerを使用して、DartScssを記述し、CSSにコンパイルしてデザインを適用する方法を以下に説明します。SCSSの構築方法については、こちらのリンクを参照してください。
DartScssの構築
こちらからコードをダウンロードできます。ご利用ください。
ディレクトリーの構成と設定内容
ディレクトリー構成
- dist - css - index.min.css - index.css - src - global - _index.scss - _common.scss - _variables.scss - index.scss - index.html
// Scssの詳細設定 "liveSassCompile.settings.formats": [ // 拡張子が ".css" のファイルを作成する(デフォルト設定) { "format": "expanded", "extensionName": ".css", "savePath": "/dist" }, // 拡張子が ".min.css" のファイルを作成する { "format": "compressed", "extensionName": ".min.css", "savePath": "/dist/css" } ], // live sass ソースマップを出力しない "liveSassCompile.settings.generateMap": false,
setting.jsonの解説
上記のコードは、VscodeのLive Sass Compiler拡張機能の詳細設定を示しています。以下で各項目の説明をします。
liveSassCompile.settings.formats: SCSSファイルのコンパイル時に生成するCSSファイルのフォーマットを指定します。複数のフォーマットを定義することができます。
format: CSSファイルのフォーマットを指定します。“expanded”は読みやすい形式(テスト環境用)、“compressed”は圧縮された形式(本番環境用)です。
extensionName: 生成されるCSSファイルの拡張子を指定します。上記では、テスト環境は.cssを指定し、本番環境では.min.cssを指定しています。
savePath: 生成されたCSSファイルの保存先パスを指定します。ここでは“/dist”を指定し、このディレクトリにコンパイルされたCSSが生成されます。
※上記の例では、”/dist”フォルダ内にはテスト環境用と本番環境用のCSSが生成されます。
liveSassCompile.settings.generateMap: SCSSファイルのコンパイル時にソースマップを生成するかどうかを指定します。ソースマップは、開発者ツールでSCSSファイルの元のソースコードを参照できるようにするためのものです。この設定では、falseに設定されており、ソースマップの生成を無効化しています。
SCSSコードの解説
各ファイルの説明
src: SCSSのソースコードが格納されるディレクトリです。
global: グローバルなスタイルに関するファイルが格納されるディレクトリです。名前は任意です。
_index.scss: グローバルなスタイルを定義するためのSCSSファイルです。こちらが起点となるファイルで@forwardを使用し、以下の_common/_variablesファイルを読み込んでいます。
_common.scss: 共通のスタイル定義をまとめたSCSSファイルです。
_variables.scss: 変数や定数を定義するためのSCSSファイルです。
index.scss: メインのスタイルを定義するためのSCSSファイルです。@use ‘./global/’ as *;を記述することで、globalディレクトリーに記述内容を引き継ぐことができます。
$cWhite: #FFFFFF; $cBlack: Black; $cBlue: Blue; $cGray: Gray;
上記のコードでは、変数を定義してそれをスタイルに適用しています。変数はカラーコードの設定に使われており、値を変更する際には一括で変更することができます。変数を使用することで、スタイルの再利用性が高まり、スタイルの管理が効率的になります。カラーに限らず、max-widthの指定やフォントサイズの指定など、さまざまな用途で変数を活用することが可能です。
.flex-row { display: flex; align-items: center; } .flex-column { display: flex; flex-direction: column; } .absolute { position: absolute; } .relative { position: relative; } .fw-bold { font-weight: 700; } .fw-medium { font-weight: 500; } .fw-light { font-weight: 300; }
このファイルは共通のクラスをまとめたものです。ファイルを分割することでスタイルの管理が向上し、変更もこのファイルのみで行うことができるため、効率的です。共通のスタイルを集約したファイルですので、コードの重複を避けることができ、保守性も高まります。
@forward "variables"; @forward "common";
_index.scssは、通常は名前を変更しないファイルです。このファイルでは、@forwardディレクティブを使用して他のSCSSファイルをインポートしています。
@forward “variables”;: “variables”という名前のSCSSファイルをインポートしています。このファイルには変数の定義が含まれます。
@forward “common”;: “common”という名前のSCSSファイルをインポートしています。このファイルには共通のスタイルが定義が含まれます。
@forwardディレクティブを使用することで、他のファイルに定義された変数やスタイルをこの_index.scssファイルから利用することができます。これにより、モジュール化されたスタイルの管理や再利用性の向上が図られます。
適応されたコードを確認して見ましょう
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/destyle.css@1.0.15/destyle.css" /> <link rel="stylesheet" href="dist/index.css" /> </head> <body> <header class="flex-row">ヘッダー</header> <div class="hero flex-row">メインビジュアル</div> <!-- /.hero --> <main> <div class="wrapper flex-column"> <section> <div class="box1 flex-row">box1</div> <!-- /.box1 --> </section> <section> <div class="box2 flex-row">box2</div> <!-- /.box2 --> </section> <section> <div class="box3 flex-row">box3</div> <!-- /.box3 --> </section> </div> <!-- /.wrapper --> </main> </body> </html>
_common.scssで記述した.flex-rowや.flex-columnの値が適応されていることがわかります。
@use './global/' as *; body { color: $cWhite; font-size: 2rem; letter-spacing: 0.02em; } header { justify-content: center; height: 150px; background-color: $cBlue; } .hero { justify-content: center; height: 500px; background-color: $cBlack; } .box1, .box2, .box3 { justify-content: center; height: 300px; background-color: $cGray; } .wrapper { justify-content: center; padding: 100px 0; width: 80%; margin: 0 auto; gap: 50px; } section { justify-content: center; width: 100%; }
_variablew.scssで記述した変数の値がCSSにコンパイルされて適応していることがわかります。
- VsCodeの拡張機能Live Sass Compilerで、SCSSファイルを指定したフォーマットでコンパイルし、生成されたCSSファイルを指定した保存先に出力される。
- 設定は、VsCodeのsettings.jsonに記述する。
- DartScssでは@forwardや@useといった内容を使用する。
- _index.scssが起点となるファイルであり、原則名前を変更することはできない。
- SCSSの利点を活かし、保守性の高いWebサイトを構築することが可能。