File size: 5,859 Bytes
a611752 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | class CustomTestimonials extends HTMLElement {
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
<style>
:host {
display: block;
padding: 6rem 0;
background-color: white;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 2rem;
}
.header {
text-align: center;
margin-bottom: 4rem;
}
.section-title {
font-size: 2.25rem;
font-weight: 700;
color: #1f2937;
margin-bottom: 1rem;
}
.section-subtitle {
color: #6b7280;
max-width: 600px;
margin: 0 auto;
}
.testimonials-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
}
.testimonial-card {
background-color: #f9fafb;
border-radius: 0.5rem;
padding: 2rem;
position: relative;
}
.testimonial-quote {
position: absolute;
top: 1.5rem;
left: 1.5rem;
opacity: 0.1;
font-size: 3rem;
line-height: 1;
color: var(--primary);
}
.testimonial-content {
margin-top: 2rem;
margin-bottom: 1.5rem;
color: #4b5563;
line-height: 1.6;
font-style: italic;
}
.testimonial-author {
display: flex;
align-items: center;
gap: 1rem;
}
.author-avatar {
width: 3rem;
height: 3rem;
border-radius: 50%;
object-fit: cover;
}
.author-info {
display: flex;
flex-direction: column;
}
.author-name {
font-weight: 600;
color: #1f2937;
}
.author-title {
font-size: 0.875rem;
color: #6b7280;
}
</style>
<div class="container" id="testimonials">
<div class="header observe-me">
<h2 class="section-title">Client <span class="gradient-text">Testimonials</span></h2>
<p class="section-subtitle">Don't just take our word for it. Here's what our clients have to say about working with us.</p>
</div>
<div class="testimonials-grid">
<div class="testimonial-card observe-me delay-100">
<div class="testimonial-quote">"</div>
<p class="testimonial-content">Working with PixelPulse was a game-changer for our business. Their web design expertise helped us triple our online conversions in just three months.</p>
<div class="testimonial-author">
<img src="http://static.photos/people/200x200/1" alt="Sarah Johnson" class="author-avatar">
<div class="author-info">
<span class="author-name">Sarah Johnson</span>
<span class="author-title">CEO, TechStart Inc.</span>
</div>
</div>
</div>
<div class="testimonial-card observe-me delay-200">
<div class="testimonial-quote">"</div>
<p class="testimonial-content">The mobile app they developed for us exceeded all expectations. The user experience is flawless, and our customer engagement has never been higher.</p>
<div class="testimonial-author">
<img src="http://static.photos/people/200x200/2" alt="Michael Chen" class="author-avatar">
<div class="author-info">
<span class="author-name">Michael Chen</span>
<span class="author-title">Founder, FitTrack</span>
</div>
</div>
</div>
<div class="testimonial-card observe-me delay-300">
<div class="testimonial-quote">"</div>
<p class="testimonial-content">Their attention to detail and creative approach transformed our outdated website into a modern, high-performing digital asset that truly represents our brand.</p>
<div class="testimonial-author">
<img src="http://static.photos/people/200x200/3" alt="Emily Rodriguez" class="author-avatar">
<div class="author-info">
<span class="author-name">Emily Rodriguez</span>
<span class="author-title">Marketing Director, LuxeLiving</span>
</div>
</div>
</div>
</div>
</div>
`;
}
}
customElements.define('custom-testimonials', CustomTestimonials); |