A beautiful, responsive image gallery built with React, TypeScript, and Tailwind CSS. Features a clean grid layout, category filtering, and modal image previews with smooth animations.
- Responsive Grid Layout: Adapts to different screen sizes using CSS Grid
- Category Filtering: Filter images by categories (Nature, Architecture, Abstract, Wildlife, Portrait, Street)
- Modal Image Preview: Click any image to view it in a larger modal overlay
- Smooth Animations: Hover effects, transitions, and interactive elements
- Modern Design: Dark theme with gradient backgrounds and glass-morphism effects
- Lazy Loading: Images load efficiently as needed
- Keyboard Accessible: Full keyboard navigation support
- React 18 - Modern React with hooks
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first CSS framework with custom design system
- Vite - Fast build tool and development server
- Lucide React - Beautiful SVG icons
- Node.js (v16 or higher)
- npm or yarn package manager
-
Clone the repository:
git clone <repository-url> cd image-gallery
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:8080
To create a production build:
npm run build
The built files will be in the dist
directory.
src/
├── components/
│ └── ImageGallery.tsx # Main gallery component
├── assets/ # Image assets
├── pages/
│ ├── Index.tsx # Home page
│ └── NotFound.tsx # 404 page
├── lib/
│ └── utils.ts # Utility functions
├── hooks/ # Custom React hooks
└── index.css # Global styles and design system
- Add image files to the
src/assets/
directory - Import them in
ImageGallery.tsx
- Add them to the
images
array with appropriate metadata
Edit the categories
array in ImageGallery.tsx
to add or remove filter categories.
The design system is defined in src/index.css
and tailwind.config.ts
. You can customize:
- Color palette
- Gradients and backgrounds
- Border radius and spacing
- Animation timings
- Lazy Loading: Images load only when needed
- Optimized Animations: CSS transforms for smooth performance
- Efficient Filtering: Client-side filtering without re-renders
- Responsive Images: Optimized for different screen sizes
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
MIT License - feel free to use this project for personal or commercial purposes.