Construction Banner Template
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>BuildCraft Pro - Premium Construction Solutions</title> </head> <body> <section class="hero"> <div class="floating-tools"> <div class="tool-icon">?</div> <div class="tool-icon">?️</div> <div class="tool-icon">⚒️</div> <div class="tool-icon">?</div> <div class="tool-icon">?</div> <div class="tool-icon">?</div> </div> <div class="blueprint-lines"> <div class="blueprint-line"></div> <div class="blueprint-line"></div> <div class="blueprint-line"></div> <div class="blueprint-line"></div> </div> <div class="welding-sparks"> <div class="spark"></div> <div class="spark"></div> <div class="spark"></div> <div class="spark"></div> <div class="spark"></div> <div class="spark"></div> <div class="spark"></div> </div> <div class="hero-content"> <div class="hero-badge">?️ Premium Construction Excellence</div> <h1 class="hero-title">BUILDCRAFT</h1> <p class="hero-subtitle">Building Tomorrow Today</p> <p class="hero-description">Transform your vision into reality with our cutting-edge construction solutions. From groundbreaking residential projects to towering commercial complexes, we deliver unmatched quality, precision, and innovation in every build. Your dream structure awaits our expert craftsmanship.</p> <div class="cta-container"> <a href="#" class="cta-button cta-primary">Start Project</a> <a href="#" class="cta-button cta-secondary">View Portfolio</a> </div> <div class="construction-services"> <div class="service-card"> <div class="service-icon">?</div> <div class="service-title">Residential</div> <div class="service-description">Custom homes and renovations built with precision and care</div> </div> <div class="service-card"> <div class="service-icon">?</div> <div class="service-title">Commercial</div> <div class="service-description">Modern office buildings and retail spaces for business success</div> </div> <div class="service-card"> <div class="service-icon">?️</div> <div class="service-title">Industrial</div> <div class="service-description">Heavy-duty facilities and infrastructure projects</div> </div> </div> </div> <div class="scroll-indicator"> ⬇ </div> </section> </body> </html>
CSS
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Poppins', sans-serif; overflow-x: hidden; background: #000; } .hero { min-height: 100vh; position: relative; display: flex; align-items: center; justify-content: center; background: radial-gradient(ellipse at center, #1f2937 0%, #374151 30%, #111827 70%, #000 100%), linear-gradient(135deg, #f59e0b 0%, #d97706 20%, #dc2626 40%, #991b1b 60%, #7c2d12 80%, #f59e0b 100%); background-size: 100% 100%, 800% 800%; animation: industrialGradient 25s ease infinite; overflow: hidden; } @keyframes industrialGradient { 0% { background-position: 0% 0%, 0% 50%; } 20% { background-position: 0% 0%, 100% 50%; } 40% { background-position: 0% 0%, 100% 100%; } 60% { background-position: 0% 0%, 50% 100%; } 80% { background-position: 0% 0%, 0% 100%; } 100% { background-position: 0% 0%, 0% 50%; } } .hero::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 30% 25%, rgba(245, 158, 11, 0.2) 0%, transparent 50%), radial-gradient(circle at 70% 75%, rgba(220, 38, 38, 0.15) 0%, transparent 50%), radial-gradient(circle at 20% 80%, rgba(124, 45, 18, 0.1) 0%, transparent 60%); animation: constructionPulse 16s ease-in-out infinite; } @keyframes constructionPulse { 0%, 100% { opacity: 0.9; transform: scale(1) rotate(0deg); } 50% { opacity: 1; transform: scale(1.02) rotate(1deg); } } .floating-tools { position: absolute; width: 100%; height: 100%; overflow: hidden; pointer-events: none; } .tool-icon { position: absolute; font-size: 3rem; opacity: 0.25; animation: toolFloat 40s linear infinite; } .tool-icon:nth-child(1) { top: 10%; animation-delay: 0s; } .tool-icon:nth-child(2) { top: 25%; animation-delay: 8s; } .tool-icon:nth-child(3) { top: 40%; animation-delay: 16s; } .tool-icon:nth-child(4) { top: 55%; animation-delay: 24s; } .tool-icon:nth-child(5) { top: 70%; animation-delay: 32s; } .tool-icon:nth-child(6) { top: 85%; animation-delay: 6s; } @keyframes toolFloat { 0% { left: -200px; opacity: 0; transform: rotate(0deg) scale(0.2); } 5% { opacity: 0.25; transform: rotate(30deg) scale(1); } 50% { transform: rotate(180deg) scale(1.1); } 95% { opacity: 0.25; transform: rotate(330deg) scale(1); } 100% { left: 100%; opacity: 0; transform: rotate(360deg) scale(0.2); } } .blueprint-lines { position: absolute; width: 100%; height: 100%; overflow: hidden; pointer-events: none; } .blueprint-line { position: absolute; height: 2px; background: linear-gradient(90deg, transparent, rgba(245, 158, 11, 0.7), rgba(220, 38, 38, 0.5), transparent); animation: blueprintDraw 8s ease-in-out infinite; border-radius: 1px; } .blueprint-line:nth-child(1) { top: 20%; width: 400px; animation-delay: 0s; } .blueprint-line:nth-child(2) { top: 40%; width: 350px; animation-delay: 2s; } .blueprint-line:nth-child(3) { top: 60%; width: 380px; animation-delay: 4s; } .blueprint-line:nth-child(4) { top: 80%; width: 420px; animation-delay: 6s; } @keyframes blueprintDraw { 0% { left: -450px; opacity: 0; transform: scaleX(0.2); } 10% { opacity: 1; transform: scaleX(1); } 90% { opacity: 1; transform: scaleX(1); } 100% { left: 100%; opacity: 0; transform: scaleX(0.2); } } .welding-sparks { position: absolute; width: 100%; height: 100%; overflow: hidden; pointer-events: none; } .spark { position: absolute; width: 3px; height: 3px; background: radial-gradient(circle, rgba(245, 158, 11, 1) 0%, rgba(245, 158, 11, 0) 70%); border-radius: 50%; animation: sparkFly 20s ease-in-out infinite; } .spark:nth-child(1) { top: 15%; left: 15%; animation-delay: 0s; } .spark:nth-child(2) { top: 35%; left: 75%; animation-delay: 3s; } .spark:nth-child(3) { top: 55%; left: 25%; animation-delay: 6s; } .spark:nth-child(4) { top: 75%; left: 85%; animation-delay: 9s; } .spark:nth-child(5) { top: 25%; left: 90%; animation-delay: 12s; } .spark:nth-child(6) { top: 65%; left: 10%; animation-delay: 15s; } .spark:nth-child(7) { top: 45%; left: 60%; animation-delay: 18s; } @keyframes sparkFly { 0%, 100% { transform: translateX(0) translateY(0) rotate(0deg) scale(0.3); opacity: 0.2; } 20% { transform: translateX(60px) translateY(-50px) rotate(90deg) scale(1); opacity: 1; } 40% { transform: translateX(-40px) translateY(-100px) rotate(180deg) scale(1.2); opacity: 0.8; } 60% { transform: translateX(80px) translateY(-40px) rotate(270deg) scale(0.9); opacity: 0.6; } 80% { transform: translateX(-20px) translateY(-80px) rotate(360deg) scale(0.7); opacity: 0.4; } } .hero-content { text-align: center; z-index: 10; max-width: 1200px; padding: 0 2rem; animation: contentBuild 4.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); } @keyframes contentBuild { 0% { opacity: 0; transform: translateY(200px) scale(0.4); filter: blur(30px); } 20% { opacity: 0.2; transform: translateY(150px) scale(0.6); filter: blur(20px); } 60% { opacity: 0.6; transform: translateY(70px) scale(0.85); filter: blur(8px); } 100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); } } .hero-badge { display: inline-block; background: rgba(245, 158, 11, 0.12); border: 1px solid rgba(245, 158, 11, 0.4); color: #f59e0b; padding: 1rem 3rem; border-radius: 50px; font-size: 1.15rem; font-weight: 700; margin-bottom: 3.5rem; animation: badgeConstruct 8s ease-in-out infinite; backdrop-filter: blur(35px); text-transform: uppercase; letter-spacing: 2px; } @keyframes badgeConstruct { 0%, 100% { box-shadow: 0 0 50px rgba(245, 158, 11, 0.3); transform: scale(1); } 50% { box-shadow: 0 0 80px rgba(245, 158, 11, 0.8); transform: scale(1.06); } } .hero-title { font-size: clamp(4.5rem, 13vw, 11rem); font-weight: 900; background: linear-gradient(135deg, #ffffff 0%, #f59e0b 6%, #d97706 12%, #dc2626 24%, #991b1b 36%, #7c2d12 48%, #f59e0b 60%, #ffffff 100%); background-size: 900% 900%; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 2.5rem; line-height: 0.75; animation: titleConstruct 9s ease-in-out infinite, textBuild 15s ease-in-out infinite; text-shadow: 0 0 120px rgba(245, 158, 11, 0.8); } @keyframes titleConstruct { 0%, 100% { transform: scale(1) rotateY(0deg); filter: brightness(1); } 50% { transform: scale(1.1) rotateY(4deg); filter: brightness(1.5); } } @keyframes textBuild { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .hero-subtitle { font-size: clamp(1.8rem, 6vw, 3.5rem); color: #ffffff; margin-bottom: 2.5rem; font-weight: 800; line-height: 1.1; animation: subtitleForge 4.5s ease-out 1.8s both; text-shadow: 0 0 60px rgba(255, 255, 255, 0.6); text-transform: uppercase; letter-spacing: 4px; } @keyframes subtitleForge { from { opacity: 0; transform: translateX(-180px) rotate(-15deg); filter: blur(20px); } to { opacity: 1; transform: translateX(0) rotate(0deg); filter: blur(0); } } .hero-description { font-size: clamp(1.3rem, 3.8vw, 2rem); color: #f3f4f6; margin-bottom: 5.5rem; max-width: 950px; margin-left: auto; margin-right: auto; line-height: 2; font-weight: 500; animation: descriptionConstruct 4.5s ease-out 2.5s both; } @keyframes descriptionConstruct { from { opacity: 0; transform: translateY(140px) scale(0.7); } 60% { transform: translateY(-30px) scale(1.05); } to { opacity: 1; transform: translateY(0) scale(1); } } .cta-container { display: flex; gap: 4.5rem; justify-content: center; flex-wrap: wrap; margin-bottom: 6rem; animation: ctaBuild 4.5s ease-out 3.2s both; } @keyframes ctaBuild { from { opacity: 0; transform: translateY(180px) rotateX(100deg) scale(0.4); } 70% { transform: translateY(-40px) rotateX(-30deg) scale(1.2); } to { opacity: 1; transform: translateY(0) rotateX(0deg) scale(1); } } .cta-button { padding: 1.8rem 5.5rem; border: none; border-radius: 50px; font-size: 1.35rem; font-weight: 800; cursor: pointer; transition: all 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94); text-decoration: none; display: inline-block; position: relative; overflow: hidden; text-transform: uppercase; letter-spacing: 2px; font-family: 'Poppins', sans-serif; } .cta-button::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.8), transparent); transition: left 1.1s; } .cta-button:hover::before { left: 100%; } .cta-primary { background: linear-gradient(135deg, #f59e0b, #dc2626); color: #000; box-shadow: 0 35px 80px rgba(245, 158, 11, 0.4); animation: primaryConstruct 7s ease-in-out infinite; } .cta-primary:hover { transform: translateY(-25px) scale(1.18); box-shadow: 0 50px 140px rgba(245, 158, 11, 1); animation: none; } @keyframes primaryConstruct { 0%, 100% { box-shadow: 0 35px 80px rgba(245, 158, 11, 0.4); transform: scale(1); } 50% { box-shadow: 0 35px 80px rgba(245, 158, 11, 1.2); transform: scale(1.06); } } .cta-secondary { background: transparent; color: #f59e0b; border: 3px solid #f59e0b; backdrop-filter: blur(40px); position: relative; } .cta-secondary::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, #f59e0b, #dc2626); opacity: 0; transition: opacity 0.9s; border-radius: 50px; z-index: -1; } .cta-secondary:hover { color: #000; border-color: transparent; transform: translateY(-25px) scale(1.18); } .cta-secondary:hover::after { opacity: 1; } .construction-services { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 4.5rem; margin-top: 5rem; animation: servicesReveal 4.5s ease-out 4s both; } @keyframes servicesReveal { from { opacity: 0; transform: translateY(180px) scale(0.5); } 60% { transform: translateY(-40px) scale(1.12); } to { opacity: 1; transform: translateY(0) scale(1); } } .service-card { background: rgba(255, 255, 255, 0.04); backdrop-filter: blur(45px); border: 1px solid rgba(245, 158, 11, 0.2); border-radius: 50px; padding: 5rem 4.5rem; text-align: center; transition: all 1s cubic-bezier(0.25, 0.46, 0.45, 0.94); position: relative; overflow: hidden; } .service-card::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: conic-gradient(from 0deg, transparent, rgba(245, 158, 11, 0.1), transparent); animation: serviceRotate 18s linear infinite; opacity: 0; transition: opacity 0.9s; } .service-card:hover::before { opacity: 1; } @keyframes serviceRotate { 100% { transform: rotate(360deg); } } .service-card:hover { transform: translateY(-45px) rotateY(18deg) rotateX(15deg); background: rgba(255, 255, 255, 0.08); border-color: rgba(245, 158, 11, 0.6); box-shadow: 0 50px 100px rgba(245, 158, 11, 0.3); } .service-icon { font-size: 5.5rem; margin-bottom: 3.5rem; animation: iconConstruct 7s ease-in-out infinite; display: block; } @keyframes iconConstruct { 0%, 100% { transform: rotate(-15deg) scale(1); } 25% { transform: rotate(15deg) scale(1.25); } 50% { transform: rotate(-10deg) scale(1.15); } 75% { transform: rotate(12deg) scale(1.2); } } .service-title { font-size: 1.8rem; font-weight: 900; color: #f59e0b; margin-bottom: 2rem; text-transform: uppercase; letter-spacing: 1.5px; } .service-description { color: #f3f4f6; font-size: 1.2rem; line-height: 2; font-weight: 500; } .scroll-indicator { position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%); color: #f59e0b; animation: scrollConstruct 4.5s ease-in-out infinite; font-size: 3.5rem; } @keyframes scrollConstruct { 0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity: 1; } 50% { transform: translateX(-50%) translateY(-40px) rotate(30deg); opacity: 1; } } @media (max-width: 768px) { .hero-content { padding: 0 1rem; } .cta-container { flex-direction: column; align-items: center; gap: 3.5rem; } .cta-button { width: 100%; max-width: 450px; padding: 1.7rem 5rem; } .construction-services { grid-template-columns: repeat(2, 1fr); gap: 4rem; } .service-card { padding: 4.5rem 4rem; } .service-icon { font-size: 5rem; } } @media (max-width: 480px) { .construction-services { grid-template-columns: 1fr; } .hero-badge { font-size: 1.05rem; padding: 0.9rem 2.5rem; } .service-card { padding: 4rem 3.5rem; } }
JavaScript
(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'96e80d66f776b2a3',t:'MTc1NTA4NjQyOS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();
Output Preview
Desktop
Mobile
Fullscreen