はじめに

タイピングアニメーションは、テキストを一文字ずつ表示していく演出で、ヒーローエリアやキャッチコピーを目立たせたいときに便利です。

ここでは Next.js での実装方法を紹介します。

react-typed

今回紹介するのは react-typed を使う方法です。
Typed.js を React 向けにラップしたコンポーネントで、数行で導入できます。

インストール

npm install react-typed

実装例

"use client";
import { ReactTyped } from "react-typed";

export default function HeroTyping() {
  return (
    <h1>
      <ReactTyped
        strings={[
          "Next.jsでタイピングアニメーションを実装",
          "react-typedを使えば簡単に導入可能",
          "オプションも豊富でカスタマイズ自在"
        ]}
        typeSpeed={40}
        backSpeed={20}
        backDelay={1000}
        loop
        showCursor
        cursorChar="|"
      />
    </h1>
  );
}

※スタイルを除いた最小構成なので、適宜スタイリングをして使用してください。

主なオプション

オプション名

デフォルト値

説明

strings

string[]

[]

表示する文字列の配列

typeSpeed

number

50

1文字を入力する速さ(ms)

startDelay

number

0

タイピング開始までの待機時間(ms)

backSpeed

number

50

バックスペースの速さ(ms)

backDelay

number

700

バックスペースを始めるまでの待機時間(ms)

smartBackspace

boolean

true

前の文字列と次の文字列が共通の場合、共通部分を残す

shuffle

boolean

false

文字列配列をランダム順に表示

loop

boolean

false

繰り返し再生するか

loopCount

number

Infinity

繰り返す回数

attr

string

null

要素の属性値にテキストを入力する場合に指定

bindInputFocusEvents

boolean

false

入力フィールドにフォーカス時に制御イベントをバインド

contentType

"html" | "null"

"html"

HTMLを解釈して表示するか、プレーンテキストとして扱うか

fadeOut

boolean

false

バックスペースの代わりにフェードアウトさせる

fadeOutClass

string

"typed-fade-out"

フェードアウトに使うCSSクラス名

fadeOutDelay

number

500

フェードアウト開始までの遅延(ms)

まとめ

  • タイピングアニメーションは簡単に導入できる演出
  • react-typed を使えば数行のコードで実装可能
  • オプションを組み合わせて自由にカスタマイズできる

タイピングアニメーションを効果的に活用すれば、サイトの第一印象を強くし、メッセージをより印象的に伝えることができますので、ぜひ実装してみてください。