Skip to content

カスタムプロパティ・カスタムクエリー・変数・関数・ミックスイン・プレースホルダー

カスタムプロパティ

積極的に採用してください。

カスタムクエリー

PostCSSによりカスタムクエリーは値に展開されます。

css
/* コンパイル前 */
@media (--sm-lte) { /* ... */ }

/* コンパイル後 */
@media (max-width: 576px) { /* ... */ }

デフォルトテンプレート内に次のカスタムクエリーを準備しているので、レスポンシブコンポーネントのブレークポイントの設定に利用してください。

カスタムクエリー内容
--xsxs のみ
--smsm のみ
--mdmd のみ
--lglg のみ
--xlxl のみ
--xs-ltexs 以下 = xs のみ
--sm-ltesm 以下
--md-ltemd 以下
--lg-ltelg 以下
--xl-ltelg 以下
--xs-gtxs 超え
--sm-gtsm 超え
--md-gtmd 超え
--lg-gtlg 超え
--hr高解像度(レティナディスプレイ対応他)

図: ビューポートとブレークポイント

--hrは高解像度判定のクエリーなるので、低解像度と高解像度での出し分けを実装する差に利用することができます。

scss
.c-anonymous {
	background: url("/img/bg-anonymous.png");

	@media (--hr) {
		background: url("/img/bg-anonymous@2x.png");
	}
}

image-setの利用

もしくは解像度による出し分けはimage-setを利用しても構いません。

scss
.c-anonymous {
	background-image: image-set(
		url('/img/bg-anonymous.png') 1x,
		url('/img/bg-anonymous@2x.png') 2x
	);
}

変数

$で始まるSASSの変数が使用できますが非推奨です。

SASS変数の非推奨

CSSのエコシステム(Stylelintなど)がSASSのパースができなくなってきています。このため基本的にカスタムプロパティを利用してください。Stylelintがparse関連の警告を出す場合、SASS変数の利用を諦めて別の方法を検討してください。

👮‍♀️ 自動検知

このルールはStylelintによって警告されます。

関数

関数の定義は原則禁止です。

使用できるのはCSS標準によって規定されている関数や、SASSが標準機能としてもっている関数、PostCSSによりコンパイル時に変数を計算するresolve関数が使用できます。

👮‍♀️ 自動検知

このルールはStylelintによって警告されます。

ミックスイン

宣言

scss
@mixin mixin-name {
	/* declaration */
}

展開

scss
selector {
	@include mixin-name; // ここで展開
}

プレースホルダー

コンポーネントファイル内であれば%で始まる識別子でプレースホルダー機能を使用できます。プロパティが展開されるのは%を宣言した場所になるため、カスケーディングには十分に気をつけてください。

WARNING

scss
// ❌ コンポーネント外の利用は禁止
%any-style {
	any-property: any-value;
}

// ✅ コンポーネント内で利用する
.c-component {
	%any-style {
		any-property: any-value;
	}

	&__element {
		@extend %any-style;
	}
}

👮‍♀️ 自動検知

このルールはStylelintによって警告されます。

Licensed under CC BY-NC-SA 4.0