Skip to content

Tesixki/SG_Portfolio_Ver2

 
 

Repository files navigation

SG Portfolio Ver2

Built with Astro

Astro 5React アイランドで構成したモダンなポートフォリオサイトです。ゲーム作品、技術スタック、ライトニングトーク資料、Qiita の新着記事(ビルド時取得)を掲載しています。

技術スタック

  • フレームワーク: Astro 5 — 静的出力、ファイルベースのルーティング
  • インタラクティブ: @astrojs/react 経由の React 19(カルーセル、ヘッダー、各ページ、ダイアログなど)
  • スタイル: Tailwind CSS 3.4 + src/styles/globals.css のデザイントークン
  • UI: shadcn 系コンポーネント(Radix UI プリミティブ: Dialog、Sheet など)
  • アイコン: Lucide React
  • カルーセル: Swiper 12
  • TypeScript(strict)、パスエイリアス @/src/
  • デプロイ: gh-pagesdist/ を公開

プロジェクト構成

/
├── public/                 # 静的アセット(ビルドで dist にそのままコピー)
│   ├── brand/              # PWA アイコン(logo192 / logo512)
│   ├── images/
│   │   ├── games/          # ゲームサムネイル
│   │   ├── icons/          # 技術スタック・SNS(Qiita など)
│   │   └── profile/
│   ├── favicon.ico
│   ├── manifest.json
│   ├── robots.txt
│   └── .nojekyll           # GitHub Pages 用
├── src/
│   ├── components/
│   │   ├── pages/          # ページ単位の React アイランド(Home、About など)
│   │   └── ui/             # 共通 UI(button、card、dialog、sheet など)
│   ├── data/               # games.json, techStack.json, ltData.json, aboutSections.ts
│   ├── layouts/
│   │   └── Layout.astro    # ベースレイアウト、フォント、グローバル CSS
│   ├── lib/                # qiitaFeed.ts、utils(cn)など
│   ├── pages/              # Astro のルート
│   │   ├── index.astro
│   │   ├── about.astro
│   │   ├── tech.astro
│   │   ├── talks.astro
│   │   └── game/[id].astro
│   ├── styles/globals.css  # CSS 変数(ライトテーマ既定、.dark 用トークンあり)
│   ├── types/
│   └── utils/siteRoot.ts   # import.meta.env.BASE_URL(GitHub Pages の base)に追従
├── astro.config.mjs
├── tailwind.config.mjs
├── tsconfig.json
└── components.json         # shadcn のパス・スタイル設定

コマンド

依存関係は pnpmpnpm-lock.yaml)で管理しています。npm でも問題なく動きます。

pnpm install    # または: npm install

pnpm dev        # または: npm run dev
pnpm build      # または: npm run build   (astro check + astro build)
pnpm preview    # または: npm run preview

pnpm deploy     # または: npm run deploy   (ビルド後に dist を gh-pages ブランチへ)

deploypredeploybuild のあと、dist を公開します。

デプロイ

  • 開発・本番の既定はサイトルート / 想定です。siteRoot() とアセットパスは Astro の import.meta.env.BASE_URL に合わせます。
  • GitHub Pages のプロジェクトサイトhttps://user.github.io/repo-name/)では、astro.config.mjsbase: '/repo-name' を設定し、site も Pages の URL に合わせてください。

現在の設定例: sitehttps://44yyp9.github.io(必要に応じて変更)。

機能の概要

  • ほぼ静的 HTML — 必要な箇所だけハイドレーション(フル SPA より初回表示が軽い想定)
  • レスポンシブ — モバイルは Sheet(スライドオーバー)、デスクトップはピル型ナビ
  • ヘッダー — GitHub / Qiita リンク(デスクトップはバー、モバイルはシート下部)
  • ホーム — ヒーロー、Swiper スポットライト、作品グリッド、Qiita セクション(src/lib/qiitaFeed.ts → ビルド時に Qiita API v2)
  • お問い合わせ — Radix Dialog のフォーム
  • アクセシビリティ — ランドマーク、アイコンのみの操作にはラベル
  • タイポグラフィ — Outfit + BIZ UD Gothic(Layout.astro を参照)

ページ一覧

ページ パス 内容
ホーム / スポットライト、作品グリッド、Qiita 記事
About /about プロフィール・セクション(aboutSections.ts
Tech Stack /tech カテゴリ別スキル(techStack.json
Lightning Talks /talks スライド埋め込み(ltData.json
ゲーム詳細 /game/[id] 作品ごとのページ(games.json

テーマ

既定 UI はライトでニュートラルなベースに、バイオレット系のアクセントです。トークンは src/styles/globals.css の HSL 形式 CSS 変数(--background--primary--card など)で、Tailwind(tailwind.config.mjs)から参照しています。将来ダークモードを有効にする場合は .dark ブロックを利用できます。

旧 CRA アプリとの違い

以前は Create React App + Material UI でした。今回の構成では、カルーセル・メニュー・フォームなど効果が大きい部分に React を残し、事前レンダーしたページを配信して SEO と表示速度を優先しています。レガシーの Front/react_app ツリーはこのリポジトリには含めていません。

ライセンス

個人用ポートフォリオ — 無断転載・再利用は禁止です。

作者

SG

About

これはSGのポートフォリオでReactで再度制作したサイトです

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 86.1%
  • JavaScript 5.8%
  • Astro 5.4%
  • CSS 2.7%