Skip to content

Commit 843d5e8

Browse files
achievements
1 parent 6914ad4 commit 843d5e8

2 files changed

Lines changed: 97 additions & 5 deletions

File tree

index.html

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,69 @@ <h1>Rohan Modi</h1>
3232
<a href="https://thetechresearchpaper.wixsite.com/techknowledge/blog" class="link">Tech Blog</a> |
3333
<a href="https://www.github.com/RohanAltAccount" class="link">Github</a>
3434
</p>
35+
<section class="achievements">
36+
<h2>achievements</h2>
37+
<div id="achievement-list"></div>
38+
<div id="loading">loading up...</div>
39+
</section>
3540
</section>
3641

3742
</main>
3843
<background class="background"></background>
3944
<footer>
4045
<small>©2025 Rohan.</small>
4146
</footer>
47+
48+
49+
<script>
50+
const achievements = [
51+
"Present・CS and ML oriented high school student",
52+
"2022・Founded tech blog (TecRes), publishing informative tech news",
53+
"2024-2025・Built multiple web apps and prototypes",
54+
"2025・Learned C++ and built CLI projects",
55+
"2025・Started competiting in coding competitions and hackathons",
56+
"2025・Won first hackathon",
57+
"2025・Built GitHub open-source tools",
58+
"2025-2026・Started research writing and published a paper on arXiv",
59+
"2025-2026・AI & Business Systems Consultant at Kumon, contributing to student tracking and marketing systems",
60+
"2026・Started YouTube channel sharing tech knowledge and tutorials"
61+
];
62+
63+
let index = 0;
64+
const batchSize = 3;
65+
66+
function loadMore() {
67+
const list = document.getElementById("achievement-list");
68+
const loading = document.getElementById("loading");
69+
70+
loading.style.display = "block";
71+
72+
setTimeout(() => {
73+
for (let i = 0; i < batchSize; i++) {
74+
if (index >= achievements.length) return;
75+
76+
const div = document.createElement("div");
77+
div.className = "achievement-card";
78+
div.textContent = achievements[index];
79+
list.appendChild(div);
80+
81+
index++;
82+
}
83+
84+
loading.style.display = "none";
85+
}, 500);
86+
}
87+
88+
// initial load
89+
loadMore();
90+
91+
// infinite scroll trigger
92+
window.addEventListener("scroll", () => {
93+
if (window.innerHeight + window.scrollY >= document.body.offsetHeight - 100) {
94+
loadMore();
95+
}
96+
});
97+
</script>
98+
4299
</body>
43100
</html>

styles.css

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@ body {
88
color: #111;
99
font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
1010
min-height: 100vh;
11-
display: flex;
12-
justify-content: center;
1311
padding: 64px 16px;
12+
display: block;
1413
}
1514
body::before {
1615
content: "";
@@ -19,7 +18,7 @@ body::before {
1918
pointer-events: none;
2019
background-image: url("https://grainy-gradients.vercel.app/noise.svg");
2120
opacity: 0.04;
22-
z-index: 999;
21+
z-index: 0;
2322
}
2423
main.container {
2524
max-width: 680px;
@@ -30,7 +29,7 @@ main.container {
3029
display: flex;
3130
flex-direction: column;
3231
align-items: center;
33-
position: fixed;
32+
z-index: 1;
3433
}
3534
.profile {
3635
display: flex;
@@ -68,7 +67,7 @@ main.container {
6867
box-shadow: 0 10px 30px rgba(0,0,0,0.08);
6968
}
7069
.background {
71-
position: fixed;
70+
position: relative;
7271
inset: 0;
7372
z-index: -1;
7473
overflow: hidden;
@@ -165,6 +164,42 @@ h1 {
165164
cursor: pointer;
166165
border: none;
167166
}
167+
.achievements {
168+
margin-top: 50px;
169+
}
170+
171+
#achievement-list {
172+
display: flex;
173+
flex-direction: column;
174+
gap: 29px;
175+
}
176+
177+
.achievement-card {
178+
padding: 12px;
179+
border: none;
180+
border-radius: 10px;
181+
background: transparent;
182+
color: #6a6a6a;
183+
transition: color 0.5s ease, font-size 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
184+
185+
}
186+
.achievement-card:hover {
187+
padding: 12px;
188+
border: none;
189+
border-radius: 10px;
190+
background: transparent;
191+
color: #000000;
192+
font-size: 1.05rem;
193+
cursor: pointer;
194+
transform: translateY(-2px);
195+
transition: color 0.5s ease, font-size 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
196+
}
197+
198+
#loading {
199+
text-align: center;
200+
padding: 20px;
201+
display: none;
202+
}
168203

169204
.card:hover {
170205
transform: translateY(-2px);

0 commit comments

Comments
 (0)