本文へスキップ

パーティクルテキスト

テキストをオフスクリーンcanvasへ描画し、ピクセルをサンプリングして粒子の目標座標にする。粒子はバネで文字の形へ帰巣し、カーソルを近づける/タップすると反発して散り、離れるとまた文字に戻る。

ENGLISH

Particle Text Formation

  • JS
  • Canvas
約169行動きと演出 / ジェネラティブ演出 の一覧 →

プレビュー

ホバー

操作カーソルを乗せると動きます(スマホはタップ)。

仕様書

向く場面
  • ブランド名・キャッチを粒子で見せるヒーロー
  • ポインタで散る遊びのある見出し
  • 短い1語のロゴタイプ演出
避ける場面
  • 長い文(粒子数が増え重い・読めない)
  • 本文の見出し(読めない時間がある)
  • テキストを別に持たない唯一の表示
構成要素
  • 暗い面(canvas)
  • 粒子で描いた文字
  • ポインタの反発域
持っている状態
  • 通常
キーボード

マウス・タッチ専用(近づけると散る)。文字の内容はテキストで別に持ち、代替操作は不要

支援技術

canvas は aria-hidden で文字は読めない。表示語(TEXT)は必ず見出し等のテキストでも持つ。reduce 設定では最初から文字の形に置き、粒子数と反発を半減

動き

粒子はバネ定数 60・減衰 8.5 で目標座標へ帰巣。ポインタ 46px 内で最大 900 の反発力で散り、離れると戻る

デザインの要点

  • サンプリング間隔 3px・粒 1.5px で 800 太字を読める密度にする。間隔を広げると字が破線になる
  • 帰巣はバネ定数 60・減衰 8.5 の臨界近く。減衰が弱いと文字が震え続け、強いと戻りが鈍く見える
  • 反発は半径 46px・力 900 を距離で線形に弱める。一定の力だと境界で粒がはじけ飛ぶ
  • document.fonts.ready 後に再サンプリングする。フォント到着前の代替字形で粒を置くと字が崩れる
実装メモ

TEXT変数の文字列を差し替えて使えます。フォント読み込み前にサンプリングすると字形が崩れるため document.fonts.ready を待ってから再サンプリングしています。

コード(コピーして使えます)

<div class="pt-wrap">
  <canvas class="pt-canvas" aria-hidden="true"></canvas>
</div>

タグ

同じカテゴリ「ジェネラティブ演出」のほかのパーツ

関連パーツ