piapia123
ja

CSS グリッチ テキスト効果

スタイル

処理はすべてブラウザ内で完結します。データは送信されません

プレビュー上のパラメーターを変えると即座に反映されます
CSS

不思議に見える効果ですが、作りは直接的です。同じ文字を三回描きます —— 元の文字と、色を変えてずらした二つの複製 —— それぞれを `clip-path` で帯だけ見せ、その帯を時間とともに跳ねさせます。合わせて「信号が不安定」に見えます。 ⚠️ 配布コードには HTML 側の約束が一つあります。 二つの複製は `content: attr(data-text)` を使う擬似要素で作るため、要素に `data-text="同じ文字"` も書く必要があります。これがないと複製は空になり、「効果が効いていない」ように見えて、原因が HTML にあると気づけません。画面にもその旨を明記しています。 強さが三段階なのは、連続値では表現しにくいからです。 「どれだけずらすか」と「いつ跳ねるか」の比率が見え方を決めるので、段階ごとに三〜四の数値をまとめて調整してあります。最も強い段階ははっきり裂け、見出しや 404 ページに向きます。最も弱い段階はたまに瞬く程度で、通常の内容に添えても煩くありません。 これは「一度使えば十分」な効果です。 注意を引くもので、注意を引き続けるものは鬱陶しくなります。ページ全体に広げたり、流し続けたりしないでください —— 配布コードには `prefers-reduced-motion` の処理が入っています。

機能

  • 強さ三段階:たまに跳ねる / 途切れずに揺れる / はっきり裂ける
  • 複製の色は調整可能。既定はシアンとマゼンタ(色収差の模倣)
  • プレビューはループ再生。ホバーで一時停止して 1 フレームを確認できます
  • 入力欄に文字を打つとプレビューできます
  • 出力は完全な CSS と `data-text` の HTML 側の要件を含みます
  • `prefers-reduced-motion` の処理を自動で添付
  • アニメーション名にランダムな接尾辞。既存の同名キーフレームと衝突しません
  • コードはハイライト付き、コピーはボタン一つ
  • 計算はすべてブラウザー内で完結します

使い方

  1. 上の入力欄に文字を入れます
  2. 強さを選びます:見出しには「強」、通常の内容のアクセントには「弱」
  3. 二つの複製の色を調整します。差を広げるほど裂けが強くなります
  4. コードをコピーし、要素に同じ内容の `data-text` 属性を忘れずに付けてください

よくある質問

コードを貼ったのに複製が空なのはなぜですか?
`data-text` 属性が欠けているためです。二つの複製は `content: attr(data-text)` で作られ、要素のテキスト内容ではなくその属性の値を読みます。したがって HTML は `<div class="glitch" data-text="同じ文字">同じ文字</div>` とし、両方を一致させます。プレビューでは設定済みですが、ご自身のプロジェクトでは自分で追加してください。この純 CSS 効果が HTML 側の協力を必要とする唯一の点です。
実際に画面を裂かず `clip-path` を使うのはなぜですか?
CSS に「裂く」操作はなく、あるのはクリップだからです。そこで発想を逆にします:まずずらした複製を用意し、それぞれを数本の水平な帯としてだけ見せ(`clip-path: polygon(...)`)、その帯を時間とともに動かします。目は「一部の横帯がずれている」と捉え、信号の不具合と解釈します。これが CSS でできる近似であり、ウェブでのこの効果の一般的な作り方です。
この効果のアクセシビリティへの影響は?
このセットの中で最もアクセシビリティに不向きな効果です。 理由は三つ。文字が常に揺れており読みにくいため、本文には絶対に使わないでください。速い明滅は光過敏の方にリスクがあり(重い場合には光感受性てんかんを誘発することもあります)、同梱の `prefers-reduced-motion` がそれに対応します。そして必ず注意を引くため、他の内容の隣では気が散ります。したがって、見出し・404 ページ・ゲーム風の画面に限り、流し続けないでください。

関連ツール