BuildPlus Construction About Us
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>BuildPlus Construction | About Us</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=Montserrat:wght@400;500;600;700&family=Roboto+Slab:wght@300;400;500;600&display=swap" rel="stylesheet"> </head> <body> <section class="about-section"> <header class="header" id="header"> <div class="logo">Build<span>Plus</span></div> <nav class="nav-links"> <a href="#">Home</a> <a href="#">Services</a> <a href="#">Projects</a> <a href="#">About</a> <a href="#">Contact</a> </nav> </header> <div class="hero"> <div class="hero-content" id="hero-content"> <h1>Building Dreams, Crafting Realities</h1> <p>With over 15 years of experience, BuildPlus Construction has been a trusted name in commercial and residential construction, delivering excellence in every project we undertake.</p> <a href="#" class="cta-button">Get a Quote</a> </div> </div> <div class="main-content"> <h2 class="section-title">About Our Company</h2> <div class="about-content"> <div class="about-text"> <h2>Quality Construction Services Since 2008</h2> <p>BuildPlus Construction is a full-service construction company specializing in commercial and residential projects. Our team of experienced professionals is committed to delivering exceptional quality, on-time completion, and within budget.</p> <p>We take pride in our attention to detail, innovative solutions, and commitment to safety on every job site. Our client-focused approach ensures that we understand your vision and work diligently to bring it to life.</p> <p>Whether you're planning a new construction, renovation, or addition, BuildPlus has the expertise and resources to make your project a success.</p> </div> <div class="about-image"> <div class="image-item"> <img src="https://images.unsplash.com/photo-1504307651254-35680f356dfd?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=600&q=80" alt="Construction Site"> </div> <div class="image-item"> <img src="https://images.unsplash.com/photo-1615529328331-f8917597711f?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=600&q=80" alt="Modern Building"> </div> <div class="image-item"> <img src="https://images.unsplash.com/photo-1541888946425-d81bb19240f5?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=600&q=80" alt="Construction Blueprint"> </div> <div class="image-item"> <img src="https://images.unsplash.com/photo-1503387762-592deb58ef4e?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=600&q=80" alt="Construction Worker"> </div> </div> </div> <div class="services"> <h2 class="section-title">Our Services</h2> <div class="services-grid"> <div class="service-card"> <div class="service-icon"> <i class="fas fa-home"></i> </div> <div class="service-content"> <h3>Residential Construction</h3> <p>Custom home building, renovations, and additions tailored to your lifestyle and needs.</p> </div> </div> <div class="service-card"> <div class="service-icon"> <i class="fas fa-building"></i> </div> <div class="service-content"> <h3>Commercial Construction</h3> <p>Office buildings, retail spaces, and industrial facilities built to the highest standards.</p> </div> </div> <div class="service-card"> <div class="service-icon"> <i class="fas fa-tools"></i> </div> <div class="service-content"> <h3>Renovation & Remodeling</h3> <p>Transforming existing spaces to better suit your needs and improve functionality.</p> </div> </div> <div class="service-card"> <div class="service-icon"> <i class="fas fa-hard-hat"></i> </div> <div class="service-content"> <h3>Project Management</h3> <p>Comprehensive oversight from planning to completion ensuring quality and timeliness.</p> </div> </div> </div> </div> </div> <div class="stats"> <div class="stats-grid"> <div class="stat-item"> <div class="stat-number" id="projects-completed">0</div> <div class="stat-label">Projects Completed</div> </div> <div class="stat-item"> <div class="stat-number" id="years-experience">0</div> <div class="stat-label">Years Experience</div> </div> <div class="stat-item"> <div class="stat-number" id="happy-clients">0</div> <div class="stat-label">Happy Clients</div> </div> <div class="stat-item"> <div class="stat-number" id="workers-employed">0</div> <div class="stat-label">Workers Employed</div> </div> </div> </div> </section> </body> </html>
CSS
* { margin: 0; padding: 0; box-sizing: border-box; } body { overflow-x: hidden; font-family: 'Montserrat', sans-serif; background: linear-gradient(to bottom, #f9f9f9, #e6e6e6); color: #333; } .about-section { width: 100vw; min-height: 100vh; display: flex; flex-direction: column; position: relative; } /* Header styling */ .header { display: flex; justify-content: space-between; align-items: center; padding: 1.2rem 3rem; background: #2c3e50; color: white; position: fixed; width: 100%; z-index: 1000; box-shadow: 0 2px 15px rgba(0, 0, 0, 0.2); transition: all 0.4s ease; } .header.scrolled { padding: 0.8rem 3rem; background: rgba(44, 62, 80, 0.95); } .logo { font-family: 'Roboto Slab', serif; font-size: 1.8rem; font-weight: 700; color: #ff9800; display: flex; align-items: center; } .logo span { color: white; } .nav-links { display: flex; gap: 2rem; } .nav-links a { text-decoration: none; color: white; font-weight: 500; transition: all 0.3s; position: relative; padding: 5px 0; } .nav-links a:after { content: ''; position: absolute; width: 0; height: 3px; bottom: 0; left: 0; background-color: #ff9800; transition: width 0.3s; } .nav-links a:hover:after { width: 100%; } .nav-links a:hover { color: #ff9800; } /* Hero Section */ .hero { height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url('https://images.unsplash.com/photo-1503387762-592deb58ef4e?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1500&q=80'); background-size: cover; background-position: center; color: white; text-align: center; padding: 0 2rem; } .hero-content { max-width: 900px; transform: translateY(50px); opacity: 0; transition: all 1s ease; } .hero-content.visible { transform: translateY(0); opacity: 1; } .hero h1 { font-family: 'Roboto Slab', serif; font-size: 3.5rem; margin-bottom: 1.5rem; color: #ff9800; } .hero p { font-size: 1.2rem; margin-bottom: 2rem; line-height: 1.6; } .cta-button { display: inline-block; padding: 1rem 2.5rem; background: #ff9800; color: white; text-decoration: none; border-radius: 4px; font-weight: 600; transition: all 0.3s; border: 2px solid #ff9800; } .cta-button:hover { background: transparent; color: #ff9800; } /* Main content styling */ .main-content { display: flex; flex-direction: column; padding: 5rem 2rem; max-width: 1200px; margin: 0 auto; } .section-title { font-family: 'Roboto Slab', serif; font-size: 2.8rem; margin-bottom: 3rem; text-align: center; position: relative; color: #2c3e50; } .section-title:after { content: ''; position: absolute; width: 100px; height: 5px; background: #ff9800; bottom: -15px; left: 50%; transform: translateX(-50%); } .about-content { display: flex; flex-wrap: wrap; gap: 3rem; margin-bottom: 5rem; } .about-text { flex: 1; min-width: 300px; } .about-text h2 { font-size: 2rem; margin-bottom: 1.5rem; color: #2c3e50; } .about-text p { line-height: 1.8; margin-bottom: 1.5rem; font-size: 1.1rem; } .about-image { flex: 1; min-width: 300px; display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); gap: 15px; } .image-item { overflow: hidden; border-radius: 8px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); position: relative; opacity: 0; transform: translateY(30px); transition: all 0.8s ease; } .image-item.visible { opacity: 1; transform: translateY(0); } .image-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; } .image-item:hover img { transform: scale(1.1); } /* Services Section */ .services { margin: 4rem 0; } .services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; } .service-card { background: white; border-radius: 8px; overflow: hidden; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; opacity: 0; transform: translateY(30px); } .service-card.visible { opacity: 1; transform: translateY(0); } .service-card:hover { transform: translateY(-10px); box-shadow: 0 15px 25px rgba(0, 0, 0, 0.15); } .service-icon { background: #2c3e50; color: #ff9800; font-size: 2.5rem; padding: 1.5rem; text-align: center; } .service-content { padding: 1.5rem; } .service-content h3 { font-size: 1.2rem; margin-bottom: 1rem; color: #2c3e50; } .service-content p { line-height: 1.6; color: #666; } /* Stats Section */ .stats { background: #2c3e50; color: white; padding: 5rem 2rem; margin: 4rem 0; text-align: center; } .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; max-width: 1200px; margin: 0 auto; } .stat-item { padding: 1.5rem; } .stat-number { font-size: 3rem; font-weight: 700; color: #ff9800; margin-bottom: 0.5rem; } .stat-label { font-size: 1.2rem; text-transform: uppercase; letter-spacing: 1px; } /* Responsive design */ @media (max-width: 992px) { .hero h1 { font-size: 2.8rem; } .about-content { flex-direction: column; } } @media (max-width: 768px) { .header { flex-direction: column; padding: 1rem; } .nav-links { margin-top: 1rem; gap: 1rem; flex-wrap: wrap; justify-content: center; } .hero h1 { font-size: 2.2rem; } .hero p { font-size: 1rem; } .section-title { font-size: 2.2rem; } .about-image { grid-template-columns: 1fr; } }
JavaScript
document.addEventListener('DOMContentLoaded', function() { // Header scroll effect const header = document.getElementById('header'); window.addEventListener('scroll', function() { if (window.scrollY > 50) { header.classList.add('scrolled'); } else { header.classList.remove('scrolled'); } }); // Hero content animation const heroContent = document.getElementById('hero-content'); setTimeout(function() { heroContent.classList.add('visible'); }, 300); // Image items animation on scroll const imageItems = document.querySelectorAll('.image-item'); const serviceCards = document.querySelectorAll('.service-card'); // Function to check if element is in viewport function isInViewport(element) { const rect = element.getBoundingClientRect(); return ( rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth) ); } // Function to handle scroll animations function checkScroll() { imageItems.forEach(item => { if (isInViewport(item)) { item.classList.add('visible'); } }); serviceCards.forEach(card => { if (isInViewport(card)) { card.classList.add('visible'); } }); } // Initial check and add scroll listener checkScroll(); window.addEventListener('scroll', checkScroll); // Animated counters const counters = document.querySelectorAll('.stat-number'); const speed = 200; // The lower the slower function animateCounters() { if (!isInViewport(document.querySelector('.stats'))) return; counters.forEach(counter => { const target = +counter.getAttribute('data-target'); let count = 0; // Set data-target values based on ID if (counter.id === 'projects-completed') { counter.setAttribute('data-target', '450'); } else if (counter.id === 'years-experience') { counter.setAttribute('data-target', '15'); } else if (counter.id === 'happy-clients') { counter.setAttribute('data-target', '320'); } else if (counter.id === 'workers-employed') { counter.setAttribute('data-target', '85'); } const updateCount = () => { const target = +counter.getAttribute('data-target'); const count = +counter.innerText; const inc = target / speed; if (count < target) { counter.innerText = Math.ceil(count + inc); setTimeout(updateCount, 1); } else { counter.innerText = target; } }; updateCount(); }); // Remove the event listener after animation window.removeEventListener('scroll', animateCountersOnScroll); } // Helper function to trigger counter animation on scroll function animateCountersOnScroll() { if (isInViewport(document.querySelector('.stats'))) { animateCounters(); } } window.addEventListener('scroll', animateCountersOnScroll); // Initialize counters with 0 counters.forEach(counter => { counter.innerText = '0'; }); });
Output Preview
Desktop
Mobile
Fullscreen