diff --git a/package.json b/package.json index 52b3e31..0bbcf6a 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "react": "^18.3.1", "react-countup": "^6.5.3", "react-dom": "^18.3.1", + "react-type-animation": "^3.2.0", "tailwind-merge": "^2.6.0", "tailwindcss": "^4.1.7", "three": "^0.179.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6d5c2a1..0b3dc0f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -65,6 +65,9 @@ importers: react-dom: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) + react-type-animation: + specifier: ^3.2.0 + version: 3.2.0(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tailwind-merge: specifier: ^2.6.0 version: 2.6.0 @@ -2270,6 +2273,13 @@ packages: peerDependencies: react: ^18.0.0 + react-type-animation@3.2.0: + resolution: {integrity: sha512-WXTe0i3rRNKjmggPvT5ntye1QBt0ATGbijeW6V3cQe2W0jaMABXXlPPEdtofnS9tM7wSRHchEvI9SUw+0kUohw==} + peerDependencies: + prop-types: ^15.5.4 + react: '>= 15.0.0' + react-dom: '>= 15.0.0' + react-use-measure@2.1.7: resolution: {integrity: sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg==} peerDependencies: @@ -4945,6 +4955,12 @@ snapshots: react: 18.3.1 scheduler: 0.21.0 + react-type-animation@3.2.0(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-use-measure@2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 diff --git a/src/app/(main)/about/page.tsx b/src/app/(main)/about/page.tsx index b7ef1bf..03ead54 100644 --- a/src/app/(main)/about/page.tsx +++ b/src/app/(main)/about/page.tsx @@ -1,7 +1,10 @@ +import { AboutHero } from "@/components/AboutHero" + + export default function About() { return (
- {/* About page content will go here */} +
) } diff --git a/src/components/AboutHero.tsx b/src/components/AboutHero.tsx index e69de29..da3c01a 100644 --- a/src/components/AboutHero.tsx +++ b/src/components/AboutHero.tsx @@ -0,0 +1,50 @@ +"use client"; +import { TypeAnimation } from 'react-type-animation'; + +const rotatingWords = [ + "everyone", + 1500, + "creators", + 1500, + "dreamers", + 1500, + "developers", + 1500, + "communities", + 1500, + "humanity", + 1500, + "builders", + 1500, + "thinkers", + 1500, + "doers", + 1500, + "pioneers", + 1500, + "the next billion", + 1500, + "All", + 1500, +]; + +export function AboutHero() { + return ( +
+

+ Building a Decentralized Internet for{" "} + . +

+

+ At ThreeFold, we are empowering + individuals and organizations to shape an open, resilient, and sustainable internet. +

+
+ ); +} diff --git a/src/components/HeroHome.tsx b/src/components/HeroHome.tsx index ad1b6c0..2369445 100644 --- a/src/components/HeroHome.tsx +++ b/src/components/HeroHome.tsx @@ -4,6 +4,7 @@ import Image from 'next/image' import { Button } from './Button' import Engage from '@/images/engage.svg' import { gradientText, gradientDark } from '@/components/Gradients' +import { h1 as H1 } from '@/components/ui/Text' const navigation = [ { name: 'Product', href: '#' }, @@ -18,9 +19,9 @@ export default function HeroHome() {
-

+

Empowering Purpose-Driven Organizations. -

+

Welcome to ThreeFold: the first all-in-one, white-label engagement platform to mobilize communities, engage supporters, scale impact, and fundraise—at a fraction of the cost.

diff --git a/src/components/ui/Text.tsx b/src/components/ui/Text.tsx new file mode 100644 index 0000000..15ba618 --- /dev/null +++ b/src/components/ui/Text.tsx @@ -0,0 +1,9 @@ +import { cn } from '@/lib/utils' +import React from 'react' + +const h1 = React.forwardRef>(({ className, ...props }, ref) => ( +

+)) +h1.displayName = 'H1' + +export { h1 }