DevPlatform
Home
Components
Search
Submit
Earn
Login
Sign Up Free
Particle Brust - 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
Particle Brust
admin1234
Jan 31, 2026
5
0
Share
Live Preview
Refresh
Live Editor
HTML
CSS
JS
HTML
CSS
JavaScript
1
<div class="container"> <div class="radio-group"> <!-- Option 1 --> <div class="radio-option"> <input type="radio" name="choice" id="option1" checked> <label for="option1"> <div class="radio-custom"> <div class="particles"> <div class="particle" style="--tx: 50px; --ty: -50px; "> </div> <div class="particle" style="--tx: -50px; --ty: -50px; "> </div> <div class="particle" style="--tx: 50px; --ty: 50px; "> </div> <div class="particle" style="--tx: -50px; --ty: 50px; "> </div> <div class="particle" style="--tx: 60px; --ty: 0; "> </div> <div class="particle" style="--tx: -60px; --ty: 0; "> </div> <div class="particle" style="--tx: 0; --ty: 60px; "> </div> <div class="particle" style="--tx: 0; --ty: -60px; "> </div> <div class="particle" style="--tx: 42px; --ty: -42px; "> </div> <div class="particle" style="--tx: -42px; --ty: 42px; "> </div> </div> </div> <span>Gold</span> </label> </div> <!-- Option 2 --> <div class="radio-option"> <input type="radio" name="choice" id="option2"> <label for="option2"> <div class="radio-custom"> <div class="particles"> <div class="particle" style="--tx: 50px; --ty: -50px; "> </div> <div class="particle" style="--tx: -50px; --ty: -50px; "> </div> <div class="particle" style="--tx: 50px; --ty: 50px; "> </div> <div class="particle" style="--tx: -50px; --ty: 50px; "> </div> <div class="particle" style="--tx: 60px; --ty: 0; "> </div> <div class="particle" style="--tx: -60px; --ty: 0; "> </div> <div class="particle" style="--tx: 0; --ty: 60px; "> </div> <div class="particle" style="--tx: 0; --ty: -60px; "> </div> <div class="particle" style="--tx: 42px; --ty: -42px; "> </div> <div class="particle" style="--tx: -42px; --ty: 42px; "> </div> </div> </div> <span>Blue</span> </label> </div> </div> </div>
1
* { margin: 0; padding: 0; box-sizing: border-box; } body { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; display: flex; align-items: center; justify-content: center; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; padding: 40px 20px; } .container { max-width: 300px; width: 100%; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border-radius: 20px; padding: 40px; border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); } h1 { text-align: center; color: white; margin-bottom: 40px; font-size: 28px; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); } .radio-group { display: flex; justify-content: center; gap: 40px; flex-wrap: wrap; } .radio-option { position: relative; } .radio-option input[type="radio"] { display: none; } .radio-option label { display: flex; flex-direction: column; align-items: center; gap: 15px; color: white; font-size: 16px; cursor: pointer; padding: 25px 30px; background: rgba(255, 255, 255, 0.1); border-radius: 20px; transition: all 0.3s ease; border: 2px solid transparent; } .radio-option label:hover { background: rgba(255, 255, 255, 0.15); transform: translateY(-5px); } .radio-custom { width: 80px; height: 80px; border-radius: 50%; border: 3px solid rgba(255, 255, 255, 0.4); position: relative; transition: all 0.3s ease; } .radio-custom::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 0; height: 0; background: linear-gradient(135deg, #fa709a 0%, #fee140 100%); border-radius: 50%; transition: all 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55); } .radio-option input[type="radio"]:checked + label .radio-custom { border-color: #fa709a; animation: pulse 1.5s ease-in-out infinite; } @keyframes pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(250, 112, 154, 0.7); } 50% { box-shadow: 0 0 0 25px rgba(250, 112, 154, 0); } } .radio-option input[type="radio"]:checked + label .radio-custom::before { width: 50px; height: 50px; } .radio-option input[type="radio"]:checked + label { background: rgba(250, 112, 154, 0.2); border-color: rgba(250, 112, 154, 0.4); transform: scale(1.05); } /* Particles */ .particles { position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; pointer-events: none; } .particle { position: absolute; width: 8px; height: 8px; background: #fee140; border-radius: 50%; opacity: 0; box-shadow: 0 0 10px #fee140; } .radio-option input[type="radio"]:checked + label .particle { animation: particleBurst 1s ease-out forwards; } @keyframes particleBurst { 0% { transform: translate(-50%, -50%) translate(0, 0) scale(1); opacity: 1; } 100% { transform: translate(-50%, -50%) translate(var(--tx), var(--ty)) scale(0); opacity: 0; } } /* Different particle colors for each option */ .radio-option:nth-child(1) .particle { background: #fee140; box-shadow: 0 0 10px #fee140; } .radio-option:nth-child(2) .particle { background: #4facfe; box-shadow: 0 0 10px #4facfe; } .radio-option:nth-child(2) .radio-custom::before { background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); } .radio-option:nth-child(2) input[type="radio"]:checked + label .radio-custom { border-color: #4facfe; animation: pulse2 1.5s ease-in-out infinite; } @keyframes pulse2 { 0%, 100% { box-shadow: 0 0 0 0 rgba(79, 172, 254, 0.7); } 50% { box-shadow: 0 0 0 25px rgba(79, 172, 254, 0); } } .radio-option:nth-child(2) input[type="radio"]:checked + label { background: rgba(79, 172, 254, 0.2); border-color: rgba(79, 172, 254, 0.4); } .radio-option:nth-child(3) .particle { background: #a8edea; box-shadow: 0 0 10px #a8edea; } .radio-option:nth-child(3) .radio-custom::before { background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%); } .radio-option:nth-child(3) input[type="radio"]:checked + label .radio-custom { border-color: #a8edea; animation: pulse3 1.5s ease-in-out infinite; } @keyframes pulse3 { 0%, 100% { box-shadow: 0 0 0 0 rgba(168, 237, 234, 0.7); } 50% { box-shadow: 0 0 0 25px rgba(168, 237, 234, 0); } } .radio-option:nth-child(3) input[type="radio"]:checked + label { background: rgba(168, 237, 234, 0.2); border-color: rgba(168, 237, 234, 0.4); } .radio-option:nth-child(4) .particle { background: #f093fb; box-shadow: 0 0 10px #f093fb; } .radio-option:nth-child(4) .radio-custom::before { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); } .radio-option:nth-child(4) input[type="radio"]:checked + label .radio-custom { border-color: #f093fb; animation: pulse4 1.5s ease-in-out infinite; } @keyframes pulse4 { 0%, 100% { box-shadow: 0 0 0 0 rgba(240, 147, 251, 0.7); } 50% { box-shadow: 0 0 0 25px rgba(240, 147, 251, 0); } } .radio-option:nth-child(4) input[type="radio"]:checked + label { background: rgba(240, 147, 251, 0.2); border-color: rgba(240, 147, 251, 0.4); }
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!