メインコンテンツへスキップ
ブログ一覧に戻る
フロントエンド開発

Next.jsとTailwind CSSで作るモダンなウェブサイト

2023年12月15日
8分で読めます
Next.jsとTailwind CSSで作るモダンなウェブサイト

この記事の結論

Next.js 14の新機能とTailwind CSSを組み合わせて、パフォーマンスに優れたウェブサイトを構築する方法を解説します。

Next.jsとTailwind CSSで作るモダンなウェブサイト

Next.js 14の新機能とTailwind CSSを組み合わせて、パフォーマンスに優れたウェブサイトを構築する方法を解説します。

はじめに

モダンなウェブ開発において、Next.jsとTailwind CSSの組み合わせは非常に強力です。Next.js 14では、App Routerの安定化やServer Componentsの改善など、多くの新機能が追加されました。本記事では、これらの機能を活用して、パフォーマンスと開発体験の両方を向上させる方法を解説します。

Next.js 14の主要な新機能

App Routerの安定化

Next.js 14では、App Routerが安定版となり、本番環境での使用が推奨されるようになりました。App Routerを使用することで、以下のようなメリットが得られます:

  • Server Components: サーバーサイドでレンダリングされるコンポーネントにより、初期ロード時間を短縮
  • Streaming: ページの一部を段階的にストリーミングすることで、ユーザー体験を向上
  • Layouts: 共通のレイアウトを簡単に共有

Server Actions

Server Actionsを使用することで、フォームの送信やデータの更新を、APIルートを作成せずに直接サーバーサイドで処理できます。

// app/actions.ts
'use server'

export async function createPost(formData: FormData) {
  const title = formData.get('title')
  // データベースに保存
  // ...
}

Tailwind CSSとの統合

セットアップ

Next.jsプロジェクトにTailwind CSSを追加するには、以下のコマンドを実行します:

npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p

設定ファイルの最適化

tailwind.config.jsを設定して、不要なスタイルを削除し、パフォーマンスを最適化します:

module.exports = {
  content: [
    './app/**/*.{js,ts,jsx,tsx,mdx}',
    './components/**/*.{js,ts,jsx,tsx,mdx}',
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}

パフォーマンス最適化のベストプラクティス

画像の最適化

Next.jsのImageコンポーネントとTailwind CSSを組み合わせることで、レスポンシブで最適化された画像を簡単に実装できます:

import Image from 'next/image'

export default function Hero() {
  return (
    <div className="relative w-full h-96">
      <Image
        src="/hero.jpg"
        alt="Hero image"
        fill
        className="object-cover"
        priority
      />
    </div>
  )
}

フォントの最適化

Next.js 14では、next/fontを使用してフォントを最適化できます:

import { Inter } from 'next/font/google'

const inter = Inter({ subsets: ['latin'] })

export default function Layout({ children }) {
  return (
    <html lang="ja" className={inter.className}>
      <body>{children}</body>
    </html>
  )
}

実践的な例

レスポンシブなカードコンポーネント

Tailwind CSSのユーティリティクラスを使用して、レスポンシブなカードコンポーネントを作成します:

export default function Card({ title, description }) {
  return (
    <div className="bg-white dark:bg-gray-800 rounded-lg shadow-md p-6 hover:shadow-lg transition-shadow">
      <h3 className="text-xl font-bold mb-2 text-gray-900 dark:text-gray-100">
        {title}
      </h3>
      <p className="text-gray-600 dark:text-gray-400">
        {description}
      </p>
    </div>
  )
}

Next.js×Tailwind CSSでモダンサイトを構築する要点

Next.js 14とTailwind CSSを組み合わせることで、パフォーマンスに優れたモダンなウェブサイトを効率的に構築できます。Server ComponentsやApp Routerなどの新機能を活用し、Tailwind CSSのユーティリティクラスでスタイリングすることで、開発速度とパフォーマンスの両方を向上させることができます。

関連記事


ご相談・お問い合わせはこちら

次の一手

状況に合わせて、選んでください。