テキスト
テキスト・スクランブル
見出しが画面に入ると、記号やカタカナのノイズが左から順にほどけて本来の文字に変わるタイポグラフィ。リンクはホバーやフォーカスのたびにデコードし直します。
ライセンス MIT
ソースと利用条件は、下の「仕様・利用条件」で確認できます。
この動きの特徴
- ノイズから文字へデコードする見出し
- ホバー・フォーカスで再デコードするリンク
- 文字幅を固定して行が揺れない
- 和文と欧文の混在に対応
- JavaScriptなし・動きを減らす設定では完成表示
導入と調整
使い方
src/Component.astro と src/motion.ts を同じフォルダーに置いて読み込みます。
<TextScramble
eyebrow="STUDIO / 2026"
lines={['DECODE THE', '静かな熱を、', '言葉に。']}
lead="短い説明文"
links={[{ label: 'WORKS', href: '/works' }]}
/>linesは見出しの行ごとの配列です。欧文は単語の途中で折り返さず、和文は文字の間で折り返します。linksのラベルは、ポインターを合わせたときとキーボードで選んだときにデコードし直します。asで見出しのタグ(h1/h2)を変えられます。
動きの仕組み
mountTextScramble(root)が[data-text-scramble]ごとに動きを付け、後片付け用の関数を返します。- 各グループは IntersectionObserver で画面に入ったときに一度だけ再生します。文字ごとに 0.035 秒ずつ遅れて確定し、確定した瞬間だけアクセント色になります。
- ノイズに入れ替わる間は、確定後の文字幅をその文字に固定するため、行の幅が揺れません。
- 読み上げには分割前の文章(見出しの
aria-label、隠しテキスト)を使い、一文字ずつの表示は読み上げ対象から外しています。 prefers-reduced-motion: reduceでは何も動かしません。設定を途中で変えた場合も切り替わります。
調整する箇所
- 配色は
--scramble-bg、--scramble-ink、--scramble-accentで変更できます。 - ノイズに使う文字は
motion.tsのNOISE、揺れる時間はFLICKER、文字の間隔はSTAGGERで調整します。
参考にした傾向
Webデザインクリップ に掲載された国内サイトでよく使われている「テキストエフェクト」の表現を参考に、このカタログ用に一から設計・実装しました。特定サイトのコード・画像・文言・配色は使っていません。
利用条件
このカタログ用に書き下ろした実装で、MITライセンスで公開しています。LICENSE、src/Component.astro、src/motion.ts を取得して利用できます。再配布する場合は LICENSE の著作権表示と許諾文を残してください。
仕様・利用条件
仕様
- 分類
- テキスト
- 更新日
- 2026.10.30
- ライセンス
- MIT
- 使用技術
- Astro
ソースと利用条件
公開中許可されたファイルだけを固定した版で参照できます。
- 公開ファイル
- 3件
- ライセンス
- MIT
