DevPlatform
Home
Components
Search
Submit
Earn
Login
Sign Up Free
Fingerprint Unlock - 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
Fingerprint Unlock
aartigoyal
Jan 30, 2026
4
0
Share
Live Preview
Refresh
Live Editor
HTML
CSS
JS
HTML
CSS
JavaScript
1
<div class="container"> <div class="fingerprint-container"> <div class="particle"></div> <div class="particle"></div> <div class="particle"></div> <div class="particle"></div> <div class="particle"></div> <div class="scanner-ring"></div> <div class="fingerprint"> <div class="fingerprint-line line1"></div> <div class="fingerprint-line line2"></div> <div class="fingerprint-line line3"></div> <div class="fingerprint-line line4"></div> <div class="fingerprint-line line5"></div> <div class="fingerprint-line line6"></div> <div class="fingerprint-line line7"></div> <div class="fingerprint-line line8"></div> <div class="center-dot"></div> </div> <div class="scan-line"></div> <div class="checkmark"></div> </div> <div class="status-text">Scanning</div> <div class="sub-text">Please wait...</div> </div>
1
* { margin: 0; padding: 0; box-sizing: border-box; } body { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); height: 100vh; display: flex; align-items: center; justify-content: center; font-family: 'Arial', sans-serif; overflow: hidden; } .container { text-align: center; } .fingerprint-container { position: relative; width: 300px; height: 300px; margin: 0 auto 40px; } .fingerprint { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 200px; height: 250px; } .fingerprint-line { position: absolute; left: 50%; transform: translateX(-50%); border: 3px solid #4facfe; border-radius: 50%; opacity: 0; animation: appear 3s ease-in-out infinite; } /* Outer lines */ .line1 { width: 200px; height: 250px; top: 0; animation-delay: 0s; } .line2 { width: 180px; height: 225px; top: 12px; animation-delay: 0.15s; } .line3 { width: 160px; height: 200px; top: 25px; animation-delay: 0.3s; } .line4 { width: 140px; height: 175px; top: 37px; animation-delay: 0.45s; } .line5 { width: 120px; height: 150px; top: 50px; animation-delay: 0.6s; } .line6 { width: 100px; height: 125px; top: 62px; animation-delay: 0.75s; } .line7 { width: 80px; height: 100px; top: 75px; animation-delay: 0.9s; } .line8 { width: 60px; height: 75px; top: 87px; animation-delay: 1.05s; } @keyframes appear { 0% { opacity: 0; transform: translateX(-50%) scale(0.5); } 20% { opacity: 1; transform: translateX(-50%) scale(1); } 80% { opacity: 1; transform: translateX(-50%) scale(1); } 100% { opacity: 0; transform: translateX(-50%) scale(1.1); } } /* Scanning line */ .scan-line { position: absolute; width: 250px; height: 2px; background: linear-gradient(90deg, transparent 0%, #00f2fe 50%, transparent 100%); box-shadow: 0 0 20px #00f2fe; top: -10px; left: 50%; transform: translateX(-50%); animation: scan 3s ease-in-out infinite; } @keyframes scan { 0% { top: -10px; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { top: 260px; opacity: 0; } } /* Center dot */ .center-dot { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 20px; height: 20px; background: #4facfe; border-radius: 50%; animation: pulse 1.5s ease-in-out infinite; } @keyframes pulse { 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 1; } 50% { transform: translate(-50%, -50%) scale(1.5); opacity: 0.5; } } /* Circular scanner ring */ .scanner-ring { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 280px; height: 280px; border: 2px solid rgba(79, 172, 254, 0.3); border-radius: 50%; animation: rotate 4s linear infinite; } .scanner-ring::before { content: ''; position: absolute; top: -2px; left: 50%; width: 4px; height: 30px; background: #00f2fe; box-shadow: 0 0 10px #00f2fe; transform: translateX(-50%); } @keyframes rotate { 0% { transform: translate(-50%, -50%) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(360deg); } } /* Text */ .status-text { color: white; font-size: 24px; font-weight: bold; text-transform: uppercase; letter-spacing: 3px; animation: fadeText 3s ease-in-out infinite; } @keyframes fadeText { 0%, 100% { opacity: 0.5; } 50% { opacity: 1; } } .sub-text { color: rgba(255, 255, 255, 0.7); font-size: 14px; margin-top: 10px; letter-spacing: 2px; } /* Particles */ .particle { position: absolute; width: 3px; height: 3px; background: #4facfe; border-radius: 50%; animation: float 3s ease-in-out infinite; } .particle:nth-child(1) { top: 20%; left: 10%; animation-delay: 0s; } .particle:nth-child(2) { top: 40%; left: 80%; animation-delay: 0.5s; } .particle:nth-child(3) { top: 70%; left: 15%; animation-delay: 1s; } .particle:nth-child(4) { top: 30%; left: 90%; animation-delay: 1.5s; } .particle:nth-child(5) { top: 80%; left: 70%; animation-delay: 2s; } @keyframes float { 0%, 100% { transform: translateY(0) scale(1); opacity: 0; } 50% { transform: translateY(-30px) scale(1.5); opacity: 1; } } /* Success checkmark animation */ .checkmark { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0); width: 100px; height: 100px; border-radius: 50%; background: rgba(76, 217, 100, 0.2); border: 3px solid #4cd964; opacity: 0; animation: showCheck 3s ease-in-out infinite; } .checkmark::after { content: ''; position: absolute; top: 25px; left: 35px; width: 15px; height: 30px; border: solid #4cd964; border-width: 0 4px 4px 0; transform: rotate(45deg); } @keyframes showCheck { 0%, 70% { transform: translate(-50%, -50%) scale(0); opacity: 0; } 75% { transform: translate(-50%, -50%) scale(1.2); opacity: 1; } 85% { transform: translate(-50%, -50%) scale(1); opacity: 1; } 100% { transform: translate(-50%, -50%) scale(1); opacity: 0; } }
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!