Skip to content

chienhsiang-hung/chienhsiang-hung.github.io

Repository files navigation

⚑️ Web3-Style Developer Portfolio

A modern, high-performance personal portfolio website built with React, TypeScript, and Tailwind CSS. Featuring a "Web3" aesthetic with dark mode, glassmorphism, and interactive 3D elements.

Portfolio Preview

✨ Features

  • 🎨 Web3 Aesthetic: Deep dark mode, neon glows, glassmorphism (backdrop-blur), and noise textures.
  • 🍱 Bento Grid Layout: A fully responsive grid layout that adapts perfectly from mobile to desktop.
  • πŸ”¦ Spotlight Effect: Custom mouse-tracking spotlight effect on cards using React hooks.
  • 🌍 Interactive 3D Globe: A draggable, auto-rotating 3D dot-matrix globe using cobe.
  • ☁️ 3D Icon Cloud: Interactive floating tech stack sphere using react-icon-cloud.
  • 🧊 Spline 3D Integration: Immersive 3D background scenes with GSAP entrance animations.
  • ⚑️ High Performance: Built with Vite for instant server start and HMR.

πŸ›  Tech Stack

πŸš€ Getting Started

Prerequisites

  • Node.js (v18 or higher recommended)
  • npm or yarn

Installation

  1. Clone the repository

    git clone https://github.com/chienhsiang-hung/chienhsiang-hung.github.io.git
    cd chienhsiang-hung.github.io
  2. Install dependencies

    npm install
  3. Run development server

    npm run dev
  4. Build for production

    npm run build

πŸ“‚ Project Structure

src/
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ InteractiveIconCloud.tsx  # 3D Tech Stack Sphere
β”‚   β”œβ”€β”€ LocationCard.tsx          # Draggable Cobe Globe + Clock
β”‚   β”œβ”€β”€ SpotlightCard.tsx         # Reusable Card with Hover Glow
β”‚   └── ...
β”œβ”€β”€ App.tsx                       # Main Layout & Bento Grid
β”œβ”€β”€ main.tsx                      # Entry Point
└── index.css                     # Global Styles & Tailwind Directives
public/
└── my-demo-video.mp4             # Video assets

βš™οΈ Customization Guide

1. Changing the 3D Background

Go to App.tsx and replace the Spline URL with your own scene from Spline.design:

<Spline scene="YOUR_NEW_SPLINE_URL" onLoad={onLoad} />

2. Updating Tech Stack Icons

Edit src/components/InteractiveIconCloud.tsx. Add or remove slugs from the iconSlugs array (refer to Simple Icons for valid slugs):

const iconSlugs = [
  "typescript",
  "react",
  "nextdotjs",
  // ... add more
];

3. Changing the Globe Markers (Location)

Edit src/components/LocationCard.tsx inside the markers array:

markers: [
  { location: [24.774, 121.047], size: 0.1 }, // Your Lat/Long (e.g., Hsinchu)
],

4. Updating the Snowboard Video

Place your video file in the public folder and update the src in App.tsx:

<source src="/your-video-filename.mp4" type="video/mp4" />

🐳 Docker Development (Optional)

If you prefer using Docker to avoid environment issues:

# Run the container with port mapping and volume mount
docker run -it --rm -v "${PWD}:/app" -w /app -p 5173:5173 node:24-alpine sh

# Inside the container
npm install
npm run dev

πŸ“„ License

This project is open source and available under the MIT License.


Designed & Built by Chien-Hsiang Hung.

About

πŸš€ A high-performance, immersive 3D portfolio built with React, TypeScript, and Tailwind CSS. Featuring Spline 3D scenes, interactive bento grids, and a glimpse into my work.

Topics

Resources

Stars

Watchers

Forks

Contributors