Part 1

ポートフォリオ ページ

テーマごとに利用可能なフィルタリング機能を搭載した本格的なポートフォリオ ページ。

ポートフォリオ ページ

AstroGlass における新機能として、ポートフォリオ ページはプロジェクトをリッチに紹介するための専用動的ルートページです。カテゴリ フィルタリング機能、各プロジェクトの詳細表示に対応し、アクティブなテーマに適合するデザインを特徴とします。

アーキテクチャ

ポートフォリオ ページは /[theme]/portfolio (例: /liquid/portfolio/glass/portfolio) から提供されます。これには主要なテーマページと同様の動的ルーティング戦略が用いられます。

ファイル構造

  • ルート: src/pages/[theme]/portfolio.astro - 動的ルートのハンドラーです。
  • コンポーネント: src/components/pages/portfolio/{theme}/ - テーマごとのそれぞれのモジュール化されたセクション実装 (例: PortfolioHeroLiquid.astroPortfolioGridLiquid.astro)。
  • コンテンツ: src/locales/{lang}/portfolioPage.json - 全てのテキスト コンテンツ、プロジェクト データとカテゴリ。

カスタマイズ

ランディング ページの専用セクションとは異なり、ポートフォリオ ページは完全にローカリゼーション ファイル経由のデータ主導で動作します。これにより、コードに触れることなくプロジェクトを簡単に追加できます。

プロジェクトの管理

プロジェクトを管理するには src/locales/ja/portfolioPage.json を編集します。

src/locales/ja/portfolioPage.json
{
"projects": {
"p1": {
"title": "プロジェクト名",
"description": "カード用の短い説明文。",
"longDescription": "詳細表示用の長い文章...",
"category": "webapp",
"techStack": ["React", "Node.js"],
"color": "from-violet-500 to-fuchsia-500"
}
}
}

カテゴリ

カテゴリは同 JSON ファイル内に定義されており、フィルタリングに使用されます。

{
"filterAll": "すべて",
"categoryLabels": {
"webapp": "Web アプリ",
"mobile": "モバイル アプリ"
}
}

機能

  • 動的フィルタリング: クライアント側でカテゴリ毎に滑らかなアニメーションによるフィルタリングが行われます。
  • 詳細表示: 各プロジェクトごとに展開が可能な詳細パネルで、「課題」「解決策」「影響力」を表示します。
  • テーマへの適応: アクティブなテーマに対応したヘッダー、フッター、スタイルを自動的に適用します。
  • レスポンシブ: スマートフォン、タブレット、デスクトップにおいて機能する、完全なレスポンシブ レイアウトに対応しています。