diff --git a/web/src/app/icons/components/icon-search.tsx b/web/src/app/icons/components/icon-search.tsx
index 14cc5b01..3a20419d 100644
--- a/web/src/app/icons/components/icon-search.tsx
+++ b/web/src/app/icons/components/icon-search.tsx
@@ -11,6 +11,7 @@ import Link from "next/link"
import { usePathname, useRouter, useSearchParams } from "next/navigation"
import { useCallback, useEffect, useRef, useState } from "react"
import { useTheme } from "next-themes"
+import { useInView } from "framer-motion"
export function IconSearch({ icons }: IconSearchProps) {
const searchParams = useSearchParams()
@@ -133,39 +134,70 @@ export function IconSearch({ icons }: IconSearchProps) {
) : (
{filteredIcons.map(({ name, data }, index) => (
-
-
-
-
-
-
-
-
- {name.replace(/-/g, " ")}
-
-
-
+
))}
)}
>
)
}
+
+function IconCard({ name, data, getIconVariant }: {
+ name: string;
+ data: any;
+ getIconVariant: (name: string, data: any) => string;
+}) {
+ const ref = useRef(null);
+ const isInView = useInView(ref, {
+ once: false,
+ amount: 0.2,
+ margin: "100px 0px"
+ });
+
+ const variants = {
+ hidden: { opacity: 0, y: 20, scale: 0.95 },
+ visible: {
+ opacity: 1,
+ y: 0,
+ scale: 1,
+ transition: { duration: 0.4, ease: [0.25, 0.1, 0.25, 1.0] }
+ },
+ exit: {
+ opacity: 0,
+ y: -10,
+ scale: 0.98,
+ transition: { duration: 0.3, ease: [0.25, 0.1, 0.25, 1.0] }
+ }
+ };
+
+ return (
+
+
+
+
+
+
+
+
+ {name.replace(/-/g, " ")}
+
+
+
+ );
+}