はじめに
自分用メモ。
ファーストビューの背景は、主張を強くしすぎると文字が読みにくくなる。淡いグラデーション、円形アクセント、少しだけ動くラインを重ねるくらいが扱いやすい。
このサンプルでは、WebGLを背景として敷き、前面の文字はDOMで分けている。背景は雰囲気を作る役、文字は読ませる役として分けておく。
WebGL背景の基本
ここで見ておくのは、1枚のcanvasで複数の背景要素をまとめて扱える点。CSSだけのグラデーションより、線の揺れや淡い粒感を足しやすい。
- ファーストビューに少し奥行きを付けたい
- 背景にゆるい動きを入れたい
- 画像ではなくコードで色や形を調整したい
- 文字の読みやすさはDOM側で保ちたい
組み合わせのポイント
- 背景、円形アクセント、ライン模様、ボケを別の役割として考える
- 動きは強くしすぎず、背景全体が少し呼吸するくらいに抑える
- 前面の
JUNKはWebGLに描かず、通常のHTMLとして重ねる - 白いベールを挟んで、背景の強さと文字の読みやすさを調整する
実装のポイント
Component.jsxはcanvasの初期化、リサイズ、マウス位置、描画ループだけを見るcreateBokehProgram.jsはshader programを作る処理だけに分けるfragmentShader.jsでは背景色、円形アクセント、ライン、ボケ、grainをまとめて描くstyles.cssではcanvas、ベール、文字の重なり順だけを整える
まとめ
覚えておくのは、背景表現は作り込みより分担。WebGLは雰囲気、CSSは読みやすさ、HTMLは情報を担当する。そこを分けておくと、見た目の調整もしやすい。