カテゴリ: Bootstrap 更新日: 2025/12/28

Bootstrapで理解する動きの配慮!prefers-reduced-motionとトランジション調整の基本

動きの配慮:prefers-reduced-motionとトランジションの調整
動きの配慮:prefers-reduced-motionとトランジションの調整

先生と生徒の会話形式で理解しよう

生徒

「Bootstrapのアニメーションって便利ですけど、人によっては動きが強すぎるって聞いたことがあります。」

先生

「そうなんだ。動きが多い画面は、眩暈(めまい)を起こしやすい人や、画面酔いしやすい人にとって負担になることがあるからね。」

生徒

「そんな人にも優しくするには、どうしたらいいんですか?」

先生

「Bootstrapには“動きを控えめにする仕組み”が元々あって、特別なCSSを書かなくてもある程度は自動で配慮できるんだよ。」

1. prefers-reduced-motionとは?OSが持つ“動きを減らす”設定

1. prefers-reduced-motionとは?OSが持つ“動きを減らす”設定
1. prefers-reduced-motionとは?OSが持つ“動きを減らす”設定

最近のスマートフォンやパソコンには「アニメーションを少なくする」という設定があります。これは、画面の動きによって酔いやすい人・動きが苦手な人のための機能です。この設定は prefers-reduced-motion としてWebサイト側にも伝わるため、サイトはユーザーの好みに合わせて動きを調整できます。

Bootstrapはこの設定を自動的に読み取り、動きが少ないほうが良いと判断されたときは、アニメーションの時間を短くしたり、そもそも動かさないように調整します。つまり、特別なコードを書かなくても、ある程度アクセシビリティに配慮できるわけです。

初心者の方でも「OSの設定がWebの動きに影響する」と知っておくと、アクセシビリティの理解が深まります。

2. Bootstrapのアニメーションは“fadeクラス”が中心

2. Bootstrapのアニメーションは“fadeクラス”が中心
2. Bootstrapのアニメーションは“fadeクラス”が中心

Bootstrapでよく見るふわっとした動きは、ほとんどの場合 .fade クラスによるものです。モーダル、アラート、トースト、ドロップダウンなど、多くのコンポーネントで使われています。

この .fade クラスを外すだけで、アニメーションのないシンプルな表示になります。独自CSSを一切使わずに動きを減らせるので、初心者にも扱いやすい方法です。


<h2 class="mb-3">モーダルのアニメーション比較デモ</h2>
<p>左は <strong>fade あり</strong>、右は <strong>fade なし</strong> のモーダルです。</p>

<!-- ボタン -->
<div class="d-flex gap-3">
  <button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#modalFade">
    アニメーションあり(fade)
  </button>

  <button class="btn btn-secondary" data-bs-toggle="modal" data-bs-target="#modalNoFade">
    アニメーションなし
  </button>
</div>

<hr>

<!-- fade ありモーダル -->
<div class="modal fade" id="modalFade" tabindex="-1">
  <div class="modal-dialog">
    <div class="modal-content p-3">
      <h5 class="modal-title">fade あり</h5>
      <p>ふわっと表示されます。</p>
      <button class="btn btn-outline-secondary" data-bs-dismiss="modal">閉じる</button>
    </div>
  </div>
</div>

<!-- fade なしモーダル -->
<div class="modal" id="modalNoFade" tabindex="-1">
  <div class="modal-dialog">
    <div class="modal-content p-3">
      <h5 class="modal-title">fade なし</h5>
      <p>アニメーションなしで即表示されます。</p>
      <button class="btn btn-outline-secondary" data-bs-dismiss="modal">閉じる</button>
    </div>
  </div>
</div>
ブラウザ表示

このように、Bootstrapはクラス指定だけで動きをコントロールできるため、アクセシビリティの調整がとても簡単です。

3. prefers-reduced-motionが有効な場合、Bootstrapはどう変わる?

3. prefers-reduced-motionが有効な場合、Bootstrapはどう変わる?
3. prefers-reduced-motionが有効な場合、Bootstrapはどう変わる?

ユーザーのOSが「動きを減らす」設定になっていると、Bootstrapはアニメーションをほぼゼロに近い速度で実行します。見た目としては“ほぼ動きが無い”状態です。

逆に「動きを減らさない」設定の場合は、通常どおり自然なアニメーションが行われます。このようにBootstrapは、ユーザーの環境に合わせて自動で優しいUIへ切り替えてくれます。

これは初心者でも理解しやすいアクセシビリティのポイントで、特別なCSSを書く必要はありません。

4. よく使うコンポーネントごとの“動きを減らすコツ”

4. よく使うコンポーネントごとの“動きを減らすコツ”
4. よく使うコンポーネントごとの“動きを減らすコツ”

ここでは、Bootstrapでよく使うUIが、どのような動きに依存しているか、そして動きを控えめにしたいときの考え方を説明します。すべてBootstrapのclassだけで対応できます。

● モーダル(Modal)

モーダルは .fade を外すだけでアニメーションなしになります。画面酔いしやすいユーザーにも配慮できます。

● アコーディオン(Collapse)

開閉時のスライド動作も、prefers-reduced-motion が有効なユーザーには短く調整されます。特別な設定は不要です。

● カルーセル(Carousel)

カルーセルは動きが激しめなので注意が必要です。自動スライドを止めたい場合は data-bs-interval="false" を使えば動きません。


<h3 class="mt-5">アコーディオン:アニメーション比較(あり/なし)</h3>

<div class="row g-4">

  <!-- アニメーションあり -->
  <div class="col-md-6">
    <h5>アニメーションあり</h5>
    <div class="accordion" id="accWith">
      <div class="accordion-item">
        <h2 class="accordion-header">
          <button class="accordion-button collapsed" data-bs-toggle="collapse" data-bs-target="#accWith1">
            開く(スライドあり)
          </button>
        </h2>
        <div id="accWith1" class="accordion-collapse collapse">
          <div class="accordion-body">アニメーションありのパネルです。</div>
        </div>
      </div>
    </div>
  </div>

  <!-- アニメーションなし -->
  <div class="col-md-6">
    <h5>アニメーションなし</h5>

    <style>
      /* collapse 開閉アニメーションを完全に無効化 */
      .no-ani.collapsing {
        transition: none !important;
      }
      .no-ani.collapse.show {
        transition: none !important;
      }
    </style>

    <div class="accordion" id="accNoAni">
      <div class="accordion-item">
        <h2 class="accordion-header">
          <button class="accordion-button collapsed" data-bs-toggle="collapse" data-bs-target="#accNoAni1">
            開く(即開く)
          </button>
        </h2>
        <div id="accNoAni1" class="accordion-collapse collapse no-ani">
          <div class="accordion-body">アニメーションなしのパネルです。</div>
        </div>
      </div>
    </div>

  </div>
</div>
ブラウザ表示

5. 動きを控えめにしたいユーザーへの“やさしいUI”とは?

5. 動きを控えめにしたいユーザーへの“やさしいUI”とは?
5. 動きを控えめにしたいユーザーへの“やさしいUI”とは?

動きの強いUIは、一見オシャレに見えても、体質や環境によっては負担になります。特にカルーセルやフェードの多いUIは注意が必要です。

Bootstrapでは、あえて .fade を外したり、自動スライドを止めたりするだけで、誰にとっても使いやすい穏やかなUIに変わります。

アクセシビリティは“特別な人のため”だけではなく、多くのユーザーにとって快適さを高めるためのデザインです。小さな調整ほど効果があります。

カテゴリの一覧へ
新着記事
New1
Bootstrap
Bootstrapのガターをマスター!g-0〜g-5とgx/gyの使い分けコツ
New2
CSS
CSSグリッド完全解説!auto-fitとauto-fillの違いとレスポンシブ設計での正しい使い分け
New3
Bootstrap
Bootstrapブレークポイントの設計図!sm/md/lg/xlの選び方と実務基準
New4
CSS
CSSグリッド入門!grid-areaで名前付き領域を使ったレイアウトの作り方をやさしく解説
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSグリッドレイアウト完全入門!display: grid の基本と使い方を初心者向けにやさしく解説
No.2
Java&Spring記事人気No2
CSS
CSSでテキストの折り返しを完全解説!初心者でもわかる基本と注意点
No.3
Java&Spring記事人気No3
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.4
Java&Spring記事人気No4
CSS
CSSの複数セレクタ指定を完全解説!初心者でもわかるカンマ区切りの使い方
No.5
Java&Spring記事人気No5
CSS
CSSのフレックスボックスで要素を左右に寄せる方法を完全ガイド!初心者でもわかるjustify-content: space-between
No.6
Java&Spring記事人気No6
CSS
CSSフレックスボックス完全解説|Gridとの違いとFlexboxが得意なレイアウトパターンを初心者向けに理解しよう
No.7
Java&Spring記事人気No7
CSS
CSS Flexbox入門!display: flexの基本と適用方法を初心者向けに解説
No.8
Java&Spring記事人気No8
CSS
CSSの斜体文字を完全解説!初心者でもわかるfont-style: italicの使い方