This is a professional portfolio developed with Vue.js 3 and Vite, showcasing my experience as a Full-Stack Developer, projects, skills, and contact information.
The website is fully responsive, features interactive animations, supports multiple languages (Portuguese and English), and was built following modern web development best practices.
🌐 View Demo (coming soon)
- 🎨 Modern design with dark theme
- 📱 Fully responsive layout
- 🌍 Multiple language support (PT-BR and EN)
- 🔄 Interactive animations with anime.js
- 🌐 Interactive 3D globe using Three.js
- 📊 Animated skill visualizations
- 📝 Contact form
- ♿ Enhanced accessibility features
- 🔍 SEO optimized
- Node.js (v16+)
- npm or yarn
# Clone the repository
git clone https://github.com/elderfonseca/portfolio.git
# Enter the directory
cd portfolio
# Install dependencies
npm install
# or
yarn install
# Start the development server
npm run dev
# or
yarn devThe site will be available at http://localhost:5173
# Build for production
npm run build
# or
yarn build
# Preview the production build
npm run preview
# or
yarn previewsrc/
├── assets/ # Static assets (images, styles)
├── components/ # Reusable Vue components
│ ├── common/ # Generic components (Button, NavLink, etc.)
│ ├── layout/ # Layout components (Header, Footer, etc.)
│ └── sections/ # Main site sections
├── composables/ # Vue composables (reusable logic)
├── config/ # Configurations and constants
├── locales/ # Translation files (i18n)
├── plugins/ # Vue plugins (i18n, animations, etc.)
├── services/ # Services and APIs
├── utils/ # Utility functions
├── App.vue # Main component
└── main.js # Entry point
AnimatedName: SVG name animation with drawing effectButton: Reusable button component with various variantsLanguageSwitcher: Language toggle with interactive 3D globeProjectCard: Card for project displayTimelineItem: Timeline item for work experience
useAnimations: Manages animations based on anime.jsuseGlobe: Controls the 3D globe using Three.jsuseLocale: Manages language configuration
accessibilityUtils: Functions to enhance accessibility
The site supports Portuguese and English, with the ability to expand to other languages.
To add a new language:
- Create a new file in the
src/locales/folder - Add the language to the
AVAILABLE_LANGUAGESconstant insrc/config/constants.js
The main theme colors can be adjusted in src/config/colors.js:
const colors = {
primary: {
dark: '#00ADB5',
light: '#00FFF5',
},
background: {
primary: '#222831',
secondary: '#393E46',
},
text: {
primary: '#FFFFFF',
secondary: '#CCCCCC',
accent: '#00FFF5',
},
// ...
};Most content can be edited through the language files in src/locales/.
npm run dev- Start the development servernpm run build- Build the site for productionnpm run preview- Preview the production build locally
Elder Fonseca - elder.fonseca15@gmail.com
- LinkedIn: linkedin.com/in/elder-fonseca-lima
- GitHub: github.com/elderfonseca
Developed with ❤️ by Elder Fonseca
