メインコンテンツへスキップ
kt-tech.blog

【実装】ブログのUI/UXを30項目以上改善した全記録 — Zenn/Qiita/dev.toを参考に

実装3分で読めます

この記事でわかること

  • Zenn / Qiita / DEV Community を並べて見て洗い出した UI/UX の差
  • コードブロックをライト/ダーク両対応にする CSS の分け方
  • 読了時間・前後ナビ・画像拡大など、DB なしで入れられる機能
  • RSS / OGP 動的生成 / PWA の導入

Next.js でブログを運用していること。CSS を自分で書けると進めやすいです。

概要: Zenn/Qiita/dev.toを3サイト分析し、50件以上の改善候補からDB不要の30件以上を実装。コードブロックのライト/ダーク対応、RSS、OGP動的生成、PWAまで。

はじめに

個人技術ブログを主要プラットフォームと比較してUI/UXの差を埋めた記録。

1. コードブロックのライト/ダーク対応

元々github-dark-dimmedテーマのみでライトモードでも暗い背景だった。CSSの.darkプレフィックスでテーマを分離:

CSS
/* Light: GitHub Light */
.hljs { color: #24292e; background: #f6f8fa; }
.hljs-keyword { color: #d73a49; }

ダークモード用:

CSS
/* Dark: GitHub Dark Dimmed */
.dark .hljs { color: #adbac7; background: #22272e; }
.dark .hljs-keyword { color: #f47067; }

CopyボタンはDOM操作でpreタグに注入、言語ラベルはCSSの::beforeで自動表示。

2. サイドバーSP対応

SPではgrid-cols-2のグリッドに変更。最新記事は横スクロールカード、カテゴリ/アーカイブは2カラム横並び、タグは15件以上で折りたたみ。

3. 記事詳細の機能追加

  • 読了時間: 文字数/600で計算
  • 更新日表示: createdAtとupdatedAtが異なる場合に表示
  • 前/次ナビ: allPostsからindex計算
  • 画像lightbox: クリックで全画面拡大
  • 著者カード: 記事末にプロフィール表示
  • はてブ/Pocket: シェアボタンに追加

4. SEO・アクセシビリティ

RSSフィード、OGP動的生成、PWA、スキップナビ、フォーカスリング、テキスト選択色を追加。

5. その他

検索ハイライト、NEWバッジ、見出しアンカー、外部リンクアイコン、Aboutタイムライン等。

Tips

Tips
DB 不要の機能だけでも十分成熟したブログになります。いいねやコメントのような「保存が必要な機能」を後回しにするだけで、実装コストは大きく下がります
Tips
コードブロックのライト対応は効果が大きい。記事の大半をコードが占めるブログで、そこだけ真っ黒だとページ全体が破綻して見えます
Tips
Copy ボタンは useEffect での DOM 操作で実装できる。サーバー側で HTML を作っていても後から差し込める

参考リンク

まとめ

  • 3サイト分析で50件+の改善候補を特定、30件+を実装
  • ライト/ダーク対応が最も効果大
  • OGP動的生成とRSSでSNSシェア時の見栄え向上

更新履歴

  1. 自動目次を追加。箸条書きの Tips を callout に統一し、それぞれに理由を追記。参考リンクに関連記事を追加。「この記事でわかること」「対象読者」を概要プロパティへ移動。
  2. タイトル・本文のリンクと OGP Description の修正

この記事のタグ