Abmacode12 commited on
Commit
4abcd02
·
verified ·
1 Parent(s): 189b50b

Create a non-profit organization website with mission statement hero, our impact statistics, current campaigns, donation form with amounts, volunteer opportunities, success stories, upcoming events, and newsletter signup.

Browse files
Files changed (6) hide show
  1. README.md +8 -5
  2. components/footer.js +107 -0
  3. components/navbar.js +122 -0
  4. index.html +342 -19
  5. script.js +71 -0
  6. style.css +42 -19
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Heartbeats For Humanity
3
- emoji: 🏆
4
- colorFrom: blue
5
- colorTo: gray
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: HeartBeats for Humanity ❤️
3
+ colorFrom: purple
4
+ colorTo: blue
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
components/footer.js ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomFooter extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ .footer-link {
7
+ transition: all 0.2s ease;
8
+ }
9
+ .footer-link:hover {
10
+ color: #dc2626;
11
+ transform: translateX(4px);
12
+ }
13
+ .social-icon {
14
+ transition: all 0.2s ease;
15
+ }
16
+ .social-icon:hover {
17
+ transform: translateY(-3px);
18
+ color: #dc2626;
19
+ }
20
+ </style>
21
+ <footer class="bg-gray-900 text-white pt-16 pb-8">
22
+ <div class="max-w-6xl mx-auto px-4">
23
+ <div class="grid grid-cols-1 md:grid-cols-4 gap-12">
24
+ <div>
25
+ <div class="flex items-center space-x-2 mb-6">
26
+ <i data-feather="heart" class="w-6 h-6 text-red-600"></i>
27
+ <span class="font-bold text-xl">HeartBeats</span>
28
+ </div>
29
+ <p class="text-gray-400 mb-6">Making the world a better place through compassion, action, and community.</p>
30
+ <div class="flex space-x-4">
31
+ <a href="#" class="social-icon text-gray-400 hover:text-red-600">
32
+ <i data-feather="facebook"></i>
33
+ </a>
34
+ <a href="#" class="social-icon text-gray-400 hover:text-red-600">
35
+ <i data-feather="twitter"></i>
36
+ </a>
37
+ <a href="#" class="social-icon text-gray-400 hover:text-red-600">
38
+ <i data-feather="instagram"></i>
39
+ </a>
40
+ <a href="#" class="social-icon text-gray-400 hover:text-red-600">
41
+ <i data-feather="linkedin"></i>
42
+ </a>
43
+ <a href="#" class="social-icon text-gray-400 hover:text-red-600">
44
+ <i data-feather="youtube"></i>
45
+ </a>
46
+ </div>
47
+ </div>
48
+
49
+ <div>
50
+ <h3 class="text-lg font-semibold mb-6">Quick Links</h3>
51
+ <ul class="space-y-3">
52
+ <li><a href="#" class="footer-link text-gray-400 hover:text-red-600 flex items-center"><i data-feather="chevron-right" class="w-4 h-4 mr-2"></i> About Us</a></li>
53
+ <li><a href="#" class="footer-link text-gray-400 hover:text-red-600 flex items-center"><i data-feather="chevron-right" class="w-4 h-4 mr-2"></i> Our Work</a></li>
54
+ <li><a href="#" class="footer-link text-gray-400 hover:text-red-600 flex items-center"><i data-feather="chevron-right" class="w-4 h-4 mr-2"></i> Success Stories</a></li>
55
+ <li><a href="#" class="footer-link text-gray-400 hover:text-red-600 flex items-center"><i data-feather="chevron-right" class="w-4 h-4 mr-2"></i> Careers</a></li>
56
+ <li><a href="#" class="footer-link text-gray-400 hover:text-red-600 flex items-center"><i data-feather="chevron-right" class="w-4 h-4 mr-2"></i> Contact Us</a></li>
57
+ </ul>
58
+ </div>
59
+
60
+ <div>
61
+ <h3 class="text-lg font-semibold mb-6">Ways to Help</h3>
62
+ <ul class="space-y-3">
63
+ <li><a href="#" class="footer-link text-gray-400 hover:text-red-600 flex items-center"><i data-feather="chevron-right" class="w-4 h-4 mr-2"></i> Donate</a></li>
64
+ <li><a href="#" class="footer-link text-gray-400 hover:text-red-600 flex items-center"><i data-feather="chevron-right" class="w-4 h-4 mr-2"></i> Fundraise</a></li>
65
+ <li><a href="#" class="footer-link text-gray-400 hover:text-red-600 flex items-center"><i data-feather="chevron-right" class="w-4 h-4 mr-2"></i> Volunteer</a></li>
66
+ <li><a href="#" class="footer-link text-gray-400 hover:text-red-600 flex items-center"><i data-feather="chevron-right" class="w-4 h-4 mr-2"></i> Partner With Us</a></li>
67
+ <li><a href="#" class="footer-link text-gray-400 hover:text-red-600 flex items-center"><i data-feather="chevron-right" class="w-4 h-4 mr-2"></i> Corporate Giving</a></li>
68
+ </ul>
69
+ </div>
70
+
71
+ <div>
72
+ <h3 class="text-lg font-semibold mb-6">Contact Info</h3>
73
+ <ul class="space-y-3 text-gray-400">
74
+ <li class="flex items-start">
75
+ <i data-feather="map-pin" class="w-5 h-5 mr-3 mt-1 flex-shrink-0"></i>
76
+ <span>123 Charity Lane, Compassion City, CC 12345</span>
77
+ </li>
78
+ <li class="flex items-center">
79
+ <i data-feather="mail" class="w-5 h-5 mr-3"></i>
80
+ <span>info@heartbeats.org</span>
81
+ </li>
82
+ <li class="flex items-center">
83
+ <i data-feather="phone" class="w-5 h-5 mr-3"></i>
84
+ <span>(123) 456-7890</span>
85
+ </li>
86
+ </ul>
87
+ </div>
88
+ </div>
89
+
90
+ <div class="border-t border-gray-800 mt-12 pt-8 flex flex-col md:flex-row justify-between items-center">
91
+ <p class="text-gray-500 text-sm mb-4 md:mb-0">© 2023 HeartBeats for Humanity. All rights reserved.</p>
92
+ <div class="flex space-x-6">
93
+ <a href="#" class="text-gray-500 hover:text-gray-400 text-sm">Privacy Policy</a>
94
+ <a href="#" class="text-gray-500 hover:text-gray-400 text-sm">Terms of Service</a>
95
+ <a href="#" class="text-gray-500 hover:text-gray-400 text-sm">Sitemap</a>
96
+ </div>
97
+ </div>
98
+ </div>
99
+ </footer>
100
+ `;
101
+
102
+ // Initialize feather icons
103
+ feather.replace();
104
+ }
105
+ }
106
+
107
+ customElements.define('custom-footer', CustomFooter);
components/navbar.js ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ .navbar {
7
+ transition: all 0.3s ease;
8
+ }
9
+ .navbar.scrolled {
10
+ background-color: white;
11
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
12
+ }
13
+ .nav-link {
14
+ position: relative;
15
+ }
16
+ .nav-link::after {
17
+ content: '';
18
+ position: absolute;
19
+ width: 0;
20
+ height: 2px;
21
+ bottom: -2px;
22
+ left: 0;
23
+ background-color: #dc2626;
24
+ transition: width 0.3s ease;
25
+ }
26
+ .nav-link:hover::after {
27
+ width: 100%;
28
+ }
29
+ .mobile-menu {
30
+ max-height: 0;
31
+ overflow: hidden;
32
+ transition: max-height 0.3s ease-out;
33
+ }
34
+ .mobile-menu.open {
35
+ max-height: 500px;
36
+ }
37
+ @media (min-width: 768px) {
38
+ .mobile-menu {
39
+ max-height: none !important;
40
+ }
41
+ }
42
+ </style>
43
+ <nav class="navbar fixed w-full z-50 bg-white md:bg-transparent text-gray-800 md:text-white">
44
+ <div class="max-w-6xl mx-auto px-4">
45
+ <div class="flex justify-between items-center py-4">
46
+ <a href="/" class="flex items-center space-x-2">
47
+ <i data-feather="heart" class="w-6 h-6 text-red-600"></i>
48
+ <span class="font-bold text-xl">HeartBeats</span>
49
+ </a>
50
+
51
+ <!-- Desktop Navigation -->
52
+ <div class="hidden md:flex items-center space-x-8">
53
+ <a href="#about" class="nav-link">About</a>
54
+ <a href="#campaigns" class="nav-link">Campaigns</a>
55
+ <a href="#donate" class="nav-link">Donate</a>
56
+ <a href="#volunteer" class="nav-link">Volunteer</a>
57
+ <a href="#contact" class="nav-link">Contact</a>
58
+ <a href="#donate" class="bg-red-600 hover:bg-red-700 text-white px-4 py-2 rounded-full font-medium transition duration-300">Donate Now</a>
59
+ </div>
60
+
61
+ <!-- Mobile menu button -->
62
+ <div class="md:hidden">
63
+ <button id="mobile-menu-button" class="outline-none">
64
+ <i data-feather="menu" class="w-6 h-6"></i>
65
+ </button>
66
+ </div>
67
+ </div>
68
+ </div>
69
+
70
+ <!-- Mobile Menu -->
71
+ <div id="mobile-menu" class="mobile-menu md:hidden bg-white text-gray-800">
72
+ <div class="px-4 py-2 space-y-4">
73
+ <a href="#about" class="block px-3 py-2 rounded hover:bg-gray-100">About</a>
74
+ <a href="#campaigns" class="block px-3 py-2 rounded hover:bg-gray-100">Campaigns</a>
75
+ <a href="#donate" class="block px-3 py-2 rounded hover:bg-gray-100">Donate</a>
76
+ <a href="#volunteer" class="block px-3 py-2 rounded hover:bg-gray-100">Volunteer</a>
77
+ <a href="#contact" class="block px-3 py-2 rounded hover:bg-gray-100">Contact</a>
78
+ <a href="#donate" class="block bg-red-600 text-white text-center px-3 py-2 rounded-full font-medium">Donate Now</a>
79
+ </div>
80
+ </div>
81
+ </nav>
82
+ `;
83
+
84
+ // Mobile menu toggle
85
+ const mobileMenuButton = this.shadowRoot.getElementById('mobile-menu-button');
86
+ const mobileMenu = this.shadowRoot.getElementById('mobile-menu');
87
+
88
+ mobileMenuButton.addEventListener('click', () => {
89
+ mobileMenu.classList.toggle('open');
90
+ const icon = mobileMenuButton.querySelector('i');
91
+ if (mobileMenu.classList.contains('open')) {
92
+ feather.replace();
93
+ icon.setAttribute('data-feather', 'x');
94
+ } else {
95
+ feather.replace();
96
+ icon.setAttribute('data-feather', 'menu');
97
+ }
98
+ feather.replace();
99
+ });
100
+
101
+ // Change navbar style on scroll
102
+ window.addEventListener('scroll', () => {
103
+ const navbar = this.shadowRoot.querySelector('.navbar');
104
+ if (window.scrollY > 50) {
105
+ navbar.classList.add('scrolled');
106
+ navbar.classList.remove('text-white');
107
+ navbar.classList.add('text-gray-800');
108
+ } else {
109
+ navbar.classList.remove('scrolled');
110
+ if (window.innerWidth >= 768) {
111
+ navbar.classList.remove('text-gray-800');
112
+ navbar.classList.add('text-white');
113
+ }
114
+ }
115
+ });
116
+
117
+ // Initialize feather icons
118
+ feather.replace();
119
+ }
120
+ }
121
+
122
+ customElements.define('custom-navbar', CustomNavbar);
index.html CHANGED
@@ -1,19 +1,342 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>HeartBeats for Humanity | Making the World Better</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="https://unpkg.com/feather-icons"></script>
11
+ <script src="components/navbar.js"></script>
12
+ <script src="components/footer.js"></script>
13
+ </head>
14
+ <body class="bg-gray-50">
15
+ <custom-navbar></custom-navbar>
16
+
17
+ <!-- Hero Section -->
18
+ <section class="relative bg-gradient-to-r from-red-600 to-red-800 text-white py-20 md:py-32 px-4">
19
+ <div class="max-w-6xl mx-auto text-center">
20
+ <h1 class="text-4xl md:text-6xl font-bold mb-6">Every Heartbeat Counts</h1>
21
+ <p class="text-xl md:text-2xl max-w-3xl mx-auto mb-8">We're on a mission to create lasting change through compassion, action, and community.</p>
22
+ <div class="flex flex-col sm:flex-row justify-center gap-4">
23
+ <a href="#donate" class="bg-white text-red-700 hover:bg-gray-100 px-8 py-3 rounded-full font-bold text-lg transition duration-300">Donate Now</a>
24
+ <a href="#volunteer" class="border-2 border-white hover:bg-white hover:text-red-700 px-8 py-3 rounded-full font-bold text-lg transition duration-300">Volunteer</a>
25
+ </div>
26
+ </div>
27
+ <div class="absolute bottom-0 left-0 right-0 h-16 bg-white transform skew-y-1 origin-top-left"></div>
28
+ </section>
29
+
30
+ <!-- Impact Stats -->
31
+ <section class="py-16 bg-white">
32
+ <div class="max-w-6xl mx-auto px-4">
33
+ <h2 class="text-3xl font-bold text-center mb-12 text-gray-800">Our Impact in Numbers</h2>
34
+ <div class="grid grid-cols-1 md:grid-cols-4 gap-8">
35
+ <div class="text-center p-6 rounded-lg bg-red-50">
36
+ <div class="text-5xl font-bold text-red-600 mb-2" id="lives-changed">25,000+</div>
37
+ <p class="text-gray-600">Lives Changed</p>
38
+ </div>
39
+ <div class="text-center p-6 rounded-lg bg-red-50">
40
+ <div class="text-5xl font-bold text-red-600 mb-2" id="volunteers">1,200+</div>
41
+ <p class="text-gray-600">Dedicated Volunteers</p>
42
+ </div>
43
+ <div class="text-center p-6 rounded-lg bg-red-50">
44
+ <div class="text-5xl font-bold text-red-600 mb-2" id="countries">18</div>
45
+ <p class="text-gray-600">Countries Reached</p>
46
+ </div>
47
+ <div class="text-center p-6 rounded-lg bg-red-50">
48
+ <div class="text-5xl font-bold text-red-600 mb-2" id="projects">47</div>
49
+ <p class="text-gray-600">Active Projects</p>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </section>
54
+
55
+ <!-- Current Campaigns -->
56
+ <section class="py-16 bg-gray-50">
57
+ <div class="max-w-6xl mx-auto px-4">
58
+ <h2 class="text-3xl font-bold text-center mb-12 text-gray-800">Current Campaigns</h2>
59
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
60
+ <div class="bg-white rounded-xl overflow-hidden shadow-lg hover:shadow-xl transition duration-300">
61
+ <img src="http://static.photos/people/640x360/1" alt="Education for All" class="w-full h-48 object-cover">
62
+ <div class="p-6">
63
+ <h3 class="text-xl font-bold mb-2 text-gray-800">Education for All</h3>
64
+ <p class="text-gray-600 mb-4">Building schools and providing supplies for underprivileged children.</p>
65
+ <div class="w-full bg-gray-200 rounded-full h-2.5 mb-4">
66
+ <div class="bg-red-600 h-2.5 rounded-full" style="width: 65%"></div>
67
+ </div>
68
+ <div class="flex justify-between text-sm text-gray-500">
69
+ <span>$65,000 raised</span>
70
+ <span>$100,000 goal</span>
71
+ </div>
72
+ <a href="#" class="mt-4 inline-block text-red-600 font-semibold hover:text-red-700">Learn More →</a>
73
+ </div>
74
+ </div>
75
+ <div class="bg-white rounded-xl overflow-hidden shadow-lg hover:shadow-xl transition duration-300">
76
+ <img src="http://static.photos/food/640x360/2" alt="End Hunger" class="w-full h-48 object-cover">
77
+ <div class="p-6">
78
+ <h3 class="text-xl font-bold mb-2 text-gray-800">End Hunger</h3>
79
+ <p class="text-gray-600 mb-4">Providing meals and sustainable food solutions to communities in need.</p>
80
+ <div class="w-full bg-gray-200 rounded-full h-2.5 mb-4">
81
+ <div class="bg-red-600 h-2.5 rounded-full" style="width: 45%"></div>
82
+ </div>
83
+ <div class="flex justify-between text-sm text-gray-500">
84
+ <span>$45,000 raised</span>
85
+ <span>$100,000 goal</span>
86
+ </div>
87
+ <a href="#" class="mt-4 inline-block text-red-600 font-semibold hover:text-red-700">Learn More →</a>
88
+ </div>
89
+ </div>
90
+ <div class="bg-white rounded-xl overflow-hidden shadow-lg hover:shadow-xl transition duration-300">
91
+ <img src="http://static.photos/medical/640x360/3" alt="Health First" class="w-full h-48 object-cover">
92
+ <div class="p-6">
93
+ <h3 class="text-xl font-bold mb-2 text-gray-800">Health First</h3>
94
+ <p class="text-gray-600 mb-4">Mobile clinics and medical supplies for remote communities.</p>
95
+ <div class="w-full bg-gray-200 rounded-full h-2.5 mb-4">
96
+ <div class="bg-red-600 h-2.5 rounded-full" style="width: 80%"></div>
97
+ </div>
98
+ <div class="flex justify-between text-sm text-gray-500">
99
+ <span>$80,000 raised</span>
100
+ <span>$100,000 goal</span>
101
+ </div>
102
+ <a href="#" class="mt-4 inline-block text-red-600 font-semibold hover:text-red-700">Learn More →</a>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </div>
107
+ </section>
108
+
109
+ <!-- Donation Form -->
110
+ <section id="donate" class="py-16 bg-white">
111
+ <div class="max-w-4xl mx-auto px-4">
112
+ <h2 class="text-3xl font-bold text-center mb-12 text-gray-800">Make a Difference Today</h2>
113
+ <div class="bg-red-50 rounded-xl p-8 shadow-md">
114
+ <form id="donation-form" class="space-y-6">
115
+ <div>
116
+ <label class="block text-gray-700 font-medium mb-2">Select Amount</label>
117
+ <div class="grid grid-cols-2 md:grid-cols-4 gap-4">
118
+ <button type="button" class="donation-amount bg-white border border-gray-300 rounded-lg py-3 px-4 hover:bg-red-100 hover:border-red-300 focus:bg-red-100 focus:border-red-500 focus:ring-2 focus:ring-red-200 transition duration-200">$25</button>
119
+ <button type="button" class="donation-amount bg-white border border-gray-300 rounded-lg py-3 px-4 hover:bg-red-100 hover:border-red-300 focus:bg-red-100 focus:border-red-500 focus:ring-2 focus:ring-red-200 transition duration-200">$50</button>
120
+ <button type="button" class="donation-amount bg-white border border-gray-300 rounded-lg py-3 px-4 hover:bg-red-100 hover:border-red-300 focus:bg-red-100 focus:border-red-500 focus:ring-2 focus:ring-red-200 transition duration-200">$100</button>
121
+ <button type="button" class="donation-amount bg-white border border-gray-300 rounded-lg py-3 px-4 hover:bg-red-100 hover:border-red-300 focus:bg-red-100 focus:border-red-500 focus:ring-2 focus:ring-red-200 transition duration-200">$250</button>
122
+ </div>
123
+ <div class="mt-4">
124
+ <label for="custom-amount" class="block text-gray-700 font-medium mb-2">Or enter custom amount</label>
125
+ <div class="relative">
126
+ <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">$</span>
127
+ <input type="number" id="custom-amount" class="w-full pl-8 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-red-500 focus:border-red-500" placeholder="Other amount">
128
+ </div>
129
+ </div>
130
+ </div>
131
+ <div>
132
+ <label for="frequency" class="block text-gray-700 font-medium mb-2">Donation Frequency</label>
133
+ <select id="frequency" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-red-500 focus:border-red-500">
134
+ <option value="one-time">One-time donation</option>
135
+ <option value="monthly">Monthly donation</option>
136
+ <option value="quarterly">Quarterly donation</option>
137
+ <option value="yearly">Yearly donation</option>
138
+ </select>
139
+ </div>
140
+ <div>
141
+ <label for="name" class="block text-gray-700 font-medium mb-2">Full Name</label>
142
+ <input type="text" id="name" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-red-500 focus:border-red-500" required>
143
+ </div>
144
+ <div>
145
+ <label for="email" class="block text-gray-700 font-medium mb-2">Email</label>
146
+ <input type="email" id="email" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-red-500 focus:border-red-500" required>
147
+ </div>
148
+ <div>
149
+ <label for="payment" class="block text-gray-700 font-medium mb-2">Payment Method</label>
150
+ <div class="space-y-3">
151
+ <div class="flex items-center">
152
+ <input id="credit-card" name="payment" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300" checked>
153
+ <label for="credit-card" class="ml-3 block text-gray-700">Credit/Debit Card</label>
154
+ </div>
155
+ <div class="flex items-center">
156
+ <input id="paypal" name="payment" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
157
+ <label for="paypal" class="ml-3 block text-gray-700">PayPal</label>
158
+ </div>
159
+ <div class="flex items-center">
160
+ <input id="bank-transfer" name="payment" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
161
+ <label for="bank-transfer" class="ml-3 block text-gray-700">Bank Transfer</label>
162
+ </div>
163
+ </div>
164
+ </div>
165
+ <button type="submit" class="w-full bg-red-600 hover:bg-red-700 text-white font-bold py-3 px-4 rounded-lg transition duration-300">Donate Now</button>
166
+ </form>
167
+ </div>
168
+ </div>
169
+ </section>
170
+
171
+ <!-- Volunteer Opportunities -->
172
+ <section id="volunteer" class="py-16 bg-gray-50">
173
+ <div class="max-w-6xl mx-auto px-4">
174
+ <h2 class="text-3xl font-bold text-center mb-12 text-gray-800">Volunteer Opportunities</h2>
175
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
176
+ <div class="bg-white rounded-xl overflow-hidden shadow-lg hover:shadow-xl transition duration-300">
177
+ <img src="http://static.photos/education/640x360/4" alt="Teaching Volunteer" class="w-full h-48 object-cover">
178
+ <div class="p-6">
179
+ <h3 class="text-xl font-bold mb-2 text-gray-800">Teaching Volunteer</h3>
180
+ <p class="text-gray-600 mb-4">Help educate children in underserved communities with basic literacy and numeracy skills.</p>
181
+ <div class="flex items-center text-gray-500 mb-4">
182
+ <i data-feather="clock" class="w-4 h-4 mr-2"></i>
183
+ <span>4-8 hours/week</span>
184
+ </div>
185
+ <div class="flex items-center text-gray-500 mb-4">
186
+ <i data-feather="map-pin" class="w-4 h-4 mr-2"></i>
187
+ <span>Local & International</span>
188
+ </div>
189
+ <a href="#" class="inline-block bg-red-600 hover:bg-red-700 text-white font-semibold py-2 px-6 rounded-full transition duration-300">Apply Now</a>
190
+ </div>
191
+ </div>
192
+ <div class="bg-white rounded-xl overflow-hidden shadow-lg hover:shadow-xl transition duration-300">
193
+ <img src="http://static.photos/medical/640x360/5" alt="Medical Volunteer" class="w-full h-48 object-cover">
194
+ <div class="p-6">
195
+ <h3 class="text-xl font-bold mb-2 text-gray-800">Medical Volunteer</h3>
196
+ <p class="text-gray-600 mb-4">Provide basic healthcare services and health education in rural communities.</p>
197
+ <div class="flex items-center text-gray-500 mb-4">
198
+ <i data-feather="clock" class="w-4 h-4 mr-2"></i>
199
+ <span>Flexible hours</span>
200
+ </div>
201
+ <div class="flex items-center text-gray-500 mb-4">
202
+ <i data-feather="map-pin" class="w-4 h-4 mr-2"></i>
203
+ <span>International</span>
204
+ </div>
205
+ <a href="#" class="inline-block bg-red-600 hover:bg-red-700 text-white font-semibold py-2 px-6 rounded-full transition duration-300">Apply Now</a>
206
+ </div>
207
+ </div>
208
+ <div class="bg-white rounded-xl overflow-hidden shadow-lg hover:shadow-xl transition duration-300">
209
+ <img src="http://static.photos/event/640x360/6" alt="Event Volunteer" class="w-full h-48 object-cover">
210
+ <div class="p-6">
211
+ <h3 class="text-xl font-bold mb-2 text-gray-800">Event Volunteer</h3>
212
+ <p class="text-gray-600 mb-4">Help organize and run fundraising events in your local community.</p>
213
+ <div class="flex items-center text-gray-500 mb-4">
214
+ <i data-feather="clock" class="w-4 h-4 mr-2"></i>
215
+ <span>Occasional</span>
216
+ </div>
217
+ <div class="flex items-center text-gray-500 mb-4">
218
+ <i data-feather="map-pin" class="w-4 h-4 mr-2"></i>
219
+ <span>Your City</span>
220
+ </div>
221
+ <a href="#" class="inline-block bg-red-600 hover:bg-red-700 text-white font-semibold py-2 px-6 rounded-full transition duration-300">Apply Now</a>
222
+ </div>
223
+ </div>
224
+ </div>
225
+ </div>
226
+ </section>
227
+
228
+ <!-- Success Stories -->
229
+ <section class="py-16 bg-white">
230
+ <div class="max-w-6xl mx-auto px-4">
231
+ <h2 class="text-3xl font-bold text-center mb-12 text-gray-800">Success Stories</h2>
232
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
233
+ <div class="bg-gray-50 rounded-xl p-8">
234
+ <div class="flex items-center mb-6">
235
+ <img src="http://static.photos/people/200x200/7" alt="Maria" class="w-16 h-16 rounded-full object-cover mr-4">
236
+ <div>
237
+ <h4 class="font-bold text-gray-800">Maria's Story</h4>
238
+ <p class="text-gray-600">Beneficiary, Education Program</p>
239
+ </div>
240
+ </div>
241
+ <p class="text-gray-700 mb-4">"Thanks to HeartBeats for Humanity, I was able to go back to school after dropping out at age 12. Now I'm studying to become a nurse and help my community."</p>
242
+ <div class="flex space-x-2">
243
+ <i data-feather="star" class="w-4 h-4 text-yellow-400"></i>
244
+ <i data-feather="star" class="w-4 h-4 text-yellow-400"></i>
245
+ <i data-feather="star" class="w-4 h-4 text-yellow-400"></i>
246
+ <i data-feather="star" class="w-4 h-4 text-yellow-400"></i>
247
+ <i data-feather="star" class="w-4 h-4 text-yellow-400"></i>
248
+ </div>
249
+ </div>
250
+ <div class="bg-gray-50 rounded-xl p-8">
251
+ <div class="flex items-center mb-6">
252
+ <img src="http://static.photos/people/200x200/8" alt="James" class="w-16 h-16 rounded-full object-cover mr-4">
253
+ <div>
254
+ <h4 class="font-bold text-gray-800">James' Journey</h4>
255
+ <p class="text-gray-600">Volunteer, 3 years</p>
256
+ </div>
257
+ </div>
258
+ <p class="text-gray-700 mb-4">"Volunteering with HeartBeats has been the most rewarding experience of my life. Seeing the direct impact of our work on communities keeps me motivated to do more."</p>
259
+ <div class="flex space-x-2">
260
+ <i data-feather="star" class="w-4 h-4 text-yellow-400"></i>
261
+ <i data-feather="star" class="w-4 h-4 text-yellow-400"></i>
262
+ <i data-feather="star" class="w-4 h-4 text-yellow-400"></i>
263
+ <i data-feather="star" class="w-4 h-4 text-yellow-400"></i>
264
+ <i data-feather="star" class="w-4 h-4 text-yellow-400"></i>
265
+ </div>
266
+ </div>
267
+ </div>
268
+ </div>
269
+ </section>
270
+
271
+ <!-- Upcoming Events -->
272
+ <section class="py-16 bg-gray-50">
273
+ <div class="max-w-6xl mx-auto px-4">
274
+ <h2 class="text-3xl font-bold text-center mb-12 text-gray-800">Upcoming Events</h2>
275
+ <div class="space-y-6">
276
+ <div class="bg-white rounded-xl overflow-hidden shadow-md hover:shadow-lg transition duration-300">
277
+ <div class="md:flex">
278
+ <div class="md:w-1/3">
279
+ <img src="http://static.photos/event/640x360/9" alt="Annual Gala" class="w-full h-full object-cover">
280
+ </div>
281
+ <div class="p-6 md:w-2/3">
282
+ <div class="flex justify-between items-start mb-2">
283
+ <h3 class="text-xl font-bold text-gray-800">Annual Charity Gala</h3>
284
+ <span class="bg-red-100 text-red-800 text-xs font-semibold px-2.5 py-0.5 rounded">Featured</span>
285
+ </div>
286
+ <div class="flex items-center text-gray-600 mb-4">
287
+ <i data-feather="calendar" class="w-4 h-4 mr-2"></i>
288
+ <span>June 15, 2023 | 6:00 PM</span>
289
+ </div>
290
+ <div class="flex items-center text-gray-600 mb-4">
291
+ <i data-feather="map-pin" class="w-4 h-4 mr-2"></i>
292
+ <span>Grand Ballroom, City Convention Center</span>
293
+ </div>
294
+ <p class="text-gray-700 mb-4">Join us for an evening of inspiration and giving as we celebrate our achievements and plan for the year ahead.</p>
295
+ <a href="#" class="inline-block text-red-600 font-semibold hover:text-red-700">RSVP Now →</a>
296
+ </div>
297
+ </div>
298
+ </div>
299
+ <div class="bg-white rounded-xl overflow-hidden shadow-md hover:shadow-lg transition duration-300">
300
+ <div class="md:flex">
301
+ <div class="md:w-1/3">
302
+ <img src="http://static.photos/education/640x360/10" alt="Education Summit" class="w-full h-full object-cover">
303
+ </div>
304
+ <div class="p-6 md:w-2/3">
305
+ <h3 class="text-xl font-bold text-gray-800 mb-2">Education for All Summit</h3>
306
+ <div class="flex items-center text-gray-600 mb-4">
307
+ <i data-feather="calendar" class="w-4 h-4 mr-2"></i>
308
+ <span>July 8, 2023 | 9:00 AM</span>
309
+ </div>
310
+ <div class="flex items-center text-gray-600 mb-4">
311
+ <i data-feather="map-pin" class="w-4 h-4 mr-2"></i>
312
+ <span>Virtual Event</span>
313
+ </div>
314
+ <p class="text-gray-700 mb-4">A gathering of educators, policymakers, and activists to discuss innovative solutions for global education challenges.</p>
315
+ <a href="#" class="inline-block text-red-600 font-semibold hover:text-red-700">Register Now →</a>
316
+ </div>
317
+ </div>
318
+ </div>
319
+ </div>
320
+ </div>
321
+ </section>
322
+
323
+ <!-- Newsletter Signup -->
324
+ <section class="py-16 bg-red-600 text-white">
325
+ <div class="max-w-4xl mx-auto px-4 text-center">
326
+ <h2 class="text-3xl font-bold mb-4">Stay Connected</h2>
327
+ <p class="text-xl mb-8 max-w-2xl mx-auto">Subscribe to our newsletter to receive updates on our work, events, and how you can help make a difference.</p>
328
+ <form class="flex flex-col sm:flex-row gap-4 max-w-md mx-auto">
329
+ <input type="email" placeholder="Your email address" class="flex-grow px-4 py-3 rounded-lg focus:outline-none focus:ring-2 focus:ring-red-300 text-gray-800">
330
+ <button type="submit" class="bg-white text-red-600 hover:bg-gray-100 font-bold py-3 px-6 rounded-lg transition duration-300">Subscribe</button>
331
+ </form>
332
+ <p class="text-sm mt-4 opacity-80">We respect your privacy. Unsubscribe at any time.</p>
333
+ </div>
334
+ </section>
335
+
336
+ <custom-footer></custom-footer>
337
+
338
+ <script src="script.js"></script>
339
+ <script>feather.replace();</script>
340
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
341
+ </body>
342
+ </html>
script.js ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ document.addEventListener('DOMContentLoaded', function() {
2
+ // Animate impact numbers
3
+ const animateNumbers = () => {
4
+ const counters = document.querySelectorAll('#lives-changed, #volunteers, #countries, #projects');
5
+ const speed = 200;
6
+
7
+ counters.forEach(counter => {
8
+ const target = +counter.innerText.replace('+', '');
9
+ const increment = target / speed;
10
+ let current = 0;
11
+
12
+ const updateCount = () => {
13
+ current += increment;
14
+ if (current < target) {
15
+ counter.innerText = Math.floor(current) + (counter.id === 'lives-changed' || counter.id === 'volunteers' ? '+' : '');
16
+ setTimeout(updateCount, 1);
17
+ } else {
18
+ counter.innerText = target + (counter.id === 'lives-changed' || counter.id === 'volunteers' ? '+' : '');
19
+ }
20
+ };
21
+
22
+ updateCount();
23
+ counter.classList.add('count-up');
24
+ });
25
+ };
26
+
27
+ // Intersection Observer for animations
28
+ const observer = new IntersectionObserver((entries) => {
29
+ entries.forEach(entry => {
30
+ if (entry.isIntersecting) {
31
+ if (entry.target.id === 'lives-changed') {
32
+ animateNumbers();
33
+ }
34
+ entry.target.classList.add('animate-fadeIn');
35
+ }
36
+ });
37
+ }, { threshold: 0.1 });
38
+
39
+ // Observe elements
40
+ document.querySelectorAll('#lives-changed, #volunteers, #countries, #projects').forEach(el => {
41
+ observer.observe(el);
42
+ });
43
+
44
+ // Donation amount selection
45
+ const donationAmounts = document.querySelectorAll('.donation-amount');
46
+ donationAmounts.forEach(button => {
47
+ button.addEventListener('click', function() {
48
+ donationAmounts.forEach(btn => {
49
+ btn.classList.remove('bg-red-100', 'border-red-500', 'text-red-700');
50
+ btn.classList.add('bg-white', 'border-gray-300');
51
+ });
52
+ this.classList.remove('bg-white', 'border-gray-300');
53
+ this.classList.add('bg-red-100', 'border-red-500', 'text-red-700');
54
+ document.getElementById('custom-amount').value = this.textContent.replace('$', '');
55
+ });
56
+ });
57
+
58
+ // Form submission
59
+ const donationForm = document.getElementById('donation-form');
60
+ if (donationForm) {
61
+ donationForm.addEventListener('submit', function(e) {
62
+ e.preventDefault();
63
+ // Here you would typically handle the form submission
64
+ alert('Thank you for your donation! A confirmation has been sent to your email.');
65
+ this.reset();
66
+ });
67
+ }
68
+
69
+ // Initialize feather icons
70
+ feather.replace();
71
+ });
style.css CHANGED
@@ -1,28 +1,51 @@
1
- body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Custom animations */
2
+ @keyframes countUp {
3
+ from { opacity: 0; transform: translateY(20px); }
4
+ to { opacity: 1; transform: translateY(0); }
5
  }
6
 
7
+ .count-up {
8
+ animation: countUp 1s ease-out forwards;
 
9
  }
10
 
11
+ /* Custom scroll behavior */
12
+ html {
13
+ scroll-behavior: smooth;
 
 
14
  }
15
 
16
+ /* Custom button hover effects */
17
+ .btn-donate {
18
+ transition: all 0.3s ease;
19
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
 
 
20
  }
21
 
22
+ .btn-donate:hover {
23
+ transform: translateY(-2px);
24
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
25
  }
26
+
27
+ /* Custom form input focus */
28
+ .form-input:focus {
29
+ border-color: #dc2626;
30
+ box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.2);
31
+ }
32
+
33
+ /* Custom card hover effect */
34
+ .card-hover {
35
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
36
+ }
37
+
38
+ .card-hover:hover {
39
+ transform: translateY(-5px);
40
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
41
+ }
42
+
43
+ /* Responsive tweaks */
44
+ @media (max-width: 640px) {
45
+ .hero-title {
46
+ font-size: 2.5rem;
47
+ }
48
+ .hero-subtitle {
49
+ font-size: 1.2rem;
50
+ }
51
+ }