loading...
wait a moment please

RootLayout.tsx のすべての import を使用した包括的なデモンストレーション
RootLayout.tsx で使用されるすべての import 文
import React from 'react';
import type { Metadata } from 'next';
import { Inter } from 'next/font/google';
import { ThemeProvider, LabelImage } from '@/presentation/components/common';
import { AuthProvider } from '@/presentation/components/features/auth/AuthProvider';
import { AppHeader } from './Header';
import { Footer } from './Footer';
import { AuthModal } from './AuthModal';
import { BLOB_IMAGES } from '@/constants/blobUrls';
import '@/presentation/styles/globals.css';Google Fonts の Inter フォントを使用
フォントファミリー: Inter
サブセット: latin
クラス名: inter_fdb46f8a-module__wO1BIq__className
このテキストは Inter フォントで表示されています。
太字 や 斜体 もきれいに表示されます。
ライト/ダークテーマの切り替え
Firebase 認証状態の管理(デモでは使用されません)
ユーザー: 未ログイン(デモ)
ロール: ゲスト(デモ)
管理者権限: なし(デモ)
実際の認証機能はRootLayoutで使用されます。
RootLayout に含まれるレイアウトコンポーネント
ページ上部に表示されているナビゲーションとユーザーメニュー
背景に表示されているブランディング画像
認証ダイアログ(RootLayoutで使用されます)
ページ下部に表示されているフッター
Vercel Blob Storage に保存された画像定数
HOME_IMAGE: https://ytzmpefdjnd1ueff.public.blob.vercel-storage.com/homeimage.webp
他の画像: 定数オブジェクトに定義
Open Graph と Twitter Card で使用されるヒーロー画像
Next.js Metadata API を使用した SEO とソーシャルメディア設定
export const metadata: Metadata = {
title: {
default: 'My Homepage',
template: '%s | My Homepage',
},
description: 'Personal homepage with Next.js App Router',
keywords: ['Next.js', 'React', 'TypeScript', 'Firebase'],
authors: [{ name: 'Your Name' }],
creator: 'Your Name',
metadataBase: new URL('https://your-domain.com'),
// ... Open Graph, Twitter Card, robots, verification
};RootLayout の完全な構造と使用されるすべての要素
<html lang="ja" suppressHydrationWarning>
<body className={inter.className}>
<ThemeProvider>
<AuthProvider>
<div className="app-bg">
<AppHeader />
<LabelImage />
<main className="main-content">
{/* Page Content */}
{children}
</main>
<Footer />
<AuthModal />
</div>
</AuthProvider>
</ThemeProvider>
</body>
</html>