From 6cc54d8a29011730db6ed0c9c251325f5104bfa0 Mon Sep 17 00:00:00 2001 From: A Charlwood Date: Tue, 10 Feb 2026 17:20:27 +0000 Subject: [PATCH] Task 11: Implement scroll animations and responsive design MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add xs (480px) breakpoint to tailwind config for mobile - Standardize scroll-reveal animations to opacity 0→1, y 24→0 - Add responsive padding to main container (px-5 xs:px-6 md:px-8) - Add responsive section padding (py-12 xs:py-16 md:py-20) - FloatingNav: responsive width and font/padding on mobile - Hero: responsive vitals grid, title font clamp to 28px min - Skills: responsive grid (2→3→auto-fit), smaller gauges on mobile - Experience: responsive card padding, ECG decoration size - Education/Projects: responsive grids matching concept.html - Contact/Footer: responsive padding --- src/App.tsx | 2 +- src/components/Contact.tsx | 6 +++--- src/components/Education.tsx | 8 ++++---- src/components/Experience.tsx | 10 +++++----- src/components/FloatingNav.tsx | 4 ++-- src/components/Footer.tsx | 2 +- src/components/Hero.tsx | 8 ++++---- src/components/Projects.tsx | 8 ++++---- src/components/Skills.tsx | 14 ++++++-------- tailwind.config.js | 7 +++++++ 10 files changed, 37 insertions(+), 32 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index b8a4966..3b7ee44 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -27,7 +27,7 @@ function App() { {phase === 'content' && ( <> -
+
diff --git a/src/components/Contact.tsx b/src/components/Contact.tsx index d555c1b..86a5f33 100644 --- a/src/components/Contact.tsx +++ b/src/components/Contact.tsx @@ -48,8 +48,8 @@ const ContactItemCard = ({ return ( @@ -83,7 +83,7 @@ export function Contact() { }) return ( -
+
{ return ( @@ -52,7 +52,7 @@ export function Education() { }) return ( -
+
-
+
{educationData.map((education, index) => ( (
@@ -137,7 +137,7 @@ export function Experience() {
diff --git a/src/components/FloatingNav.tsx b/src/components/FloatingNav.tsx index 10236fa..234b359 100644 --- a/src/components/FloatingNav.tsx +++ b/src/components/FloatingNav.tsx @@ -28,7 +28,7 @@ export function FloatingNav() { return ( scrollToSection(link.id)} className={` - relative font-secondary text-[13px] font-medium py-1.5 px-3.5 rounded-full + relative font-secondary text-[11px] xs:text-[13px] font-medium py-1.5 px-2.5 xs:px-3.5 rounded-full transition-colors duration-300 ease-out whitespace-nowrap ${isActive ? 'text-teal font-semibold' diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index d438ea6..fdbef29 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -7,7 +7,7 @@ const Footer: React.FC = () => { whileInView={{ opacity: 1, y: 0 }} viewport={{ once: true, margin: '-50px' }} transition={{ duration: 0.5, ease: 'easeOut' }} - className="text-center pt-12 pb-8 border-t border-slate-200" + className="text-center pt-8 xs:pt-12 pb-6 xs:pb-8 border-t border-slate-200" > Andy Charlwood @@ -74,7 +74,7 @@ export function Hero() { GPhC Registered Pharmacist specialising in medicines optimisation, population health analytics, and NHS efficiency programmes. Bridging clinical pharmacy with data science to drive meaningful improvements in patient outcomes. -
+
diff --git a/src/components/Projects.tsx b/src/components/Projects.tsx index ac206f5..82d755f 100644 --- a/src/components/Projects.tsx +++ b/src/components/Projects.tsx @@ -38,8 +38,8 @@ const ProjectCard = ({ }) => { return ( @@ -80,7 +80,7 @@ export function Projects() { }) return ( -
+
-
+
{projectsData.map((project, index) => ( {label} -
+
{skills.map((skill, index) => ( s.category === 'Strategic') return ( -
+