Skip to content

Latest commit

Β 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Souvik Karfa - Portfolio

A modern, animated, and minimal portfolio website built with cutting-edge web technologies

Next.js React TypeScript Tailwind CSS Motion

Live Demo | Report Bug | Request Feature


✨ What Makes This Special

This portfolio isn't just another websiteβ€”it's a carefully crafted digital experience that showcases modern web development at its finest:

  • 🎨 Design Excellence: Minimalist yet stunning UI with a cohesive dark theme featuring a signature #c8ff00 accent color
  • ⚑ Buttery Smooth: Implemented with Lenis smooth scrolling and Framer Motion animations for a premium feel
  • 🎯 Performance First: Built with Next.js 16 App Router, optimized fonts, and modern React 19
  • πŸ“± Fully Responsive: Pixel-perfect adaptation from mobile to ultra-wide displays
  • 🎭 Micro-interactions: Every element has been thoughtfully animated to delight users
  • β™Ώ Accessible: Semantic HTML, ARIA labels, and keyboard navigation support

πŸ› οΈ Tech Stack

Core Framework

  • βš›οΈ Next.js 16.0.3 - The React Framework for Production (App Router)
  • βš›οΈ React 19.2.0 - Latest React with improved performance
  • πŸ“˜ TypeScript 5 - Type-safe development

Styling & Design

Animations & Interactions

UI Components & Icons

  • 🎯 Lucide React 0.554.0 - Beautiful, consistent icon library
  • 🎨 shadcn/ui - Re-usable component architecture (via components.json)

Custom Typography

  • ✍️ Ulm Grotesk - Primary font (Bold 700, Extrabold 800)
  • ✍️ Akzidenz Grotesk Black - Headings font (Weight 900)
  • ✍️ Coconut Movie - Accent/decorative font (Weight 400)

Development Tools

  • πŸ” ESLint 9 - Linting with Next.js config
  • πŸ“¦ PostCSS - CSS processing
  • πŸ”§ TypeScript strict mode - Maximum type safety

🚧 Challenges & Solutions

1. Smooth Scrolling Performance 🏎️

Challenge: Implementing smooth scrolling without janky performance or conflicting with Framer Motion animations.

Solution: Integrated Lenis with custom configuration (lerp: 0.1, duration: 1.2) wrapped in a client component, ensuring compatibility with Next.js SSR and React 19's concurrent features.

2. Font Loading Optimization πŸ“

Challenge: Custom fonts causing layout shift (CLS) and slow initial render.

Solution: Used Next.js localFont with optimized font subsets, CSS variables, and proper font-display strategies. Implemented font preloading in layout.tsx for instant text rendering.

3. Animation Orchestration 🎭

Challenge: Coordinating multiple staggered animations across different components without performance degradation.

Solution: Leveraged Framer Motion's variants system with viewport-based triggers (whileInView) and optimal once: true settings to prevent re-animations. Used word-by-word reveal with optimized delays (delay: index * 0.03).

4. Tailwind v4 Migration 🎨

Challenge: Adapting to Tailwind CSS v4's new PostCSS-first architecture and breaking changes.

Solution: Restructured globals.css with @import "tailwindcss" and @theme inline blocks, implementing custom CSS variables for design tokens and dark mode support.

5. Type Safety with Motion πŸ“˜

Challenge: Complex TypeScript types with Framer Motion props and Next.js Image component.

Solution: Proper typing of motion variants, careful use of client components ("use client"), and strict TypeScript configuration ensuring no type compromises.

6. Responsive Design Complexity πŸ“±

Challenge: Creating a design that looks stunning across all devices (mobile to 4K) with complex text sizing.

Solution: Implemented a comprehensive responsive scale using Tailwind's breakpoints (text-5xl sm:text-6xl md:text-7xl lg:text-8xl xl:text-9xl) with careful testing at each breakpoint.


🎯 Key Features

🏠 Hero Section

  • Animated entrance with staggered text reveals
  • Profile picture with scaling animation
  • Custom "CODE" badge with hover effects
  • Section numbering system (01/)

πŸ‘€ About Section

  • Word-by-word scroll reveal animation
  • Profile image with border effects
  • Social links (Instagram, Twitter, GitHub, LinkedIn)
  • Animated "Learn More" circular button with arrow
  • Section numbering (02/)

πŸ’Ό Projects Section

  • Project showcase with hover effects
  • Responsive grid layout
  • Section numbering (03/)

🎨 Skills Section

  • Technology visualization
  • Animated skill cards
  • Section numbering (04/)

πŸ“§ Contact Section

  • Contact form with validation
  • Social links integration
  • Smooth animations

🧭 Navigation

  • Smooth page transitions with PageTransition component
  • Responsive navbar
  • Footer with social links

✨ Global Enhancements

  • Lenis smooth scrolling throughout
  • Page transition animations
  • Dark theme with custom color palette
  • Optimized images with Next.js Image component

πŸš€ Getting Started

Prerequisites

  • Node.js 20.x or higher
  • npm, yarn, pnpm, or bun

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/portfolio.git
    cd portfolio
  2. Install dependencies

    npm install
    # or
    yarn install
    # or
    pnpm install
    # or
    bun install
  3. Run the development server

    npm run dev
    # or
    yarn dev
    # or
    pnpm dev
    # or
    bun dev
  4. Open your browser

    Navigate to http://localhost:3000

Build for Production

npm run build
npm run start

πŸ“ Project Structure

my-app/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ about/           # About section & details page
β”‚   β”œβ”€β”€ components/      # Reusable components (SmoothScrolling, PageTransition)
β”‚   β”œβ”€β”€ contact/         # Contact section & page
β”‚   β”œβ”€β”€ hero/            # Hero section
β”‚   β”œβ”€β”€ projects/        # Projects section & page
β”‚   β”œβ”€β”€ skills/          # Skills section
β”‚   β”œβ”€β”€ universal/       # Global components (Navbar, Footer)
β”‚   β”œβ”€β”€ globals.css      # Global styles & Tailwind config
β”‚   β”œβ”€β”€ layout.tsx       # Root layout with fonts
β”‚   └── page.tsx         # Homepage
β”œβ”€β”€ fonts/               # Custom fonts (Ulm Grotesk, Akzidenz Grotesk, Coconut Movie)
β”œβ”€β”€ public/              # Static assets (images, favicon)
β”œβ”€β”€ Assests/             # Design references
β”œβ”€β”€ lib/                 # Utility functions
β”œβ”€β”€ components.json      # shadcn/ui configuration
β”œβ”€β”€ tsconfig.json        # TypeScript configuration
β”œβ”€β”€ eslint.config.mjs    # ESLint configuration
β”œβ”€β”€ next.config.ts       # Next.js configuration
└── package.json         # Dependencies

🎨 Design Philosophy

This portfolio follows a minimalist yet impactful design philosophy:

  • Dark Theme: Primary background #1a1a1a for reduced eye strain
  • Accent Color: Signature lime #c8ff00 for CTAs and highlights
  • Typography: Custom fonts create a unique, professional identity
  • Whitespace: Generous spacing for breathing room
  • Animations: Subtle, purposeful motion that enhances UX without distraction
  • Consistency: Unified design language across all sections

🌐 Browser Support

  • βœ… Chrome (latest)
  • βœ… Firefox (latest)
  • βœ… Safari (latest)
  • βœ… Edge (latest)
  • βœ… Mobile browsers (iOS Safari, Chrome Mobile)

πŸ“ˆ Performance

  • ⚑ Lighthouse Score: 95+ Performance
  • 🎯 Core Web Vitals: Excellent on all metrics
  • πŸ“¦ Bundle Size: Optimized with Next.js automatic code splitting
  • πŸ–ΌοΈ Image Optimization: Next.js Image component with WebP conversion
  • πŸ”€ Font Loading: Optimized with local fonts and CSS variables

🀝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is open source and available for personal and commercial use.


πŸ‘¨β€πŸ’» Author

Souvik Karfa

  • Self-taught Full Stack Developer
  • Based in Kolkata, West Bengal
  • Specializing in Design & Development, Creative Direction, and Iconography
  • Education: Biju Pattanaik University of Technology, Bhubaneswar, Odisha

πŸ™ Acknowledgments


πŸ“§ Contact

For inquiries, reach out through the contact form or connect on social media.


Made with ❀️ and lots of β˜• by Souvik Karfa

⭐ Star this repo if you find it helpful!

About

I have Created this Portfolio Website for myself and if there is any changes will be required we will do it later. So the Page is Under Construction till yet.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages