← ブログ一覧に戻る
Next.jsReact技術

Next.js 15でポートフォリオサイトを作った

Next.js 15でポートフォリオサイトを作った

既存のポートフォリオサイトをフルリニューアルしました。

技術選定

項目採用技術理由
フレームワークNext.js 15App Router の安定性、SSG対応
スタイリングTailwind CSS 4開発速度、メンテナンス性
アニメーションFramer Motion宣言的に書けて直感的
デプロイAWS AmplifyGitHubと連携した自動デプロイ

設計で意識したこと

シングルページ構成

研究・スキル・経歴など複数のセクションがあるため、SPA構成にしました。#about などのアンカーリンクでスムーズスクロールを実現しています。

多言語対応

日本語・英語を切り替えられる仕組みを React Context で実装しました。

const { lang } = useLanguage() // 'jp' | 'en'

各コンポーネント内でオブジェクトを使って言語切り替えに対応しています。

Framer MotionのwhileInView

セクションをスクロールして表示したときにフェードインするアニメーションは whileInView で実装しています。

<motion.section
  initial={{ opacity: 0, y: 50 }}
  whileInView={{ opacity: 1, y: 0 }}
  viewport={{ once: true, amount: 0.2 }}
  transition={{ duration: 0.6 }}
>

詰まったポイント

Tailwind CSS 4 の設定

Tailwind 4 からは tailwind.config.js が廃止され、CSS ファイル内の @theme ディレクティブで設定するようになりました。最初は戸惑いましたが、慣れると直感的です。

@theme {
  --color-primary: #00d8ff;
}

今後の改善点

  • ブログ機能の追加(今まさにやっています)
  • Lighthouse スコアの改善
  • OGP 画像の自動生成

まだまだ改善できる部分がたくさんあります。少しずつアップデートしていきます。