A modern, minimalist portfolio website built with Next.js, TypeScript, and Framer Motion.
This portfolio follows a Pure Minimalism aesthetic with:
- Abundant whitespace
- Monochrome color palette
- Ultra-thin borders (1px)
- Light shadows and subtle animations
- Clean typography with light font weights
- Next.js 14 - React framework with App Router
- TypeScript - Type-safe development
- TailwindCSS - Utility-first styling
- Framer Motion - Smooth animations and transitions
- React - UI library
- Install dependencies:
npm installDevelopment mode:
npm run devBuild for production:
npm run build
npm startThe site will be available at http://localhost:3000
portfolio/
├── app/ # Next.js App Router
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Home page
│ └── globals.css # Global styles
├── components/ # React components
│ ├── Navigation.tsx # Sticky navigation with active states
│ ├── Hero.tsx # Animated hero section
│ ├── About.tsx # About section with skills
│ ├── Work.tsx # Projects showcase
│ ├── Gallery.tsx # 3D figures gallery
│ ├── Contact.tsx # Contact form and info
│ └── Footer.tsx # Footer component
├── public/ # Static assets
│ ├── media/ # 3D figure images
│ └── CV.pdf # Resume/CV
└── ...config files
- Smooth scroll animations
- Parallax effects on hero section
- Staggered entrance animations
- Hover interactions on all interactive elements
- Modal transitions for gallery
- Form submission feedback
- Hero - Animated introduction with parallax background
- About - Bio, skills, and interests
- Work - Project showcase with hover effects
- Gallery - Interactive 3D figures with modal view
- Contact - Contact form and social links
- Footer - Social links and copyright
- Mobile-first approach
- Breakpoints:
md(768px),lg(1024px) - Mobile menu for navigation
- Optimized layouts for all screen sizes
Edit the color palette in tailwind.config.ts:
colors: {
primary: '#000000',
secondary: '#404040',
accent: '#666666',
background: '#ffffff',
surface: '#fafafa',
text: '#000000',
textSecondary: '#737373',
border: '#e5e5e5',
}- Update personal information in component files
- Replace project data in
Work.tsx - Update contact information in
Contact.tsx - Add/remove gallery items in
Gallery.tsx
- Add images to
public/media/ - Update image paths in components
- Replace CV in
public/directory
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
© 2026 Adrià Guilera Bernabé. All rights reserved.