"use client"; import { useEffect, useRef } from "react"; import { gsap } from "gsap"; import { ScrollTrigger } from "gsap/ScrollTrigger"; import { SplitText } from "gsap/SplitText"; gsap.registerPlugin(ScrollTrigger, SplitText); const About = () => { const aboutTitle = useRef(null); const subHeadingRef = useRef(null); const subHeading2Ref = useRef(null); const mainHeadingRef = useRef(null); const subSplit1 = useRef(null); const subSplit2 = useRef(null); const mainSplit = useRef(null); useEffect(() => { const ctx = gsap.context(() => { // Split subheadings into words const headingSplit = new SplitText(aboutTitle.current, { type: "chars" }); if (subHeadingRef.current) { subSplit1.current = new SplitText(subHeadingRef.current, { type: "words", wordsClass: "word", }); } if (subHeading2Ref.current) { subSplit2.current = new SplitText(subHeading2Ref.current, { type: "words", wordsClass: "word", }); } const allSubWords = [ ...(subSplit1.current?.words || []), ...(subSplit2.current?.words || []), ]; gsap.from(headingSplit.chars, { yPercent: 100, opacity: 0, duration: 1, ease: "expo.out", stagger: 0.025, scrollTrigger: { trigger: aboutTitle.current, start: "top 85%", toggleActions: "play none none none", }, }); gsap.from(allSubWords, { yPercent: 100, opacity: 0, duration: 1, ease: "expo.out", stagger: 0.02, scrollTrigger: { trigger: subHeadingRef.current, start: "top 85%", toggleActions: "play none none none", // markers: true, }, }); // MAIN HEADING fade-in per character if (mainHeadingRef.current) { mainSplit.current = new SplitText(mainHeadingRef.current, { type: "chars", charsClass: "char", }); const chars = mainSplit.current.chars; gsap.fromTo( chars, { opacity: 0.3 }, { opacity: 1, ease: "expo.out", stagger: 0.04, scrollTrigger: { trigger: mainHeadingRef.current, start: "top 85%", end: "bottom 60%", scrub: 1, }, } ); } }); return () => { ctx.revert(); subSplit1.current?.revert(); subSplit2.current?.revert(); mainSplit.current?.revert(); }; }, []); return (
{/* Left */}

About Us

{/* Right */}
{/* MAIN HEADING */}

At{" "} FalktronTrees {" "} merges IoT, AI, and environmental intelligence to connect nature and technology, creating smart solutions that monitor and improve the health of trees and ecosystems.

{/* Sub-heading 1 */}

Based in Oelde, Germany, FalktronTrees brings together innovation, data science, and environmental care to empower cities, organizations, and individuals to manage natural resources intelligently.

{/* Sub-heading 2 */}

Under the leadership of Matthias Mut, co-founder and CEO, the company combines expertise in AI-driven analytics, sensor technology, and prompt engineering to deliver cutting-edge environmental monitoring systems.

); }; export default About;