DESIGN DIRECTION

Webページ

AIに Webページを作らせるときに使う、スクロール・マウス・読み込み中の動きです。

0.00秒

調整して指示を作る

値を変えると、見本と下の指示例・細かい指定・HTML・CSS が書き換わります。

速さの変わり方

Webページ

スクロールで現れるScroll reveal

スクロールして画面に入ったときに、ふわっと現れる。

AIへの指示例上の調整が入ります

Webページを作るAIに(ふだんの言葉で)Webページの各まとまりは、スクロールして画面に入ったときに少し下から上がりながらフェードインするようにしてください。長さは0.6秒で、最後はゆっくり止まる(イーズアウト)ようにしてください。1度出たら、上に戻っても消さないでください。
細かく伝えるとき(制作の依頼や、HTML を書くAIに)ページのカードを、画面に入ったときに0.6秒で下から24px上がりながらフェードインさせてください。速さの変わり方はイーズアウト(ease-out)。IntersectionObserver で画面に入ったことを見て、1回だけ動かします。
細かい指定動画を作る人・細かく指示したい人向け
長さ
0.6秒
速さの変わり方
イーズアウト(ease-out)
曲線の数値
cubic-bezier(0, 0, 0.58, 1)
きっかけ
スクロールして画面に入ったとき(1回だけ)
変えるもの
下から 24px・透明度 0% → 100%
HTML・CSS・JavaScriptWebページや HTML のスライドを作る人向け。貼ればそのまま動きます
<section class="fb-reveal">画面に入ると現れます</section>

<script>
  // 画面に入ったら is-visible を付ける(1回だけ)
  const observer = new IntersectionObserver((entries) => {
    entries.forEach((entry) => {
      if (entry.isIntersecting) { entry.target.classList.add('is-visible'); observer.unobserve(entry.target); }
    });
  }, { threshold: 0.2 });
  document.querySelectorAll('.fb-reveal').forEach((el) => observer.observe(el));
</script>

<style>
/* JavaScript が動くときだけ隠す(動かない環境でも、中身は見えたままにする) */
@media (scripting: enabled) {
  .fb-reveal {
    opacity: 0;
    transform: translateY(24px);  /* 始めは下で透明 */
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
  }
  .fb-reveal.is-visible { opacity: 1; transform: none; }
}

/* 端末で「動きを減らす」設定にしている人には動かさない */
@media (prefers-reduced-motion: reduce) {
  .fb-reveal { animation: none; transition: none; }
}
</style>
どう動くか
ページを下へ読み進めて、まとまりが画面に入ったときにフェードインします。読む順番に合わせて、内容が出てきます。
使う場面
紹介ページの各まとまり、実績の数字、写真の一覧。
やりすぎに注意
全部のまとまりに付けると、スクロールのたびに待たされます。1度出たものは、上に戻っても消さないでください。
0.00秒

調整して指示を作る

値を変えると、見本と下の指示例・細かい指定・HTML・CSS が書き換わります。

速さの変わり方

Webページ

マウスを乗せると浮くHover lift

カードにマウスを乗せると、少し浮き上がって影が濃くなる。

AIへの指示例上の調整が入ります

Webページを作るAIに(ふだんの言葉で)Webページのカードは、マウスを乗せたときに少し浮き上がって影が濃くなるようにしてください。長さは0.25秒で、最後はゆっくり止まる(イーズアウト)ようにしてください。
細かく伝えるとき(制作の依頼や、HTML を書くAIに)カードにマウスが乗ったら、0.25秒で6px上へ浮かせ、影を濃くしてください。離れたら同じ速さで戻します。速さの変わり方はイーズアウト(ease-out)。
細かい指定動画を作る人・細かく指示したい人向け
長さ
0.25秒
速さの変わり方
イーズアウト(ease-out)
曲線の数値
cubic-bezier(0, 0, 0.58, 1)
きっかけ
マウスを乗せたとき(離れたら戻る)
変えるもの
上へ 6px・影を濃く
HTML・CSSWebページや HTML のスライドを作る人向け。貼ればそのまま動きます
<a class="fb-card" href="#">AIで会議の要点をまとめる</a>

<style>
.fb-card {
  display: block; padding: 16px; border-radius: 12px; background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .1);
  transition: transform 0.25s ease-out, box-shadow 0.25s ease-out;
}
.fb-card:hover {
  transform: translateY(-6px);  /* 浮く */
  box-shadow: 0 12px 24px rgba(0, 0, 0, .14);
}

/* 端末で「動きを減らす」設定にしている人には動かさない */
@media (prefers-reduced-motion: reduce) {
  .fb-card { animation: none; transition: none; }
}
</style>
どう動くか
マウスを乗せたときに少し上へ動き、影が濃くなります。押せる部品であることが、触る前に伝わります。
使う場面
記事の一覧のカード、商品のカード、押せる部品全般。
やりすぎに注意
スマホにはマウスがないので、この動きは出ません。浮かなくても押せると分かる見た目にしておきます。
0.00秒

調整して指示を作る

値を変えると、見本と下の指示例・細かい指定・HTML・CSS が書き換わります。

速さの変わり方

Webページ

押したときの反応Press feedback

ボタンを押した瞬間に少し縮み、離すと戻る。

AIへの指示例上の調整が入ります

Webページを作るAIに(ふだんの言葉で)Webページのボタンは、押した瞬間に少し縮んで、離すと戻るようにしてください。押した感じが伝わるようにします。長さは0.15秒で、最後はゆっくり止まる(イーズアウト)ようにしてください。
細かく伝えるとき(制作の依頼や、HTML を書くAIに)ボタンを押したとき、0.15秒で96%に縮めて、離したら100%に戻してください。速さの変わり方はイーズアウト(ease-out)。
細かい指定動画を作る人・細かく指示したい人向け
長さ
0.15秒
速さの変わり方
イーズアウト(ease-out)
曲線の数値
cubic-bezier(0, 0, 0.58, 1)
きっかけ
押している間(離したら戻る)
変えるもの
大きさ 100% → 96%
HTML・CSSWebページや HTML のスライドを作る人向け。貼ればそのまま動きます
<button class="fb-press">送信する</button>

<style>
.fb-press {
  transition: transform 0.15s ease-out;
}
.fb-press:active {
  transform: scale(0.96);  /* 押している間だけ縮む */
}

/* 端末で「動きを減らす」設定にしている人には動かさない */
@media (prefers-reduced-motion: reduce) {
  .fb-press { animation: none; transition: none; }
}
</style>
どう動くか
押している間だけ、ボタンが少し小さくなります。押せたことが指や目で分かり、二度押しを減らせます。
使う場面
送信ボタン、申し込みボタン、アプリのような画面のボタン。
やりすぎに注意
縮みすぎると、ボタンが逃げたように見えます。95%前後が目安です。
0.00秒

調整して指示を作る

値を変えると、見本と下の指示例・細かい指定・HTML・CSS が書き換わります。

Webページ

読み込み中(スピナー)Spinner

円の一部が、一定の速さで回り続ける。

AIへの指示例上の調整が入ります

Webページを作るAIに(ふだんの言葉で)読み込み中は、円の一部が一定の速さで回り続ける表示(スピナー)を出してください。1回転0.9秒にしてください。
細かく伝えるとき(制作の依頼や、HTML を書くAIに)読み込み中のマークを、1回転0.9秒・一定の速さ(リニア)で回し続けてください。
細かい指定動画を作る人・細かく指示したい人向け
長さ
0.9秒
速さの変わり方
リニア(linear・一定の速さ)
くり返し
ずっと(読み込みが終わるまで)
HTML・CSSWebページや HTML のスライドを作る人向け。貼ればそのまま動きます
<div class="fb-spinner" role="status" aria-label="読み込み中"></div>

<style>
.fb-spinner {
  width: 32px; height: 32px; border-radius: 50%;
  border: 4px solid #eee; border-top-color: #c25e1f;  /* 円の一部だけ色を付ける */
  animation: fb-spin 0.9s linear infinite;
}
@keyframes fb-spin {
  to { transform: rotate(360deg); }
}

/* 端末で「動きを減らす」設定にしている人には動かさない */
@media (prefers-reduced-motion: reduce) {
  .fb-spinner { animation: none; transition: none; }
}
</style>
どう動くか
読み込みが終わるまで、円の一部が回り続けます。止まっていないこと(動いていること)を伝える動きです。
使う場面
データの読み込み、送信中、AIが答えを作っている間。
やりすぎに注意
何秒も続くときは、スピナーだけでなく「読み込んでいます」などの言葉や、進み具合のバーを添えます。
0.00秒

調整して指示を作る

値を変えると、見本と下の指示例・細かい指定・HTML・CSS が書き換わります。

Webページ

仮の枠(スケルトン)Skeleton

中身が出るまで灰色の枠を見せ、その上を光が通る。

AIへの指示例上の調整が入ります

Webページを作るAIに(ふだんの言葉で)中身を読み込んでいる間は、文字や画像の場所に灰色の仮の枠を出し、その上を薄い光が左から右へ通るようにしてください(スケルトン)。1回1.4秒でくり返します。
細かく伝えるとき(制作の依頼や、HTML を書くAIに)読み込み中の画面として、灰色の仮の枠の上を、白い光の帯が1.4秒で左から右へ通る動きをくり返してください(スケルトン・シマー)。
細かい指定動画を作る人・細かく指示したい人向け
長さ
1.4秒
速さの変わり方
リニア(linear・一定の速さ)
くり返し
ずっと(中身が出るまで)
HTML・CSSWebページや HTML のスライドを作る人向け。貼ればそのまま動きます
<div class="fb-skeleton" style="width: 240px; height: 16px"></div>

<style>
.fb-skeleton {
  border-radius: 6px;
  /* 灰色の上に、明るい帯を重ねて横へ動かす */
  background: linear-gradient(90deg, #eee 0%, #f8f8f8 50%, #eee 100%) 0 0 / 200% 100%;
  animation: fb-shimmer 1.4s linear infinite;
}
@keyframes fb-shimmer {
  from { background-position: 100% 0; }
  to   { background-position: -100% 0; }
}

/* 端末で「動きを減らす」設定にしている人には動かさない */
@media (prefers-reduced-motion: reduce) {
  .fb-skeleton { animation: none; transition: none; }
}
</style>
どう動くか
文字や画像が入る場所に灰色の仮の枠を出し、その上を薄い光が通り続けます。何が出てくるかの形が先に分かるので、待ち時間が短く感じられます。
使う場面
記事の一覧やプロフィールなど、形の決まった中身の読み込み。
やりすぎに注意
仮の枠は、実際の中身と同じ大きさ・並びにします。違うと、中身が出たときに画面がガタッと動きます。
0.00秒

調整して指示を作る

値を変えると、見本と下の指示例・細かい指定・HTML・CSS が書き換わります。

速さの変わり方

Webページ

お知らせが出る(トースト)Toast

画面の端に、小さなお知らせが下から出てくる。

AIへの指示例上の調整が入ります

Webページを作るAIに(ふだんの言葉で)保存できたことを知らせる小さなお知らせ(トースト)は、画面の右下に下から少し上がりながら出してください。長さは0.4秒で、最後はゆっくり止まる(イーズアウト)ようにしてください。数秒たったら消します。
細かく伝えるとき(制作の依頼や、HTML を書くAIに)画面右下に「保存しました」のお知らせを、下から24px上がりながら0.4秒でフェードインさせてください。速さの変わり方はイーズアウト(ease-out)。
細かい指定動画を作る人・細かく指示したい人向け
長さ
0.4秒
速さの変わり方
イーズアウト(ease-out)
曲線の数値
cubic-bezier(0, 0, 0.58, 1)
出る場所
画面の右下
変えるもの
下から 24px・透明度 0% → 100%
消えるまで
3秒(3〜5秒が目安)
HTML・CSS・JavaScriptWebページや HTML のスライドを作る人向け。貼ればそのまま動きます
<button type="button" class="fb-save">保存する</button>
<div class="fb-toast" role="status" hidden>保存しました</div>

<script>
  // 押したらお知らせを出し、3秒たったら消す
  const toast = document.querySelector('.fb-toast');
  let timer;
  document.querySelector('.fb-save').addEventListener('click', () => {
    toast.hidden = false;
    toast.classList.remove('is-shown');
    void toast.offsetWidth;  // 続けて押しても、出る動きをやり直す
    toast.classList.add('is-shown');
    clearTimeout(timer);
    timer = setTimeout(() => { toast.hidden = true; }, 3000);
  });
</script>

<style>
.fb-toast {
  position: fixed; right: 16px; bottom: 16px;
  padding: 12px 16px; border-radius: 8px; color: #fff; background: #333;
}
.fb-toast.is-shown { animation: fb-toast 0.4s ease-out both; }
@keyframes fb-toast {
  from { opacity: 0; transform: translateY(24px); }
}

/* 端末で「動きを減らす」設定にしている人には動かさない */
@media (prefers-reduced-motion: reduce) {
  .fb-toast.is-shown { animation: none; transition: none; }
}
</style>
どう動くか
画面の右下などに、短いお知らせが下から上がりながら現れ、数秒で消えます。作業を止めずに結果を伝えられます。
使う場面
「保存しました」「コピーしました」などの完了の知らせ。
やりすぎに注意
大事な警告には使いません。すぐ消えるので、読み逃されても困らない知らせだけにします。