Spaces:
Running
Running
The "Where I've worked" is a bit broken, the bullet point are not aligned with the line.
Browse files- index.html +32 -20
- style.css +34 -8
index.html
CHANGED
|
@@ -281,21 +281,28 @@
|
|
| 281 |
<div class="text-sm uppercase tracking-widest text-zinc-400">Experience</div>
|
| 282 |
<h2 class="mt-2 text-3xl font-bold text-zinc-100">Where I’ve worked</h2>
|
| 283 |
</div>
|
| 284 |
-
|
| 285 |
-
|
| 286 |
-
|
| 287 |
-
<
|
| 288 |
-
<span class="h-2.5 w-2.5 rounded-full bg-[color:rgb(var(--color-primary-500))]"></span>
|
| 289 |
-
</span>
|
| 290 |
<div class="glass-card rounded-2xl border border-white/10 bg-[color:rgb(var(--bg)_/_0.7)] p-6">
|
| 291 |
-
<div class="flex items-center justify-between">
|
| 292 |
<div class="font-semibold text-zinc-100">Senior Frontend Engineer · Vercel-like SaaS</div>
|
| 293 |
<span class="text-xs text-zinc-400">2022 — Present</span>
|
| 294 |
</div>
|
| 295 |
-
<ul class="
|
| 296 |
-
<li class="flex gap-3"
|
| 297 |
-
|
| 298 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 299 |
</ul>
|
| 300 |
<div class="mt-4 flex flex-wrap gap-2">
|
| 301 |
<span class="chip">React</span><span class="chip">TypeScript</span><span class="chip">Next.js</span><span class="chip">Tailwind</span>
|
|
@@ -303,18 +310,23 @@
|
|
| 303 |
</div>
|
| 304 |
</li>
|
| 305 |
|
| 306 |
-
<li class="relative">
|
| 307 |
-
<
|
| 308 |
-
|
| 309 |
-
</span>
|
| 310 |
<div class="glass-card rounded-2xl border border-white/10 bg-[color:rgb(var(--bg)_/_0.7)] p-6">
|
| 311 |
-
<div class="flex items-center justify-between">
|
| 312 |
<div class="font-semibold text-zinc-100">Frontend Engineer · Fintech</div>
|
| 313 |
<span class="text-xs text-zinc-400">2020 — 2022</span>
|
| 314 |
</div>
|
| 315 |
-
<ul class="
|
| 316 |
-
<li class="flex gap-3"
|
| 317 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 318 |
</ul>
|
| 319 |
<div class="mt-4 flex flex-wrap gap-2">
|
| 320 |
<span class="chip">Vue</span><span class="chip">TypeScript</span><span class="chip">Vite</span><span class="chip">Cypress</span>
|
|
@@ -322,7 +334,7 @@
|
|
| 322 |
</div>
|
| 323 |
</li>
|
| 324 |
</ol>
|
| 325 |
-
|
| 326 |
</section>
|
| 327 |
|
| 328 |
<!-- Contact -->
|
|
|
|
| 281 |
<div class="text-sm uppercase tracking-widest text-zinc-400">Experience</div>
|
| 282 |
<h2 class="mt-2 text-3xl font-bold text-zinc-100">Where I’ve worked</h2>
|
| 283 |
</div>
|
| 284 |
+
<ol class="mt-8 relative">
|
| 285 |
+
<li class="relative pl-12 pb-12">
|
| 286 |
+
<div class="absolute left-0 top-0 w-4 h-4 rounded-full border-2 border-white/20 bg-[color:rgb(var(--bg))]"></div>
|
| 287 |
+
<div class="absolute left-[7px] top-4 bottom-0 w-px bg-white/10"></div>
|
|
|
|
|
|
|
| 288 |
<div class="glass-card rounded-2xl border border-white/10 bg-[color:rgb(var(--bg)_/_0.7)] p-6">
|
| 289 |
+
<div class="flex items-center justify-between mb-3">
|
| 290 |
<div class="font-semibold text-zinc-100">Senior Frontend Engineer · Vercel-like SaaS</div>
|
| 291 |
<span class="text-xs text-zinc-400">2022 — Present</span>
|
| 292 |
</div>
|
| 293 |
+
<ul class="space-y-3 text-zinc-400 text-sm">
|
| 294 |
+
<li class="flex items-start gap-3">
|
| 295 |
+
<div class="w-1.5 h-1.5 rounded-full bg-[color:rgb(var(--color-secondary-500))] mt-2 flex-shrink-0"></div>
|
| 296 |
+
<span>Led design system migration to Tailwind + Radix, cutting build times by 35%</span>
|
| 297 |
+
</li>
|
| 298 |
+
<li class="flex items-start gap-3">
|
| 299 |
+
<div class="w-1.5 h-1.5 rounded-full bg-[color:rgb(var(--color-secondary-500))] mt-2 flex-shrink-0"></div>
|
| 300 |
+
<span>Implemented SSR/ISR patterns with Next.js; LCP improved to ~1.2s</span>
|
| 301 |
+
</li>
|
| 302 |
+
<li class="flex items-start gap-3">
|
| 303 |
+
<div class="w-1.5 h-1.5 rounded-full bg-[color:rgb(var(--color-secondary-500))] mt-2 flex-shrink-0"></div>
|
| 304 |
+
<span>Mentored 4 engineers on performance and accessibility best practices</span>
|
| 305 |
+
</li>
|
| 306 |
</ul>
|
| 307 |
<div class="mt-4 flex flex-wrap gap-2">
|
| 308 |
<span class="chip">React</span><span class="chip">TypeScript</span><span class="chip">Next.js</span><span class="chip">Tailwind</span>
|
|
|
|
| 310 |
</div>
|
| 311 |
</li>
|
| 312 |
|
| 313 |
+
<li class="relative pl-12 pb-12">
|
| 314 |
+
<div class="absolute left-0 top-0 w-4 h-4 rounded-full border-2 border-white/20 bg-[color:rgb(var(--bg))]"></div>
|
| 315 |
+
<div class="absolute left-[7px] top-4 bottom-0 w-px bg-white/10"></div>
|
|
|
|
| 316 |
<div class="glass-card rounded-2xl border border-white/10 bg-[color:rgb(var(--bg)_/_0.7)] p-6">
|
| 317 |
+
<div class="flex items-center justify-between mb-3">
|
| 318 |
<div class="font-semibold text-zinc-100">Frontend Engineer · Fintech</div>
|
| 319 |
<span class="text-xs text-zinc-400">2020 — 2022</span>
|
| 320 |
</div>
|
| 321 |
+
<ul class="space-y-3 text-zinc-400 text-sm">
|
| 322 |
+
<li class="flex items-start gap-3">
|
| 323 |
+
<div class="w-1.5 h-1.5 rounded-full bg-[color:rgb(var(--color-primary-500))] mt-2 flex-shrink-0"></div>
|
| 324 |
+
<span>Built modular component library used across 5 products</span>
|
| 325 |
+
</li>
|
| 326 |
+
<li class="flex items-start gap-3">
|
| 327 |
+
<div class="w-1.5 h-1.5 rounded-full bg-[color:rgb(var(--color-primary-500))] mt-2 flex-shrink-0"></div>
|
| 328 |
+
<span>Introduced automated visual regression testing, reducing UI bugs by 40%</span>
|
| 329 |
+
</li>
|
| 330 |
</ul>
|
| 331 |
<div class="mt-4 flex flex-wrap gap-2">
|
| 332 |
<span class="chip">Vue</span><span class="chip">TypeScript</span><span class="chip">Vite</span><span class="chip">Cypress</span>
|
|
|
|
| 334 |
</div>
|
| 335 |
</li>
|
| 336 |
</ol>
|
| 337 |
+
</div>
|
| 338 |
</section>
|
| 339 |
|
| 340 |
<!-- Contact -->
|
style.css
CHANGED
|
@@ -69,24 +69,50 @@ html.light .mobile-link:hover {
|
|
| 69 |
color: rgb(15, 23, 42);
|
| 70 |
background: rgba(15, 23, 42, 0.05);
|
| 71 |
}
|
| 72 |
-
|
| 73 |
html.light input,
|
| 74 |
html.light textarea {
|
| 75 |
-
background: rgba(
|
| 76 |
border-color: rgba(15, 23, 42, 0.15);
|
| 77 |
color: rgb(15, 23, 42);
|
| 78 |
}
|
| 79 |
-
|
| 80 |
html.light input::placeholder,
|
| 81 |
html.light textarea::placeholder {
|
| 82 |
color: rgb(100, 116, 139);
|
| 83 |
}
|
| 84 |
-
|
| 85 |
html.light .chip {
|
| 86 |
background: rgba(15, 23, 42, 0.05);
|
| 87 |
border-color: rgba(15, 23, 42, 0.1);
|
| 88 |
color: rgb(71, 85, 105);
|
| 89 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 90 |
* { -webkit-tap-highlight-color: transparent; }
|
| 91 |
|
| 92 |
html, body {
|
|
@@ -117,7 +143,7 @@ a { text-decoration: none; }
|
|
| 117 |
|
| 118 |
/* Buttons */
|
| 119 |
.btn-primary {
|
| 120 |
-
@apply inline-flex items-center gap-2 rounded-
|
| 121 |
}
|
| 122 |
.btn-ghost {
|
| 123 |
@apply inline-flex items-center gap-2 rounded-md border border-white/10 bg-white/5 hover:bg-white/10 text-zinc-200 hover:text-white px-4 py-2 font-medium transition;
|
|
@@ -125,10 +151,10 @@ a { text-decoration: none; }
|
|
| 125 |
|
| 126 |
/* Inputs */
|
| 127 |
.label {
|
| 128 |
-
@apply block text-
|
| 129 |
}
|
| 130 |
input, textarea {
|
| 131 |
-
@apply w-full rounded-
|
| 132 |
}
|
| 133 |
|
| 134 |
/* Chips */
|
|
@@ -159,4 +185,4 @@ input, textarea {
|
|
| 159 |
.animate-blob, .animate-float {
|
| 160 |
animation: none !important;
|
| 161 |
}
|
| 162 |
-
}
|
|
|
|
| 69 |
color: rgb(15, 23, 42);
|
| 70 |
background: rgba(15, 23, 42, 0.05);
|
| 71 |
}
|
|
|
|
| 72 |
html.light input,
|
| 73 |
html.light textarea {
|
| 74 |
+
background: rgba(255, 255, 255, 0.8);
|
| 75 |
border-color: rgba(15, 23, 42, 0.15);
|
| 76 |
color: rgb(15, 23, 42);
|
| 77 |
}
|
|
|
|
| 78 |
html.light input::placeholder,
|
| 79 |
html.light textarea::placeholder {
|
| 80 |
color: rgb(100, 116, 139);
|
| 81 |
}
|
|
|
|
| 82 |
html.light .chip {
|
| 83 |
background: rgba(15, 23, 42, 0.05);
|
| 84 |
border-color: rgba(15, 23, 42, 0.1);
|
| 85 |
color: rgb(71, 85, 105);
|
| 86 |
}
|
| 87 |
+
|
| 88 |
+
/* Form enhancements */
|
| 89 |
+
.form-field {
|
| 90 |
+
position: relative;
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
.form-input {
|
| 94 |
+
@apply w-full rounded-lg border border-white/10 bg-white/5 text-zinc-200 placeholder:text-zinc-500 pl-4 pr-4 py-3 outline-none transition-all duration-200;
|
| 95 |
+
}
|
| 96 |
+
|
| 97 |
+
.form-input:focus {
|
| 98 |
+
@apply border-[color:rgb(var(--color-primary-500)_/_0.6)] ring-2 ring-[color:rgb(var(--color-primary-500)_/_0.2)];
|
| 99 |
+
}
|
| 100 |
+
|
| 101 |
+
.form-input::placeholder {
|
| 102 |
+
@apply text-zinc-500;
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
/* Light theme form inputs */
|
| 106 |
+
html.light .form-input {
|
| 107 |
+
background: rgba(255, 255, 255, 0.8);
|
| 108 |
+
border-color: rgba(15, 23, 42, 0.15);
|
| 109 |
+
color: rgb(15, 23, 42);
|
| 110 |
+
}
|
| 111 |
+
|
| 112 |
+
html.light .form-input::placeholder {
|
| 113 |
+
color: rgb(100, 116, 139);
|
| 114 |
+
}
|
| 115 |
+
|
| 116 |
* { -webkit-tap-highlight-color: transparent; }
|
| 117 |
|
| 118 |
html, body {
|
|
|
|
| 143 |
|
| 144 |
/* Buttons */
|
| 145 |
.btn-primary {
|
| 146 |
+
@apply inline-flex items-center gap-2 rounded-lg border border-white/10 bg-[color:rgb(var(--color-primary-500)_/_0.2)] text-[color:rgb(var(--color-primary-500))] hover:bg-[color:rgb(var(--color-primary-500)_/_0.3)] px-5 py-3 font-medium transition-all duration-200 shadow-glow hover:shadow-lg hover:scale-[1.02];
|
| 147 |
}
|
| 148 |
.btn-ghost {
|
| 149 |
@apply inline-flex items-center gap-2 rounded-md border border-white/10 bg-white/5 hover:bg-white/10 text-zinc-200 hover:text-white px-4 py-2 font-medium transition;
|
|
|
|
| 151 |
|
| 152 |
/* Inputs */
|
| 153 |
.label {
|
| 154 |
+
@apply block text-sm font-medium text-zinc-300 mb-2;
|
| 155 |
}
|
| 156 |
input, textarea {
|
| 157 |
+
@apply w-full rounded-lg border border-white/10 bg-white/5 text-zinc-200 placeholder:text-zinc-500 px-4 py-3 outline-none focus:border-[color:rgb(var(--color-primary-500)_/_0.6)] focus:ring-2 focus:ring-[color:rgb(var(--color-primary-500)_/_0.2)] transition-all duration-200;
|
| 158 |
}
|
| 159 |
|
| 160 |
/* Chips */
|
|
|
|
| 185 |
.animate-blob, .animate-float {
|
| 186 |
animation: none !important;
|
| 187 |
}
|
| 188 |
+
}
|