5 Commits

Author SHA1 Message Date
2cbe545fee Merge version_2_1781550857679 into main
Merge version_2_1781550857679 into main
2026-06-15 19:16:17 +00:00
kudinDmitriyUp
08f1262bf2 Bob AI: Populate src/pages/AboutPage.tsx (snippet builder, 3 sections) 2026-06-15 19:15:35 +00:00
kudinDmitriyUp
7ec5427f44 Bob AI: Add about page 2026-06-15 19:15:08 +00:00
97fb28d234 Merge version_1_1781550328816 into main
Merge version_1_1781550328816 into main
2026-06-15 19:06:41 +00:00
8a0d20a8a7 Merge version_1_1781550328816 into main
Merge version_1_1781550328816 into main
2026-06-15 19:05:56 +00:00
4 changed files with 32 additions and 1 deletions

View File

@@ -2,11 +2,13 @@ import { Routes, Route } from 'react-router-dom';
import Layout from './components/Layout';
import HomePage from './pages/HomePage';
import AboutPage from "@/pages/AboutPage";
export default function App() {
return (
<Routes>
<Route element={<Layout />}>
<Route path="/" element={<HomePage />} />
<Route path="/about" element={<AboutPage />} />
</Route>
</Routes>
);

View File

@@ -27,7 +27,9 @@ export default function Layout() {
},
{
"name": "Testimonials", "href": "#testimonials"
}
},
{ name: "About", href: "/about" },
];
return (

26
src/pages/AboutPage.tsx Normal file
View File

@@ -0,0 +1,26 @@
import Button from "@/components/ui/Button";
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
import TextAnimation from "@/components/ui/TextAnimation";
import ImageOrVideo from "@/components/ui/ImageOrVideo";
import ScrollReveal from "@/components/ui/ScrollReveal";
import AboutFeaturesSplit from "@/components/sections/about/AboutFeaturesSplit";
export default function AboutPage() {
return (
<>
<div data-webild-section="HeroSplit"><section aria-label="Hero section" className="relative flex items-center h-fit md:h-svh pt-25 pb-20 md:py-0"><HeroBackgroundSlot /><div className="flex flex-col md:flex-row items-center gap-12 md:gap-20 w-content-width mx-auto"><div className="w-full md:w-1/2"><div className="flex flex-col items-center md:items-start gap-3"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>About Netcare Renal</p></div><TextAnimation text="Dedicated to Your Renal Health Journey" variant="slide-up" gradientText={true} tag="h1" className="text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-center md:text-left text-balance" /><TextAnimation text="We provide compassionate, specialized renal care and rehabilitation in Johannesburg. Our expert team is committed to supporting patients and their families every step of the way." variant="slide-up" gradientText={false} tag="p" className="md:max-w-8/10 text-lg md:text-xl leading-snug text-center md:text-left text-balance" /><div className="flex flex-wrap max-md:justify-center gap-3 mt-2 md:mt-3"><Button text="Our Services" href="/renal-care-services" variant="primary" /><Button text="Meet Our Team" href="/clinical-team" variant="secondary" animationDelay={0.1} /></div></div></div><ScrollReveal variant="fade" delay={0.2} className="w-full md:w-1/2 h-100 md:h-[65vh] md:max-h-[75svh] p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/free-photo/doctor-holding-patient-hand-comforting-her_1150-14389.jpg" /></ScrollReveal></div></section></div>
<div data-webild-section="AboutTextSplit"><section aria-label="About section" className="py-20"><div className="flex flex-col gap-20 mx-auto w-content-width"><div className="flex flex-col md:flex-row gap-3 md:gap-15"><div className="w-full md:w-1/2"><TextAnimation text="Our Commitment to Renal Care Excellence" variant="fade" gradientText={true} tag="h2" className="text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-balance" /></div><div className="flex flex-col gap-2 w-full md:w-1/2"><TextAnimation key={0} text="At Netcare Renal in Johannesburg, we provide specialized, compassionate care for patients navigating kidney disease. Our approach ensures every individual receives a personalized treatment plan." variant="fade" gradientText={false} tag="p" className="text-xl md:text-2xl leading-snug text-balance" />
<TextAnimation key={1} text="We understand that a renal diagnosis affects the whole family. Our dedicated team offers not just clinical excellence, but also emotional support and comprehensive rehabilitation services." variant="fade" gradientText={false} tag="p" className="text-xl md:text-2xl leading-snug text-balance" />
<TextAnimation key={2} text="Trusted by healthcare professionals across the region, our modern facilities are designed to make your recovery journey as comfortable and reassuring as possible." variant="fade" gradientText={false} tag="p" className="text-xl md:text-2xl leading-snug text-balance" /><div className="flex flex-wrap gap-3 mt-2 md:mt-3"><Button text="Meet Our Team" href="/clinical-team" variant="primary" /><Button text="Our Services" href="/renal-care-services" variant="secondary" animationDelay={0.1} /></div></div></div><div className="w-full border-b border-foreground/5" /></div></section></div>
<div data-webild-section="AboutFeaturesSplit"><AboutFeaturesSplit
tag="About Us"
title="Dedicated to Your Renal Health & Recovery"
description="At Netcare Renal, we provide specialized, compassionate care for patients and families navigating kidney health challenges in Johannesburg."
primaryButton={{"text":"Meet Our Team","href":"/clinical-team"}}
secondaryButton={{"text":"Our Services","href":"/renal-care-services"}}
items={[{"icon":"HeartPulse","title":"Compassionate Care","description":"We prioritize patient comfort and emotional support alongside clinical excellence."},{"icon":"Stethoscope","title":"Expert Clinical Team","description":"Our specialists bring decades of experience in advanced renal treatments."},{"icon":"Users","title":"Family-Centered Approach","description":"We guide and support families through every step of the recovery journey."}]}
imageSrc="https://img.freepik.com/free-photo/doctor-holding-patient-hand-comforting-her_1150-14389.jpg"
/></div>
</>
);
}

View File

@@ -6,4 +6,5 @@ export interface Route {
export const routes: Route[] = [
{ path: '/', label: 'Home', pageFile: 'HomePage' },
{ path: '/about', label: 'About', pageFile: 'AboutPage' },
];