feat: add landing page components including FAQ, features, footer, header, hero, modalities, steps, and section title

This commit is contained in:
2026-09-21 04:32:59 +03:30
parent 1e599b917b
commit 5f19f82f86
41 changed files with 1518 additions and 84 deletions
@@ -0,0 +1,27 @@
import { onBeforeUnmount, onMounted } from 'vue'
export function useScrollReveal(rootRef, selector = '.landing-reveal') {
let observer = null
onMounted(() => {
const elements = rootRef.value?.querySelectorAll(selector) ?? []
if (!('IntersectionObserver' in window)) {
elements.forEach((element) => element.classList.add('is-visible'))
return
}
observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
entry.target.classList.add('is-visible')
observer.unobserve(entry.target)
}
})
}, { threshold: 0.05 })
elements.forEach((element) => observer.observe(element))
})
onBeforeUnmount(() => observer?.disconnect())
}