mkdir scss-test cd scss-test
yarn init -y
mkdir scss && mkdir css
echo '$main-color: #007bff;' > scss/_variables.scss echo '@import "variables"; body { color: $main-color; }' > scss/style.scss
{ "name": "scss-test", "version": "1.0.0", "main": "index.js", "license": "MIT", "devDependencies": { "sass": "^1.86.3" }, "scripts": { "dev": "sass scss:css --watch", "build": "sass scss:css --style=compressed" } }
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>SCSS Test</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <h1>SCSSテスト</h1> </body> </html>
yarn dev
http://localhost/scss-test/index.htmlページが表示されれば成功
C:\Users\user\git\scss-test ├── css │ ├── style.css │ └── style.css.map ├── index.html ├── node_modules │ ├── .bin │ ├── .yarn-integrity │ ├── @parcel │ ├── braces │ ├── chokidar │ ├── detect-libc │ ├── fill-range │ ├── immutable │ ├── is-extglob │ ├── is-glob │ ├── is-number │ ├── micromatch │ ├── node-addon-api │ ├── picomatch │ ├── readdirp │ ├── sass │ ├── source-map-js │ └── to-regex-range ├── package.json ├── scss │ ├── _variables.scss │ └── style.scss └── yarn.lock
SCSS(Sassy CSS)は、従来のCSSに便利な機能を追加したプリプロセッサです。ここでは実務で特によく使われる構文を、例付きでわかりやすく解説します。
$variable
)色、余白、フォントサイズなどを変数にして再利用できます。
$primary-color: #007bff;
$padding-base: 16px;
.button {
background-color: $primary-color;
padding: $padding-base;
}
セレクタを入れ子にすることで、構造を整理して読みやすくなります。
nav {
ul {
list-style: none;
li {
display: inline-block;
a {
color: blue;
}
}
}
}
@mixin
/ @include
)再利用可能なテンプレートを定義し、引数付きで柔軟に使い回せます。
@mixin flex-center($direction: row) {
display: flex;
justify-content: center;
align-items: center;
flex-direction: $direction;
}
.container {
@include flex-center;
}
.column-container {
@include flex-center(column);
}
@extend
)別のクラスやプレースホルダーのスタイルを引き継ぐことができます。
%btn-base {
padding: 10px;
border-radius: 4px;
}
.btn-primary {
@extend %btn-base;
background-color: blue;
color: white;
}
@if
, @else if
, @else
)変数の値でスタイルを切り替えるときに使います。
$theme: dark;
body {
@if $theme == dark {
background-color: #000;
color: #fff;
} @else {
background-color: #fff;
color: #000;
}
}
@for
, @each
)パターン化されたクラスを自動生成できます。
@for $i from 1 through 3 {
.mt-#{$i} {
margin-top: $i * 10px;
}
}
$colors: red, green, blue;
@each $color in $colors {
.text-#{$color} {
color: $color;
}
}
@function
)カスタム計算処理を定義して、必要な場所で呼び出せます。
@function px-to-rem($px) {
@return $px / 16 * 1rem;
}
h1 {
font-size: px-to-rem(24);
}
@use
, @forward
)ファイルを分割して管理しやすくなります。
// _variables.scss
$main-color: #333;
// style.scss
@use 'variables';
h1 {
color: variables.$main-color;
}
機能 | キーワード | 主な用途 |
---|---|---|
変数 | $変数名 | 色・サイズ・共通値の管理 |
ネスト | セレクタ入れ子 | 階層構造を見やすく整理 |
ミックスイン | @mixin, @include | テンプレートスタイルの再利用 |
継承 | @extend | クラスのスタイル継承 |
条件分岐 | @if, @else | テーマ・状態で切り替え |
繰り返し | @for, @each | パターン生成 |
関数 | @function | 自作計算 |
モジュール化 | @use, @forward | ファイル管理と再利用 |
このSCSS構文の活用により、スタイルの保守性・再利用性・開発効率が大きく向上します。