Portfolio Click Simple SPA with custom animations Tech stack React Sass React-icons React-intersection-observer hook React scroll library