How stylianos1995/stylianos works
This is a single-page personal portfolio: visitors browse an introduction and CV, selected projects, a technology-stack section, and contact options. The home page composes the sections; the contact form sends messages from the browser through EmailJS. The README documents responsive design, animations, dark mode, performance, and SEO; implementation details for some of these and the technology-stack and back-to-top components were not sampled, so their internal behavior is not expanded here.
Main entry points: page.tsx Home page · layout.tsx Root layout · Hero.tsx Introduction and CV · Contact.tsx Contact form and links
Components 14
Page shell
- Root layout
src/app/layout.tsx - Home page
src/app/page.tsx - Navigation
src/components/Navbar.tsx - Back to top
src/components/BackToTop.tsx - Global styles
src/app/globals.css
Portfolio content
- Introduction and CV
src/components/Hero.tsx - Selected projects
src/components/Projects.tsx - Technology stack
src/components/TechStack.tsx - Public asset helper
src/utils/publicAsset.ts - CV PDF
public/assets/Stylianos-Kalaitzis-CV.pdf
Contact
- Contact form and links
src/components/Contact.tsx - EmailJS configuration
src/lib/emailjs-config.ts - EmailJS
Other components
- Visitor
Connections 14
- Visitor → Root layout: opens site
- Root layout → Home page: renders page
- Root layout → Back to top: renders control
- Root layout → Global styles: loads styles
- Home page → Navigation: renders navigation
- Home page → Introduction and CV: renders introduction
- Home page → Selected projects: renders projects
- Home page → Technology stack: renders stack
- Home page → Contact form and links: renders contact
- Introduction and CV → Public asset helper: resolves asset paths
- Selected projects → Public asset helper: resolves image paths
- Introduction and CV → CV PDF: links download
- Contact form and links → EmailJS configuration: reads settings
- Contact form and links → EmailJS: sends message