add a '5 Star Reviews' section with a scrolling selection of reviews.
Browse filesadd an 'Awards and Recognition' section
add a 'Certification / Insured Section'
- index.html +237 -4
index.html
CHANGED
|
@@ -10,11 +10,22 @@
|
|
| 10 |
<script src="https://cdn.jsdelivr.net/npm/animejs/lib/anime.iife.min.js"></script>
|
| 11 |
<script src="https://unpkg.com/feather-icons"></script>
|
| 12 |
<script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.net.min.js"></script>
|
| 13 |
-
|
| 14 |
.gradient-bg {
|
| 15 |
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
| 16 |
}
|
| 17 |
-
.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
transition: all 0.3s ease;
|
| 19 |
}
|
| 20 |
.service-card:hover {
|
|
@@ -298,8 +309,117 @@
|
|
| 298 |
</div>
|
| 299 |
</div>
|
| 300 |
</section>
|
| 301 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 302 |
<section class="py-20 bg-white">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 303 |
<div class="container mx-auto px-4">
|
| 304 |
<div class="text-center mb-16">
|
| 305 |
<h2 class="text-4xl font-bold text-gray-800 mb-4">Service Areas</h2>
|
|
@@ -579,6 +699,119 @@
|
|
| 579 |
// Add mobile menu implementation here
|
| 580 |
alert('Mobile menu would open here');
|
| 581 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 582 |
|
| 583 |
// Vanta.js background animation
|
| 584 |
VANTA.NET({
|
|
@@ -596,6 +829,6 @@
|
|
| 596 |
maxDistance: 22.00,
|
| 597 |
spacing: 18.00
|
| 598 |
});
|
| 599 |
-
|
| 600 |
</body>
|
| 601 |
</html>
|
|
|
|
| 10 |
<script src="https://cdn.jsdelivr.net/npm/animejs/lib/anime.iife.min.js"></script>
|
| 11 |
<script src="https://unpkg.com/feather-icons"></script>
|
| 12 |
<script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.net.min.js"></script>
|
| 13 |
+
<style>
|
| 14 |
.gradient-bg {
|
| 15 |
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
| 16 |
}
|
| 17 |
+
.animate-scroll {
|
| 18 |
+
animation: scroll 30s linear infinite;
|
| 19 |
+
}
|
| 20 |
+
@keyframes scroll {
|
| 21 |
+
0% { transform: translateX(0); }
|
| 22 |
+
100% { transform: translateX(-50%); }
|
| 23 |
+
}
|
| 24 |
+
.review-card {
|
| 25 |
+
min-width: 400px;
|
| 26 |
+
flex-shrink: 0;
|
| 27 |
+
}
|
| 28 |
+
.service-card {
|
| 29 |
transition: all 0.3s ease;
|
| 30 |
}
|
| 31 |
.service-card:hover {
|
|
|
|
| 309 |
</div>
|
| 310 |
</div>
|
| 311 |
</section>
|
| 312 |
+
|
| 313 |
+
<!-- 5 Star Reviews Section -->
|
| 314 |
+
<section class="py-20 bg-gray-50">
|
| 315 |
+
<div class="container mx-auto px-4">
|
| 316 |
+
<div class="text-center mb-16">
|
| 317 |
+
<h2 class="text-4xl font-bold text-gray-800 mb-4">5 Star Reviews</h2>
|
| 318 |
+
<p class="text-xl text-gray-600 max-w-2xl mx-auto">What our customers say about our electrical services</p>
|
| 319 |
+
</div>
|
| 320 |
+
|
| 321 |
+
<div class="relative overflow-hidden">
|
| 322 |
+
<div class="flex space-x-6 animate-scroll" id="reviewsContainer">
|
| 323 |
+
<!-- Reviews will be populated by JavaScript -->
|
| 324 |
+
</div>
|
| 325 |
+
|
| 326 |
+
<div class="flex justify-center mt-8 space-x-4">
|
| 327 |
+
<button class="bg-blue-600 text-white px-6 py-3 rounded-lg hover:bg-blue-700 transition-colors" id="prevReview">
|
| 328 |
+
<i data-feather="chevron-left" class="w-5 h-5"></i>
|
| 329 |
+
</button>
|
| 330 |
+
<button class="bg-blue-600 text-white px-6 py-3 rounded-lg hover:bg-blue-700 transition-colors" id="nextReview">
|
| 331 |
+
<i data-feather="chevron-right" class="w-5 h-5"></i>
|
| 332 |
+
</button>
|
| 333 |
+
</div>
|
| 334 |
+
</div>
|
| 335 |
+
</div>
|
| 336 |
+
</section>
|
| 337 |
+
|
| 338 |
+
<!-- Awards and Recognition Section -->
|
| 339 |
<section class="py-20 bg-white">
|
| 340 |
+
<div class="container mx-auto px-4">
|
| 341 |
+
<div class="text-center mb-16">
|
| 342 |
+
<h2 class="text-4xl font-bold text-gray-800 mb-4">Awards & Recognition</h2>
|
| 343 |
+
<p class="text-xl text-gray-600 max-w-2xl mx-auto">Recognized for excellence in electrical services across Toronto</p>
|
| 344 |
+
</div>
|
| 345 |
+
|
| 346 |
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8">
|
| 347 |
+
<div class="text-center p-6">
|
| 348 |
+
<div class="bg-yellow-100 w-20 h-20 rounded-full flex items-center justify-center mx-auto mb-4">
|
| 349 |
+
<i data-feather="award" class="w-10 h-10 text-yellow-600"></i>
|
| 350 |
+
</div>
|
| 351 |
+
<h3 class="text-xl font-bold text-gray-800 mb-3">Best Electrical Contractor 2024</h2>
|
| 352 |
+
<p class="text-gray-600">Toronto Home Services Awards</p>
|
| 353 |
+
</div>
|
| 354 |
+
|
| 355 |
+
<div class="text-center p-6">
|
| 356 |
+
<div class="bg-blue-100 w-20 h-20 rounded-full flex items-center justify-center mx-auto mb-4">
|
| 357 |
+
<i data-feather="star" class="w-10 h-10 text-blue-600"></i>
|
| 358 |
+
</div>
|
| 359 |
+
<h3 class="text-xl font-bold text-gray-800 mb-3">Excellence in Safety Standards</h3>
|
| 360 |
+
<p class="text-gray-600">Electrical Safety Authority</p>
|
| 361 |
+
</div>
|
| 362 |
+
|
| 363 |
+
<div class="text-center p-6">
|
| 364 |
+
<div class="bg-green-100 w-20 h-20 rounded-full flex items-center justify-center mx-auto mb-4">
|
| 365 |
+
<i data-feather="thumbs-up" class="w-10 h-10 text-green-600"></i>
|
| 366 |
+
</div>
|
| 367 |
+
<h3 class="text-xl font-bold text-gray-800 mb-3">Top Rated Professional</h3>
|
| 368 |
+
<p class="text-gray-600">HomeStars Gold Award</p>
|
| 369 |
+
</div>
|
| 370 |
+
|
| 371 |
+
<div class="text-center p-6">
|
| 372 |
+
<div class="bg-purple-100 w-20 h-20 rounded-full flex items-center justify-center mx-auto mb-4">
|
| 373 |
+
<i data-feather="shield" class="w-10 h-10 text-purple-600"></i>
|
| 374 |
+
</div>
|
| 375 |
+
<h3 class="text-xl font-bold text-gray-800 mb-3">Customer Service Excellence</h3>
|
| 376 |
+
<p class="text-gray-600">Better Business Bureau</p>
|
| 377 |
+
</div>
|
| 378 |
+
</div>
|
| 379 |
+
</div>
|
| 380 |
+
</section>
|
| 381 |
+
|
| 382 |
+
<!-- Certification / Insured Section -->
|
| 383 |
+
<section class="py-20 bg-gray-100">
|
| 384 |
+
<div class="container mx-auto px-4">
|
| 385 |
+
<div class="text-center mb-16">
|
| 386 |
+
<h2 class="text-4xl font-bold text-gray-800 mb-4">Certifications & Insurance</h2>
|
| 387 |
+
<p class="text-xl text-gray-600 max-w-2xl mx-auto">Fully licensed, certified, and insured for your peace of mind</p>
|
| 388 |
+
</div>
|
| 389 |
+
|
| 390 |
+
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
|
| 391 |
+
<div class="bg-white rounded-xl p-8 text-center shadow-lg">
|
| 392 |
+
<div class="bg-blue-50 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4">
|
| 393 |
+
<i data-feather="file-text" class="w-8 h-8 text-blue-600"></i>
|
| 394 |
+
</div>
|
| 395 |
+
<h3 class="text-xl font-bold text-gray-800 mb-4">ESA Licensed</h3>
|
| 396 |
+
<p class="text-gray-600 mb-4">Fully licensed by the Electrical Safety Authority</p>
|
| 397 |
+
<div class="text-blue-600 font-semibold">License #7008307</div>
|
| 398 |
+
</div>
|
| 399 |
+
|
| 400 |
+
<div class="bg-white rounded-xl p-8 text-center shadow-lg">
|
| 401 |
+
<div class="bg-green-50 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4">
|
| 402 |
+
<i data-feather="shield" class="w-8 h-8 text-green-600"></i>
|
| 403 |
+
</div>
|
| 404 |
+
<h3 class="text-xl font-bold text-gray-800 mb-4">Fully Insured</h3>
|
| 405 |
+
<p class="text-gray-600 mb-4">$5 million in liability insurance coverage</p>
|
| 406 |
+
<div class="text-green-600 font-semibold">Comprehensive Coverage</div>
|
| 407 |
+
</div>
|
| 408 |
+
|
| 409 |
+
<div class="bg-white rounded-xl p-8 text-center shadow-lg">
|
| 410 |
+
<div class="bg-purple-50 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4">
|
| 411 |
+
<i data-feather="check-circle" class="w-8 h-8 text-purple-600"></i>
|
| 412 |
+
</div>
|
| 413 |
+
<h3 class="text-xl font-bold text-gray-800 mb-4">ECRA Certified</h3>
|
| 414 |
+
<p class="text-gray-600 mb-4">Certified Electrical Contractor by ECRA</p>
|
| 415 |
+
<div class="text-purple-600 font-semibold">Master Electrician</div>
|
| 416 |
+
</div>
|
| 417 |
+
</div>
|
| 418 |
+
</div>
|
| 419 |
+
</section>
|
| 420 |
+
|
| 421 |
+
<!-- Service Areas Section -->
|
| 422 |
+
<section class="py-20 bg-white">
|
| 423 |
<div class="container mx-auto px-4">
|
| 424 |
<div class="text-center mb-16">
|
| 425 |
<h2 class="text-4xl font-bold text-gray-800 mb-4">Service Areas</h2>
|
|
|
|
| 699 |
// Add mobile menu implementation here
|
| 700 |
alert('Mobile menu would open here');
|
| 701 |
});
|
| 702 |
+
// Reviews data
|
| 703 |
+
const reviews = [
|
| 704 |
+
{
|
| 705 |
+
name: "Sarah Johnson",
|
| 706 |
+
rating: 5,
|
| 707 |
+
date: "2024-12-15",
|
| 708 |
+
text: "MP Electric did an outstanding job upgrading our electrical panel. Professional, punctual, and the quality of work was exceptional. Highly recommend their services!",
|
| 709 |
+
service: "Service Upgrade"
|
| 710 |
+
},
|
| 711 |
+
{
|
| 712 |
+
name: "Michael Chen",
|
| 713 |
+
rating: 5,
|
| 714 |
+
date: "2024-12-10",
|
| 715 |
+
text: "Excellent service from start to finish. They replaced all our knob and tube wiring and were very clean and efficient.",
|
| 716 |
+
service: "Knob & Tube Rewire"
|
| 717 |
+
},
|
| 718 |
+
{
|
| 719 |
+
name: "The Wilson Family",
|
| 720 |
+
rating: 5,
|
| 721 |
+
date: "2024-12-05",
|
| 722 |
+
text: "The team at MP Electric installed our EV charging station perfectly. Very knowledgeable and professional.",
|
| 723 |
+
service: "EV Charging Station"
|
| 724 |
+
},
|
| 725 |
+
{
|
| 726 |
+
name: "Jennifer Martinez",
|
| 727 |
+
rating: 5,
|
| 728 |
+
date: "2024-11-28",
|
| 729 |
+
text: "Quick response for emergency electrical repair. Fixed our issue same day and the pricing was very fair.",
|
| 730 |
+
service: "Emergency Repair"
|
| 731 |
+
},
|
| 732 |
+
{
|
| 733 |
+
name: "Robert Williams",
|
| 734 |
+
rating: 5,
|
| 735 |
+
date: "2024-11-20",
|
| 736 |
+
text: "Outstanding work on our basement renovation. The lighting design and installation exceeded our expectations.",
|
| 737 |
+
service: "Basement Renovation"
|
| 738 |
+
},
|
| 739 |
+
{
|
| 740 |
+
name: "Amanda Thompson",
|
| 741 |
+
rating: 5,
|
| 742 |
+
date: "2024-11-15",
|
| 743 |
+
text: "Professional, reliable, and high-quality work. They installed new LED lighting throughout our office space.",
|
| 744 |
+
service: "LED Retrofitting"
|
| 745 |
+
},
|
| 746 |
+
{
|
| 747 |
+
name: "David Park",
|
| 748 |
+
rating: 5,
|
| 749 |
+
date: "2024-11-08",
|
| 750 |
+
text: "Great experience from the initial consultation to the final installation. Will definitely use MP Electric again.",
|
| 751 |
+
service: "General Electrical"
|
| 752 |
+
}
|
| 753 |
+
];
|
| 754 |
+
|
| 755 |
+
// Populate reviews
|
| 756 |
+
const reviewsContainer = document.getElementById('reviewsContainer');
|
| 757 |
+
reviews.forEach(review => {
|
| 758 |
+
const stars = '★'.repeat(review.rating);
|
| 759 |
+
const reviewCard = document.createElement('div');
|
| 760 |
+
reviewCard.className = 'review-card bg-white rounded-xl p-6 shadow-lg border border-gray-200";
|
| 761 |
+
reviewCard.innerHTML = `
|
| 762 |
+
<div class="flex items-center mb-4">
|
| 763 |
+
<div class="flex text-yellow-400 text-lg">${stars}</div>
|
| 764 |
+
<div class="ml-auto text-sm text-gray-500">${review.date}</div>
|
| 765 |
+
</div>
|
| 766 |
+
<p class="text-gray-700 mb-4">"${review.text}"</p>
|
| 767 |
+
<div class="flex justify-between items-center">
|
| 768 |
+
<div>
|
| 769 |
+
<div class="font-semibold text-gray-800">${review.name}</div>
|
| 770 |
+
<div class="text-blue-600 font-medium">${review.service}</div>
|
| 771 |
+
</div>
|
| 772 |
+
`;
|
| 773 |
+
reviewsContainer.appendChild(reviewCard);
|
| 774 |
+
});
|
| 775 |
+
|
| 776 |
+
// Duplicate reviews for infinite scroll
|
| 777 |
+
reviews.forEach(review => {
|
| 778 |
+
const stars = '★'.repeat(review.rating);
|
| 779 |
+
const reviewCard = document.createElement('div');
|
| 780 |
+
reviewCard.className = 'review-card bg-white rounded-xl p-6 shadow-lg border border-gray-200";
|
| 781 |
+
reviewCard.innerHTML = `
|
| 782 |
+
<div class="flex items-center mb-4">
|
| 783 |
+
<div class="flex text-yellow-400 text-lg">${stars}</div>
|
| 784 |
+
<div class="ml-auto text-sm text-gray-500">${review.date}</div>
|
| 785 |
+
</div>
|
| 786 |
+
<p class="text-gray-700 mb-4">"${review.text}"</p>
|
| 787 |
+
<div class="flex justify-between items-center">
|
| 788 |
+
<div>
|
| 789 |
+
<div class="font-semibold text-gray-800">${review.name}</div>
|
| 790 |
+
<div class="text-blue-600 font-medium">${review.service}</div>
|
| 791 |
+
</div>
|
| 792 |
+
`;
|
| 793 |
+
reviewsContainer.appendChild(reviewCard);
|
| 794 |
+
});
|
| 795 |
+
|
| 796 |
+
// Review navigation
|
| 797 |
+
let currentReview = 0;
|
| 798 |
+
const reviewCards = document.querySelectorAll('.review-card');
|
| 799 |
+
|
| 800 |
+
document.getElementById('prevReview').addEventListener('click', () => {
|
| 801 |
+
currentReview = (currentReview - 1 + reviews.length) % reviews.length;
|
| 802 |
+
updateReviewDisplay();
|
| 803 |
+
});
|
| 804 |
+
|
| 805 |
+
document.getElementById('nextReview').addEventListener('click', () => {
|
| 806 |
+
currentReview = (currentReview + 1) % reviews.length;
|
| 807 |
+
updateReviewDisplay();
|
| 808 |
+
});
|
| 809 |
+
|
| 810 |
+
function updateReviewDisplay() {
|
| 811 |
+
reviewCards.forEach((card, index) => {
|
| 812 |
+
card.style.display = Math.floor(index / reviews.length) === Math.floor(currentReview / reviews.length) ? 'block' : 'none';
|
| 813 |
+
});
|
| 814 |
+
}
|
| 815 |
|
| 816 |
// Vanta.js background animation
|
| 817 |
VANTA.NET({
|
|
|
|
| 829 |
maxDistance: 22.00,
|
| 830 |
spacing: 18.00
|
| 831 |
});
|
| 832 |
+
</script>
|
| 833 |
</body>
|
| 834 |
</html>
|