<div class="flip-container">
<div class="flip-card">
<div class="flip-card-inner">
<!-- Front Side -->
<div class="flip-card-front">
<div class="card-image">
<img src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=300&h=300&fit=crop&crop=face" alt="Profile" />
</div>
<div class="card-content">
<h3>John Smith</h3>
<p class="title">Senior Developer</p>
<div class="rating">
<span class="star">★</span>
<span class="star">★</span>
<span class="star">★</span>
<span class="star">★</span>
<span class="star">★</span>
</div>
</div>
</div>
<!-- Back Side -->
<div class="flip-card-back">
<div class="back-content">
<h3>About Me</h3>
<p>Passionate full-stack developer with 5+ years of experience in creating amazing web applications.</p>
<div class="skills">
<span class="skill">JavaScript</span>
<span class="skill">React</span>
<span class="skill">Node.js</span>
<span class="skill">Python</span>
</div>
<div class="social-links">
<a href="#" class="social-link">
<svg viewBox="0 0 24 24" fill="currentColor">
<path d="M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z"/>
</svg>
</a>
<a href="#" class="social-link">
<svg viewBox="0 0 24 24" fill="currentColor">
<path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
</svg>
</a>
<a href="#" class="social-link">
<svg viewBox="0 0 24 24" fill="currentColor">
<path d="M12.017 0C5.396 0 .029 5.367.029 11.987c0 5.079 3.158 9.417 7.618 11.174-.105-.949-.199-2.403.041-3.439.219-.937 1.406-5.957 1.406-5.957s-.359-.72-.359-1.781c0-1.663.967-2.911 2.168-2.911 1.024 0 1.518.769 1.518 1.688 0 1.029-.653 2.567-.992 3.992-.285 1.193.6 2.165 1.775 2.165 2.128 0 3.768-2.245 3.768-5.487 0-2.861-2.063-4.869-5.008-4.869-3.41 0-5.409 2.562-5.409 5.199 0 1.033.394 2.143.889 2.741.099.12.112.225.085.345-.09.375-.293 1.199-.334 1.363-.053.225-.172.271-.402.165-1.495-.69-2.433-2.878-2.433-4.646 0-3.776 2.748-7.252 7.92-7.252 4.158 0 7.392 2.967 7.392 6.923 0 4.135-2.607 7.462-6.233 7.462-1.214 0-2.357-.629-2.75-1.378l-.748 2.853c-.271 1.043-1.002 2.35-1.492 3.146C9.57 23.812 10.763 24.009 12.017 24c6.624 0 11.99-5.367 11.99-11.988C24.007 5.367 18.641.001 12.017.001z"/>
</svg>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
.flip-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
padding: 40px 20px;
display: flex;
justify-content: center;
align-items: center;
min-height: 350px;
border-radius: 15px;
}
.flip-card {
background-color: transparent;
width: 300px;
height: 400px;
perspective: 1000px;
}
.flip-card-inner {
position: relative;
width: 100%;
height: 100%;
text-align: center;
transition: transform 0.8s;
transform-style: preserve-3d;
cursor: pointer;
}
.flip-card:hover .flip-card-inner {
transform: rotateY(180deg);
}
.flip-card-front, .flip-card-back {
position: absolute;
width: 100%;
height: 100%;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
border-radius: 20px;
box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
.flip-card-front {
background: linear-gradient(145deg, #ffffff 0%, #f8f9ff 100%);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 30px;
}
.flip-card-back {
background: linear-gradient(145deg, #667eea 0%, #764ba2 100%);
color: white;
transform: rotateY(180deg);
display: flex;
align-items: center;
justify-content: center;
padding: 30px;
}
.card-image {
width: 120px;
height: 120px;
border-radius: 50%;
overflow: hidden;
margin-bottom: 20px;
border: 4px solid #667eea;
box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3);
}
.card-image img {
width: 100%;
height: 100%;
object-fit: cover;
}
.card-content h3 {
margin: 0 0 10px 0;
font-size: 24px;
font-weight: 700;
color: #333;
}
.card-content .title {
color: #666;
font-size: 16px;
margin-bottom: 15px;
}
.rating {
display: flex;
justify-content: center;
gap: 5px;
}
.star {
color: #ffd700;
font-size: 20px;
}
.back-content {
text-align: center;
}
.back-content h3 {
margin: 0 0 20px 0;
font-size: 24px;
font-weight: 700;
}
.back-content p {
line-height: 1.6;
margin-bottom: 25px;
opacity: 0.9;
}
.skills {
display: flex;
flex-wrap: wrap;
gap: 8px;
justify-content: center;
margin-bottom: 25px;
}
.skill {
background: rgba(255, 255, 255, 0.2);
padding: 6px 12px;
border-radius: 20px;
font-size: 12px;
font-weight: 600;
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.3);
}
.social-links {
display: flex;
justify-content: center;
gap: 15px;
}
.social-link {
width: 40px;
height: 40px;
background: rgba(255, 255, 255, 0.2);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
text-decoration: none;
transition: all 0.3s ease;
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.3);
}
.social-link:hover {
background: rgba(255, 255, 255, 0.3);
transform: translateY(-3px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
.social-link svg {
width: 18px;
height: 18px;
}
/* Mobile responsiveness */
@media (max-width: 600px) {
.flip-card {
width: 280px;
height: 380px;
}
.flip-container {
padding: 20px 10px;
}
.card-image {
width: 100px;
height: 100px;
}
.card-content h3,
.back-content h3 {
font-size: 20px;
}
}
/* Add subtle animation on load */
@keyframes cardEntrance {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.flip-card {
animation: cardEntrance 0.6s ease-out;
}
document.addEventListener('DOMContentLoaded', function() {
const flipCard = document.querySelector('.flip-card');
const flipCardInner = document.querySelector('.flip-card-inner');
let isFlipped = false;
// Add click functionality for mobile devices
flipCard.addEventListener('click', function() {
if (window.innerWidth <= 768) {
isFlipped = !isFlipped;
if (isFlipped) {
flipCardInner.style.transform = 'rotateY(180deg)';
} else {
flipCardInner.style.transform = 'rotateY(0deg)';
}
}
});
// Add keyboard accessibility
flipCard.addEventListener('keydown', function(e) {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
isFlipped = !isFlipped;
if (isFlipped) {
flipCardInner.style.transform = 'rotateY(180deg)';
} else {
flipCardInner.style.transform = 'rotateY(0deg)';
}
}
});
// Make card focusable for keyboard navigation
flipCard.setAttribute('tabindex', '0');
flipCard.setAttribute('role', 'button');
flipCard.setAttribute('aria-label', 'Flip card to see more information');
// Social links functionality
const socialLinks = document.querySelectorAll('.social-link');
socialLinks.forEach(link => {
link.addEventListener('click', function(e) {
e.preventDefault();
e.stopPropagation();
// Add ripple effect
const ripple = document.createElement('div');
ripple.style.position = 'absolute';
ripple.style.borderRadius = '50%';
ripple.style.background = 'rgba(255, 255, 255, 0.6)';
ripple.style.transform = 'scale(0)';
ripple.style.animation = 'ripple 0.6s linear';
ripple.style.left = '50%';
ripple.style.top = '50%';
ripple.style.width = '40px';
ripple.style.height = '40px';
ripple.style.marginLeft = '-20px';
ripple.style.marginTop = '-20px';
this.style.position = 'relative';
this.appendChild(ripple);
setTimeout(() => {
ripple.remove();
}, 600);
console.log('Social link clicked:', this.getAttribute('href'));
});
});
// Add ripple animation keyframes
const style = document.createElement('style');
style.textContent = `
@keyframes ripple {
to {
transform: scale(2);
opacity: 0;
}
}
`;
document.head.appendChild(style);
});