DevPlatform
Home
Components
Search
Submit
Earn
Login
Sign Up Free
Hexagon Loader - Preview | DevPlatform
DevPlatform
Categories
Accordion
Animation
Box Shadow
Button
Card
Footer
Form
Gallery
Hero Section
Inputs
Loader
Marquee
Modal
Modules
Navbar
Progress Bar
Radio Buttons
Search-Bar
Sections
Slider
Tab
Timeline
Toggle
Hexagon Loader
jitesh208
Jan 21, 2026
4
0
Share
Live Preview
Refresh
Live Editor
HTML
CSS
JS
HTML
CSS
JavaScript
1
<div class="loader-container"> <div class="hexagon-loader"> <div class="hexagon hex-1"> <div class="hex-inner"></div> </div> <div class="hexagon hex-2"> <div class="hex-inner"></div> </div> <div class="hexagon hex-3"> <div class="hex-inner"></div> </div> <div class="hexagon hex-4"> <div class="hex-inner"></div> </div> <div class="hexagon hex-5"> <div class="hex-inner"></div> </div> <div class="hexagon hex-6"> <div class="hex-inner"></div> </div> <div class="hexagon hex-7"> <div class="hex-inner"></div> </div> </div> <div class="loading-bar"> <div class="bar-fill"></div> </div> <div class="text-container"> <h2 class="loading-title">Loading</h2> <p class="loading-subtitle">Preparing your experience</p> </div> </div>
1
* { margin: 0; padding: 0; box-sizing: border-box; } body { min-height: 100vh; display: flex; justify-content: center; align-items: center; background: linear-gradient(135deg, #141e30, #243b55); font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; overflow: hidden; position: relative; } body::after { content: ''; position: absolute; width: 500px; height: 500px; background: radial-gradient(circle, rgba(255, 107, 107, 0.2), transparent); border-radius: 50%; top: -100px; right: -100px; animation: float 8s ease-in-out infinite; } body::before { content: ''; position: absolute; width: 400px; height: 400px; background: radial-gradient(circle, rgba(78, 205, 196, 0.2), transparent); border-radius: 50%; bottom: -100px; left: -100px; animation: float 6s ease-in-out infinite reverse; } @keyframes float { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(30px, -30px) scale(1.1); } } .loader-container { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 40px; } .hexagon-loader { position: relative; width: 200px; height: 200px; display: flex; justify-content: center; align-items: center; } .hexagon { position: absolute; width: 60px; height: 34.64px; background: transparent; } .hexagon::before, .hexagon::after { content: ''; position: absolute; width: 0; border-left: 30px solid transparent; border-right: 30px solid transparent; } .hexagon::before { bottom: 100%; border-bottom: 17.32px solid; } .hexagon::after { top: 100%; border-top: 17.32px solid; } .hex-inner { position: absolute; width: 100%; height: 100%; animation: hexPulse 2s ease-in-out infinite; } .hex-1 { top: 50%; left: 50%; transform: translate(-50%, -50%); } .hex-1::before, .hex-1::after { border-color: #ff6b6b; } .hex-1 { background: #ff6b6b; } .hex-1 .hex-inner { animation-delay: 0s; } .hex-2 { top: 20%; left: 50%; transform: translate(-50%, -50%); } .hex-2::before, .hex-2::after { border-color: #4ecdc4; } .hex-2 { background: #4ecdc4; } .hex-2 .hex-inner { animation-delay: 0.3s; } .hex-3 { top: 35%; right: 20%; transform: translate(-50%, -50%); } .hex-3::before, .hex-3::after { border-color: #45b7d1; } .hex-3 { background: #45b7d1; } .hex-3 .hex-inner { animation-delay: 0.6s; } .hex-4 { bottom: 35%; right: 20%; transform: translate(-50%, -50%); } .hex-4::before, .hex-4::after { border-color: #f7b731; } .hex-4 { background: #f7b731; } .hex-4 .hex-inner { animation-delay: 0.9s; } .hex-5 { bottom: 20%; left: 50%; transform: translate(-50%, -50%); } .hex-5::before, .hex-5::after { border-color: #5f27cd; } .hex-5 { background: #5f27cd; } .hex-5 .hex-inner { animation-delay: 1.2s; } .hex-6 { bottom: 35%; left: 20%; transform: translate(-50%, -50%); } .hex-6::before, .hex-6::after { border-color: #00d2d3; } .hex-6 { background: #00d2d3; } .hex-6 .hex-inner { animation-delay: 1.5s; } .hex-7 { top: 35%; left: 20%; transform: translate(-50%, -50%); } .hex-7::before, .hex-7::after { border-color: #ff9ff3; } .hex-7 { background: #ff9ff3; } .hex-7 .hex-inner { animation-delay: 1.8s; } @keyframes hexPulse { 0%, 100% { opacity: 0.3; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } } .loading-bar { width: 300px; height: 6px; background: rgba(255, 255, 255, 0.1); border-radius: 10px; overflow: hidden; position: relative; } .bar-fill { height: 100%; width: 0; background: linear-gradient(90deg, #4ecdc4, #45b7d1, #5f27cd, #ff6b6b); background-size: 200% 100%; border-radius: 10px; animation: loadBar 3s ease-in-out infinite, gradientShift 2s linear infinite; } @keyframes loadBar { 0% { width: 0; } 50% { width: 70%; } 100% { width: 100%; } } @keyframes gradientShift { 0% { background-position: 0% 50%; } 100% { background-position: 200% 50%; } } .text-container { text-align: center; color: white; } .loading-title { font-size: 32px; font-weight: 700; margin-bottom: 8px; background: linear-gradient(90deg, #4ecdc4, #45b7d1, #ff6b6b, #f7b731); background-size: 300% 100%; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; animation: textGradient 3s linear infinite; } @keyframes textGradient { 0% { background-position: 0% 50%; } 100% { background-position: 300% 50%; } } .loading-subtitle { font-size: 14px; color: rgba(255, 255, 255, 0.6); letter-spacing: 2px; text-transform: uppercase; animation: subtitleFade 2s ease-in-out infinite; } @keyframes subtitleFade { 0%, 100% { opacity: 0.4; } 50% { opacity: 1; } }
1
Comments
0
Want to comment?
Please
login
or
sign up
to post comments.
No comments yet
Be the first to comment on this component!
Comments 0
Want to comment?
Please login or sign up to post comments.
No comments yet
Be the first to comment on this component!