X100
A Next.js portfolio for professional photographers, designed to flawlessly showcase powerful visual stories.
Install / Use
/learn @lilxyzz/X100README
Next.js Photography Portfolio | X100

A modern, responsive photography portfolio built with Next.js 15+, featuring dynamic collections, smooth animations, and a beautiful dark/light theme.
I created this theme as I’ve been considering purchasing a camera recently, and it aligned with some ideas I wanted to explore. I may contribute further updates in the future, but can’t make any guarantees at this stage. Enjoy 🤙
🌟 Features
- Dynamic Photo Collections: Automatically loads and displays photos from organized folders
- Responsive Design: Fully responsive layout optimized for all devices
- Dark/Light Theme: Elegant theme switching with smooth transitions
- Modern Animations: Powered by Framer Motion for smooth interactions
🚀 Tech Stack
- Framework: Next.js 15 (App Router)
- React: 19
- Styling: Tailwind CSS
- Animations: Framer Motion
- Icons: Lucide Icons
- Formspree: Contact Form
- React Photo Album: Masonry Layout
🛠️ Setup Instructions
-
Clone the repository
git clone [https://github.com/lilxyzz/x100] cd x100 -
Install dependencies
npm install # or yarn install -
Run the development server
npm run dev # or yarn dev
Open http://localhost:3000 with your browser to see the result.
📸 Photo Collections
The portfolio is organized into collections:
- Urban Portraits
- Tokyo
- New Zealand
- Iceland
- Bali
- Morocco
Each collection should be placed in its corresponding folder in the public directory. Update image Validation /scripts/validate-images.ts
🎨 Theme Customization
Colors
The theme colors are defined in globals.css using CSS variables. Modify the root variables to customize the color scheme:
:root {
--background: 0 0% 100%;
--foreground: 0 0% 0%;
/* ... other color variables */
}
🌓 Dark Mode
The theme toggle is implemented using next-themes and includes:
- System preference detection
- Smooth transitions
- Persistent theme selection
📱 Responsive Design
The portfolio is fully responsive with breakpoints:
- Mobile: < 768px
- Tablet: 768px - 1024px
- Desktop: > 1024px
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Related Skills
diffs
340.5kUse the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both) instead of manual edit summaries.
clearshot
Structured screenshot analysis for UI implementation and critique. Analyzes every UI screenshot with a 5×5 spatial grid, full element inventory, and design system extraction — facts and taste together, every time. Escalates to full implementation blueprint when building. Trigger on any digital interface image file (png, jpg, gif, webp — websites, apps, dashboards, mockups, wireframes) or commands like 'analyse this screenshot,' 'rebuild this,' 'match this design,' 'clone this.' Skip for non-UI images (photos, memes, charts) unless the user explicitly wants to build a UI from them. Does NOT trigger on HTML source code, CSS, SVGs, or any code pasted as text.
openpencil
1.9kThe world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.
HappyColorBlend
HappyColorBlendVibe Project Guidelines Project Overview HappyColorBlendVibe is a Figma plugin for color palette generation with advanced tint/shade blending capabilities. It allows designers to
