diff --git a/package-lock.json b/package-lock.json
index 82af423..264275b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2317,6 +2317,64 @@
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
+ "@motionone/animation": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.14.0.tgz",
+ "integrity": "sha512-h+1sdyBP8vbxEBW5gPFDnj+m2DCqdlAuf2g6Iafb1lcMnqjsRXWlPw1AXgvUMXmreyhqmPbJqoNfIKdytampRQ==",
+ "requires": {
+ "@motionone/easing": "^10.14.0",
+ "@motionone/types": "^10.14.0",
+ "@motionone/utils": "^10.14.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/dom": {
+ "version": "10.13.1",
+ "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.13.1.tgz",
+ "integrity": "sha512-zjfX+AGMIt/fIqd/SL1Lj93S6AiJsEA3oc5M9VkUr+Gz+juRmYN1vfvZd6MvEkSqEjwPQgcjN7rGZHrDB9APfQ==",
+ "requires": {
+ "@motionone/animation": "^10.13.1",
+ "@motionone/generators": "^10.13.1",
+ "@motionone/types": "^10.13.0",
+ "@motionone/utils": "^10.13.1",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/easing": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.14.0.tgz",
+ "integrity": "sha512-2vUBdH9uWTlRbuErhcsMmt1jvMTTqvGmn9fHq8FleFDXBlHFs5jZzHJT9iw+4kR1h6a4SZQuCf72b9ji92qNYA==",
+ "requires": {
+ "@motionone/utils": "^10.14.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/generators": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.14.0.tgz",
+ "integrity": "sha512-6kRHezoFfIjFN7pPpaxmkdZXD36tQNcyJe3nwVqwJ+ZfC0e3rFmszR8kp9DEVFs9QL/akWjuGPSLBI1tvz+Vjg==",
+ "requires": {
+ "@motionone/types": "^10.14.0",
+ "@motionone/utils": "^10.14.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/types": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.14.0.tgz",
+ "integrity": "sha512-3bNWyYBHtVd27KncnJLhksMFQ5o2MSdk1cA/IZqsHtA9DnRM1SYgN01CTcJ8Iw8pCXF5Ocp34tyAjY7WRpOJJQ=="
+ },
+ "@motionone/utils": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.14.0.tgz",
+ "integrity": "sha512-sLWBLPzRqkxmOTRzSaD3LFQXCPHvDzyHJ1a3VP9PRzBxyVd2pv51/gMOsdAcxQ9n+MIeGJnxzXBYplUHKj4jkw==",
+ "requires": {
+ "@motionone/types": "^10.14.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
"@mui/base": {
"version": "5.0.0-alpha.95",
"resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.95.tgz",
@@ -6129,6 +6187,57 @@
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
"integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA=="
},
+ "framer-motion": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-7.2.1.tgz",
+ "integrity": "sha512-bt2ZqqGpPsW6UojYUa5poWQJu3sDr4Dp3IZsdVBYdKUJ8p+9PxOk1fYRAT8lTGGmaC5HFoKrbDXQeKWGAKZz9g==",
+ "requires": {
+ "@emotion/is-prop-valid": "^0.8.2",
+ "@motionone/dom": "10.13.1",
+ "framesync": "6.1.2",
+ "hey-listen": "^1.0.8",
+ "popmotion": "11.0.5",
+ "style-value-types": "5.1.2",
+ "tslib": "2.4.0"
+ },
+ "dependencies": {
+ "@emotion/is-prop-valid": {
+ "version": "0.8.8",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
+ "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==",
+ "optional": true,
+ "requires": {
+ "@emotion/memoize": "0.7.4"
+ }
+ },
+ "@emotion/memoize": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
+ "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
+ "optional": true
+ },
+ "tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
+ }
+ }
+ },
+ "framesync": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.1.2.tgz",
+ "integrity": "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==",
+ "requires": {
+ "tslib": "2.4.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
+ }
+ }
+ },
"fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@@ -6369,6 +6478,11 @@
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
},
+ "hey-listen": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz",
+ "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="
+ },
"history": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz",
@@ -8419,6 +8533,24 @@
}
}
},
+ "popmotion": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.5.tgz",
+ "integrity": "sha512-la8gPM1WYeFznb/JqF4GiTkRRPZsfaj2+kCxqQgr2MJylMmIKUwBfWW8Wa5fml/8gmtlD5yI01MP1QCZPWmppA==",
+ "requires": {
+ "framesync": "6.1.2",
+ "hey-listen": "^1.0.8",
+ "style-value-types": "5.1.2",
+ "tslib": "2.4.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
+ }
+ }
+ },
"portfinder": {
"version": "1.0.28",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
@@ -10200,6 +10332,22 @@
"resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz",
"integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ=="
},
+ "style-value-types": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.1.2.tgz",
+ "integrity": "sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q==",
+ "requires": {
+ "hey-listen": "^1.0.8",
+ "tslib": "2.4.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
+ }
+ }
+ },
"stylehacks": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz",
diff --git a/package.json b/package.json
index 86cbe36..111277e 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
"animate.css": "^4.1.1",
"axios": "^0.27.2",
"firebase": "^9.9.4",
+ "framer-motion": "^7.2.1",
"nanoid": "^4.0.0",
"react": "^18.1.0",
"react-dom": "^18.1.0",
diff --git a/src/components/AnimateRoutes/AnimateRoutes.jsx b/src/components/AnimateRoutes/AnimateRoutes.jsx
new file mode 100644
index 0000000..766ac74
--- /dev/null
+++ b/src/components/AnimateRoutes/AnimateRoutes.jsx
@@ -0,0 +1,20 @@
+import AddWord from 'components/pages/AddWord';
+import ListCard from 'components/pages/ListCard';
+import React from 'react';
+import { Route, Routes, useLocation } from 'react-router-dom';
+import { AnimatePresence } from 'framer-motion';
+// import { AnimatePresence } from 'framer-motion/dist/framer-motion';
+
+function AnimateRoutes() {
+ const location = useLocation();
+ return (
+