テキスト遮幕解除アニメーション

アニメーション Medium #css #text #reveal #mask

このスニペットは、見出しの各行を clip-path:inset(0 100% 0 0) で右端まで隠した状態から、 @keyframes でクリップ領域をゼロまで開いていく「遮幕(マスク)解除」の文字演出です。

▶ プレビュー

解説

このスニペットは、見出しの各行を clip-path:inset(0 100% 0 0) で右端まで隠した状態から、@keyframes でクリップ領域をゼロまで開いていく「遮幕(マスク)解除」の文字演出です。JavaScript は使わず、CSS の animationcubic-bezier のイージングだけで、左から布を引くように文字が現れます。span ごとに animation-delay を変えてあるため、1 行目が出てから 2 行目が続く、というリズムが生まれます。

向いている場面

  • サイト冒頭のキャッチコピーや、企業理念の一文を印象づけたいとき
  • セクションの大見出しを、スクロール到達時に少し演出したいとき
  • ポートフォリオやブランドサイトの、静かで上品な導入

カスタマイズは animation-duration で速さ、animation-delay で行ごとの間合いを調整します。行数を増やすときは nth-child の遅延を足してください。文字を覆う親要素に overflow:hidden が要る点に注意。動きが苦手な利用者のため、prefers-reduced-motion 指定時はアニメーションを止め、最初から表示する配慮を加えると親切です。

使用例・適したシーン

  • ヒーローのキャッチコピー
  • 見出しの強調
  • コーポレートのキービジュアル

よくある質問

JavaScript なしで動きますか
はい。clip-path と CSS アニメーションだけで動作するため、追加のスクリプトは不要です。HTML と CSS をそのまま貼るだけで再現できます。
行を増やしたいときはどうしますか
span を追加し、その span に対応する nth-child の animation-delay を新しく指定してください。遅延の値を少しずつ増やすと、上から順に現れるリズムを保てます。
inspired by daily batch #3 — modern CSS / 追加日:2026-05-14
← すべてのスニペットへ戻る