A modern, responsive single-page application built with React, TypeScript, and TailwindCSS that showcases interior design projects through an elegant interface.
- Sticky header that stays visible while scrolling
- Smooth scroll navigation to all sections
- Mobile hamburger menu with animations
- Active section highlighting
- Logo/company name with hover effects
- Full-width background image
- Dark overlay for text readability
- AI-generated title and description
- Call-to-action button with smooth scroll
- Responsive typography scaling
- Responsive grid layout (1-3 columns based on screen size)
- Hover effects with image scale and information overlay
- Lightbox modal with navigation controls
- Lazy loading for performance
- Image captions with room types and categories
- Responsive iframe container
- Loading spinner with TailwindCSS animations
- Error state handling
- Navigation instructions
- Smooth loading transitions
- Built with Marzipano
- Company information and mission statement
- Contact details with icons
- Social media links with platform-specific icons
- Call-to-action elements
- Responsive grid layout
- React 19 - Modern React with hooks
- TypeScript - Type-safe development
- TailwindCSS 4 - Utility-first CSS framework
- Marzipano - Tool generates a virtual 360° media viewer for the modern web.
- Vite - Fast build tool and dev server
src/
├── components/ # React components
│ ├── Navigation.tsx # Sticky navigation bar
│ ├── Hero.tsx # Hero section with background
│ ├── Gallery.tsx # Image gallery with lightbox
│ ├── Panorama.tsx # Panorama viewer
│ └── About.tsx # About us section
├── types/ # TypeScript interfaces
│ └── index.ts # All type definitions
├── data/ # Sample data
│ └── index.ts # Mock data for components
├── App.tsx # Main application component
├── main.tsx # Application entry point
└── index.css # Global styles and CSS variables- Node.js 18+
- npm or yarn
-
Clone the repository:
git clone <repository-url> cd PortfolioPanorama
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:5173
npm run buildThe built files will be in the dist directory.
The color palette is defined in tailwind.config.js and can be customized:
colors: {
'terracotta': '#d2691e', // Primary accent
'warm-brown': '#8b4513', // Secondary accent
'charcoal': '#333333', // Text color
// ... more colors
}Update the sample data in src/data/index.ts:
- Company Information: Name, description, contact details
- Gallery Images: Add your project renders
- Hero Content: Title, description, background image
- Panorama Data: Virtual tour URL
Each component is modular and can be customized:
- Navigation: Add/remove menu items
- Gallery: Modify grid layout or add filtering
- Panorama: Change aspect ratio or add custom controls
- About: Update company information and social links
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.
Built with ❤️ for interior design professionals