|
5 | 5 | <meta name="viewport" content="width=device-width, initial-scale=1" /> |
6 | 6 | <title>SCode — Developer Portfolio</title> |
7 | 7 | <link rel="stylesheet" href="style.css" /> |
8 | | - <meta name="description" content="SCode — Creative developer passionate about design, code, and user experience." /> |
| 8 | + <meta name="description" content="SCode — Web developer. Creative developer passionate about design, code, and user experience." /> |
| 9 | + |
| 10 | + <!-- Favicon --> |
9 | 11 | <link rel="icon" href="https://raw.githubusercontent.com/SCodeGit/scode.git.io/main/images/scode.jpg" type="image/jpeg"> |
10 | | -</head> |
| 12 | + <link rel="apple-touch-icon" href="https://raw.githubusercontent.com/SCodeGit/scode.git.io/main/images/scode.jpg"> |
11 | 13 |
|
| 14 | + <!-- Theme preference --> |
| 15 | + <meta name="color-scheme" content="light dark"> |
| 16 | +</head> |
12 | 17 | <body class="dark-theme"> |
| 18 | + <!-- Background overlay for particles/matrix --> |
13 | 19 | <div id="backgroundParticles"></div> |
| 20 | + <!-- Theme toggle --> |
| 21 | + <button class="theme-toggle" id="themeToggle" title="Toggle light/dark" aria-label="Toggle theme">🌙</button> |
14 | 22 |
|
15 | 23 | <!-- Header / Hero --> |
16 | | - <header class="hero-outer" data-cms-edit="true"> |
| 24 | + <header class="hero-outer"> |
17 | 25 | <div class="container hero-inner"> |
18 | 26 | <div class="logo-wrap"> |
19 | 27 | <a href="index.html"> |
20 | 28 | <img src="https://raw.githubusercontent.com/SCodeGit/scode.git.io/main/images/scode.jpg" alt="SCode logo" class="hero-logo neon-glow"> |
21 | 29 | </a> |
22 | 30 | </div> |
23 | | - <div class="hero-text"> |
| 31 | + <div class="hero-text" style="line-height:1.2;"> |
24 | 32 | <h1 class="name glitch">SCode</h1> |
25 | | - <p class="tagline"><span id="typed">Hi, I’m SCode, a creative developer passionate about design, code, and user experience.</span></p> |
| 33 | + <p class="tagline"><span id="typed"></span></p> |
26 | 34 | <div class="hero-cta"> |
27 | | - <a class="btn primary neon-btn" href="https://wa.me/233555578864" target="_blank" rel="noopener">Hire Me</a> |
28 | | - <a class="btn ghost neon-btn" href="https://github.com/SCodeGit" target="_blank" rel="noopener">GitHub</a> |
| 35 | + <a class="btn primary neon-btn" id="whatsappBtn" href="https://wa.me/233555578864" target="_blank" rel="noopener">Hire Me (WhatsApp)</a> |
29 | 36 | </div> |
30 | 37 | </div> |
31 | 38 | </div> |
32 | 39 | </header> |
33 | 40 |
|
34 | | - <!-- About --> |
35 | | - <section class="section about" data-cms-edit="true"> |
36 | | - <div class="container"> |
37 | | - <h2 class="glitch">About</h2> |
38 | | - <p>Hi — I’m <strong>SCode</strong>, a creative developer passionate about design, code, and user experience. I build clean, responsive websites for NGOs, startups, and businesses.</p> |
| 41 | + <!-- About / Intro --> |
| 42 | + <section class="section about" id="about" style="padding-top:40px;"> |
| 43 | + <div class="container" style="line-height:1.4;"> |
| 44 | + <p><span id="typedIntro"></span></p> |
39 | 45 | </div> |
40 | 46 | </section> |
41 | 47 |
|
42 | 48 | <!-- Projects --> |
43 | | - <section class="section projects" data-cms-edit="true"> |
| 49 | + <section class="section projects" id="projects"> |
44 | 50 | <div class="container"> |
45 | 51 | <h2 class="glitch">Selected Projects</h2> |
46 | 52 | <div class="projects-grid"> |
| 53 | + |
| 54 | + <!-- Project 1 --> |
47 | 55 | <a class="project-card neon-glow" href="https://scodegit.github.io/pacesettersfoundation.github.io/" target="_blank" rel="noopener"> |
48 | | - <img src="https://raw.githubusercontent.com/SCodeGit/scode.git.io/main/images/scode.jpg" alt="Pacesetters"> |
| 56 | + <img src="https://raw.githubusercontent.com/SCodeGit/scode.git.io/main/images/scode.jpg" alt="Pacesetters Foundation"> |
49 | 57 | <div class="project-body"> |
50 | 58 | <h3>Pacesetters Foundation</h3> |
51 | | - <p>Multi-page NGO site: donations, programs, and team profiles.</p> |
| 59 | + <p>Multi-page NGO site with donation and community sections.</p> |
52 | 60 | </div> |
53 | 61 | </a> |
54 | | - <div class="project-card neon-glow"> |
| 62 | + |
| 63 | + <!-- Project 2 --> |
| 64 | + <a class="project-card neon-glow" href="https://scodegit.github.io/Bowiri-Traditional-Council/index.html" target="_blank" rel="noopener"> |
| 65 | + <img src="https://raw.githubusercontent.com/SCodeGit/Bowiri-Traditional-Council/28857d96cf2048e159e3a22335a78a7f13cf84a6/king%20logo.png" alt="Bowiri Traditional Council"> |
55 | 66 | <div class="project-body"> |
56 | 67 | <h3>Bowiri Traditional Council</h3> |
57 | | - <p>Official website showcasing heritage, leadership, and community development.</p> |
58 | | - <a href="https://scodegit.github.io/Bowiri-Traditional-Council/" target="_blank" rel="noopener">Visit site →</a> |
| 68 | + <p>Elegant traditional council website highlighting culture, leadership, and heritage.</p> |
| 69 | + </div> |
| 70 | + </a> |
| 71 | + |
| 72 | + <!-- Project 3 placeholder --> |
| 73 | + <div class="project-card placeholder neon-glow"> |
| 74 | + <div class="project-body"> |
| 75 | + <h3>Project Three</h3> |
| 76 | + <p>Coming soon — demo and case study will be added here.</p> |
59 | 77 | </div> |
60 | 78 | </div> |
| 79 | + |
61 | 80 | </div> |
62 | 81 | </div> |
63 | 82 | </section> |
64 | 83 |
|
65 | 84 | <!-- Contact --> |
66 | | - <section class="section contact" data-cms-edit="true"> |
| 85 | + <section class="section contact" id="contact"> |
67 | 86 | <div class="container"> |
68 | 87 | <h2 class="glitch">Contact</h2> |
69 | | - <p>Email: <a href="mailto:atubraabraham@gmail.com">atubraabraham@gmail.com</a></p> |
70 | | - <p>WhatsApp: <a href="https://wa.me/233555578864" target="_blank" rel="noopener">+233 55 557 8864</a></p> |
| 88 | + <div class="contact-grid"> |
| 89 | + <div class="contact-card neon-glow"> |
| 90 | + <h3>Get in touch</h3> |
| 91 | + <p>Email: <a href="mailto:atubraabraham@gmail.com">atubraabraham@gmail.com</a></p> |
| 92 | + <p>WhatsApp: <a href="https://wa.me/233555578864" target="_blank" rel="noopener">+233 55 557 8864</a></p> |
| 93 | + <p>Facebook: <a href="https://www.facebook.com/people/Atubra-Abraham/100072576882412/" target="_blank" rel="noopener">Atubra Abraham</a></p> |
| 94 | + </div> |
| 95 | + |
| 96 | + <div class="contact-card neon-glow"> |
| 97 | + <h3>Message</h3> |
| 98 | + <form id="contactForm"> |
| 99 | + <input name="name" placeholder="Your name" required> |
| 100 | + <input name="email" type="email" placeholder="Your email" required> |
| 101 | + <textarea name="message" rows="4" placeholder="Your message" required></textarea> |
| 102 | + <button class="btn primary neon-btn" type="submit">Send</button> |
| 103 | + <p id="formStatus" style="margin-top:10px;"></p> |
| 104 | + </form> |
| 105 | + </div> |
| 106 | + |
| 107 | + </div> |
71 | 108 | </div> |
72 | 109 | </section> |
73 | 110 |
|
74 | 111 | <!-- Footer --> |
75 | | - <footer class="footer neon-glow" data-cms-edit="true"> |
| 112 | + <footer class="footer neon-glow"> |
76 | 113 | <div class="container footer-inner"> |
77 | 114 | <div class="left"> |
78 | 115 | <strong>SCode</strong><br> |
79 | 116 | <small>© 2025 All Rights Reserved — built by |
80 | 117 | <a class="dev-link" href="index.html">SCode</a> |
81 | 118 | </small> |
82 | 119 | </div> |
| 120 | + <div class="right social-links"> |
| 121 | + <a href="https://www.facebook.com/people/Atubra-Abraham/100072576882412/" target="_blank" rel="noopener">Facebook</a> |
| 122 | + <a href="https://wa.me/233555578864" target="_blank" rel="noopener">WhatsApp</a> |
| 123 | + </div> |
83 | 124 | </div> |
84 | 125 | </footer> |
85 | 126 |
|
| 127 | + <button id="topBtn" title="Back to top" class="neon-btn">↑</button> |
| 128 | + |
| 129 | + <!-- Typewriter Script --> |
| 130 | + <script> |
| 131 | + function typeWriter(element, text, speed = 40, callback = null) { |
| 132 | + let i = 0; |
| 133 | + element.textContent = ''; |
| 134 | + function type() { |
| 135 | + if (i < text.length) { |
| 136 | + element.textContent += text.charAt(i); |
| 137 | + i++; |
| 138 | + setTimeout(type, speed); |
| 139 | + } else if (callback) callback(); |
| 140 | + } |
| 141 | + type(); |
| 142 | + } |
| 143 | + |
| 144 | + // Hero animation |
| 145 | + const typedEl = document.getElementById('typed'); |
| 146 | + typeWriter(typedEl, "Crafting sleek, responsive web experiences with precision and creativity."); |
| 147 | + |
| 148 | + // About/Intro animation |
| 149 | + const typedIntro = document.getElementById('typedIntro'); |
| 150 | + typeWriter(typedIntro, "Hi — I’m SCode. I specialize in building modern, responsive websites for startups, NGOs, and businesses, blending design, code, and user experience with precision and creativity."); |
| 151 | + </script> |
| 152 | + |
| 153 | + <!-- Contact Form Script --> |
| 154 | + <script> |
| 155 | + const form = document.getElementById('contactForm'); |
| 156 | + const status = document.getElementById('formStatus'); |
| 157 | + |
| 158 | + form.addEventListener('submit', function(event) { |
| 159 | + event.preventDefault(); |
| 160 | + const formData = new FormData(form); |
| 161 | + |
| 162 | + fetch('https://formspree.io/f/xwpwvqaz', { |
| 163 | + method: 'POST', |
| 164 | + body: formData, |
| 165 | + headers: {'Accept': 'application/json'} |
| 166 | + }).then(response => { |
| 167 | + if (response.ok) { |
| 168 | + status.style.color = 'lime'; |
| 169 | + status.textContent = '✅ Message sent successfully! Thank you.'; |
| 170 | + form.reset(); |
| 171 | + } else { |
| 172 | + response.json().then(data => { |
| 173 | + if (data.errors) { |
| 174 | + status.style.color = 'red'; |
| 175 | + status.textContent = '❌ Error sending message: ' + data.errors.map(e => e.message).join(', '); |
| 176 | + } else { |
| 177 | + status.style.color = 'red'; |
| 178 | + status.textContent = '❌ Something went wrong. Please try again later.'; |
| 179 | + } |
| 180 | + }); |
| 181 | + } |
| 182 | + }).catch(error => { |
| 183 | + status.style.color = 'red'; |
| 184 | + status.textContent = '❌ Network error. Please try again later.'; |
| 185 | + }); |
| 186 | + }); |
| 187 | + </script> |
| 188 | + |
| 189 | + <!-- External Script --> |
86 | 190 | <script src="script.js"></script> |
87 | 191 | </body> |
88 | 192 | </html> |
0 commit comments