[x] Add IntersectionObserver and intro transition for each section / element
[x] Implement a splash screen (2 version, same content, different animation, appearing randomly)
[x] Implement the new header
Carousel
The Impact (aka Projects) section design requires a horizontal sliding view. We could simply implement an overflow-scrolling horizontal list for this, but the UX is not very great. Similarly, the Intro section design for mobile requires a carousel.
Overall, I'm against carousel because of the complexity and the performance penalty it introduces. We have noted this for designers to avoid using such pattern in other pages. But for home page, maybe we should still do it.
Let's should look into a lightweight, performant carousel library to achieve this.
Embla: good docs, first-party support for svelte with an action-based strategy (always a plus). 6.2kB Gzipped for the embla-carousel-svelte package
svelte-carousel: component-based, not a fan of this, but its bundlesize is only 813B gzipped, pretty good.
siema: lightweight (3kB gzipped), framework-agnostic, but author has stopped working on it.
splidejs: component-based, svelte integration first party. 14.8kB gzipped
Context
This issue tracks the progress of the first design and its implementation for the home page of sveltevietnam.dev
Development
EventCard
componentJobCard
componentIntersectionObserver
and intro transition for each section / elementCarousel
The
Impact
(aka Projects) section design requires a horizontal sliding view. We could simply implement an overflow-scrolling horizontal list for this, but the UX is not very great. Similarly, theIntro
section design for mobile requires a carousel.Overall, I'm against carousel because of the complexity and the performance penalty it introduces. We have noted this for designers to avoid using such pattern in other pages. But for home page, maybe we should still do it.
Let's should look into a lightweight, performant carousel library to achieve this.
embla-carousel-svelte
package