|
2 | 2 | <html lang="en"> |
3 | 3 | <head> |
4 | 4 | <meta charset="UTF-8" /> |
5 | | - <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| 5 | + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
6 | 6 | <title>Dreckhoff — Personal Website</title> |
7 | 7 | <link rel="stylesheet" href="style.css" /> |
8 | 8 | </head> |
9 | 9 | <body> |
10 | 10 | <header> |
11 | | - <h1>Dreckhoff</h1> |
| 11 | + <h1>Johannes Dreckhoff</h1> |
12 | 12 | <nav> |
13 | 13 | <a href="#bio">Bio</a> |
14 | 14 | <a href="#publications">Publications</a> |
15 | 15 | <a href="#cv">CV</a> |
16 | 16 | <a href="#contact">Contact</a> |
17 | 17 | </nav> |
| 18 | + <button id="theme-toggle" aria-label="Toggle dark mode">🌙</button> |
18 | 19 | </header> |
19 | 20 |
|
20 | 21 | <section id="bio"> |
21 | 22 | <h2>About Me</h2> |
22 | 23 | <p>Hi, my name is Johannes, welcome to my website. I am a physics student at the university of Heidelberg, Germany. Currently, I am |
23 | | - writing my master thesis in theoretical biophysics in the Schwarz group at the BioQuant.</p> |
| 24 | + writing my master thesis in theoretical biophysics in the Schwarz group at the BioQuant. <br /> |
| 25 | + |
| 26 | + This website is a little project of mine, all work-in-progress. <br /> |
| 27 | + </p> |
24 | 28 | </section> |
25 | 29 |
|
26 | 30 |
|
@@ -86,7 +90,38 @@ <h3 id="master-thesis">Master Thesis</h3> |
86 | 90 |
|
87 | 91 | <section id="cv"> |
88 | 92 | <h2>Curriculum Vitae</h2> |
89 | | - <p><a href="cv.pdf" download>Download my CV (PDF)</a></p> |
| 93 | + <h3><a href="cv.pdf" download> Download my compact CV (PDF)</a> or read a bit about me here:</h3> |
| 94 | + <p> I was born on the 18th of January 2001 in Düsseldorf, Germany. I went to school at the <a href="https://tfg-duesseldorf.ekir.de">Theodor Fliedner Gymnasium</a> |
| 95 | + and completed my Abitur in 2019. After that, I immediately moved to Heidelberg to study physics. |
| 96 | + <br /> |
| 97 | + I completed my bachelor in 2023, writing my thesis under the supervision of Prof. Dr. Andreas Mielke on pattern formation |
| 98 | + in lipid membranes. During my bachelor, I completed an exchange semester at the <a href="https://www.universiteitleiden.nl/en">University of Leiden</a>, Netherlands. |
| 99 | + Besides meeting awesome people there, I got to experience the Dutch culture. From an academic perspective, I got the opportunity |
| 100 | + to attend courses on the physics of finance, which I found particularly interesting. |
| 101 | + <br /> |
| 102 | + |
| 103 | + After handing in my bachelor thesis, I immediately started my master in Heidelberg. I entered the group of <a href="https://www.thphys.uni-heidelberg.de/~biophys/">Prof. Dr. |
| 104 | + Ulrich Schwarz</a> at the BioQuant, since I really liked the topic of theoretical biophysics during my bachelor. This is where |
| 105 | + I am currently writing my master thesis on the curvature generation in clathrin-mediated endocytosis. |
| 106 | + <br /> |
| 107 | + |
| 108 | + Besides my studies, I started playing ultimate frisbee in the last year which I really enjoy. I like cats, but love dogs even more. |
| 109 | + I think Star Wars is better than Star Trek, and I love the Game of Thrones books. To cope with the missing 6th book, I started |
| 110 | + reading the Wheel of Time, currently ongoing. |
| 111 | + |
| 112 | + </p> |
| 113 | + |
| 114 | + |
| 115 | + |
| 116 | + </section> |
| 117 | + |
| 118 | + <section id="other-links"> |
| 119 | + <h2>Other Links</h2> |
| 120 | + <ul> |
| 121 | + <li><p> Find my code on <a href="https://github.com/Dreckhoff" target="_blank" rel="noopener noreferrer">GitHub</a></p></li> |
| 122 | + <li><p> Visit me on <a href="https://www.linkedin.com/in/johannes-dreckhoff/" target="_blank" rel="noopener noreferrer">LinkedIn</a></p></li> |
| 123 | + <li><p> Code with me on <a href="https://www.hackerrank.com/profile/jdreckhoff" target="_blank" rel="noopener noreferrer">HackerRank</a></p></li> |
| 124 | + </ul> |
90 | 125 | </section> |
91 | 126 |
|
92 | 127 | <section id="contact"> |
@@ -114,5 +149,80 @@ <h2>Contact Me</h2> |
114 | 149 | </footer> |
115 | 150 |
|
116 | 151 |
|
| 152 | + |
| 153 | + |
| 154 | + <script> |
| 155 | + const toggleButton = document.getElementById('theme-toggle'); |
| 156 | + |
| 157 | + // Apply saved theme on load |
| 158 | + const savedTheme = localStorage.getItem('theme'); |
| 159 | + if (savedTheme) { |
| 160 | + document.body.classList.add(savedTheme); |
| 161 | + } else { |
| 162 | + // No saved theme → follow system preference |
| 163 | + if (window.matchMedia('(prefers-color-scheme: dark)').matches) { |
| 164 | + document.body.classList.add('dark-mode'); |
| 165 | + } |
| 166 | + } |
| 167 | + |
| 168 | + // Handle button click |
| 169 | + toggleButton.addEventListener('click', () => { |
| 170 | + if (document.body.classList.contains('dark-mode')) { |
| 171 | + document.body.classList.remove('dark-mode'); |
| 172 | + document.body.classList.add('light-mode'); |
| 173 | + localStorage.setItem('theme', 'light-mode'); |
| 174 | + toggleButton.textContent = '🌙'; |
| 175 | + } else { |
| 176 | + document.body.classList.remove('light-mode'); |
| 177 | + document.body.classList.add('dark-mode'); |
| 178 | + localStorage.setItem('theme', 'dark-mode'); |
| 179 | + toggleButton.textContent = '☀️'; |
| 180 | + } |
| 181 | + }); |
| 182 | +</script> |
| 183 | + |
| 184 | + |
| 185 | +<script> |
| 186 | + function smoothScrollTo(targetY, duration = 800) { |
| 187 | + const startY = window.pageYOffset; |
| 188 | + const distance = targetY - startY; |
| 189 | + let startTime = null; |
| 190 | + |
| 191 | + function animation(currentTime) { |
| 192 | + if (!startTime) startTime = currentTime; |
| 193 | + const timeElapsed = currentTime - startTime; |
| 194 | + const progress = Math.min(timeElapsed / duration, 1); |
| 195 | + |
| 196 | + // easeInOutCubic easing function |
| 197 | + const ease = progress < 0.5 |
| 198 | + ? 4 * progress * progress * progress |
| 199 | + : 1 - Math.pow(-2 * progress + 2, 3) / 2; |
| 200 | + |
| 201 | + window.scrollTo(0, startY + distance * ease); |
| 202 | + |
| 203 | + if (timeElapsed < duration) { |
| 204 | + requestAnimationFrame(animation); |
| 205 | + } |
| 206 | + } |
| 207 | + requestAnimationFrame(animation); |
| 208 | + } |
| 209 | + |
| 210 | + document.querySelectorAll('nav a[href^="#"]').forEach(anchor => { |
| 211 | + anchor.addEventListener('click', function (e) { |
| 212 | + e.preventDefault(); |
| 213 | + const targetID = this.getAttribute('href').substring(1); |
| 214 | + const target = document.getElementById(targetID); |
| 215 | + if (!target) return; |
| 216 | + |
| 217 | + const headerOffset = document.querySelector('header').offsetHeight; |
| 218 | + const elementPosition = target.getBoundingClientRect().top; |
| 219 | + const offsetPosition = elementPosition + window.pageYOffset - headerOffset; |
| 220 | + |
| 221 | + smoothScrollTo(offsetPosition, 500); // Duration in ms, here 1000 = 1 second |
| 222 | + }); |
| 223 | + }); |
| 224 | +</script> |
| 225 | + |
| 226 | + |
117 | 227 | </body> |
118 | 228 | </html> |
0 commit comments