diff --git a/package-lock.json b/package-lock.json index 5a12811..eff5883 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,6 +43,7 @@ "date-fns": "^4.1.0", "dotenv": "^16.4.5", "embla-carousel-react": "^8.2.0", + "framer-motion": "^11.11.17", "lucide-react": "^0.428.0", "next": "^14.2.15", "next-themes": "^0.3.0", @@ -6953,6 +6954,31 @@ "node": ">=12.20.0" } }, + "node_modules/framer-motion": { + "version": "11.11.17", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.11.17.tgz", + "integrity": "sha512-O8QzvoKiuzI5HSAHbcYuL6xU+ZLXbrH7C8Akaato4JzQbX2ULNeniqC2Vo5eiCtFktX9XsJ+7nUhxcl2E2IjpA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", diff --git a/package.json b/package.json index 32f6b05..c7803bb 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "date-fns": "^4.1.0", "dotenv": "^16.4.5", "embla-carousel-react": "^8.2.0", + "framer-motion": "^11.11.17", "lucide-react": "^0.428.0", "next": "^14.2.15", "next-themes": "^0.3.0", diff --git a/src/components/mobileMenu.tsx b/src/components/mobileMenu.tsx new file mode 100644 index 0000000..9c513a8 --- /dev/null +++ b/src/components/mobileMenu.tsx @@ -0,0 +1,27 @@ +"use client"; +import { useState } from "react"; +import { Menu, X } from "lucide-react"; +import { Button } from "./ui/button"; +import { motion } from "framer-motion"; + +export function MobileMenu() { + const [isVisible, setIsVisible] = useState(false); + return ( +