flexとgridをふんだんに使ったデザインリニューアルをしました

数年ぶりにこの超日記のデザインリニューアルを敢行しました。

と言ってもベースが白と黒のシンプルな色合い、かつ、ヘッダー・フッター部分はそこまで変わらず、トップページを中心にサイドとメインの2カラム構成であることも変わっていないです。

今回のモチベーション

これまで、古き良き時代の「float」を多用しつつ、各所にmediaクエリを入れたレスポンシブ対応をさせていました。しかもページによって微妙な差を付けるためのテンプレート(phpファイル)が複数爆誕するほど。(mediaクエリ自体は良いが、分岐し過ぎると管理しきれない)

それを今回は

  • display: flex; と display: grid; をちゃんと使ってみたい
  • 保守性を考えて、可能な限りファイル数は少なく、共通部分は流用する

というところに主眼を置き、数週間の実装を行いました。

flex と grid を中心としたレスポンシブ実装

何はともあれ結果となるページ群(代表的なところ)を紹介します。

トップページ(index)

まずはフルサイズのPCモード。最大幅を1300pxとし、左のナビは300px程度。メインコンテンツには、ブログの最新記事をぶち抜きで配置し、2つ目以降を横並び(横スクロール可)で配置しました。

その下には、noteのRSSフィードを使ってnote側の記事をこれまた横並びで配置。また、その下は暫定だけど、一旦pokemonカテゴリに属する記事をぶち抜き+横並びで。

ヘッダーとフッターは大きな変化はないけど、ヘッダーは、position: sticky;を初めて使ってみました。スクロールするとフローティング固定されるやつです。

フッターは著者紹介を削除(サイドバーに移行)し、月別アーカイブとカテゴリの一覧だけにしました。

レスポンシブ対応(iPad(tablet))

色々調べた結果、現時点でポピュラーとされるブレークポイントとして834pxを採用しました。タブレット端末(iPad miniで検証)を横にするとPCになるけど、縦にするとこのサイズになります。

@media screen and (max-width: 834px) {

簡単に言うと、このブレークポイント以下のブラウザサイズになると、左ナビが非表示になります。

レスポンシブ対応(iPhone(smartphone))

こちらのブレークポイントは600px。特に拘り等があるわけではないけど、これも前者同様に色々調べた結果です。

@media screen and (max-width: 600px) {

見た目的にはヘッダーのナビゲーションがハンバーガーメニューに切り替わる、というのがメインで、あとはぶち抜き枠のレイアウトが縦になる、くらいの変化です。

記事ページ(single)

単体の記事にアクセスした際は、noteを真似てサイドバーを表示しないことにしてみました。・・・それだけです笑

アーカイブ系ページ(category, archive)

下記はPokemonカテゴリーのアーカイブページを例にしてますが、このレイアウトが最も再利用性の高いページです。

カテゴリーだけではなく、年別・月別のアーカイブやタグのアーカイブ、そして今回レイアウトを統一した「note(RSSで取得)」の一覧と、Galleryと称した「insragram(APIで取得)」の一覧も同様のデザインです。

PCモードの時は3列のカード風レイアウトで、トップページの横スクロールがそのまま改行になったような見た目になります。

レスポンシブ対応(iPad(tablet))

タブレットサイズだとサイドバーが非表示になるのと、各記事のサムネイルのサイズが横幅に合わせて変わります。ただ、画像の縦横比を変えたくはなかったので、そこはobject-fitで対応。

多くの画像、写真がobject-fitで中央に寄ってもいい感じになっています。

レスポンシブ対応(iPhone(smartphone))

もはや説明いらずだけど、縦一列に並びます。それだけ笑


ほんとはどこをどういった具合にgridで分け、flexを使っているのか、みたいな部分も紹介できればよかったのだけど、それは開発者ツール、またはGithubを見てもらえばいいかな、と。

tag: 20230930_renewal

https://github.com/ktkiyoshi/kiyoshi.wp/releases/tag/20230930_renewal