• 作成:

webアイコンに絵文字を使おう

従来のwebにおけるアイコンの表現方法

当初は素直に画像をアイコンとして配置する方法が使われていました.

しかし, http/1環境では大量のファイルを配信すると非常にページが重くなるので, 様々な方法が使われるようになりました.

  • cssが普及した後, アイコンを一枚の画像にまとめてそれぞれの場所で画像の座標を指定するというcssスプライト
  • svgが普及した後, アイコンを一枚のsvgにまとめてそれぞれの場所でsvgを呼び出すというsvgスプライト
  • webフォントが普及した後, 適当な文字にアイコンを割り当てるweb font icon

これらはバッドノウハウですが, 現実的に早いので, 広く普及するようになってしまいました.

従来の手法の問題点

スプライト

開発が面倒くさい.

アイコンだろうが画像というものはそれぞれ分割しているのが自然であり, 分割というのはunixにおいてはファイル単位で行われるのが最も自然です.

現実的にもスプライト画像は編集が困難だったり, バージョン管理ツールで変更を監視するのが困難です.

cssもどんどん肥大化していき, cssを生成するレイヤー層は色々なツールが混ざりこみ, 最終的には暗号のようなものとなっていくでしょう.

svgを使っても結局ファイルがひとつになって面倒くさい問題は解決しません.

webフォント

意味が分からへん.

近年独善的なデザイナーのwebフォントの乱用により, webフォントをブロックする需要はどんどん増しています.

それはアドオンやニッチなブラウザの機能を追いかけている人なら知っているでしょう.

webフォントをブロックした環境では, 当然アイコンは表示もされなくなってしまいます.

また, 本来文字というのは意味があって読めるものなのに, それを装飾だけの用途に使うのは, webの基本方針から外れてしまう気がします.

バッドノウハウからの脱却

絵文字の普及がこの問題を解決します.

アイコンとして適切な絵文字を使うとたくさんの利点があります.

  • すでに標準化されている
  • わざわざ作る必要がない
  • 文字だからどんな画像よりも軽い
  • テキストなので適切にバージョン管理できる
  • 最初から意味を持っている
  • 最初から読み上げ対応

実際にこのサイトでもアイコンには出来るだけ絵文字を使っています. 気が付きましたか?

適切な絵文字は📙 Emojipedia — 😃 Home of Emoji Meanings 💁👌🎍😍などで調べることができます.

しかし, 絵文字には収録されていない文字があるという問題があります. どれだけ標準化が進んでもtwitterアイコンなどの商標は登録されることはないでしょう. 実際このサイトでもfeedのアイコンは絵文字ではありません. そこはあきらめてsvgなどの画像を使うしかありません.

しかし, http/2の時代になって, 複数ファイルのオーバーヘッドはあまり気にならなくなりました. もはやバッドノウハウに頼る必要は死にました. 安心して絵文字を使いましょう.