Built in Vite using React and Tailwind.
Uses react useEffect with an observer that adds a class to an intersecting object, and removing once not intersecting. Allows the elements to replay their respective animation once they get into the viewport.
Scroll snap in css, using semantic html to wrap the react project in a main tag, with each section marked as a section tag. Ensures smooth animations every time a new section is loaded, regardless of scroll speed.
Mapped components in react which in turn map respective font awesome icons to visually describe used techs.
Fully using tailwind with minimal custom css code. Responsiveness achieved mainly through Tailwind.