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構文の活用により、スタイルの保守性・再利用性・開発効率が大きく向上します。