A minimalist, responsive personal portfolio built with plain HTML, CSS, and JavaScript. It features smooth section swipe transitions, a dark-mode invert, animated accents, and masked SVG icons.
project_mockup.mp4
index.html— markup for Landing, About, Projects, Contactcss/style.css— base styles, colors, animations, dark-modecss/style-responsive.css— responsive rules and breakpointsjs/script.js— smooth swipe-scroll, IntersectionObserver, dark-mode toggle, copy-email dynamic button revealerassets/— images and SVGs referenced by HTML/CSSfonts/— Nohemi *.woff2 referenced by CSS
- Swipe-style section transition overlay when navigating in-page links
- Smooth scrolling with temporarily disabled browser smooth behavior during transition
- Dark color invert toggle (asterisk button) that toggles body.inverted
- About image color-on-hover effect
- Skill list with masked icons tinted via background-color
- Projects section background inversion when visible (unless dark mode is active)
- Contact section with one-click copy email button and hover underlines
- Responsive layout with sensible spacing and typography
Open in a local static server to ensure smooth behavior and correct asset paths.
-
Python:
cd portfoliopython -m http.server 8000- Open
http://localhost:8000
-
Npx (optional):
npx http-server -p 8000
Then navigate to index.html.
- SVG icons are applied via
-webkit-mask-image/mask-imageso their color is controlled bybackground-color - Animations:
fadeInUpfor hero textswipe-upfor transition overlaysstatus-pulsefor availability dot
IntersectionObservertoggles a.projects-visibleclass based on viewport visibility
<= 48em (768px): font-size scaled, tighter gaps, stacked layouts769px–100em: minor sizing tweaks