カテゴリー
[Dart Sass対応] 便利なSassの使い方ガイド ~ 複数のscssファイルを分割してみる
※ 当ページには【広告/PR】を含む場合があります。
2019/12/09
@import
@import
@import
@use
分割の基本
分割して読み込まれるファイル名には、_(アンダーバー)などから始めること
$ tree
.
└ app
├── app.html
├── app.html
├── app.js
├── parent.scss
├── _child1.scss
├── _child2.scss
└── _child3.scss
parent.scss
_child*.scss
@use 'child1';
@use 'child2';
@use 'child3';
//...中略
$ tree
.
└ app
├── app.html
├── app.html
├── app.js
├── parent.scss
└ children
├── _child1.scss
├── _child2.scss
└── _child3.scss
@use 'children/child1';
@use 'children/child2';
@use 'children/child3';
//...中略
応用例 〜 文字ブルブル
プロジェクト
$ ng g c components/mySplitScss
node_modules
$ tree -I node_modules -L 5
.
├── angular.json
├── package.json
├── src
│ ├── app
│ │ ├── app.component.html
│ │ ├── app.component.scss
│ │ ├── app.component.spec.ts
│ │ ├── app.component.ts
│ │ ├── app.module.ts
│ │ └── components
│ │ └── my-split-scss
│ │ ├── my-split-scss.component.html
│ │ ├── my-split-scss.component.scss
│ │ ├── my-split-scss.component.spec.ts
│ │ └── my-split-scss.component.ts
#...以下略
_animation.my-split-scss.component.scss
$ tree -I node_modules -L 5
.
├── angular.json
├── package.json
├── src
│ ├── app
│ │ ├── app.component.html
│ │ ├── app.component.scss
│ │ ├── app.component.spec.ts
│ │ ├── app.component.ts
│ │ ├── app.module.ts
│ │ └── components
│ │ └── my-split-scss
│ │ ├── my-split-scss.component.html
│ │ ├── my-split-scss.component.scss
│ │ ├── _animation.my-split-scss.component.scss
│ │ ├── my-split-scss.component.spec.ts
│ │ └── my-split-scss.component.ts
#...以下略
コードの実装
shaky-text
my-split-scss.component.html
<div class="shaky-text">
<p>寒い</p>
</div>
my-split-scss.component.scss
@use 'animation.my-split-scss.component';
.shaky-text {
font-size: 1.8rem;
color: #8f8f8f;
&:hover {
animation: shake .2s 10;
}
}
@use
_animation.my-split-scss.component.scss
@keyframes shake {
0% {
transform: translate(0px, 0px) rotateZ(0deg);
}
25% {
transform: translate(4px, 4px) rotateZ(0deg);
}
50% {
transform: translate(0px, 4px) rotateZ(0deg);
}
75% {
transform: translate(4px, 0px) rotateZ(0deg);
}
100% {
transform: translate(0px, 0px) rotateZ(0deg);
}
};
ビルド
まとめ
@use
@import
dart-sass
@use
@import
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー