Updates dependencies and implements portfolio
Updates eslint and typescript-eslint dependencies. Migrates to a new portfolio structure with components, styling, route management, and internationalization. Adds project display with multiple project types using custom components. Adds image assets to be displayed in experience sections
This commit is contained in:
@@ -60,10 +60,12 @@ function App() {
|
||||
setThemeSelected(newTheme);
|
||||
};
|
||||
|
||||
const scrollToSection = (id: string) => {
|
||||
const scrollToSection = (e: React.MouseEvent<HTMLAnchorElement>, id: string) => {
|
||||
e.preventDefault();
|
||||
const section = document.getElementById(id);
|
||||
if (section) {
|
||||
section.scrollIntoView({ behavior: 'smooth' });
|
||||
window.history.pushState(null, '', `#${id}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,11 +85,11 @@ function App() {
|
||||
Louis EMARD
|
||||
</h1>
|
||||
<nav className='flex gap-6 h-full justify-center items-center'>
|
||||
<a onClick={() => scrollToSection('about')} className='hover:text-accent transition-colors cursor-pointer'>{t('nav.about')}</a>
|
||||
<a onClick={() => scrollToSection('experience')} className='hover:text-accent transition-colors cursor-pointer'>{t('nav.projects')}</a>
|
||||
<a onClick={() => scrollToSection('skills')} className='hover:text-accent transition-colors cursor-pointer'>{t('nav.skills')}</a>
|
||||
<a onClick={() => scrollToSection('education')} className='hover:text-accent transition-colors cursor-pointer'>{t('nav.education')}</a>
|
||||
<a onClick={() => scrollToSection('contact')} className='hover:text-accent transition-colors cursor-pointer'>{t('nav.contact')}</a>
|
||||
<a href='#about' onClick={(e) => scrollToSection(e, 'about')} className='hidden md:block hover:text-accent transition-colors cursor-pointer'>{t('nav.about')}</a>
|
||||
<a href='#experience' onClick={(e) => scrollToSection(e, 'experience')} className='hidden md:block hover:text-accent transition-colors cursor-pointer'>{t('nav.projects')}</a>
|
||||
<a href='#skills' onClick={(e) => scrollToSection(e, 'skills')} className='hidden md:block hover:text-accent transition-colors cursor-pointer'>{t('nav.skills')}</a>
|
||||
<a href='#education' onClick={(e) => scrollToSection(e, 'education')} className='hidden md:block hover:text-accent transition-colors cursor-pointer'>{t('nav.education')}</a>
|
||||
<a href='#contact' onClick={(e) => scrollToSection(e, 'contact')} className='hidden md:block hover:text-accent transition-colors cursor-pointer'>{t('nav.contact')}</a>
|
||||
|
||||
{/* Language Toggle */}
|
||||
<button
|
||||
@@ -107,7 +109,7 @@ function App() {
|
||||
</header>
|
||||
|
||||
{/* Main Content */}
|
||||
<main className='bg-'>
|
||||
<main>
|
||||
<Hero />
|
||||
<About />
|
||||
<Experience />
|
||||
@@ -118,7 +120,7 @@ function App() {
|
||||
|
||||
{/* Footer */}
|
||||
<footer className='py-8 border-t border-secondary/10 bg-secondary/5'>
|
||||
<div className='flex flex-col md:flex-row gap-6 justify-center items-center text-sm'>
|
||||
<div className='flex gap-6 justify-center items-center text-sm'>
|
||||
<a href='https://git.louisemard.dev' target='_blank' rel='noopener noreferrer' className='hover:text-accent transition-colors'>
|
||||
Gitea
|
||||
</a>
|
||||
|
||||
Reference in New Issue
Block a user