|
| 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"> |
| 6 | + <title>Hacktoberfest 2025 — Beginner’s Guide</title> |
| 7 | + <meta name="description" content="Complete beginner’s guide to Hacktoberfest 2025. Learn how to participate, find repositories, and claim rewards."> |
| 8 | + |
| 9 | + <style> |
| 10 | + :root { |
| 11 | + --hf-purple: #6c63ff; |
| 12 | + --hf-orange: #ff7043; |
| 13 | + --hf-light: #f9f9f9; |
| 14 | + --hf-dark: #222; |
| 15 | + --hf-radius: 14px; |
| 16 | + } |
| 17 | + |
| 18 | + body { |
| 19 | + margin: 0; |
| 20 | + font-family: "Segoe UI", system-ui, sans-serif; |
| 21 | + background: var(--hf-light); |
| 22 | + color: var(--hf-dark); |
| 23 | + line-height: 1.6; |
| 24 | + scroll-behavior: smooth; |
| 25 | + transition: background 0.3s, color 0.3s; |
| 26 | + } |
| 27 | + |
| 28 | + /* Dark Mode Overrides */ |
| 29 | + body.dark { |
| 30 | + --hf-light: #1c1c1c; |
| 31 | + --hf-dark: #ffffff; |
| 32 | + background: #111; |
| 33 | + color: #eee; |
| 34 | + } |
| 35 | + |
| 36 | + header { |
| 37 | + background: var(--hf-purple); |
| 38 | + color: #fff; |
| 39 | + padding: 2rem 1rem; |
| 40 | + text-align: center; |
| 41 | + position: relative; |
| 42 | + } |
| 43 | + header h1 { |
| 44 | + margin: 0; |
| 45 | + font-size: 2.5rem; |
| 46 | + animation: fadeIn 2s ease; |
| 47 | + } |
| 48 | + header p { |
| 49 | + margin-top: .5rem; |
| 50 | + font-size: 1.2rem; |
| 51 | + } |
| 52 | + |
| 53 | + nav { |
| 54 | + display: flex; |
| 55 | + justify-content: center; |
| 56 | + gap: 1rem; |
| 57 | + flex-wrap: wrap; |
| 58 | + margin-top: 1rem; |
| 59 | + } |
| 60 | + nav a, .nav-btn { |
| 61 | + background: var(--hf-orange); |
| 62 | + color: #fff; |
| 63 | + padding: .6rem 1rem; |
| 64 | + border-radius: var(--hf-radius); |
| 65 | + text-decoration: none; |
| 66 | + font-weight: 500; |
| 67 | + transition: background .3s; |
| 68 | + border: none; |
| 69 | + cursor: pointer; |
| 70 | + } |
| 71 | + nav a:hover, .nav-btn:hover { |
| 72 | + background: #ff5722; |
| 73 | + } |
| 74 | + |
| 75 | + section { |
| 76 | + padding: 2rem 1rem; |
| 77 | + max-width: 900px; |
| 78 | + margin: auto; |
| 79 | + } |
| 80 | + section h2 { |
| 81 | + color: var(--hf-purple); |
| 82 | + border-bottom: 3px solid var(--hf-orange); |
| 83 | + display: inline-block; |
| 84 | + margin-bottom: 1rem; |
| 85 | + } |
| 86 | + .card { |
| 87 | + background: #fff; |
| 88 | + padding: 1.5rem; |
| 89 | + border-radius: var(--hf-radius); |
| 90 | + margin: 1rem 0; |
| 91 | + box-shadow: 0 4px 12px rgba(0,0,0,0.1); |
| 92 | + transition: transform .3s; |
| 93 | + } |
| 94 | + body.dark .card { |
| 95 | + background: #1e1e1e; |
| 96 | + } |
| 97 | + .card:hover { |
| 98 | + transform: translateY(-5px); |
| 99 | + } |
| 100 | + .highlight { |
| 101 | + background: var(--hf-purple); |
| 102 | + color: #fff; |
| 103 | + padding: .2rem .5rem; |
| 104 | + border-radius: var(--hf-radius); |
| 105 | + } |
| 106 | + |
| 107 | + footer { |
| 108 | + text-align: center; |
| 109 | + padding: 2rem 1rem; |
| 110 | + background: var(--hf-dark); |
| 111 | + color: #fff; |
| 112 | + } |
| 113 | + |
| 114 | + @keyframes fadeIn { |
| 115 | + from { opacity: 0; transform: translateY(-20px); } |
| 116 | + to { opacity: 1; transform: translateY(0); } |
| 117 | + } |
| 118 | + |
| 119 | + /* Shine Animation Fix */ |
| 120 | + .site { |
| 121 | + position: relative; |
| 122 | + display: inline-block; |
| 123 | + color: var(--hf-orange); |
| 124 | + font-weight: bold; |
| 125 | + overflow: hidden; |
| 126 | + } |
| 127 | + .site::after { |
| 128 | + content: ""; |
| 129 | + position: absolute; |
| 130 | + top: 0; |
| 131 | + left: -100%; |
| 132 | + width: 100%; |
| 133 | + height: 100%; |
| 134 | + background: linear-gradient(120deg, transparent, rgba(255,255,255,.6), transparent); |
| 135 | + animation: shine 2s infinite; |
| 136 | + background-size: 200% 100%; |
| 137 | + background-position: -200% 0; |
| 138 | + } |
| 139 | + @keyframes shine { |
| 140 | + 100% { left: 100%; background-position: 200% 0; } |
| 141 | + } |
| 142 | + |
| 143 | + /* Back-to-top Button */ |
| 144 | + #back-to-top { |
| 145 | + position: fixed; |
| 146 | + bottom: 20px; |
| 147 | + right: 20px; |
| 148 | + display: none; |
| 149 | + padding: 10px 14px; |
| 150 | + border-radius: 50%; |
| 151 | + background: var(--hf-purple); |
| 152 | + color: #fff; |
| 153 | + border: none; |
| 154 | + cursor: pointer; |
| 155 | + box-shadow: 0 4px 12px rgba(0,0,0,0.3); |
| 156 | + transition: all 0.3s ease; |
| 157 | + z-index: 999; |
| 158 | + } |
| 159 | + #back-to-top:hover { background: var(--hf-orange); } |
| 160 | + </style> |
| 161 | +</head> |
| 162 | +<body> |
| 163 | + <header> |
| 164 | + <h1>🌟 Hacktoberfest 2025</h1> |
| 165 | + <p>Your Beginner’s Guide to Rewards, Repositories & Contributions</p> |
| 166 | + <nav aria-label="Main Navigation"> |
| 167 | + <a href="#about">About</a> |
| 168 | + <a href="#rewards">Rewards</a> |
| 169 | + <a href="#repos">Repositories</a> |
| 170 | + <a href="#steps">How to Participate</a> |
| 171 | + <a href="#tips">Tips</a> |
| 172 | + <button id="dark-toggle" class="nav-btn" aria-label="Toggle Dark Mode">🌙</button> |
| 173 | + </nav> |
| 174 | + </header> |
| 175 | + |
| 176 | + <section id="about"> |
| 177 | + <h2>What is Hacktoberfest?</h2> |
| 178 | + <div class="card"> |
| 179 | + Hacktoberfest is a month-long open-source festival in October where developers worldwide contribute to projects on GitHub and GitLab. It's beginner-friendly and full of rewards. |
| 180 | + </div> |
| 181 | + </section> |
| 182 | + |
| 183 | + <section id="rewards"> |
| 184 | + <h2>🎁 Rewards</h2> |
| 185 | + <div class="card">✨ Exclusive <span class="highlight">Hacktoberfest Swag</span> (T-shirts, stickers, badges)</div> |
| 186 | + <div class="card">🌱 Plant a tree in your name</div> |
| 187 | + <div class="card">📝 Certificate of Completion</div> |
| 188 | + </section> |
| 189 | + |
| 190 | + <section id="repos"> |
| 191 | + <h2>📂 Finding Beginner-Friendly Repositories</h2> |
| 192 | + <div class="card">Look for <span class="highlight">good first issue</span> or <span class="highlight">Hacktoberfest</span> tags.</div> |
| 193 | + <div class="card">Examples: <span class="site">awesome-for-beginners</span>, <span class="site">first-contributions</span>, <span class="site">public-apis</span></div> |
| 194 | + </section> |
| 195 | + |
| 196 | + <section id="steps"> |
| 197 | + <h2>🚀 How to Participate</h2> |
| 198 | + <div class="card">1️⃣ Register at <a href="https://hacktoberfest.com" target="_blank">hacktoberfest.com</a></div> |
| 199 | + <div class="card">2️⃣ Find a project on GitHub/GitLab with relevant tags</div> |
| 200 | + <div class="card">3️⃣ Fork repo → Clone → Create branch → Commit changes</div> |
| 201 | + <div class="card">4️⃣ Submit 4 valid PRs in October</div> |
| 202 | + <div class="card">5️⃣ Track progress on your dashboard</div> |
| 203 | + </section> |
| 204 | + |
| 205 | + <section id="tips"> |
| 206 | + <h2>💡 Tips for Beginners</h2> |
| 207 | + <div class="card">✔️ Start small: Fix typos, docs, or beginner issues.</div> |
| 208 | + <div class="card">✔️ Join communities, ask questions, and stay consistent.</div> |
| 209 | + <div class="card">✔️ Quality > Quantity: Focus on meaningful contributions.</div> |
| 210 | + </section> |
| 211 | + |
| 212 | + <footer> |
| 213 | + <p>Made with ❤️ for Hacktoberfest 2025 | Happy Coding!</p> |
| 214 | + </footer> |
| 215 | + |
| 216 | + <button id="back-to-top" title="Back to top">⬆️</button> |
| 217 | + |
| 218 | + <script> |
| 219 | + // Dark Mode Toggle |
| 220 | + const toggle = document.getElementById('dark-toggle'); |
| 221 | + toggle.addEventListener('click', () => { |
| 222 | + document.body.classList.toggle('dark'); |
| 223 | + }); |
| 224 | + |
| 225 | + // Back to Top Button |
| 226 | + const backBtn = document.getElementById('back-to-top'); |
| 227 | + window.addEventListener('scroll', () => { |
| 228 | + backBtn.style.display = window.scrollY > 400 ? 'block' : 'none'; |
| 229 | + }); |
| 230 | + backBtn.addEventListener('click', () => { |
| 231 | + window.scrollTo({ top: 0, behavior: 'smooth' }); |
| 232 | + }); |
| 233 | + </script> |
| 234 | +</body> |
| 235 | +</html> |
0 commit comments