ファイル管理
コンポーネント内の @keyframes
コンポーネント固有のアニメーションは、そのコンポーネントの SCSS ファイル内に定義します。
@keyframes は CSS 仕様上グローバルスコープになるため、Block 名を含めて命名し衝突を避けます。
配置ルール
- ファイル末尾にまとめて配置
- ルート直下に置く(
@media/@layerなどの内側は不可)
命名ルール
{block}-{action}または{block}-{element}-{action}- action は短く明確に(動詞句)
例:
.sample-block { animation: sample-block-fade-in 0.3s ease;}
// ファイル末尾に配置@keyframes sample-block-fade-in { to { opacity: 1; }}共有アニメーション(グローバル層)
複数コンポーネントで共通のアニメーションはグローバル層で管理します。
kf-などの prefix を付け、keyframes.scssに集約- import は
@styles/partials/keyframesのように alias 経由で
@rel コメント
Block 間の親子関係をコメントで明示し、ファイル間をたどれるようにします。
親 Block
@use "sass:meta";
// @assets/css/home.scss ← ページエントリ
.home-section { @include meta.load-css("scss");
> .home-hero { // @rel/scss/home-hero.scss ← 子 Block へのリンク }}子 Block
// @rel/../home-section.scss ← 親 Block へのリンク
.home-hero { // ...}ページエントリ
.main-container { > .home-section { // @components/home-section/home-section.scss }}ルール
- 親 → 子:
> .childルール内の先頭コメントに子 Block へのリンク - 子 → 親: ファイル先頭付近に親 Block へのリンク
- 親 → ページ: ファイル先頭付近にページエントリへのリンク