ノイズの向こう側にある美しさ。CSSボタンデザイン「グリッチ」5選

当ページのリンクには広告が含まれています。
グリッチエフェクトCSSボタンデザイン5選

壊れているのに、美しい。そういうデザインがあります。CRTモニターのノイズ、データ破損した画像のRGBズレ、デジタル信号が乱れたときの走査線——本来は「エラー」であるはずのそれらが、Webデザインの文脈では「個性」として機能します。グリッチ(Glitch)エフェクトは、2010年代のゲーム文化・サイバーパンク美学を経て、2026年現在もテクノロジー系・エンタメ系・ポートフォリオサイトで強い訴求力を持つ表現技法です。

この記事では、グリッチ系のCSSボタンを5パターン紹介します。すべてCSSのみで実装しており、JavaScriptは不要。RGB分離・スライス・テキスト振動・走査線・砂嵐ノイズと、グリッチの表情ごとにデモを揃えました。WordPressやSWELLにもコピペで使えます。「壊れている感」を武器に変えたいデザインに、ぜひ。

目次

RGB Split(RGBスプリット)

グリッチデザインの象徴的な表現。ホバーすると、テキストがマゼンタとシアンの2色に分離し、不規則な横ズレを繰り返します。text-shadow でマゼンタ(#f0f)とシアン(#0ff)の影をオフセットし、@keyframes でその位置をランダムに変化させる仕組みです。RGBチャンネルが別々に記録されたアナログ映像が乱れたときの「色ずれ」を、CSSだけで再現しています。

実装がシンプルながら視覚的インパクトが大きく、テクノロジー系・音楽系・サイバー系サイトのメインCTAに自然に溶け込みます。モノクロ基調(黒背景・白文字・白ボーダー)のレイアウトに置いたとき、マゼンタとシアンの分離色が最も際立ちます。アニメーションが forwards で完結し、ホバーを外すとフラットに戻る設計なので、繰り返しホバーしても不自然さがありません。

See the Pen RGB Split by BaseKENT (@basekent) on CodePen.

調整方法

  • 分離色の変更: text-shadow#f0f(マゼンタ)と #0ff(シアン)を変更することで、赤/青のズレや金/緑のズレに変えられます。#f44 / #4f4 にするとより暖色系のグリッチになります
  • ズレの幅: @keyframes rgb-split の各フレームのオフセット値(-7px, 9px など)を大きくするほど激しい分離に、小さくすると控えめなグリッチになります
  • アニメーション速度: animation: rgb-split 0.5s ease forwards0.5s を短くするとより瞬間的なフラッシュに、長くするとゆっくりした崩壊感になります

Slice Glitch(スライス・グリッチ)

ホバーすると、ボタンが上下2枚に切断され、それぞれが逆方向に飛ぶように横ズレします。::before で上半分(clip-path: polygon(0 0, 100% 0, 100% 48%, 0 48%))、::after で下半分をクリップし、それぞれに逆方向の translateX アニメーションをかける設計です。2枚のスライスが互いに引き裂かれ、アニメーション末尾に opacity: 0 で消えるため、ホバーが一瞬の「切断事故」のように見えます。

サイバーパンク・ゲーム系サイトで「スタート」「Enter」「PLAY」といったアクションボタンとして置いたとき、「押すと何かが始まる」という感覚を演出できます。ネオングリーン(#39ff14)の発色が黒背景に映え、クリエイティブ系ポートフォリオのCTAとしても機能します。スライスの切れ目位置は clip-path48% / 52% の値を変えることで調整できます。

See the Pen Slice Glitch by BaseKENT (@basekent) on CodePen.

調整方法

  • 切断位置の変更: ::beforeclip-path48%::after52% を調整することで切断線の位置が変わります。33% / 67% にすると1/3位置での切断になります
  • ズレのステップ感: animation: slice-top 0.45s steps(4) forwardssteps(4)steps(2) にするとよりカクついた動きに、linear にするとなめらかなズレになります
  • ボタンカラー: .btn { color: #39ff14; border-color: #39ff14 }::before::aftercolor を同じ色に統一することでどんなカラーにも対応できます

Text Shake(テキスト・シェイク)

テキストが激しく左右に揺れて振動する、最もシンプルなグリッチ表現。skewXtranslateX を組み合わせた @keyframes text-shake で、傾き→反傾き→戻りの連鎖を10フレームで表現しています。振幅が9度→3度へと徐々に減衰するよう設計されているため、「衝撃→収束」の物理的なリアリティが生まれます。JavaScriptどころかポジション指定すら不要な、最軽量のグリッチ実装です。

赤のソリッドボタンとの組み合わせが視覚的に最も強く、「WARNING」「DANGER」「ALERT」といったコンテキストを持つ場面、または「クリックに対する緊張感」を演出したいCTAに向いています。常時アニメーションではなくホバー時のみ発動するため、ページのパフォーマンスへの影響もありません。

See the Pen Text Shake by BaseKENT (@basekent) on CodePen.

調整方法

  • 揺れの激しさ: @keyframes text-shake の最初のフレーム skewX(-9deg) translateX(-4px) の数値を大きくすると激しく、小さくするとソフトな振動になります
  • アニメーション速度: animation: text-shake 0.45s ease forwards0.45s0.25s にするとほぼ瞬間的な振動に、0.8s にするとゆっくりした揺れになります
  • 背景色: background: #ff2200 を任意の色に変更できます。グリッチ感はボタン色に関係なく機能しますが、コントラストの高い原色系との相性が特によいです

Scan Line(スキャン・ライン)

ボタン上を、CRTモニターの走査線が流れ続けます。repeating-linear-gradient で微細な横縞模様(3pxごとの薄い水平ライン)を作り、@keyframes scan-flow で上から下へゆっくり動かしています。ライン自体は半透明(rgba(122, 173, 255, 0.07))で、背景テキストを隠さず「映像越しに見ている」ようなテクスチャ感を与えます。

ホバー時のみ opacity: 1 になり走査線が現れる設計で、通常状態はフラットなボタンとして機能します。ブルー系の配色(#0f0f2e 背景 + #7aadff テキスト)は「古いモニターに映ったデータ」のような印象を与え、ゲーム系・SFテーマ・テクノロジーダッシュボードのUIに自然に溶け込みます。repeating-linear-gradient のラインピッチは background2px / 3px の値を変えることで調整できます。

See the Pen Scan Line by BaseKENT (@basekent) on CodePen.

調整方法

  • 走査線の密度: repeating-linear-gradient2px(透明区間)と 3px(ライン)の数値を変更します。4px / 5px にするとより粗い走査線に、1px / 2px にすると繊細な横縞になります
  • 走査線の色と透明度: rgba(122, 173, 255, 0.07) の色と不透明度を変えられます。rgba(255, 255, 255, 0.05) にすると白い走査線に、数値を上げると線が目立つようになります
  • スクロール速度: animation: scan-flow 1.4s linear infinite1.4s を小さくすると速く流れ、大きくするとゆっくり流れます

Static Noise(スタティック・ノイズ)

テレビの砂嵐。ホバーすると、ボタン上にランダムなノイズテクスチャが断続的に明滅します。SVGの <feTurbulence> フィルターをデータURIとして background-image に埋め込み、mix-blend-mode: overlay でボタン本体に重ねています。@keyframes static-flickersteps(3) で滑らかに変化せずカクついた点滅になり、電気系統のノイズが入ったような「アナログな乱れ」が生まれます。

このデモの最大の特徴は、外部リソースゼロでノイズテクスチャを生成している点です。SVGフィルターのみで動作するため、画像ファイルも不要。5本の中で最も「CSS変わり種」な実装で、テクノロジー系・インディーゲーム系・グランジ寄りのエッジなデザインに向いています。feTurbulencebaseFrequency を変えるとノイズの粒度が変わり、印象が大きく変化します。

See the Pen Static Noise by BaseKENT (@basekent) on CodePen.

調整方法

  • ノイズの粒度: SVGの baseFrequency='0.85' の値を大きくするとより細かい砂状のノイズに、小さく(例: 0.3)するとなめらかな大きな揺らぎになります
  • ノイズの強度: @keyframes static-flicker の各フレームの opacity 値を上げるとノイズが濃くなります。0.3 / 0.8 / 0.5 などに変えて好みの明滅感を出してください
  • ブレンドモード: mix-blend-mode: overlayscreen に変えると明るめのノイズに、multiply にすると暗めに沈む質感になります。背景色との組み合わせで最適なモードが変わります

Unlock Your Creativity

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

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

A created this document

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

目次