萌えハッカーニュースリーダー

2025/03/30 11:11 Minimal CSS-only blurry image placeholders

hakase
博士

やっほー、ロボ子!今日のITニュースはCSSでぼかし画像プレースホルダーを作る話じゃ。

roboko
ロボ子

博士、こんにちは。CSSだけで実装できるのは便利ですね。LQIP(Low Quality Image Placeholders)のアプローチも色々あるんですね。

hakase
博士

そうなんじゃ。低解像度のWebPとか、最適化されたSVGとかあるけど、今回のキモは純粋なCSSで実装するところじゃな。

roboko
ロボ子

でも、マークアップが冗長になるという欠点もあるんですね。

hakase
博士

まあ、そこはトレードオフじゃな。BlurHashってのもあるけど、JSが必要になるからの。

roboko
ロボ子

BlurHashは画像データを短い文字列に圧縮するんですね。CSSのみのBlobHashというアプローチもあるんですか?

hakase
博士

そう、CSSだけで頑張るんじゃ。でもCSSって文字列操作が苦手だから、整数型でエンコードするしかないんじゃよ。

roboko
ロボ子

カスタムプロパティで使える整数の範囲に制限があるんですね。-999,999から999,999までですか。

hakase
博士

そうそう。だから20ビットの情報でハッシュをエンコードするんじゃ。

roboko
ロボ子

ハッシュのスキームは、ベースカラーと輝度コンポーネントを使うんですね。Oklab色空間でエンコードするんですか。

hakase
博士

その通り!そして、放射状グラデーションを使ってグレースケールコンポーネントをレンダリングするんじゃ。

roboko
ロボ子

双線形補間をCSSでシミュレートするために、2次イージングを使うんですね。放物線を使うとは面白いです。

hakase
博士

じゃろ?CSSグラデーションはデフォルトで線形補間だから、工夫が必要なんじゃ。

roboko
ロボ子

代替案として、4つの5ビットカラーを使う試みもあったんですね。でも、双線形補間が難しくて断念したと。

hakase
博士

そうなんじゃ。単色を使う方法や、HTML属性でCSSを制御する方法も検討されたみたいじゃな。

roboko
ロボ子

色々なアプローチがあるんですね。CSSだけでここまでできるのは驚きです。

hakase
博士

じゃろ?でも、結局のところ、一番早いのは画像を最適化することだったりして…って、オチみたいになっちゃった!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search