diff --git a/src/app/blog/page.tsx b/src/app/blog/page.tsx new file mode 100644 index 0000000..752cb7f --- /dev/null +++ b/src/app/blog/page.tsx @@ -0,0 +1,3 @@ +export default function Blog() { + return <>; +} diff --git a/src/app/globals.css b/src/app/globals.css index f1cf574..0fd081d 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -11,6 +11,7 @@ --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); --font-montserrat: var(--font-montserrat); + --font-playfairdisplay: var(--font-playfairdisplay); --color-colorExt1: #0a0a0a; --color-colorExt2: #ffffff; --color-colorExt3: #967244; diff --git a/src/app/layout.tsx b/src/app/layout.tsx index ac032b8..876ad84 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,5 +1,5 @@ import InitialScript from "@/components/layouts/InitialScript"; -import { Geist, Geist_Mono, Montserrat } from "next/font/google"; +import { Geist, Geist_Mono, Montserrat, Playfair_Display } from "next/font/google"; import "./globals.css"; import { Metadata } from "next"; import { getDefaultMetadata } from "@/utils/metadata"; @@ -21,6 +21,11 @@ const montserrat = Montserrat({ subsets: ["latin"], }); +const playfairDisplay = Playfair_Display({ + variable: "--font-playfairdisplay", + subsets: ["latin"], +}); + export async function generateMetadata(): Promise { const metadata = await getDefaultMetadata(); return metadata; @@ -48,7 +53,9 @@ export default function RootLayout({ - +
(null); + + function scrollToForm() { + formRef.current?.scrollIntoView?.({ behavior: "smooth" }); + } + return ( <> - + + +
+ +
@@ -455,10 +468,6 @@ export default function Home() {
- -
- -
); } diff --git a/src/components/ContactFormSection.tsx b/src/components/ContactFormSection.tsx index fb2e3eb..ce1963b 100644 --- a/src/components/ContactFormSection.tsx +++ b/src/components/ContactFormSection.tsx @@ -1,6 +1,6 @@ export default function ContactFormSection() { return ( -
+
diff --git a/src/components/GoogleReviewBox.tsx b/src/components/GoogleReviewBox.tsx index c4f9e04..75fff99 100644 --- a/src/components/GoogleReviewBox.tsx +++ b/src/components/GoogleReviewBox.tsx @@ -3,7 +3,7 @@ export default function GoogleReviewBox() {

- What People Say + Making Moves, Building Trust

diff --git a/src/components/Hero.tsx b/src/components/Hero.tsx deleted file mode 100644 index 8f69006..0000000 --- a/src/components/Hero.tsx +++ /dev/null @@ -1,47 +0,0 @@ -"use client"; - -import { Swiper, SwiperSlide } from "swiper/react"; -import ContactFormBox from "./ContactFormBox"; -import { Autoplay } from "swiper/modules"; - -export default function Hero() { - return ( -
- - -
-
-
-
-
Real Estate, Refined
-
Where Southern Charm Meets Boutique Real Estate
-
-
-
-
-
- -
-
-
-
-
Your Vision, Our Expertise
-
Discover a Smarter Way to Buy & Sell
-
-
-
-
-
-
- - -
- ); -} diff --git a/src/components/HeroSlider.tsx b/src/components/HeroSlider.tsx new file mode 100644 index 0000000..1318826 --- /dev/null +++ b/src/components/HeroSlider.tsx @@ -0,0 +1,77 @@ +"use client"; + +import { Swiper, SwiperSlide } from "swiper/react"; +import ContactFormBox from "./ContactFormBox"; +import { Autoplay } from "swiper/modules"; +import { useState } from "react"; +import Image from "next/image"; + +type HeroSliderProps = { + onClickBook?: () => void; +}; + +type HeroSlideItem = { + title: string; + description: string; + img: string; +}; + +export default function HeroSlider({ onClickBook }: HeroSliderProps) { + const [slideItems] = useState([ + { + title: "Real Estate, Redefined", + description: "Where Southern Charm Meets Boutique Real Estate", + img: "/images/bg-header2.jpg", + }, + { + title: "Your Vision, Our Expertise", + description: "Discover a Smarter Way to Buy & Sell", + img: "/images/bg-header3.jpg", + }, + ]); + + return ( +
+ + {slideItems.map((slide, idx) => ( + + {slide.title} +
+
+
+
+
{slide.title}
+
{slide.description}
+
+ +
+
+
+
+
+
+ ))} +
+ + +
+ ); +}