|
|
<!DOCTYPE html> |
|
|
<html lang="en"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>Modern Testimonial with Continuous Lighting Effects</title> |
|
|
<script src="https://cdn.tailwindcss.com"></script> |
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
|
|
<style> |
|
|
.testimonial-card { |
|
|
position: relative; |
|
|
overflow: hidden; |
|
|
transition: all 0.3s ease; |
|
|
isolation: isolate; |
|
|
} |
|
|
|
|
|
.light-effect { |
|
|
position: absolute; |
|
|
border-radius: 50%; |
|
|
filter: blur(60px); |
|
|
opacity: 0; |
|
|
z-index: -1; |
|
|
} |
|
|
|
|
|
.light-1 { |
|
|
width: 250px; |
|
|
height: 250px; |
|
|
top: -50px; |
|
|
left: -50px; |
|
|
} |
|
|
|
|
|
.light-2 { |
|
|
width: 200px; |
|
|
height: 200px; |
|
|
bottom: -30px; |
|
|
right: -30px; |
|
|
} |
|
|
|
|
|
.light-3 { |
|
|
width: 180px; |
|
|
height: 180px; |
|
|
top: 50%; |
|
|
left: 70%; |
|
|
} |
|
|
|
|
|
.light-4 { |
|
|
width: 220px; |
|
|
height: 220px; |
|
|
bottom: 20%; |
|
|
left: 10%; |
|
|
} |
|
|
|
|
|
@keyframes float-1 { |
|
|
0% { |
|
|
transform: translate(0, 0); |
|
|
opacity: 0.6; |
|
|
} |
|
|
25% { |
|
|
transform: translate(20px, 20px); |
|
|
opacity: 0.8; |
|
|
} |
|
|
50% { |
|
|
transform: translate(0, 40px); |
|
|
opacity: 1; |
|
|
} |
|
|
75% { |
|
|
transform: translate(-20px, 20px); |
|
|
opacity: 0.8; |
|
|
} |
|
|
100% { |
|
|
transform: translate(0, 0); |
|
|
opacity: 0.6; |
|
|
} |
|
|
} |
|
|
|
|
|
@keyframes float-2 { |
|
|
0% { |
|
|
transform: translate(0, 0) rotate(0deg); |
|
|
opacity: 0.6; |
|
|
} |
|
|
25% { |
|
|
transform: translate(-30px, 10px) rotate(10deg); |
|
|
opacity: 0.8; |
|
|
} |
|
|
50% { |
|
|
transform: translate(-20px, 30px) rotate(20deg); |
|
|
opacity: 1; |
|
|
} |
|
|
75% { |
|
|
transform: translate(10px, 20px) rotate(10deg); |
|
|
opacity: 0.8; |
|
|
} |
|
|
100% { |
|
|
transform: translate(0, 0) rotate(0deg); |
|
|
opacity: 0.6; |
|
|
} |
|
|
} |
|
|
|
|
|
@keyframes float-3 { |
|
|
0% { |
|
|
transform: translate(0, 0) scale(1); |
|
|
opacity: 0.6; |
|
|
} |
|
|
25% { |
|
|
transform: translate(15px, -15px) scale(1.1); |
|
|
opacity: 0.8; |
|
|
} |
|
|
50% { |
|
|
transform: translate(30px, 0) scale(1.2); |
|
|
opacity: 1; |
|
|
} |
|
|
75% { |
|
|
transform: translate(15px, 15px) scale(1.1); |
|
|
opacity: 0.8; |
|
|
} |
|
|
100% { |
|
|
transform: translate(0, 0) scale(1); |
|
|
opacity: 0.6; |
|
|
} |
|
|
} |
|
|
|
|
|
@keyframes float-4 { |
|
|
0% { |
|
|
transform: translate(0, 0) skew(0deg); |
|
|
opacity: 0.6; |
|
|
} |
|
|
25% { |
|
|
transform: translate(-10px, 25px) skew(5deg); |
|
|
opacity: 0.8; |
|
|
} |
|
|
50% { |
|
|
transform: translate(0, 50px) skew(0deg); |
|
|
opacity: 1; |
|
|
} |
|
|
75% { |
|
|
transform: translate(10px, 25px) skew(-5deg); |
|
|
opacity: 0.8; |
|
|
} |
|
|
100% { |
|
|
transform: translate(0, 0) skew(0deg); |
|
|
opacity: 0.6; |
|
|
} |
|
|
} |
|
|
|
|
|
.quote-icon { |
|
|
position: absolute; |
|
|
top: 20px; |
|
|
right: 20px; |
|
|
opacity: 0.1; |
|
|
font-size: 60px; |
|
|
color: #6366f1; |
|
|
} |
|
|
|
|
|
@keyframes avatar-float { |
|
|
0%, 100% { |
|
|
transform: translateY(0); |
|
|
} |
|
|
50% { |
|
|
transform: translateY(-10px); |
|
|
} |
|
|
} |
|
|
|
|
|
.avatar { |
|
|
animation: avatar-float 4s ease-in-out infinite; |
|
|
box-shadow: 0 10px 25px -5px rgba(99, 102, 241, 0.4); |
|
|
} |
|
|
|
|
|
.content-wrapper { |
|
|
position: relative; |
|
|
z-index: 10; |
|
|
backdrop-filter: blur(10px); |
|
|
background: rgba(31, 41, 55, 0.7); |
|
|
border-radius: 0.75rem; |
|
|
padding: 2rem; |
|
|
} |
|
|
|
|
|
.stars { |
|
|
position: relative; |
|
|
display: inline-block; |
|
|
} |
|
|
|
|
|
.stars::after { |
|
|
content: ''; |
|
|
position: absolute; |
|
|
top: -5px; |
|
|
left: -5px; |
|
|
right: -5px; |
|
|
bottom: -5px; |
|
|
background: rgba(255, 255, 255, 0.1); |
|
|
border-radius: 9999px; |
|
|
z-index: -1; |
|
|
filter: blur(5px); |
|
|
} |
|
|
</style> |
|
|
</head> |
|
|
<body class="bg-gray-900 min-h-screen flex items-center justify-center p-4"> |
|
|
<div class="testimonial-card max-w-md w-full rounded-xl shadow-2xl relative"> |
|
|
|
|
|
<div class="light-effect light-1"></div> |
|
|
<div class="light-effect light-2"></div> |
|
|
<div class="light-effect light-3"></div> |
|
|
<div class="light-effect light-4"></div> |
|
|
|
|
|
<div class="content-wrapper"> |
|
|
<i class="fas fa-quote-right quote-icon"></i> |
|
|
|
|
|
<div class="flex flex-col items-center mb-6"> |
|
|
<div class="avatar w-20 h-20 rounded-full overflow-hidden border-4 border-indigo-500/20 mb-4"> |
|
|
<img src="https://randomuser.me/api/portraits/women/44.jpg" alt="User" class="w-full h-full object-cover"> |
|
|
</div> |
|
|
<div class="text-center"> |
|
|
<h3 class="text-xl font-bold text-white">Sarah Johnson</h3> |
|
|
<p class="text-indigo-300 text-sm">Marketing Director</p> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="relative"> |
|
|
<p class="text-gray-200 mb-6 text-center italic"> |
|
|
"This service completely transformed our workflow. The team was professional, responsive, and delivered beyond our expectations. Our productivity increased by 40% in just two weeks!" |
|
|
</p> |
|
|
|
|
|
<div class="stars flex justify-center space-x-1"> |
|
|
<i class="fas fa-star text-yellow-400"></i> |
|
|
<i class="fas fa-star text-yellow-400"></i> |
|
|
<i class="fas fa-star text-yellow-400"></i> |
|
|
<i class="fas fa-star text-yellow-400"></i> |
|
|
<i class="fas fa-star text-yellow-400"></i> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<script> |
|
|
document.addEventListener('DOMContentLoaded', function() { |
|
|
const lightEffects = [ |
|
|
document.querySelector('.light-1'), |
|
|
document.querySelector('.light-2'), |
|
|
document.querySelector('.light-3'), |
|
|
document.querySelector('.light-4') |
|
|
]; |
|
|
|
|
|
const colorPalettes = [ |
|
|
['#6366f1', '#ec4899', '#10b981', '#f59e0b'], |
|
|
['#3b82f6', '#8b5cf6', '#84cc16', '#f97316'], |
|
|
['#ef4444', '#14b8a6', '#a855f7', '#eab308'], |
|
|
['#06b6d4', '#d946ef', '#f43f5e', '#22c55e'] |
|
|
]; |
|
|
|
|
|
|
|
|
lightEffects[0].style.animation = 'float-1 12s infinite ease-in-out'; |
|
|
lightEffects[1].style.animation = 'float-2 15s infinite ease-in-out'; |
|
|
lightEffects[2].style.animation = 'float-3 10s infinite ease-in-out'; |
|
|
lightEffects[3].style.animation = 'float-4 18s infinite ease-in-out'; |
|
|
|
|
|
|
|
|
function cycleColors() { |
|
|
const paletteIndex = Math.floor(Math.random() * colorPalettes.length); |
|
|
const colors = colorPalettes[paletteIndex]; |
|
|
|
|
|
lightEffects.forEach((light, index) => { |
|
|
light.style.background = modifyColor(colors[index], 0.5); |
|
|
|
|
|
|
|
|
light.style.transition = 'background 8s ease-in-out'; |
|
|
|
|
|
|
|
|
setTimeout(() => { |
|
|
light.style.transition = ''; |
|
|
}, 8000); |
|
|
}); |
|
|
|
|
|
|
|
|
document.querySelector('.quote-icon').style.color = colors[0]; |
|
|
|
|
|
return colors; |
|
|
} |
|
|
|
|
|
|
|
|
function modifyColor(hex, opacity) { |
|
|
const r = parseInt(hex.slice(1, 3), 16); |
|
|
const g = parseInt(hex.slice(3, 5), 16); |
|
|
const b = parseInt(hex.slice(5, 7), 16); |
|
|
|
|
|
return `rgba(${r}, ${g}, ${b}, ${opacity})`; |
|
|
} |
|
|
|
|
|
|
|
|
cycleColors(); |
|
|
setInterval(cycleColors, 8000); |
|
|
|
|
|
|
|
|
const card = document.querySelector('.testimonial-card'); |
|
|
card.addEventListener('mouseenter', () => { |
|
|
const interval = setInterval(cycleColors, 2000); |
|
|
card.addEventListener('mouseleave', () => { |
|
|
clearInterval(interval); |
|
|
setTimeout(cycleColors, 2000); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
const testimonials = [ |
|
|
{ |
|
|
name: "Sarah Johnson", |
|
|
role: "Marketing Director", |
|
|
quote: "This service completely transformed our workflow. The team was professional, responsive, and delivered beyond our expectations. Our productivity increased by 40% in just two weeks!", |
|
|
image: "https://randomuser.me/api/portraits/women/44.jpg" |
|
|
}, |
|
|
{ |
|
|
name: "Michael Chen", |
|
|
role: "CTO, TechStart", |
|
|
quote: "The implementation was seamless and the support team was incredibly helpful. We've seen a 30% reduction in operational costs since adopting this solution.", |
|
|
image: "https://randomuser.me/api/portraits/men/32.jpg" |
|
|
}, |
|
|
{ |
|
|
name: "Emma Rodriguez", |
|
|
role: "Product Manager", |
|
|
quote: "I was skeptical at first, but the results speak for themselves. Our customer satisfaction scores have never been higher!", |
|
|
image: "https://randomuser.me/api/portraits/women/65.jpg" |
|
|
} |
|
|
]; |
|
|
|
|
|
let currentTestimonial = 0; |
|
|
|
|
|
function rotateTestimonial() { |
|
|
currentTestimonial = (currentTestimonial + 1) % testimonials.length; |
|
|
const testimonial = testimonials[currentTestimonial]; |
|
|
|
|
|
|
|
|
card.querySelector('h3').textContent = testimonial.name; |
|
|
card.querySelector('p.text-indigo-300').textContent = testimonial.role; |
|
|
card.querySelector('p.text-gray-200').textContent = `"${testimonial.quote}"`; |
|
|
card.querySelector('.avatar img').src = testimonial.image; |
|
|
|
|
|
|
|
|
card.querySelector('.content-wrapper').classList.add('opacity-0', 'scale-95'); |
|
|
setTimeout(() => { |
|
|
card.querySelector('.content-wrapper').classList.remove('opacity-0', 'scale-95'); |
|
|
}, 500); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
</script> |
|
|
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - <a href="https://enzostvs-deepsite.hf.space?remix=zaid3sa/d" style="color: #fff;text-decoration: underline;" target="_blank" >🧬 Remix</a></p></body> |
|
|
</html> |