ブログ · 11 ページ目
開発とデザイン、あとは雑記。
孔版印刷の制約をデザイントークンに翻訳する
このサイトの視覚方向は孔版印刷(リソ)です。実際にやったのは印刷の物理的な制約をトークンに書き出すことで、おかげで見た目を変えても触ったのは 2 ファイルだけ、コンポーネントは 1 行も直していません。
進数と単位換算:非線形なのは温度だけ
2 から 36 進数の変換は BigInt で精度を守る必要があります。10 カテゴリのうち 9 つは線形の比率ですが、温度だけはアフィン変換で、単一の倍率では必ず間違えます。
色とコントラスト:相対輝度はチャンネルの平均ではない
記法の相互変換は入口にすぎません。本当の罠は WCAG のコントラストで、ガンマを戻してから重み付けする必要があります。黒文字か白文字かの判断も閾値ではありません。
静的サイトの全文検索:索引はビルド時に、実行時にサーバーなし
静的サイトの検索は Algolia を繋がなくても作れます。索引をビルド時に生成し、検索は完全にブラウザ内で実行する——代償はビルドが数秒伸びるだけです。
ハッシュとチェックサム:CRC32 と MD5 を自分で書く理由
ブラウザーが提供するのは SHA 系だけで、しかも安全なコンテキストに限られます。CRC32 と MD5 は Web Crypto にありません。大きなファイルを一括で読まない方法と、チェックサムを目視で比べない方法も。
正規表現テスト:ヒット・グループ・置換プレビューとゼロ幅の罠
正規表現テスターには三つの役割があります。一致位置とグループを明示し、置換結果を先に見せ、ゼロ幅一致で止まらないこと。
