Contact Us Serenity Yoga Studio
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>Contact Us | Serenity Yoga Studio</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Montserrat:wght@300;400;500;600&display=swap" rel="stylesheet"> </head> <body> <div class="floating-element float-1"></div> <div class="floating-element float-2"></div> <div class="mandala mandala-1"></div> <div class="mandala mandala-2"></div> <div class="container"> <header> <div class="logo">Serenity <span>Yoga</span></div> <h1>Find Your Inner Peace <i class="fas fa-spa lotus-icon"></i></h1> <p class="subtitle">Connect with your mind, body, and spirit</p> <div class="yoga-icons"> <i class="fas fa-spa"></i> <i class="fas fa-leaf"></i> <i class="fas fa-heart"></i> <i class="fas fa-cloud"></i> <i class="fas fa-sun"></i> <i class="fas fa-moon"></i> <i class="fas fa-water"></i> <i class="fas fa-wind"></i> </div> </header> <div class="form-container"> <div class="form-info"> <h2>Begin Your Journey</h2> <p>Our certified yoga instructors are here to guide you on your path to wellness. Whether you're a beginner or an experienced practitioner, we have classes that will nurture your body and calm your mind.</p> <ul class="contact-details"> <li> <i class="fas fa-phone"></i> <div> <h3>Call Us</h3> <p>(555) 123-4567</p> </div> </li> <li> <i class="fas fa-envelope"></i> <div> <h3>Email Us</h3> <p>info@serenityyoga.com</p> </div> </li> <li> <i class="fas fa-map-marker-alt"></i> <div> <h3>Visit Our Studio</h3> <p>123 Peaceful Lane, Suite 456<br>Sedona, AZ 86336</p> </div> </li> </ul> </div> <div class="contact-form"> <form id="yogaForm"> <div class="form-group"> <label for="name"><i class="fas fa-user"></i> Full Name *</label> <input type="text" id="name" placeholder="Your full name" required> </div> <div class="form-group"> <label for="email"><i class="fas fa-envelope"></i> Email Address *</label> <input type="email" id="email" placeholder="Your email address" required> </div> <div class="form-group"> <label for="phone"><i class="fas fa-phone"></i> Phone Number</label> <input type="tel" id="phone" placeholder="Your phone number"> </div> <div class="form-group"> <label for="experience"><i class="fas fa-spa"></i> Yoga Experience Level *</label> <select id="experience" class="yoga-select" required> <option value="">Select your experience</option> <option value="beginner">Beginner</option> <option value="intermediate">Intermediate</option> <option value="advanced">Advanced</option> <option value="teacher">Teacher</option> </select> </div> <div class="form-group"> <label for="interest"><i class="fas fa-heart"></i> Primary Interest *</label> <select id="interest" class="yoga-select" required> <option value="">Select your interest</option> <option value="hatha">Hatha Yoga</option> <option value="vinyasa">Vinyasa Flow</option> <option value="ashtanga">Ashtanga Yoga</option> <option value="yin">Yin/Restorative Yoga</option> <option value="prenatal">Prenatal Yoga</option> <option value="meditation">Meditation</option> </select> </div> <div class="form-group"> <label for="goals"><i class="fas fa-bullseye"></i> Wellness Goals</label> <textarea id="goals" placeholder="Tell us about your wellness goals and any health considerations we should know about"></textarea> </div> <button type="submit" class="btn pulse">Begin Your Journey <i class="fas fa-leaf"></i></button> <div class="success-message" id="successMessage"> <i class="fas fa-check-circle"></i> Thank you for your inquiry! We'll contact you shortly to discuss your yoga journey. </div> </form> </div> </div> <div class="footer"> <p>© 2023 Serenity Yoga Studio. All rights reserved. | Find your balance, find your peace</p> </div> </div> </body> </html>
CSS
* { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Montserrat', sans-serif; } body { background: linear-gradient(135deg, #e6f0f0 0%, #d4e7e5 50%, #c8ddd8 100%); color: #4a5b5a; line-height: 1.6; min-height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 20px; } .container { max-width: 1200px; width: 100%; margin: 0 auto; padding: 20px; animation: fadeIn 1.2s ease-out; } header { text-align: center; padding: 30px 0; position: relative; } .logo { font-family: 'Playfair Display', serif; font-size: 42px; font-weight: 700; color: #4a5b5a; margin-bottom: 15px; display: inline-block; position: relative; } .logo span { color: #7c9b95; } .logo::after { content: ''; position: absolute; bottom: -10px; left: 50%; transform: translateX(-50%); width: 80px; height: 3px; background: linear-gradient(90deg, transparent, #7c9b95, transparent); border-radius: 2px; } h1 { font-family: 'Playfair Display', serif; font-size: 2.8rem; color: #4a5b5a; margin-bottom: 15px; text-shadow: 1px 1px 2px rgba(0,0,0,0.05); } .subtitle { font-size: 1.2rem; color: #7c9b95; max-width: 600px; margin: 0 auto 30px; position: relative; display: inline-block; font-weight: 300; } .subtitle::before, .subtitle::after { content: '✦'; position: absolute; top: 50%; transform: translateY(-50%); color: #7c9b95; font-size: 14px; } .subtitle::before { left: -30px; } .subtitle::after { right: -30px; } .form-container { display: flex; flex-wrap: wrap; background: rgba(255, 255, 255, 0.9); border-radius: 20px; overflow: hidden; box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08); margin-bottom: 40px; transform: translateY(0); transition: transform 0.6s ease, box-shadow 0.6s ease; backdrop-filter: blur(5px); border: 1px solid rgba(255, 255, 255, 0.5); } .form-container:hover { transform: translateY(-5px); box-shadow: 0 20px 50px rgba(0, 0, 0, 0.12); } .form-info { flex: 1; min-width: 300px; background: linear-gradient(135deg, rgba(122, 158, 149, 0.9) 0%, rgba(108, 139, 131, 0.9) 100%); color: white; padding: 50px 40px; display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; } .form-info::before { content: ''; position: absolute; top: -70px; right: -70px; width: 200px; height: 200px; border-radius: 50%; background: rgba(255, 255, 255, 0.1); } .form-info::after { content: ''; position: absolute; bottom: -80px; left: -80px; width: 250px; height: 250px; border-radius: 50%; background: rgba(255, 255, 255, 0.1); } .form-info h2 { font-family: 'Playfair Display', serif; font-size: 2.2rem; margin-bottom: 25px; position: relative; z-index: 1; color: #fff; } .form-info p { margin-bottom: 35px; font-size: 1.1rem; position: relative; z-index: 1; line-height: 1.8; font-weight: 300; } .contact-details { list-style: none; position: relative; z-index: 1; } .contact-details li { display: flex; align-items: center; margin-bottom: 25px; transition: transform 0.5s ease; } .contact-details li:hover { transform: translateX(10px); } .contact-details i { font-size: 1.5rem; margin-right: 15px; color: #7a9e95; background: white; width: 55px; height: 55px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: transform 0.5s ease, background 0.5s ease, color 0.5s ease; } .contact-details li:hover i { transform: scale(1.1) rotate(5deg); background: #4a5b5a; color: white; } .contact-form { flex: 1.5; min-width: 300px; padding: 50px 40px; background: white; position: relative; } .form-group { margin-bottom: 25px; position: relative; } label { display: block; margin-bottom: 10px; font-weight: 500; color: #4a5b5a; transition: color 0.5s ease; display: flex; align-items: center; } label i { margin-right: 10px; color: #7a9e95; } input, select, textarea { width: 100%; padding: 16px 20px; border: 2px solid #e6f0f0; border-radius: 10px; font-size: 16px; transition: all 0.5s ease; background: #f8fbfb; color: #4a5b5a; } input:focus, select:focus, textarea:focus { border-color: #7a9e95; outline: none; background: white; box-shadow: 0 0 0 4px rgba(122, 158, 149, 0.1); } input:hover, select:hover, textarea:hover { border-color: #c8ddd8; } textarea { min-height: 140px; resize: vertical; } .btn { background: linear-gradient(90deg, #7a9e95, #4a5b5a); color: white; border: none; padding: 18px 35px; font-size: 18px; font-weight: 500; border-radius: 10px; cursor: pointer; transition: all 0.5s ease; width: 100%; position: relative; overflow: hidden; letter-spacing: 1px; } .btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: 0.5s; } .btn:hover { background: linear-gradient(90deg, #4a5b5a, #7a9e95); transform: translateY(-3px); box-shadow: 0 10px 20px rgba(122, 158, 149, 0.3); letter-spacing: 2px; } .btn:hover::before { left: 100%; } .btn:active { transform: translateY(0); } .footer { text-align: center; padding: 20px; color: #7c9b95; font-size: 0.9rem; animation: fadeIn 1s ease-out; } .success-message { display: none; background: linear-gradient(90deg, #7a9e95, #8dbbb0); color: white; text-align: center; padding: 20px; border-radius: 10px; margin-top: 25px; animation: fadeIn 0.5s ease-out; box-shadow: 0 5px 15px rgba(122, 158, 149, 0.3); } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } @keyframes float { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } } .pulse { animation: pulse 3s infinite; } /* Yoga icons */ .yoga-icons { display: flex; justify-content: center; margin-top: 20px; gap: 25px; flex-wrap: wrap; } .yoga-icons i { font-size: 24px; color: white; background: rgba(122, 158, 149, 0.8); width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.5s ease; box-shadow: 0 5px 15px rgba(122, 158, 149, 0.3); } .yoga-icons i:hover { transform: translateY(-5px) rotate(10deg); background: #4a5b5a; } /* Responsive Design */ @media (max-width: 768px) { .form-container { flex-direction: column; } .form-info, .contact-form { width: 100%; } h1 { font-size: 2.2rem; } .subtitle::before, .subtitle::after { display: none; } .logo { font-size: 28px; } .yoga-icons { gap: 15px; } } /* Floating elements */ .floating-element { position: absolute; width: 100px; height: 100px; background: rgba(122, 158, 149, 0.1); border-radius: 50%; z-index: 0; } .float-1 { top: 20%; left: 5%; animation: float 8s ease-in-out infinite; } .float-2 { bottom: 10%; right: 5%; animation: float 10s ease-in-out infinite 1s; } /* Lotus animation */ .lotus-icon { display: inline-block; margin-left: 10px; animation: bloom 6s ease infinite; color: #7a9e95; } @keyframes bloom { 0%, 100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.2) rotate(180deg); } } /* Custom select styling */ .yoga-select { background-image: linear-gradient(45deg, transparent 50%, #7a9e95 50%), linear-gradient(135deg, #7a9e95 50%, transparent 50%); background-position: calc(100% - 20px) center, calc(100% - 15px) center; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; -webkit-appearance: none; -moz-appearance: none; appearance: none; } /* Decorative elements */ .mandala { position: absolute; width: 150px; height: 150px; opacity: 0.03; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50 10 A40 40 0 1 0 50 90 A40 40 0 1 0 50 10 Z' stroke='%234a5b5a' fill='none'/%3E%3Cpath d='M50 20 A30 30 0 1 0 50 80 A30 30 0 1 0 50 20 Z' stroke='%234a5b5a' fill='none'/%3E%3C/svg%3E"); background-size: contain; z-index: 0; } .mandala-1 { top: 10%; left: 5%; animation: rotate 60s linear infinite; } .mandala-2 { bottom: 10%; right: 5%; animation: rotate 80s linear infinite reverse; } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } /* Breathing animation for form */ @keyframes breathe { 0% { box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08); } 50% { box-shadow: 0 15px 50px rgba(122, 158, 149, 0.2); } 100% { box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08); } } .form-container { animation: breathe 8s ease-in-out infinite; }
JavaScript
document.getElementById('yogaForm').addEventListener('submit', function(e) { e.preventDefault(); // In a real application, you would send the form data to a server here // For this example, we'll just show the success message document.getElementById('successMessage').style.display = 'block'; // Scroll to the success message document.getElementById('successMessage').scrollIntoView({ behavior: 'smooth' }); // Reset the form after submission setTimeout(function() { document.getElementById('yogaForm').reset(); document.getElementById('successMessage').style.display = 'none'; }, 5000); }); // Add hover effects to form elements const formElements = document.querySelectorAll('input, select, textarea'); formElements.forEach(element => { element.addEventListener('focus', () => { element.parentElement.querySelector('label').style.color = '#7a9e95'; }); element.addEventListener('blur', () => { element.parentElement.querySelector('label').style.color = '#4a5b5a'; }); }); // Add a calming sound on form submission (optional) const playCalmingSound = () => { // This would play a calming sound in a real implementation console.log("Playing calming sound..."); }
Output Preview
Desktop
Mobile
Fullscreen