パネルとドロワーのスライドインアニメーションイージング

最適化された減速cubic-bezierカーブを使用して、サイドパネル、ナビゲーションドロワー、オフキャンバスメニューのスムーズなスライドインアニメーションを作成します。

UI Patterns

詳細な説明

スライドインパネルイージング

サイドパネル、ナビゲーションドロワー、オフキャンバスメニューには、スライドモーションが自然に感じられるイージングカーブが必要です — 素早い入場と穏やかな停止。

推奨カーブ

transition-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1);

このカスタムカーブはMaterial Decelerateカーブよりもさらに速い開始を提供し、延長されたスムーズな減速を伴います。パネルがビューに「投げ込まれ」、摩擦でキャッチされたような感覚です。

スライドインカーブの比較

カーブ 特性
ease-out (0, 0, 0.58, 1) 標準的、やや硬い
Material Decelerate (0, 0, 0.2, 1) Google スタイル、自然
カスタムスライドイン (0.05, 0.7, 0.1, 1) 高速入場、非常にスムーズな着地

コード例:ナビゲーションドロワー

.drawer {
  position: fixed;
  left: 0;
  top: 0;
  height: 100%;
  width: 280px;
  transform: translateX(-100%);
  transition: transform 350ms cubic-bezier(0.05, 0.7, 0.1, 1);
}
.drawer.open {
  transform: translateX(0);
}

スライドアウト(閉じる)

閉じるアニメーションには、補完的な加速カーブを使用します:

.drawer.closing {
  transform: translateX(-100%);
  transition: transform 250ms cubic-bezier(0.4, 0, 1, 1);
}

閉じるアニメーションはより速く(250ms vs 350ms)、加速カーブを使用して、パネルが去るにつれて速度が上がるようにします。

パフォーマンスのヒント

left / rightの代わりに常にtransformをアニメーションしてください。transformはGPUアクセラレーションされ、レイアウト再計算をトリガーしません。

ユースケース

このイージングをナビゲーションドロワー、サイドパネル、オフキャンバスメニュー、通知トレイ、画面の端からスライドして表示されるUI要素に使用します。

試してみる — CSS Easing Function Editor

フルツールを開く