monaka

Next.jsで作成した関連記事の デザインをPCとスマホで変える

完成系イメージ

以下の画像のようにPCは3カラムのカード型。スマホは1カラムにしてニュースサイトっぽく左側に画像、右に記事タイトルを表示するように変更をした

関連記事の作り方

今回はこちらの記事で作成した関連記事のコンポーネントをベースにCSSでカスタマイズをしている。

CSSカスタマイズ例

.recommendContainer {
  display: grid;
  gap: 1rem;
}

.cardContainer {
  border-radius: 0.5rem;
  background-color: white;
}

.recommendItems {
  display: grid;
  gap: 1rem;
}

.recommendItem {
  display: block;
}

.recommendLink {
  display: block;
}

.thumbnail {
  width: 100%;
  height: auto;
  border-radius: 0.5rem;
  object-fit: cover;
}

.title {
  margin-bottom: 1.5rem;
  font-size: 1.25rem;
  font-weight: 600;
}

.titleContainer {
  display: block;
}

@media (min-width: 768px) {
  .recommendItems {
    grid-template-columns: repeat(3, 1fr);
  }
  .titleText {
    font-size: 1rem;
    transition: color 0.3s;
  }
}

@media (max-width: 767px) {
  .recommendItems {
    grid-template-columns: repeat(1, 1fr);
  }
  .recommendLink {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
  }

  .thumbnail {
    width: 40%;
    height: auto;
    flex-shrink: 0;
    border-radius: 0.5rem;
    object-fit: cover;
  }

  .titleContainer {
    flex: 1;
  }

  .titleText {
    font-size: 1rem;
    transition: color 0.3s;
  }
}

補足

今回のカスタマイズに合わせて、関連記事を表示する表示数を4→3に変更している。同様のカスタマイズをされる方は「RECOMMEND_LIST_LIMIT」を4から3に変更することもあわせて対応すること。

まとめ

もともとはmicroCMSブログのデザインを参考に作成していたが、自分のデザイン力がなく、少し野暮ったい印象になっていたので思い切って自分なりにカスタマイズしてみた。大枠イメージしていた通りのデザインになったので良しとする。

Next.js+ヘッドレスCMSではじめる! かんたんモダンWebサイト制作入門 高速で、安全で、運用しやすいサイトのつくりかた
Next.js+ヘッドレスCMSではじめる! かんたんモダンWebサイト制作入門 高速で、安全で、運用しやすいサイトのつくりかた
Amazon楽天市場Yahoo!ショッピング

関連記事