コンテンツサイトのための実践的なダークモード実装
テーマ切り替えは当たり前の機能です。表示のちらつき、コントラスト問題、保守負荷を避けながら実装する方法を紹介します。
ダークモードは、ライトテーマにフィルターをかけるだけのものではありません。必要なのはトークンシステムです。
セマンティックな色を定義する
コンポーネント内にHEX値を直接書くのではなく、--color-surface や --color-foreground のような変数を使います。Tailwindはそれらのトークンをユーティリティにマッピングできるため、Astroコンポーネントをきれいに保てます。
読み込み時のちらつきを防ぐ
ドキュメントのhead内にインラインスクリプトを置くと、描画前に localStorage とシステム設定を読み取れます。Launchfolioはすぐに dark クラスを適用し、不自然なちらつきを避けます。
両テーマでコントラストを確認する
バッジ、ボーダー、控えめなテキストは、ライトテーマでは問題なく見えてもダークテーマでWCAGを満たさないことがあります。特にフォーカスリングとフォーム入力は確認しましょう。
購入者向けにドキュメント化する
プレミアムテーマでは、トークンがどこにあり、アクセントカラーをどう調整するかを説明する必要があります。スタイルガイドページはサポートを減らし、プロダクトとしての安心感を高めます。
よくできたダークモードは意識されません。雑に作られたダークモードは信頼を損ないます。
関連記事
続けて読む
プレミアムなマーケティングサイトでAstroを選ぶ理由
Astroは静的な高速表示と柔軟なアイランド構成を両立します。速く、洗練されたクライアントワークで私がどう活用しているかを紹介します。
パフォーマンスを犠牲にしないモーション
控えめなアニメーションは品質の印象を高めます。ただし、予算、低モーション設定、少ないJavaScriptを尊重することが前提です。
成果につながるケーススタディの設計
優れたケーススタディは作品ギャラリーではありません。見込み客が一緒に働く姿を想像できる、構造化されたストーリーです。