diff --git a/package-lock.json b/package-lock.json
index d4824bc..53892f9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -20,6 +20,7 @@
"next": "^14.0.4",
"popmotion": "^11.0.5",
"react": "^18.2.0",
+ "react-countup": "^6.5.3",
"react-dom": "^18.2.0",
"react-icons": "^5.5.0",
"react-type-animation": "^3.2.0",
@@ -5156,6 +5157,12 @@
"node": ">=10"
}
},
+ "node_modules/countup.js": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/countup.js/-/countup.js-2.9.0.tgz",
+ "integrity": "sha512-llqrvyXztRFPp6+i8jx25phHWcVWhrHO4Nlt0uAOSKHB8778zzQswa4MU3qKBvkXfJKftRYFJuVHez67lyKdHg==",
+ "license": "MIT"
+ },
"node_modules/cross-spawn": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
@@ -11817,6 +11824,18 @@
"react-dom": ">=16.8.0"
}
},
+ "node_modules/react-countup": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/react-countup/-/react-countup-6.5.3.tgz",
+ "integrity": "sha512-udnqVQitxC7QWADSPDOxVWULkLvKUWrDapn5i53HE4DPRVgs+Y5rr4bo25qEl8jSh+0l2cToJgGMx+clxPM3+w==",
+ "license": "MIT",
+ "dependencies": {
+ "countup.js": "^2.8.0"
+ },
+ "peerDependencies": {
+ "react": ">= 16.3.0"
+ }
+ },
"node_modules/react-dom": {
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
diff --git a/package.json b/package.json
index 3385f6c..bb05e2e 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
"next": "^14.0.4",
"popmotion": "^11.0.5",
"react": "^18.2.0",
+ "react-countup": "^6.5.3",
"react-dom": "^18.2.0",
"react-icons": "^5.5.0",
"react-type-animation": "^3.2.0",
diff --git a/src/app/(main)/page.tsx b/src/app/(main)/page.tsx
index 5b914e3..14dd795 100644
--- a/src/app/(main)/page.tsx
+++ b/src/app/(main)/page.tsx
@@ -17,12 +17,12 @@ export default function Home() {
-
+
diff --git a/src/components/GridStats.tsx b/src/components/GridStats.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/components/NavLinks.tsx b/src/components/NavLinks.tsx
index 31eca5d..dcec93c 100644
--- a/src/components/NavLinks.tsx
+++ b/src/components/NavLinks.tsx
@@ -9,10 +9,13 @@ export function NavLinks() {
let timeoutRef = useRef(null)
return [
- ['About', '/#about'],
- ['Benefits', '/#benefits'],
- ['Features', '/#features'],
- ['Use Cases', '/#usecases'],
+ ['About', '/#home-about'],
+ ['Marketplace', '/#companies'],
+ ['Technology', '/#stack-section'],
+ ['How it works', '/#steps'],
+ ['Use Cases', '/#clickable-gallery'],
+ ['Coming Soon', '/#use-cases'],
+ ['Get Started', '/#call-to-action'],
['FAQs', '/#faqs'],
].map(([label, href], index) => (
, 'color'>
+ | (Omit, 'color'> & {
+ href?: undefined
+ })
+ )
+
+export function Button({ className, ...props }: ButtonProps) {
+ props.variant ??= 'solid'
+ if (props.variant === 'solid') {
+ props.color ??= 'primary'
+ } else {
+ props.color ??= 'gray'
+ }
+
+ let variantClass: string | undefined;
+ if (props.variant === 'outline') {
+ variantClass = variantStyles.outline[props.color as keyof typeof variantStyles.outline];
+ } else if (props.variant === 'solid') {
+ variantClass = variantStyles.solid[props.color as keyof typeof variantStyles.solid];
+ }
+
+ className = clsx(
+ baseStyles[props.variant],
+ variantClass,
+ className,
+ )
+
+ return typeof props.href === 'undefined' ? (
+
+ ) : (
+
+ )
+}