DevPlatform
Home
Components
Search
Submit
Earn
Login
Sign Up Free
Button 3d anim - 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
Button 3d anim
sachin007
Jan 22, 2026
26
0
Share
Live Preview
Refresh
Live Editor
HTML
CSS
JS
HTML
CSS
JavaScript
1
<div class="container"> <button class="neon-btn"> <span class="btn-content"> <span class="icon-left">⚡</span> Power Button <span class="icon-right">⚡</span> </span> <span class="glow-line top"></span> <span class="glow-line right"></span> <span class="glow-line bottom"></span> <span class="glow-line left"></span> <span class="particle"></span> <span class="particle"></span> <span class="particle"></span> <span class="particle"></span> <span class="particle"></span> <span class="particle"></span> </button> <div class="reflection"></div> </div>
1
* { margin: 0; padding: 0; box-sizing: border-box; } body { min-height: 100vh; display: flex; justify-content: center; align-items: center; background: #0a0e27; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; overflow: hidden; } body::before { content: ''; position: absolute; width: 100%; height: 100%; background: radial-gradient(circle at 20% 50%, rgba(120, 119, 198, 0.1), transparent 50%), radial-gradient(circle at 80% 80%, rgba(255, 119, 198, 0.1), transparent 50%); animation: bgPulse 8s ease-in-out infinite; } @keyframes bgPulse { 0%, 100% { opacity: 0.5; } 50% { opacity: 1; } } .container { position: relative; perspective: 1000px; } .neon-btn { position: relative; padding: 25px 70px; font-size: 20px; font-weight: bold; color: #fff; background: linear-gradient(145deg, #1a1f3a, #0f1228); border: 2px solid #00d9ff; border-radius: 50px; cursor: pointer; transform-style: preserve-3d; transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); box-shadow: 0 0 20px rgba(0, 217, 255, 0.5), 0 0 40px rgba(0, 217, 255, 0.3), inset 0 0 20px rgba(0, 217, 255, 0.1), 0 15px 35px rgba(0, 0, 0, 0.5); overflow: visible; text-transform: uppercase; letter-spacing: 2px; } .neon-btn::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(45deg, transparent, rgba(0, 217, 255, 0.3), transparent); border-radius: 50px; transform: translateX(-100%); transition: transform 0.6s ease; } .neon-btn::after { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.3); transform: translate(-50%, -50%); transition: width 0.6s ease, height 0.6s ease; } .btn-content { position: relative; z-index: 2; display: flex; align-items: center; gap: 12px; text-shadow: 0 0 10px rgba(0, 217, 255, 0.8); } .icon-left, .icon-right { display: inline-block; animation: iconPulse 1.5s ease-in-out infinite; filter: drop-shadow(0 0 5px #00d9ff); } .icon-right { animation-delay: 0.75s; } @keyframes iconPulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.2); opacity: 0.8; } } /* Glowing border lines */ .glow-line { position: absolute; background: linear-gradient(90deg, transparent, #00d9ff, transparent); opacity: 0; transition: opacity 0.3s ease; } .glow-line.top { top: -2px; left: 0; width: 100%; height: 2px; animation: lineMove 2s linear infinite; } .glow-line.right { top: 0; right: -2px; width: 2px; height: 100%; animation: lineMove 2s linear infinite 0.5s; background: linear-gradient(180deg, transparent, #00d9ff, transparent); } .glow-line.bottom { bottom: -2px; left: 0; width: 100%; height: 2px; animation: lineMove 2s linear infinite 1s; } .glow-line.left { top: 0; left: -2px; width: 2px; height: 100%; animation: lineMove 2s linear infinite 1.5s; background: linear-gradient(180deg, transparent, #00d9ff, transparent); } @keyframes lineMove { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } } /* Particles */ .particle { position: absolute; width: 3px; height: 3px; background: #00d9ff; border-radius: 50%; opacity: 0; box-shadow: 0 0 10px #00d9ff; } .particle:nth-child(1) { top: 20%; left: 10%; animation: particleFloat 3s ease-in-out infinite; } .particle:nth-child(2) { top: 40%; right: 15%; animation: particleFloat 3s ease-in-out infinite 0.5s; } .particle:nth-child(3) { bottom: 30%; left: 20%; animation: particleFloat 3s ease-in-out infinite 1s; } .particle:nth-child(4) { top: 60%; right: 25%; animation: particleFloat 3s ease-in-out infinite 1.5s; } .particle:nth-child(5) { bottom: 20%; left: 50%; animation: particleFloat 3s ease-in-out infinite 2s; } .particle:nth-child(6) { top: 30%; right: 40%; animation: particleFloat 3s ease-in-out infinite 2.5s; } @keyframes particleFloat { 0%, 100% { opacity: 0; transform: translateY(0) scale(0); } 50% { opacity: 1; transform: translateY(-20px) scale(1); } } /* Hover effects */ .neon-btn:hover { transform: translateY(-10px) rotateX(15deg) scale(1.05); box-shadow: 0 0 30px rgba(0, 217, 255, 0.8), 0 0 60px rgba(0, 217, 255, 0.5), inset 0 0 30px rgba(0, 217, 255, 0.2), 0 25px 50px rgba(0, 0, 0, 0.6); border-color: #00ffff; } .neon-btn:hover::before { transform: translateX(100%); } .neon-btn:hover .glow-line { opacity: 1; } .neon-btn:active { transform: translateY(-5px) rotateX(10deg) scale(1.02); } .neon-btn:active::after { width: 100%; height: 100%; } /* Reflection */ .reflection { position: absolute; bottom: -60px; left: 50%; transform: translateX(-50%); width: 70%; height: 30px; background: radial-gradient(ellipse, rgba(0, 217, 255, 0.2), transparent); border-radius: 50%; filter: blur(10px); transition: all 0.4s ease; } .neon-btn:hover ~ .reflection { width: 85%; background: radial-gradient(ellipse, rgba(0, 217, 255, 0.4), transparent); }
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!