diff --git a/client/package.json b/client/package.json index 3eb3c18..62807cd 100644 --- a/client/package.json +++ b/client/package.json @@ -18,6 +18,7 @@ "embla-carousel-autoplay": "^8.6.0", "embla-carousel-react": "^8.6.0", "graphql": "^16.11.0", + "motion": "^14.3.0", "react": "^19.2.8", "react-dom": "^19.2.8", "react-router": "^8.4.0", diff --git a/client/src/components/layout/Layout.tsx b/client/src/components/layout/Layout.tsx index ada95ae..8cdf1fb 100644 --- a/client/src/components/layout/Layout.tsx +++ b/client/src/components/layout/Layout.tsx @@ -1,19 +1,21 @@ import { Outlet } from 'react-router'; import Header from './Header'; import { BottomNav } from './BottomNav'; +import { MotionConfig } from 'motion/react'; // felles ramme for alle sider export default function Layout() { return ( -
-
- - {/* ekstra plass nederst på mobil så bunnmenyen ikke dekker innholdet */} -
- -
- - -
+ // gir mulighet for bruker å skru av animasjoner + +
+
+ {/* ekstra plass nederst på mobil så bunnmenyen ikke dekker innholdet */} +
+ +
+ +
+
); } diff --git a/client/src/lib/motion.ts b/client/src/lib/motion.ts new file mode 100644 index 0000000..6032a35 --- /dev/null +++ b/client/src/lib/motion.ts @@ -0,0 +1,24 @@ +import type { Transition, Variants } from 'motion/react'; + +// bare å legge inn andre ideer folk har + +// felles fart så alle animasjoner føles like +export const quick: Transition = { duration: 0.2, ease: 'easeOut' }; + +// spring for ting som skal gli eller sprette +export const spring: Transition = { + type: 'spring', + stiffness: 500, + damping: 35, +}; + +// fades inn eller ut +export const fade: Variants = { + hidden: { opacity: 0 }, + visible: { opacity: 1 }, +}; + +export const fadeUp: Variants = { + hidden: { opacity: 0, y: 8 }, + visible: { opacity: 1, y: 0 }, +};