🏠引きこもりエンジニアの徒然ログ

😎 Daily

[Daily Log] デザイン刷新と機能強化:自分好みのブログへ


昨日の興奮も冷めやらぬまま、今日は一気にブログの 「見た目」 と 「使い勝手」 を向上させるべく、怒涛の開発を行いました。

いくつかのバグやトラブル(特にnpmの権限周り…)に見舞われましたが、最終的には満足のいく仕上がりになりました。

主な実装内容

1. テーマ切り替え機能 (Dark Mode) 🌙

ブログを読む環境は人それぞれ。 next-themes を導入し、ライトモード・ダークモード・システム設定(OS追従)の3パターンを切り替えられるようにしました。

  • ヘッダーにトグルボタンを追加: ☀️ / 🌙 / 🖥️ アイコンで現在のモードが一目でわかります。
  • ちらつき防止suppressHydrationWarning を適切に設定し、リロード時のフラッシュを防止。
  • Giscusとの連携: コメント欄もテーマに合わせて色が自動で切り替わるようになりました。

2. デザインのブラッシュアップ ✨

「殺風景」だった画面に彩りと奥行きを加えました。

  • Google Fonts (Inter): 読みやすくモダンなフォントへ変更。
  • 背景デザイン:
    • 非常に微細なドットパターン(opacity: 0.05)を配置。
    • 画面四隅を少し暗くするビネット効果(Vignette)を追加し、視線が自然と中央の記事に向くように調整。
    • 記事の可読性を損なわないよう、徹底的に「控えめ」にこだわりました。

3. ナビゲーションの改善 🧭

  • 記事一覧(トップページ): カードレイアウトからシンプルなリストレイアウトに変更し、情報の視認性を高めました。
  • 戻るボタン: 記事詳細ページからホームへ戻る導線を追加。
  • スティッキーヘッダー: スクロールしても常にヘッダーが追従するように。

トラブルシューティング:npm から pnpm へ 📦

開発中、npm install 時に謎の権限エラー(EPERM)が頻発する事態に。 キャッシュクリアや権限修正を試みるも完全には解消せず、思い切って pnpm へ移行しました。

結果、インストール速度が爆速になり、ディスク容量も節約でき、エラーも解消。怪我の功名でした。

セキュリティ対策 🔒

最後に、公開リポジトリとしての安全性を確認しました。

  • デバッグ用スクリプト(.mjs)の除外。
  • APIキーの環境変数管理の徹底。
  • RLS (Row Level Security) に関する懸念の払拭。
    • Notion APIはサーバーサイドでのみ実行され、キーはクライアントに露出しない構造であることを再確認しました。

Next Steps

これで「ブログとして恥ずかしくない」レベルまでは到達しました。 次は以下の機能実装を予定しています。

  • 検索機能: 過去の記事をサクサク探せるように。
  • OGP画像生成: SNSでシェアされた際の見栄えを良くする。

開発はまだまだ続きます! 🚀