Back to Projects

SF. Portfolio

Role:Frontend Engineer & Designer
Stack:Next.jsFramer MotionTailwind CSSReact
Visit Live Site
01

The Concept

A personal portfolio is more than just a list of projects—it's the ultimate proving ground for a frontend developer. I wanted to build a digital space that not only showcased my work but also served as a testament to my technical capabilities and design sensibilities.

From a Business Analysis perspective, I clarified audience needs (recruiters vs. collaborators), defined primary user goals (quick skill scan, depth via case studies), and prioritized content to reduce cognitive load. This informed the information architecture and the order of sections.

Design Goals

  • Create a premium, dark-mode-first aesthetic.
  • Incorporate subtle, physics-based interactions.
  • Ensure flawless performance and accessibility.

Technical Goals

  • Leverage Next.js App Router for optimal routing.
  • Implement advanced Framer Motion scroll and spring animations.
  • Build a strictly responsive, mobile-first architecture.
02

Design & Interactivity

To break away from standard template-based portfolios, I focused heavily on micro-interactions. The goal was to make the interface feel alive and tactile, rewarding users who explore the page.

  • Magnetic Buttons: Built a custom wrapper using Framer Motion's `useSpring` to create buttons that "pull" towards the user's cursor, providing satisfying physical feedback.
  • Glassmorphism UI: Utilized backdrop filters and semi-transparent borders to create depth without relying on heavy shadows.
  • Scroll-Driven Reveals: Implemented typography that highlights word-by-word based on the user's scroll progress, keeping them engaged as they read.
03

Technical Highlights

The portfolio is built on a modern React stack, prioritizing fluid animations without sacrificing load speeds or layout stability.

3D Perspective Cards

The project cards use custom Framer Motion hooks (`useMotionValue`, `useTransform`) to calculate mouse position relative to the element's bounding box. This creates a performant 3D tilt effect that reacts instantly to mouse movements, complete with a layered parallax effect on the internal elements.

00

Hover Me

Try moving your mouse over this card to see the 3D tilt effect and parallax layering in action.

3DFramer MotionInteractive

Responsive Architecture

Handling complex absolute positioning and flexbox layouts across thousands of device sizes required strict CSS constraints. Fallbacks and `whitespace-nowrap` were utilized to ensure UI elements never break, even on extremely narrow mobile devices like the iPhone SE.

04

The Stack

Framework
Next.js (App Router)
Styling
Tailwind CSS
Animations
Framer Motion
Next Project: RentEase

Next Project

RentEase