|
101 | 101 | <!-- Main container holding sidebar, content, and the marker tray --> |
102 | 102 | <div class="min-h-screen bg-whiteboard text-slate-800 flex flex-col items-center py-6 px-4 md:py-10 relative"> |
103 | 103 |
|
104 | | - <div class="w-full max-w-6xl flex flex-col lg:flex-row gap-6 items-stretch relative"> |
| 104 | + <div class="w-full max-w-7xl flex flex-col lg:flex-row gap-6 items-stretch relative"> |
105 | 105 |
|
106 | 106 | <!-- Toast Notification --> |
107 | 107 | {#if showToast} |
|
184 | 184 | <Papicon icon="graduation-hat" size={20} /> |
185 | 185 | </span> |
186 | 186 | <h3 class="text-lg font-hand font-bold text-slate-800 flex items-center gap-2"> |
187 | | - <span class="rature-marker text-slate-400 font-normal">Études</span> |
188 | 187 | <span>Parcours Scolaire</span> |
189 | 188 | </h3> |
190 | 189 | </div> |
|
194 | 193 | {@const dotColor = dotColors[i % dotColors.length]} |
195 | 194 | <div class="relative py-1"> |
196 | 195 | <div class="absolute w-3.5 h-3.5 rounded-full {dotColor} -left-[31px] top-2.5 border-2 border-white"></div> |
197 | | - <span class="text-xs font-hand font-bold text-[var(--marker-color)] uppercase tracking-wider">{item.date}</span> |
198 | | - <h4 class="text-sm font-hand font-bold text-slate-900 mt-1">{item.title}</h4> |
199 | | - <p class="text-xs text-slate-500 font-marker mt-0.5">{item.subtitle}</p> |
200 | | - <p class="text-xs text-slate-655 mt-2 leading-relaxed font-sans">{item.description}</p> |
| 196 | + <span class="text-sm font-hand font-bold text-[var(--marker-color)] uppercase tracking-wider">{item.date}</span> |
| 197 | + <h4 class="text-base font-hand font-bold text-slate-900 mt-1">{item.title}</h4> |
| 198 | + <p class="text-sm text-slate-500 font-marker mt-0.5">{item.subtitle}</p> |
| 199 | + <p class="text-sm text-slate-655 mt-2 leading-relaxed font-sans">{item.description}</p> |
201 | 200 | </div> |
202 | 201 | {/each} |
203 | 202 | </div> |
|
210 | 209 | <Papicon icon="briefcase" size={20} /> |
211 | 210 | </span> |
212 | 211 | <h3 class="text-lg font-hand font-bold text-slate-800 flex items-center gap-2"> |
213 | | - <span class="rature-marker-double text-slate-400 font-normal">Job</span> |
214 | 212 | <span>Expériences</span> |
215 | 213 | </h3> |
216 | 214 | </div> |
|
220 | 218 | {@const dotColor = dotColors[i % dotColors.length]} |
221 | 219 | <div class="relative py-1"> |
222 | 220 | <div class="absolute w-3.5 h-3.5 rounded-full {dotColor} -left-[31px] top-2.5 border-2 border-white"></div> |
223 | | - <span class="text-xs font-hand font-bold text-[var(--marker-color)] uppercase tracking-wider">{item.date}</span> |
224 | | - <h4 class="text-sm font-hand font-bold text-slate-900 mt-1">{item.title}</h4> |
225 | | - <p class="text-xs text-slate-500 font-marker mt-0.5">{item.subtitle}</p> |
226 | | - <p class="text-xs text-slate-655 mt-2 leading-relaxed font-sans">{item.description}</p> |
| 221 | + <span class="text-sm font-hand font-bold text-[var(--marker-color)] uppercase tracking-wider">{item.date}</span> |
| 222 | + <h4 class="text-base font-hand font-bold text-slate-900 mt-1">{item.title}</h4> |
| 223 | + <p class="text-sm text-slate-500 font-marker mt-0.5">{item.subtitle}</p> |
| 224 | + <p class="text-sm text-slate-655 mt-2 leading-relaxed font-sans">{item.description}</p> |
227 | 225 | {#if item.url} |
228 | | - <a href={item.url} target="_blank" rel="noopener noreferrer" class="text-xs text-[var(--marker-color)] font-bold hover:underline mt-2 inline-block font-hand"> |
| 226 | + <a href={item.url} target="_blank" rel="noopener noreferrer" class="text-sm text-[var(--marker-color)] font-bold hover:underline mt-2 inline-block font-hand"> |
229 | 227 | {item.urlLabel || "Lien"} → |
230 | 228 | </a> |
231 | 229 | {/if} |
|
237 | 235 | <!-- 6 competencies as colored sticky notes --> |
238 | 236 | <div> |
239 | 237 | <h3 class="text-lg font-hand font-bold text-slate-800 mb-4 flex items-center gap-2"> |
240 | | - <span class="rature-marker text-slate-400 font-normal">Compétences</span> |
241 | 238 | <span>Compétences Clés</span> |
242 | 239 | </h3> |
243 | 240 | <div class="grid grid-cols-1 md:grid-cols-2 gap-6"> |
|
250 | 247 | <div class="post-it post-it-{color} {rotation} rounded-xl p-4 flex flex-col gap-2 relative"> |
251 | 248 | <div class="tape-torn tape-{tapeColor} absolute top-[-9px] left-[35%] w-16 h-5 opacity-70"></div> |
252 | 249 |
|
253 | | - <h4 class="text-xs font-hand font-bold text-slate-800">{competence.title}</h4> |
| 250 | + <h4 class="text-sm font-hand font-bold text-slate-800">{competence.title}</h4> |
254 | 251 | <div class="flex flex-wrap gap-2 mt-2"> |
255 | 252 | {#each competence.links as link} |
256 | 253 | <a href={link.url} target="_blank" rel="noopener noreferrer" |
257 | | - class="text-[10px] px-2 py-0.5 bg-white/70 hover:bg-white border-2 border-slate-700 text-slate-800 rounded font-marker transition-all transform hover:scale-105 inline-flex items-center gap-1"> |
| 254 | + class="text-xs px-2 py-0.5 bg-white/70 hover:bg-white border-2 border-slate-700 text-slate-800 rounded font-marker transition-all transform hover:scale-105 inline-flex items-center gap-1"> |
258 | 255 | <span class="text-slate-500"><Papicon icon="link" size={10} /></span> {link.label} |
259 | 256 | </a> |
260 | 257 | {/each} |
|
272 | 269 | <Papicon icon="grid" size={20} /> |
273 | 270 | </span> |
274 | 271 | <h3 class="text-lg font-hand font-bold text-slate-800 flex items-center gap-2"> |
275 | | - <span class="rature-marker text-slate-400 font-normal">Projets Pro</span> |
276 | 272 | <span>Tous mes projets</span> |
277 | 273 | </h3> |
278 | 274 | </div> |
|
328 | 324 | </div> |
329 | 325 |
|
330 | 326 | <div class="p-5 flex flex-col gap-3 flex-1"> |
331 | | - <span class="text-[10px] font-bold uppercase tracking-wider px-2 py-0.5 bg-white/60 text-slate-700 w-fit rounded font-hand"> |
| 327 | + <span class="text-xs font-bold uppercase tracking-wider px-2 py-0.5 bg-white/60 text-slate-700 w-fit rounded font-hand"> |
332 | 328 | {project.category} |
333 | 329 | </span> |
334 | | - <h4 class="text-base font-hand font-bold text-slate-900 group-hover:text-[var(--marker-color)] transition-colors"> |
| 330 | + <h4 class="text-lg font-hand font-bold text-slate-900 group-hover:text-[var(--marker-color)] transition-colors"> |
335 | 331 | {project.title} |
336 | 332 | </h4> |
337 | | - <p class="text-xs text-slate-700 leading-relaxed flex-1 font-marker"> |
| 333 | + <p class="text-sm text-slate-700 leading-relaxed flex-1 font-marker"> |
338 | 334 | {project.description} |
339 | 335 | </p> |
340 | 336 | <div class="flex flex-wrap gap-1 mt-2"> |
341 | 337 | {#each project.tags as tag} |
342 | | - <span class="text-[9px] px-1.5 py-0.5 bg-white/40 text-slate-650 rounded border border-slate-300 font-hand"> |
| 338 | + <span class="text-xs px-1.5 py-0.5 bg-white/40 text-slate-650 rounded border border-slate-300 font-hand"> |
343 | 339 | #{tag} |
344 | 340 | </span> |
345 | 341 | {/each} |
|
367 | 363 | <Papicon icon="mail" size={20} /> |
368 | 364 | </span> |
369 | 365 | <h3 class="text-lg font-hand font-bold text-slate-800 flex items-center gap-2"> |
370 | | - <span class="rature-marker-double text-slate-400 font-normal">Contactez-moi</span> |
371 | 366 | <span>Formulaire de contact</span> |
372 | 367 | </h3> |
373 | 368 | </div> |
|
376 | 371 | <!-- Form --> |
377 | 372 | <form onsubmit={handleMockSubmit} class="flex flex-col gap-4"> |
378 | 373 | <div class="flex flex-col gap-1.5"> |
379 | | - <label for="fullname" class="text-xs text-slate-700 font-hand font-bold">Nom complet</label> |
| 374 | + <label for="fullname" class="text-sm text-slate-700 font-hand font-bold">Nom complet</label> |
380 | 375 | <input |
381 | 376 | type="text" |
382 | 377 | id="fullname" |
383 | 378 | bind:value={fullname} |
384 | 379 | required |
385 | 380 | placeholder="Ex: John Doe" |
386 | | - class="px-4 py-2.5 bg-white border-2 border-slate-700 focus:border-[var(--marker-color)] rounded-xl text-sm text-slate-800 outline-none transition-colors border-sketch font-hand" |
| 381 | + class="px-4 py-2.5 bg-white border-2 border-slate-700 focus:border-[var(--marker-color)] rounded-xl text-base text-slate-800 outline-none transition-colors border-sketch font-hand" |
387 | 382 | /> |
388 | 383 | </div> |
389 | 384 |
|
390 | 385 | <div class="flex flex-col gap-1.5"> |
391 | | - <label for="email" class="text-xs text-slate-700 font-hand font-bold">Adresse Email</label> |
| 386 | + <label for="email" class="text-sm text-slate-700 font-hand font-bold">Adresse Email</label> |
392 | 387 | <input |
393 | 388 | type="email" |
394 | 389 | id="email" |
395 | 390 | bind:value={email} |
396 | 391 | required |
397 | 392 | placeholder="Ex: john@example.com" |
398 | | - class="px-4 py-2.5 bg-white border-2 border-slate-700 focus:border-[var(--marker-color)] rounded-xl text-sm text-slate-800 outline-none transition-colors border-sketch font-hand" |
| 393 | + class="px-4 py-2.5 bg-white border-2 border-slate-700 focus:border-[var(--marker-color)] rounded-xl text-base text-slate-800 outline-none transition-colors border-sketch font-hand" |
399 | 394 | /> |
400 | 395 | </div> |
401 | 396 |
|
402 | 397 | <div class="flex flex-col gap-1.5"> |
403 | | - <label for="message" class="text-xs text-slate-700 font-hand font-bold">Votre message</label> |
| 398 | + <label for="message" class="text-sm text-slate-700 font-hand font-bold">Votre message</label> |
404 | 399 | <textarea |
405 | 400 | id="message" |
406 | 401 | bind:value={message} |
407 | 402 | required |
408 | 403 | rows="4" |
409 | 404 | placeholder="Écrivez votre message ici..." |
410 | | - class="px-4 py-2.5 bg-white border-2 border-slate-700 focus:border-[var(--marker-color)] rounded-xl text-sm text-slate-800 outline-none resize-none transition-colors border-sketch font-hand" |
| 405 | + class="px-4 py-2.5 bg-white border-2 border-slate-700 focus:border-[var(--marker-color)] rounded-xl text-base text-slate-800 outline-none resize-none transition-colors border-sketch font-hand" |
411 | 406 | ></textarea> |
412 | 407 | </div> |
413 | 408 |
|
414 | 409 | <button |
415 | 410 | type="submit" |
416 | 411 | disabled={isSending} |
417 | | - class="btn-sketch self-end font-hand py-2 px-5 cursor-pointer text-xs flex items-center gap-1.5" |
| 412 | + class="btn-sketch self-end font-hand py-2 px-5 cursor-pointer text-sm flex items-center gap-1.5" |
418 | 413 | > |
419 | 414 | {isSending ? "Envoi en cours..." : "Envoyer le message"} |
420 | 415 | {#if !isSending} |
|
439 | 434 |
|
440 | 435 | <div class="pl-8"> |
441 | 436 | <div class="text-[var(--marker-color)]"><Mail size={20} /></div> |
442 | | - <h4 class="text-sm font-hand font-bold text-slate-800 mt-2">Contact direct</h4> |
443 | | - <p class="text-xs text-slate-650 leading-relaxed mt-2 font-marker"> |
| 437 | + <h4 class="text-base font-hand font-bold text-slate-800 mt-2">Contact direct</h4> |
| 438 | + <p class="text-sm text-slate-650 leading-relaxed mt-2 font-marker"> |
444 | 439 | Le formulaire de contact ci-contre simule une soumission locale. Pour toute demande professionnelle, vous pouvez me contacter directement par mail à : |
445 | 440 | </p> |
446 | | - <a href="mailto:{personalInfo.email}" class="text-sm text-[var(--marker-color)] hover:underline font-bold mt-2 block font-hand"> |
| 441 | + <a href="mailto:{personalInfo.email}" class="text-base text-[var(--marker-color)] hover:underline font-bold mt-2 block font-hand"> |
447 | 442 | {personalInfo.email} |
448 | 443 | </a> |
449 | 444 | </div> |
|
470 | 465 | </div> |
471 | 466 |
|
472 | 467 | <!-- Footer details --> |
473 | | - <footer class="text-[10px] text-slate-500 font-hand text-center py-2 shrink-0"> |
| 468 | + <footer class="text-xs text-slate-500 font-hand text-center py-2 shrink-0"> |
474 | 469 | © {new Date().getFullYear()} {personalInfo.name}. Conçu avec Svelte 5 & Bun. UI Tableau Blanc. |
475 | 470 | </footer> |
476 | 471 | </main> |
|
0 commit comments