feat: add smooth site-wide animations with framer-motion
Local Build and Deploy / deploy (push) Successful in 53s

- Add framer-motion and tailwindcss-animate for transitions
- Add page transitions via AnimatePresence in the site layout
- Convert nav dropdown and mobile menu to animated motion components
- Add entry animation to the radio player widget
- Add reveal/stagger animations to the home page views
- Add shared motion utilities and reusable animated components
This commit is contained in:
openhands committed 2026-07-16 20:58:18 +02:00
1 parent ac1b412756
commit a3b077c488
13 files changed
+624 -142

No files matched your search

+6 -2
View File
@@ -1,5 +1,6 @@
"use client";
import { motion } from "framer-motion";
import { useCallback, useEffect, useRef, useState } from "react";
/**
@@ -228,7 +229,10 @@ export default function RadioPlayer() {
const border = "color-mix(in srgb, var(--color-text-muted) 18%, transparent)";
return (
<section
<motion.section
initial={{ opacity: 0, y: 20, scale: 0.95 }}
animate={{ opacity: 1, y: 0, scale: 1 }}
transition={{ duration: 0.4, ease: [0.25, 0.1, 0.25, 1] }}
aria-label={`${config.name} player`}
style={{
position: "fixed",
@@ -392,6 +396,6 @@ export default function RadioPlayer() {
{/* Hidden stream element. preload="none" so nothing loads until the user
hits play (and browsers block autoplay with sound regardless). */}
<audio ref={audioRef} preload="none" />
</section>
</motion.section>
);
}