Restaurant Landing Page Design
Preview
Edit
Download
Run
Download Options
HTML File
Download as .html file
CSS File
Download as .css file
JavaScript File
Download as .js file
Combined HTML
All code in one HTML file
Project ZIP
All files in a ZIP archive
Cancel
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>NOVA - Futuristic Dining</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.css"> </head> <body> <!-- Preloader --> <div class="preloader"> <div class="loader"></div> </div> <!-- Header --> <header> <a href="#" class="logo"><i class="fas fa-utensils"></i>NOVA</a> <div class="menu-toggle"> <i class="fas fa-bars"></i> </div> <nav class="navbar"> <a href="#home">Home</a> <a href="#about">About</a> <a href="#menu">Menu</a> <a href="#gallery">Gallery</a> <a href="#testimonials">Testimonials</a> <a href="#team">Team</a> <a href="#reservation">Reservation</a> <a href="#" class="btn">Order Online</a> </nav> </header> <!-- Hero Section --> <section class="hero" id="home"> <div class="hero-content"> <h1>Experience Culinary Excellence</h1> <p>Discover a world of flavors crafted by our master chefs using only the finest ingredients</p> <a href="#reservation" class="btn hero-btn">Reserve a Table</a> </div> </section> <!-- About Section --> <section class="about" id="about"> <h2 class="section-title">Our Story</h2> <div class="about-container"> <div class="about-img"> <img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1374&q=80" alt="Restaurant Interior"> </div> <div class="about-content"> <h3>Welcome to NOVA</h3> <p>Founded in 2010, NOVA has been redefining fine dining with its innovative approach to gastronomy. Our restaurant combines traditional techniques with modern creativity to deliver unforgettable culinary experiences.</p> <p>At NOVA, we believe in sustainability and source our ingredients from local farmers and producers who share our commitment to quality and environmental responsibility.</p> <p>Our award-winning chefs bring decades of international experience to create dishes that are as visually stunning as they are delicious.</p> <a href="#menu" class="btn">Explore Our Menu</a> </div> </div> </section> <!-- Menu Section --> <section class="menu" id="menu"> <h2 class="section-title">Our Menu</h2> <div class="menu-container"> <div class="menu-card"> <div class="menu-card-img"> <img src="https://images.unsplash.com/photo-1544025162-d76694265947?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1469&q=80" alt="Steak Dish"> </div> <div class="menu-card-content"> <h3 class="menu-card-title">Nova Signature Steak</h3> <p class="menu-card-desc">Premium aged beef with truffle butter, served with seasonal vegetables and potato gratin</p> <div class="menu-card-footer"> <span class="menu-card-price">$42</span> <button class="menu-card-btn">Order Now</button> </div> </div> </div> <div class="menu-card"> <div class="menu-card-img"> <img src="https://images.unsplash.com/photo-1565557623262-b51c2513a641?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1371&q=80" alt="Pasta Dish"> </div> <div class="menu-card-content"> <h3 class="menu-card-title">Truffle Mushroom Pasta</h3> <p class="menu-card-desc">Homemade fettuccine with wild mushrooms, black truffle, and parmesan cream sauce</p> <div class="menu-card-footer"> <span class="menu-card-price">$28</span> <button class="menu-card-btn">Order Now</button> </div> </div> </div> <div class="menu-card"> <div class="menu-card-img"> <img src="https://images.unsplash.com/photo-1565299624946-b28f40a0ae38?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1381&q=80" alt="Salmon Dish"> </div> <div class="menu-card-content"> <h3 class="menu-card-title">Pan-Seared Salmon</h3> <p class="menu-card-desc">Fresh Atlantic salmon with lemon beurre blanc, asparagus, and quinoa pilaf</p> <div class="menu-card-footer"> <span class="menu-card-price">$34</span> <button class="menu-card-btn">Order Now</button> </div> </div> </div> <div class="menu-card"> <div class="menu-card-img"> <img src="https://images.unsplash.com/photo-1563805042-7684c019e1cb?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1527&q=80" alt="Dessert"> </div> <div class="menu-card-content"> <h3 class="menu-card-title">Chocolate Symphony</h3> <p class="menu-card-desc">Triple chocolate mousse with raspberry coulis and gold leaf garnish</p> <div class="menu-card-footer"> <span class="menu-card-price">$16</span> <button class="menu-card-btn">Order Now</button> </div> </div> </div> </div> </section> <!-- Gallery Section --> <section class="gallery" id="gallery"> <h2 class="section-title">Gallery</h2> <div class="gallery-container"> <div class="swiper"> <div class="swiper-wrapper"> <div class="swiper-slide"> <img src="https://images.unsplash.com/photo-1414235077428-338989a2e8c0?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" alt="Restaurant Interior"> <div class="swiper-slide-content"> <h3 class="swiper-slide-title">Elegant Dining Room</h3> <p class="swiper-slide-desc">Our main dining area features custom-designed furniture and ambient lighting</p> </div> </div> <div class="swiper-slide"> <img src="https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" alt="Bar Area"> <div class="swiper-slide-content"> <h3 class="swiper-slide-title">Premium Bar</h3> <p class="swiper-slide-desc">Featuring an extensive selection of fine wines and craft cocktails</p> </div> </div> <div class="swiper-slide"> <img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1374&q=80" alt="Private Dining"> <div class="swiper-slide-content"> <h3 class="swiper-slide-title">Private Dining</h3> <p class="swiper-slide-desc">Exclusive space for intimate gatherings and special occasions</p> </div> </div> <div class="swiper-slide"> <img src="https://images.unsplash.com/photo-1600891964599-f61ba0e24092?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" alt="Chef's Table"> <div class="swiper-slide-content"> <h3 class="swiper-slide-title">Chef's Table</h3> <p class="swiper-slide-desc">Interactive dining experience with our executive chef</p> </div> </div> </div> <div class="swiper-pagination"></div> </div> </div> </section> <!-- Testimonials Section --> <section class="testimonials" id="testimonials"> <h2 class="section-title">Testimonials</h2> <div class="testimonials-container"> <div class="testimonial-card"> <div class="testimonial-card-header"> <div class="testimonial-card-img"> <img src="https://randomuser.me/api/portraits/women/45.jpg" alt="Sarah Johnson"> </div> <div class="testimonial-card-info"> <h4>Sarah Johnson</h4> <p>Food Critic</p> </div> </div> <div class="testimonial-card-body"> <p>"The culinary experience at NOVA is unparalleled. Each dish is a masterpiece, balancing flavors and textures in ways that continually surprise and delight."</p> <div class="testimonial-card-rating"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> </div> </div> </div> <div class="testimonial-card"> <div class="testimonial-card-header"> <div class="testimonial-card-img"> <img src="https://randomuser.me/api/portraits/men/32.jpg" alt="Michael Chen"> </div> <div class="testimonial-card-info"> <h4>Michael Chen</h4> <p>Regular Guest</p> </div> </div> <div class="testimonial-card-body"> <p>"I've dined at NOVA multiple times and it never fails to impress. The service is impeccable and the wine pairing suggestions are always perfect."</p> <div class="testimonial-card-rating"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star-half-alt"></i> </div> </div> </div> <div class="testimonial-card"> <div class="testimonial-card-header"> <div class="testimonial-card-img"> <img src="https://randomuser.me/api/portraits/women/68.jpg" alt="Emily Rodriguez"> </div> <div class="testimonial-card-info"> <h4>Emily Rodriguez</h4> <p>First-time Visitor</p> </div> </div> <div class="testimonial-card-body"> <p>"Celebrated our anniversary here and it was magical. The ambiance, the food, the attention to detail - everything was perfect. Can't wait to return!"</p> <div class="testimonial-card-rating"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> </div> </div> </div> </div> </section> <!-- Team Section --> <section class="team" id="team"> <h2 class="section-title">Our Team</h2> <div class="team-container"> <div class="team-card"> <div class="team-card-img"> <img src="https://images.unsplash.com/photo-1581299894007-aaa50297cf16?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1374&q=80" alt="Executive Chef"> <div class="team-card-social"> <a href="#"><i class="fab fa-instagram"></i></a> <a href="#"><i class="fab fa-twitter"></i></a> <a href="#"><i class="fab fa-linkedin"></i></a> </div> </div> <div class="team-card-content"> <h3 class="team-card-name">Chef Marco Vitali</h3> <p class="team-card-role">Executive Chef</p> <p class="team-card-desc">With 20 years of experience in Michelin-starred restaurants across Europe, Chef Marco brings innovative techniques to NOVA's kitchen.</p> </div> </div> <div class="team-card"> <div class="team-card-img"> <img src="https://images.unsplash.com/photo-1595476108010-b4d1f102b1b1?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1374&q=80" alt="Sous Chef"> <div class="team-card-social"> <a href="#"><i class="fab fa-instagram"></i></a> <a href="#"><i class="fab fa-twitter"></i></a> <a href="#"><i class="fab fa-linkedin"></i></a> </div> </div> <div class="team-card-content"> <h3 class="team-card-name">Sophie Laurent</h3> <p class="team-card-role">Sous Chef</p> <p class="team-card-desc">Trained in classical French cuisine, Sophie ensures every dish meets NOVA's exacting standards before it leaves the kitchen.</p> </div> </div> <div class="team-card"> <div class="team-card-img"> <img src="https://images.unsplash.com/photo-1551836022-d5d88e9218df?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1387&q=80" alt="Pastry Chef"> <div class="team-card-social"> <a href="#"><i class="fab fa-instagram"></i></a> <a href="#"><i class="fab fa-twitter"></i></a> <a href="#"><i class="fab fa-linkedin"></i></a> </div> </div> <div class="team-card-content"> <h3 class="team-card-name">David Kim</h3> <p class="team-card-role">Pastry Chef</p> <p class="team-card-desc">David's desserts are works of art, combining unexpected flavors with stunning presentations that delight all the senses.</p> </div> </div> <div class="team-card"> <div class="team-card-img"> <img src="https://images.unsplash.com/photo-1562788869-4ed32648eb72?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" alt="Sommelier"> <div class="team-card-social"> <a href="#"><i class="fab fa-instagram"></i></a> <a href="#"><i class="fab fa-twitter"></i></a> <a href="#"><i class="fab fa-linkedin"></i></a> </div> </div> <div class="team-card-content"> <h3 class="team-card-name">Isabella Rossi</h3> <p class="team-card-role">Head Sommelier</p> <p class="team-card-desc">With an encyclopedic knowledge of wines, Isabella creates perfect pairings to complement each dish on our menu.</p> </div> </div> </div> </section> <!-- Reservation Section --> <section class="reservation" id="reservation"> <h2 class="section-title">Make a Reservation</h2> <div class="reservation-container"> <form class="reservation-form"> <div class="form-row"> <div class="form-group"> <label for="name">Full Name</label> <input type="text" id="name" class="form-control" placeholder="Your Name" required> </div> <div class="form-group"> <label for="email">Email</label> <input type="email" id="email" class="form-control" placeholder="Your Email" required> </div> </div> <div class="form-row"> <div class="form-group"> <label for="phone">Phone Number</label> <input type="tel" id="phone" class="form-control" placeholder="Your Phone" required> </div> <div class="form-group"> <label for="guests">Number of Guests</label> <select id="guests" class="form-control" required> <option value="">Select</option> <option value="1">1 Person</option> <option value="2">2 People</option> <option value="3">3 People</option> <option value="4">4 People</option> <option value="5">5 People</option> <option value="6">6 People</option> <option value="7">7+ People</option> </select> </div> </div> <div class="form-row"> <div class="form-group"> <label for="date">Date</label> <input type="date" id="date" class="form-control" required> </div> <div class="form-group"> <label for="time">Time</label> <select id="time" class="form-control" required> <option value="">Select</option> <option value="17:00">5:00 PM</option> <option value="17:30">5:30 PM</option> <option value="18:00">6:00 PM</option> <option value="18:30">6:30 PM</option> <option value="19:00">7:00 PM</option> <option value="19:30">7:30 PM</option> <option value="20:00">8:00 PM</option> <option value="20:30">8:30 PM</option> <option value="21:00">9:00 PM</option> </select> </div> </div> <div class="form-group"> <label for="special-requests">Special Requests</label> <textarea id="special-requests" class="form-control" rows="4" placeholder="Dietary restrictions, celebrations, etc."></textarea> </div> <button type="submit" class="submit-btn">Reserve Now</button> </form> </div> </section> <!-- Footer --> <footer> <div class="footer-container"> <div class="footer-col"> <h3>NOVA</h3> <p>Redefining fine dining with innovative cuisine, exceptional service, and unforgettable experiences.</p> <div class="footer-social"> <a href="#"><i class="fab fa-facebook-f"></i></a> <a href="#"><i class="fab fa-instagram"></i></a> <a href="#"><i class="fab fa-twitter"></i></a> <a href="#"><i class="fab fa-yelp"></i></a> </div> </div> <div class="footer-col"> <h3>Quick Links</h3> <ul class="footer-links"> <li><a href="#home">Home</a></li> <li><a href="#about">About Us</a></li> <li><a href="#menu">Menu</a></li> <li><a href="#gallery">Gallery</a></li> <li><a href="#reservation">Reservations</a></li> </ul> </div> <div class="footer-col"> <h3>Contact</h3> <p><i class="fas fa-map-marker-alt"></i> 123 Gourmet Avenue, Culinary District</p> <p><i class="fas fa-phone"></i> (555) 123-4567</p> <p><i class="fas fa-envelope"></i> info@novadining.com</p> <p><i class="fas fa-clock"></i> Tue-Sun: 5PM - 11PM</p> </div> <div class="footer-col"> <h3>Newsletter</h3> <p>Subscribe to receive updates on special events and seasonal menus.</p> <form> <div class="form-group"> <input type="email" class="form-control" placeholder="Your Email" required> </div> <button type="submit" class="btn">Subscribe</button> </form> </div> </div> <div class="copyright"> <p>© 2023 NOVA Restaurant. All Rights Reserved.</p> </div> <a href="#" class="back-to-top"><i class="fas fa-arrow-up"></i></a> </footer> <!-- Scripts --> <script src="https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.js"></script> </body> </html>
CSS
:root { --primary: #FFD700; --primary-dark: #FFC000; --primary-light: #FFF59D; --dark: #121212; --light: #FFFFFF; --gray: #2A2A2A; --glass: rgba(255, 255, 255, 0.05); --glass-border: rgba(255, 255, 255, 0.1); --glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.15); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Poppins', sans-serif; } body { background-color: var(--dark); color: var(--light); overflow-x: hidden; } /* Preloader */ .preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: var(--dark); display: flex; justify-content: center; align-items: center; z-index: 9999; transition: opacity 0.5s ease; } .preloader.fade-out { opacity: 0; } .loader { width: 50px; height: 50px; border: 3px solid var(--primary); border-radius: 50%; border-top-color: transparent; animation: spin 1s linear infinite; } @keyframes spin { 100% { transform: rotate(360deg); } } /* Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: var(--gray); } ::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 10px; } /* Header */ header { position: fixed; top: 0; left: 0; width: 100%; padding: 20px 100px; display: flex; justify-content: space-between; align-items: center; z-index: 100; backdrop-filter: blur(10px); background: var(--glass); border-bottom: 1px solid var(--glass-border); } .logo { font-size: 2rem; font-weight: 700; text-decoration: none; color: var(--primary); display: flex; align-items: center; } .logo i { margin-right: 10px; } .navbar { display: flex; gap: 40px; } .navbar a { position: relative; color: var(--light); text-decoration: none; font-weight: 500; font-size: 1.1rem; transition: 0.3s; } .navbar a:hover { color: var(--primary); } .navbar a::after { content: ''; position: absolute; left: 0; bottom: -5px; width: 0; height: 2px; background: var(--primary); transition: 0.3s; } .navbar a:hover::after { width: 100%; } .btn { padding: 10px 25px; background: var(--primary); color: var(--dark); border: none; border-radius: 30px; font-weight: 600; cursor: pointer; transition: 0.3s; box-shadow: 0 5px 15px rgba(255, 215, 0, 0.3); } .btn:hover { background: var(--primary-dark); transform: translateY(-3px); box-shadow: 0 8px 20px rgba(255, 215, 0, 0.4); } .menu-toggle { display: none; font-size: 1.5rem; cursor: pointer; color: var(--light); } /* Hero Section */ .hero { position: relative; width: 100%; height: 100vh; display: flex; justify-content: center; align-items: center; overflow: hidden; } .hero::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url('https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80'); background-size: cover; background-position: center; z-index: -1; } .hero-content { text-align: center; max-width: 800px; padding: 0 20px; } .hero-content h1 { font-size: 4rem; margin-bottom: 20px; background: linear-gradient(to right, var(--primary), var(--primary-light)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; opacity: 0; transform: translateY(50px); animation: slideUp 1s forwards 0.5s; } .hero-content p { font-size: 1.2rem; margin-bottom: 30px; opacity: 0; transform: translateY(50px); animation: slideUp 1s forwards 0.8s; } .hero-btn { opacity: 0; transform: translateY(50px); animation: slideUp 1s forwards 1.1s; } @keyframes slideUp { to { opacity: 1; transform: translateY(0); } } /* About Section */ .about { padding: 100px 0; position: relative; } .section-title { text-align: center; font-size: 2.5rem; margin-bottom: 60px; color: var(--primary); position: relative; } .section-title::after { content: ''; position: absolute; bottom: -15px; left: 50%; transform: translateX(-50%); width: 80px; height: 3px; background: var(--primary); } .about-container { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 50px; padding: 0 50px; } .about-img { flex: 1; min-width: 300px; position: relative; } .about-img img { width: 100%; border-radius: 10px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); transform: perspective(1000px) rotateY(-20deg); transition: 0.5s; } .about-img:hover img { transform: perspective(1000px) rotateY(0deg); } .about-content { flex: 1; min-width: 300px; } .about-content h3 { font-size: 1.8rem; margin-bottom: 20px; color: var(--primary); } .about-content p { margin-bottom: 15px; line-height: 1.6; } /* Menu Section */ .menu { padding: 100px 0; background: var(--gray); } .menu-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; padding: 0 50px; } .menu-card { background: var(--glass); backdrop-filter: blur(10px); border-radius: 15px; overflow: hidden; box-shadow: var(--glass-shadow); border: 1px solid var(--glass-border); transition: 0.5s; opacity: 0; transform: translateY(50px); } .menu-card.visible { opacity: 1; transform: translateY(0); } .menu-card:hover { transform: translateY(-10px); box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2); } .menu-card-img { width: 100%; height: 200px; overflow: hidden; } .menu-card-img img { width: 100%; height: 100%; object-fit: cover; transition: 0.5s; } .menu-card:hover .menu-card-img img { transform: scale(1.1); } .menu-card-content { padding: 20px; } .menu-card-title { font-size: 1.3rem; margin-bottom: 10px; color: var(--primary); } .menu-card-desc { margin-bottom: 15px; color: #ccc; font-size: 0.9rem; } .menu-card-footer { display: flex; justify-content: space-between; align-items: center; } .menu-card-price { font-size: 1.2rem; font-weight: 700; color: var(--primary); } .menu-card-btn { padding: 8px 15px; background: var(--primary); color: var(--dark); border: none; border-radius: 20px; font-weight: 600; cursor: pointer; transition: 0.3s; } .menu-card-btn:hover { background: var(--primary-dark); } /* Gallery Section */ .gallery { padding: 100px 0; } .gallery-container { padding: 0 50px; } .swiper { width: 100%; height: 400px; margin: 50px 0; } .swiper-slide { position: relative; overflow: hidden; border-radius: 15px; } .swiper-slide img { width: 100%; height: 100%; object-fit: cover; transition: 0.5s; } .swiper-slide:hover img { transform: scale(1.1); } .swiper-slide-content { position: absolute; bottom: -100%; left: 0; width: 100%; padding: 20px; background: rgba(0, 0, 0, 0.7); backdrop-filter: blur(5px); transition: 0.5s; } .swiper-slide:hover .swiper-slide-content { bottom: 0; } .swiper-slide-title { font-size: 1.3rem; margin-bottom: 10px; color: var(--primary); } .swiper-slide-desc { font-size: 0.9rem; color: #ccc; } .swiper-pagination-bullet { width: 12px; height: 12px; background: var(--light); opacity: 0.5; } .swiper-pagination-bullet-active { background: var(--primary); opacity: 1; } /* Testimonials Section */ .testimonials { padding: 100px 0; background: var(--gray); } .testimonials-container { display: flex; justify-content: center; flex-wrap: wrap; gap: 30px; padding: 0 50px; } .testimonial-card { flex: 1; min-width: 300px; background: var(--glass); backdrop-filter: blur(10px); padding: 30px; border-radius: 15px; box-shadow: var(--glass-shadow); border: 1px solid var(--glass-border); transition: 0.5s; opacity: 0; transform: translateY(50px); } .testimonial-card.visible { opacity: 1; transform: translateY(0); } .testimonial-card:hover { transform: translateY(-10px); } .testimonial-card-header { display: flex; align-items: center; margin-bottom: 20px; } .testimonial-card-img { width: 60px; height: 60px; border-radius: 50%; overflow: hidden; margin-right: 15px; border: 2px solid var(--primary); } .testimonial-card-img img { width: 100%; height: 100%; object-fit: cover; } .testimonial-card-info h4 { font-size: 1.2rem; margin-bottom: 5px; color: var(--primary); } .testimonial-card-info p { font-size: 0.8rem; color: #ccc; } .testimonial-card-body p { line-height: 1.6; margin-bottom: 15px; } .testimonial-card-rating { color: var(--primary); } /* Team Section */ .team { padding: 100px 0; } .team-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 30px; padding: 0 50px; } .team-card { background: var(--glass); backdrop-filter: blur(10px); border-radius: 15px; overflow: hidden; box-shadow: var(--glass-shadow); border: 1px solid var(--glass-border); transition: 0.5s; opacity: 0; } .team-card.visible { animation: velvetReveal 1s forwards; } @keyframes velvetReveal { 0% { opacity: 0; transform: translateY(50px); } 100% { opacity: 1; transform: translateY(0); } } .team-card:hover { transform: translateY(-10px); box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2); } .team-card-img { width: 100%; height: 250px; overflow: hidden; position: relative; } .team-card-img img { width: 100%; height: 100%; object-fit: cover; transition: 0.5s; } .team-card:hover .team-card-img img { transform: scale(1.1); } .team-card-social { position: absolute; bottom: -50px; left: 0; width: 100%; display: flex; justify-content: center; gap: 15px; transition: 0.5s; } .team-card:hover .team-card-social { bottom: 20px; } .team-card-social a { width: 40px; height: 40px; background: var(--primary); color: var(--dark); border-radius: 50%; display: flex; justify-content: center; align-items: center; text-decoration: none; transition: 0.3s; } .team-card-social a:hover { background: var(--light); transform: translateY(-5px); } .team-card-content { padding: 20px; text-align: center; } .team-card-name { font-size: 1.3rem; margin-bottom: 5px; color: var(--primary); } .team-card-role { font-size: 0.9rem; color: #ccc; margin-bottom: 15px; } .team-card-desc { font-size: 0.9rem; line-height: 1.6; } /* Reservation Section */ .reservation { padding: 100px 0; background: var(--gray); } .reservation-container { max-width: 800px; margin: 0 auto; padding: 0 20px; } .reservation-form { background: var(--glass); backdrop-filter: blur(10px); padding: 40px; border-radius: 15px; box-shadow: var(--glass-shadow); border: 1px solid var(--glass-border); } .form-group { margin-bottom: 20px; } .form-group label { display: block; margin-bottom: 8px; color: var(--primary); } .form-control { width: 100%; padding: 12px 15px; background: rgba(255, 255, 255, 0.1); border: 1px solid var(--glass-border); border-radius: 5px; color: var(--light); font-size: 1rem; transition: 0.3s; } .form-control:focus { outline: none; border-color: var(--primary); background: rgba(255, 255, 255, 0.15); } .form-row { display: flex; gap: 20px; } .form-row .form-group { flex: 1; } .submit-btn { width: 100%; padding: 15px; background: var(--primary); color: var(--dark); border: none; border-radius: 5px; font-size: 1.1rem; font-weight: 600; cursor: pointer; transition: 0.3s; } .submit-btn:hover { background: var(--primary-dark); } /* Footer */ footer { background: var(--dark); padding: 80px 0 20px; position: relative; } .footer-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 40px; padding: 0 50px; margin-bottom: 50px; } .footer-col h3 { font-size: 1.3rem; margin-bottom: 20px; color: var(--primary); position: relative; padding-bottom: 10px; } .footer-col h3::after { content: ''; position: absolute; left: 0; bottom: 0; width: 50px; height: 2px; background: var(--primary); } .footer-col p { margin-bottom: 15px; line-height: 1.6; } .footer-links { list-style: none; } .footer-links li { margin-bottom: 10px; } .footer-links a { color: #ccc; text-decoration: none; transition: 0.3s; display: block; } .footer-links a:hover { color: var(--primary); transform: translateX(5px); } .footer-social { display: flex; gap: 15px; } .footer-social a { width: 40px; height: 40px; background: var(--gray); color: var(--light); border-radius: 50%; display: flex; justify-content: center; align-items: center; text-decoration: none; transition: 0.3s; } .footer-social a:hover { background: var(--primary); color: var(--dark); transform: translateY(-5px); } .copyright { text-align: center; padding-top: 20px; border-top: 1px solid var(--glass-border); } .back-to-top { position: fixed; bottom: 30px; right: 30px; width: 50px; height: 50px; background: var(--primary); color: var(--dark); border-radius: 50%; display: flex; justify-content: center; align-items: center; text-decoration: none; font-size: 1.2rem; opacity: 0; visibility: hidden; transition: 0.3s; z-index: 99; } .back-to-top.active { opacity: 1; visibility: visible; } .back-to-top:hover { background: var(--primary-dark); transform: translateY(-5px); } /* Responsive Styles */ @media (max-width: 992px) { header { padding: 20px 50px; } .hero-content h1 { font-size: 3rem; } } @media (max-width: 768px) { header { padding: 20px 30px; } .menu-toggle { display: block; z-index: 101; } .navbar { position: fixed; top: 0; right: -100%; width: 100%; height: 100vh; background: rgba(0, 0, 0, 0.9); backdrop-filter: blur(10px); flex-direction: column; justify-content: center; align-items: center; transition: 0.5s; z-index: 100; } .navbar.active { right: 0; } .navbar a { font-size: 1.5rem; margin: 10px 0; } .hero-content h1 { font-size: 2.5rem; } .about-container { flex-direction: column; } .form-row { flex-direction: column; gap: 0; } } @media (max-width: 576px) { header { padding: 15px 20px; } .logo { font-size: 1.5rem; } .hero-content h1 { font-size: 2rem; } .hero-content p { font-size: 1rem; } .section-title { font-size: 2rem; } .about-img, .about-content { min-width: 100%; } .menu-container, .team-container { grid-template-columns: 1fr; } .reservation-form { padding: 20px; } }
JavaScript
// Preloader window.addEventListener('load', function() { const preloader = document.querySelector('.preloader'); preloader.classList.add('fade-out'); setTimeout(() => { preloader.style.display = 'none'; }, 500); }); // Mobile Menu Toggle const menuToggle = document.querySelector('.menu-toggle'); const navbar = document.querySelector('.navbar'); menuToggle.addEventListener('click', function() { navbar.classList.toggle('active'); this.querySelector('i').classList.toggle('fa-times'); this.querySelector('i').classList.toggle('fa-bars'); }); // Close mobile menu when clicking a link document.querySelectorAll('.navbar a').forEach(link => { link.addEventListener('click', function() { navbar.classList.remove('active'); menuToggle.querySelector('i').classList.remove('fa-times'); menuToggle.querySelector('i').classList.add('fa-bars'); }); }); // Sticky Header window.addEventListener('scroll', function() { const header = document.querySelector('header'); header.classList.toggle('sticky', window.scrollY > 0); }); // Back to Top Button const backToTopBtn = document.querySelector('.back-to-top'); window.addEventListener('scroll', function() { if (window.pageYOffset > 300) { backToTopBtn.classList.add('active'); } else { backToTopBtn.classList.remove('active'); } }); // Smooth Scrolling for Anchor Links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function(e) { e.preventDefault(); document.querySelector(this.getAttribute('href')).scrollIntoView({ behavior: 'smooth' }); }); }); // Initialize Swiper const swiper = new Swiper('.swiper', { loop: true, autoplay: { delay: 3000, disableOnInteraction: false, }, effect: 'coverflow', grabCursor: true, centeredSlides: true, slidesPerView: 'auto', coverflowEffect: { rotate: 20, stretch: 0, depth: 200, modifier: 1, slideShadows: true, }, pagination: { el: '.swiper-pagination', clickable: true, }, }); // Scroll Animation const animateOnScroll = function() { const elements = document.querySelectorAll('.menu-card, .testimonial-card, .team-card'); elements.forEach(element => { const elementPosition = element.getBoundingClientRect().top; const windowHeight = window.innerHeight; if (elementPosition < windowHeight - 100) { element.classList.add('visible'); } }); }; // Run animation on load and scroll window.addEventListener('load', animateOnScroll); window.addEventListener('scroll', animateOnScroll); // Form Submission const reservationForm = document.querySelector('.reservation-form'); reservationForm.addEventListener('submit', function(e) { e.preventDefault(); alert('Thank you for your reservation! We will contact you shortly to confirm.'); this.reset(); });
Output Preview
Desktop
Mobile
Fullscreen