曲線と回転で魅せるCSSテキストアニメーション「円形・パス配置」5選

当ページのリンクには広告が含まれています。
曲線と回転で魅せるCSSテキストアニメーション「円形・パス配置」5選

Webサイトの文字は、必ずしも「まっすぐ」である必要はありません。

テキストを円形に配置したり、波線に沿って動かしたりする「曲線・パスアニメーション」は、デザインに有機的な柔らかさと圧倒的な躍動感をもたらします。バッジやあしらいとしても非常に人気の高い表現です。

この記事では、SWELLにコピペするだけで使える、円形やパスに沿ったテキストアニメーションを5つ紹介します。 表示中もくるくると回り続け、ホバーでピタッとアクションを起こす、洗練されたコードをお試しください。

目次

Rotating Badge(ローテーティング・バッジ)

テキストが綺麗な円を描き、レコードやエンブレムのようにゆっくりと回転し続けます。SVGを使うことで文字の歪みなく美しい円形を保ちます。ホバーすると回転が逆になり、文字が少し浮き上がります。

See the Pen Rotating Badge by BaseKENT (@basekent) on CodePen.

調整方法

  • 円のサイズ: <svg> タグの width="120" height="120" を変更すると全体のサイズが変わります。
  • 文字の量: <textPath> の中身を変更してください。円周の長さに合うようにテキストを繰り返す(例:Contentsを3回書く)のが綺麗に見せるコツです。

Wave Path Flow(ウェーブ・パス・フロー)

見えない波線(サイン波)の軌道上を、テキストがジェットコースターのように滑らかに流れ続けます。ホバーすると文字の流れるスピードがゆっくりになり、文字色が濃くなります。

JavaScript使用

See the Pen Wave Path Flow by BaseKENT (@basekent) on CodePen.

調整方法

  • 波の形: HTMLの <path>d="..." の数値を書き換えることで波の高さや間隔を変えられますが、少し難易度が高いため、まずはそのままお使いいただくのがおすすめです。 (※もし波の間隔(周期)を変更した場合は、JavaScript内の if (offset <= -150)offset += 150; の数値も、新しい波1つ分の幅に合わせて変更してください)
  • 流れるスピード(通常時): JavaScript内の let speed = 0.6; および、mouseleave イベント内の speed = 0.6 の数値を変更します。数値を大きくするほど速く流れます。
  • 流れるスピード(ホバー時): JavaScript内の mouseenter イベント内の speed = 0.2 の数値を変更します。0 にすれば完全に一時停止させることも可能です。
  • 文字の色: CSS内の fill: #444;(通常時)と fill: #000;(ホバー時)のカラーコードを任意の色に変更してください。

Cylinder Carousel(シリンダー・カルーセル)

純粋なCSSの3D表現(rotateYtranslateZ)を使い、円柱(シリンダー)の表面に文字が貼り付いているように配置します。待機中は立体的に回転し、ホバーで正面を向いて停止します。

See the Pen Cylinder Carousel by BaseKENT (@basekent) on CodePen.

調整方法

  • 円柱の半径 (translateZ(80px)): 80px120px などに大きくすると、円柱の直径が大きくなり文字の隙間が広がります。
  • 文字数の変更: 現在は8文字(360度 ÷ 8 = 45度ずつ)です。文字数を変える場合は、角度の計算をし直して nth-child の指定を追加・修正してください。

Pendulum Arch(ペンデュラム・アーチ)

文字がアーチ状(上半分だけの円)に配置され、振り子(ペンデュラム)のように左右にゆらゆらと揺れ続けます。ホバーすると文字の間隔が扇のようにカシャッと広がります。

See the Pen Pendulum Arch by BaseKENT (@basekent) on CodePen.

調整方法

  • アーチの大きさ (transform-origin: center 80px): 80px120px にすると、より大きなカーブ(緩やかなアーチ)になります。
  • ホバー時の開き具合: :hover spanrotate の角度を調整することで、扇の開き具合をコントロールできます。

Infinity Loop(インフィニティ・ループ)

テキストが「8の字(無限大マーク)」の軌道を永遠に描き続けます。SVGのパスをクロスさせることで、立体的で不思議な視覚効果を生み出します。ホバーで文字が太くなり、動きが一時停止します。

JavaScript使用

See the Pen Infinity Loop by BaseKENT (@basekent) on CodePen.

調整方法

  • 文字の詰まり具合 (textLength="350"): HTML側の textLength の数値を調整すると、パス上での文字の広がり方を調整できます。
  • スピード: animation: infinityFlow 5s の秒数を短くすると、ハイスピードで8の字を駆け抜けます。

Unlock Your Creativity

今回紹介したCSSカスタマイズは、ほんの一例に過ぎません。 Webデザインの可能性は、コードひとつで無限に広がります。

Ex-TORANOMAKIには、あなたのサイトを「他とは違う」存在にするためのCSSテクニックを多数紹介しています。 ありきたりなデザインでは満足できないなら、ぜひ他のカスタマイズもチェックしてみてください。

A created this document

実務で使える「動きのあるWebデザイン」をテーマに、コピペで実装できるCSSアニメーションやコードスニペットを発信中。
また、制作環境をアップデートするガジェットやデスク周りのツールもレビューしています。
効率と心地よさを追求するクリエイターのための情報をアーカイブします。

目次