Skip to content

About

A premium, fully responsive restaurant website built with React, TypeScript & Tailwind CSS. Features menu management, reservations system, gallery, and smooth animations.

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

8 Commits

Folders and files

Repository files navigation

🍽️ Maison β€” Fine Dining Restaurant Website

React TypeScript Tailwind CSS Vite License

A modern, responsive restaurant website showcasing premium dining experiences with elegant design and seamless user interactions.


πŸ“Έ Screenshot

Maison Restaurant Website Preview

✨ Features

  • πŸ“± Fully Responsive β€” Optimized for mobile, tablet, and desktop
  • 🎨 Premium Design β€” Luxurious aesthetic with custom design tokens
  • ⚑ High Performance β€” Built with Vite for lightning-fast load times
  • πŸ”’ Type Safe β€” Full TypeScript support for robust development
  • 🎭 Smooth Animations β€” CSS animations with scroll-triggered effects
  • πŸ“ SEO Optimized β€” Meta tags and structured data ready
  • 🎯 Accessibility β€” WCAG compliant components
  • πŸ“‹ Menu Management β€” Dynamic menu with categories and filtering
  • πŸ“… Reservation System β€” Multi-step booking form
  • πŸ“Έ Gallery β€” Masonry layout with lightbox viewer
  • πŸ“§ Contact Integration β€” Ready for backend connection

πŸ› οΈ Tech Stack

Technology Purpose
React 18 UI library with hooks
TypeScript Type-safe development
Tailwind CSS Utility-first styling
React Router v6 Client-side routing
Vite Lightning-fast build tool
Lucide React Icon library
Intersection Observer Scroll animations

πŸ“¦ Project Structure

src/
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ layout/              # Layout wrappers (Navbar, Footer, Layout)
β”‚   β”œβ”€β”€ sections/            # Page sections (Hero, Featured Menu, CTA, etc.)
β”‚   └── ui/                  # Reusable components (MenuCard, ReviewCard, etc.)
β”œβ”€β”€ data/                    # Static data & constants
β”‚   β”œβ”€β”€ menuData.ts
β”‚   β”œβ”€β”€ navigationData.ts
β”‚   └── restaurantData.ts
β”œβ”€β”€ hooks/                   # Custom React hooks
β”‚   β”œβ”€β”€ useScrollAnimation.ts
β”‚   └── useScrollPosition.ts
β”œβ”€β”€ pages/                   # Page components (one per route)
β”œβ”€β”€ styles/                  # Global styles
β”œβ”€β”€ types/                   # TypeScript interfaces
β”œβ”€β”€ App.tsx                  # Router configuration
└── main.tsx                 # Application entry point

πŸ—ΊοΈ Pages & Routes

Route Page Description
/ Home Hero section, featured menu, story, reviews, CTA
/menu Menu Filterable menu with all categories
/gallery Gallery Masonry layout with image lightbox
/about About Restaurant story, values, team, awards
/contact Contact Contact form + location map
/reservations Reservations Multi-step booking form

πŸš€ Getting Started

Prerequisites

  • Node.js β‰₯ 16.x
  • npm β‰₯ 8.x (or yarn/pnpm)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/restaurant-website.git
    cd restaurant-website
  2. Install dependencies

    npm install
  3. Start development server

    npm run dev

    The app will open at http://localhost:5173

  4. Build for production

    npm run build
  5. Preview production build

    npm run preview

🎨 Design System

Typography

Element Font Usage
Headings Playfair Display Display headings & titles
Body Cormorant Garamond Paragraphs & italic text
UI DM Sans Labels, buttons, UI text

Color Palette

Primary Color:     #c99618 (Gold)
Background:        #1a1816 (Charcoal)
Text Primary:      #faf6ef (Cream)
Text Secondary:    #b0a89c (Warm Gray)
Accent:            #e8dcc8 (Light Beige)

Spacing Scale

  • xs: 4px | sm: 8px | md: 16px | lg: 24px | xl: 32px | 2xl: 48px

βš™οΈ Configuration

Environment Variables

Create a .env.local file for local development:

VITE_API_URL=http://localhost:3000
VITE_MAPS_API_KEY=your_google_maps_key

Customization Guide

  1. Restaurant Info β†’ Update src/data/restaurantData.ts
  2. Menu Items β†’ Modify src/data/menuData.ts
  3. Navigation & Contact β†’ Edit src/data/navigationData.ts
  4. Images β†’ Replace placeholder URLs with actual photos
  5. Form Submissions β†’ Connect to backend (Formspree, EmailJS, etc.)
  6. Maps β†’ Add real restaurant coordinates

πŸ“± Browser Support

Browser Support
Chrome βœ… Latest
Firefox βœ… Latest
Safari βœ… Latest
Edge βœ… Latest
IE 11 ❌ Not supported

πŸ”§ Available Scripts

npm run dev        # Start development server
npm run build      # Build for production
npm run preview    # Preview production build
npm run lint       # Run ESLint
npm run type-check # TypeScript type checking

πŸ“„ 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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ž Support

For support, email support@maison.com or open an issue on GitHub.


Made with ❀️ by Your Team

⬆ back to top

About

A premium, fully responsive restaurant website built with React, TypeScript & Tailwind CSS. Features menu management, reservations system, gallery, and smooth animations.

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages