15 Commits

Author SHA1 Message Date
4fdabe6503 Update src/app/page.tsx 2026-03-04 01:11:09 +00:00
4ed4bafa69 Update src/app/layout.tsx 2026-03-04 01:11:08 +00:00
62b3e70a47 Merge version_3 into main
Merge version_3 into main
2026-03-04 00:57:49 +00:00
874b6e5ff9 Update theme colors 2026-03-04 00:57:43 +00:00
69cef0d180 Merge version_3 into main
Merge version_3 into main
2026-03-04 00:57:18 +00:00
b4372896e5 Update theme colors 2026-03-04 00:57:12 +00:00
04539f463d Merge version_3 into main
Merge version_3 into main
2026-03-04 00:57:01 +00:00
8e63bbb835 Update theme colors 2026-03-04 00:56:55 +00:00
4524650173 Merge version_3 into main
Merge version_3 into main
2026-03-03 21:04:15 +00:00
7f572cbb88 Update src/app/page.tsx 2026-03-03 21:04:07 +00:00
8c992251f1 Update src/app/layout.tsx 2026-03-03 21:04:05 +00:00
45bc220067 Update src/app/page.tsx 2026-03-03 20:19:53 +00:00
4c0de3d8d2 Update src/app/page.tsx 2026-03-03 20:15:30 +00:00
2c5d3b4192 Update src/app/page.tsx 2026-03-03 20:05:54 +00:00
2f95d6751f Merge version_2 into main
Merge version_2 into main
2026-03-03 20:01:10 +00:00
3 changed files with 82 additions and 86 deletions

View File

@@ -1,54 +1,28 @@
import type { Metadata } from "next"; import type { Metadata } from "next";
import { Mulish } from "next/font/google"; import { Geist, Geist_Mono } from "next/font/google";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import "./globals.css"; import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const mulish = Mulish({ const geist = Geist({
variable: "--font-mulish", subsets: ["latin"], variable: "--font-geist-sans", subsets: ["latin"],
}); });
const halant = Halant({ const geist_mono = Geist_Mono({
variable: "--font-halant", subsets: ["latin"], variable: "--font-geist-mono", subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
variable: "--font-inter", subsets: ["latin"],
}); });
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Rock Yard Joplin | Landscaping Materials & Garden Center", description: "Quality landscaping rocks, stones, mulch, and garden materials in Joplin, MO. Expert advice and competitive pricing. Visit us at 815 S Schifferdecker Ave.", keywords: "landscaping rocks, garden center, landscape materials, gravel, mulch, Joplin MO, decorative stones", robots: { title: "Rock Yard - Premium Landscaping Materials", description: "Quality landscape materials for your home in Joplin"};
index: true,
follow: true,
},
openGraph: {
title: "Rock Yard Joplin | Premium Landscaping Materials", description: "Discover quality landscaping rocks and garden materials at Rock Yard. Serving Joplin with expert advice and fair pricing.", url: "https://rockyardjoplin.com", siteName: "Rock Yard", type: "website", images: [
{
url: "http://img.b2bpic.net/free-photo/pile-weathered-red-bricks_632498-60816.jpg", alt: "Premium landscaping rocks and materials"},
],
},
twitter: {
card: "summary_large_image", title: "Rock Yard Joplin | Landscaping Materials", description: "Quality rocks, stones, and garden materials for your landscaping projects.", images: ["http://img.b2bpic.net/free-photo/pile-weathered-red-bricks_632498-60816.jpg"],
},
};
export default function RootLayout({ export default function RootLayout({
children, children,
}: Readonly<{ }: {
children: React.ReactNode; children: React.ReactNode;
}>) { }) {
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en">
<ServiceWrapper> <body className={`${geist.variable} ${geist_mono.variable} antialiased`}>
<body {children}
className={`${mulish.variable} ${halant.variable} ${inter.variable} antialiased`}
>
<Tag />
{children}
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{
__html: ` __html: `
@@ -1416,7 +1390,6 @@ export default function RootLayout({
}} }}
/> />
</body> </body>
</ServiceWrapper>
</html> </html>
); );
} }

View File

@@ -19,7 +19,7 @@ export default function LandingPage() {
borderRadius="soft" borderRadius="soft"
contentWidth="mediumLarge" contentWidth="mediumLarge"
sizing="largeSmallSizeLargeTitles" sizing="largeSmallSizeLargeTitles"
background="fluid" background="circleGradient"
cardStyle="outline" cardStyle="outline"
primaryButtonStyle="radial-glow" primaryButtonStyle="radial-glow"
secondaryButtonStyle="solid" secondaryButtonStyle="solid"
@@ -35,7 +35,8 @@ export default function LandingPage() {
{ name: "Contact", id: "contact" }, { name: "Contact", id: "contact" },
]} ]}
button={{ button={{
text: "Call Now", href: "tel:(417)781-1016"}} text: "Call Now", href: "tel:(417)781-1016"
}}
animateOnLoad={true} animateOnLoad={true}
/> />
</div> </div>
@@ -46,28 +47,34 @@ export default function LandingPage() {
description="Rock Yard Joplin offers premium landscaping rocks, gravel, stone, and garden materials. Serving Joplin and surrounding areas with exceptional quality and friendly service." description="Rock Yard Joplin offers premium landscaping rocks, gravel, stone, and garden materials. Serving Joplin and surrounding areas with exceptional quality and friendly service."
tag="Garden Center" tag="Garden Center"
tagIcon={Sparkles} tagIcon={Sparkles}
background={{ variant: "fluid" }} background={{ variant: "radial-gradient" }}
buttons={[ buttons={[
{ text: "Browse Products", href: "#products" }, { text: "Shop Now", href: "#products" },
{ {
text: "Get Directions", href: "https://maps.google.com/?q=815+S+Schifferdecker+Ave,+Joplin,+MO+64801"}, text: "Get Directions", href: "https://maps.google.com/?q=815+S+Schifferdecker+Ave,+Joplin,+MO+64801"
},
]} ]}
mediaItems={[ mediaItems={[
{ {
imageSrc: imageSrc:
"http://img.b2bpic.net/free-photo/pile-weathered-red-bricks_632498-60816.jpg", imageAlt: "Landscaping rocks and stones"}, "http://img.b2bpic.net/free-photo/pile-weathered-red-bricks_632498-60816.jpg", imageAlt: "Landscaping rocks and stones"
},
{ {
imageSrc: imageSrc:
"http://img.b2bpic.net/free-photo/high-angle-pebbles-second-hand-market_23-2149338412.jpg", imageAlt: "Premium garden materials"}, "http://img.b2bpic.net/free-photo/high-angle-pebbles-second-hand-market_23-2149338412.jpg", imageAlt: "Premium garden materials"
},
{ {
imageSrc: imageSrc:
"http://img.b2bpic.net/free-photo/overhead-shot-beach-full-colored-stones_181624-14164.jpg", imageAlt: "Colorful landscape stones"}, "http://img.b2bpic.net/free-photo/overhead-shot-beach-full-colored-stones_181624-14164.jpg", imageAlt: "Colorful landscape stones"
},
{ {
imageSrc: imageSrc:
"http://img.b2bpic.net/free-photo/gardening_23-2148020456.jpg", imageAlt: "Professional landscaping supplies"}, "http://img.b2bpic.net/free-photo/gardening_23-2148020456.jpg", imageAlt: "Professional landscaping supplies"
},
{ {
imageSrc: imageSrc:
"http://img.b2bpic.net/free-photo/greenhouse-owner-presenting-flowers-options-potential-customer-retailer_158595-6978.jpg", imageAlt: "Garden center products"}, "http://img.b2bpic.net/free-photo/greenhouse-owner-presenting-flowers-options-potential-customer-retailer_158595-6978.jpg", imageAlt: "Garden center products"
},
]} ]}
/> />
</div> </div>
@@ -91,16 +98,20 @@ export default function LandingPage() {
products={[ products={[
{ {
id: "1", name: "River Rocks", price: "Starting at $25/bag", imageSrc: id: "1", name: "River Rocks", price: "Starting at $25/bag", imageSrc:
"http://img.b2bpic.net/free-photo/photo-stone-texture-pattern_58702-12263.jpg", imageAlt: "Natural river rocks"}, "http://img.b2bpic.net/free-photo/photo-stone-texture-pattern_58702-12263.jpg", imageAlt: "Natural river rocks"
},
{ {
id: "2", name: "Decorative Stone Mix", price: "Starting at $30/bag", imageSrc: id: "2", name: "Decorative Stone Mix", price: "Starting at $30/bag", imageSrc:
"http://img.b2bpic.net/free-photo/polished-stones-earthy-tones-glisten-with-reflected-light_91128-4516.jpg", imageAlt: "Assorted decorative stones"}, "http://img.b2bpic.net/free-photo/polished-stones-earthy-tones-glisten-with-reflected-light_91128-4516.jpg", imageAlt: "Assorted decorative stones"
},
{ {
id: "3", name: "Premium Mulch", price: "Starting at $15/bag", imageSrc: id: "3", name: "Premium Mulch", price: "Starting at $15/bag", imageSrc:
"http://img.b2bpic.net/free-photo/composition-garden-tools_93675-131226.jpg", imageAlt: "High-quality garden mulch"}, "http://img.b2bpic.net/free-photo/composition-garden-tools_93675-131226.jpg", imageAlt: "High-quality garden mulch"
},
{ {
id: "4", name: "Landscape Gravel", price: "Starting at $20/bag", imageSrc: id: "4", name: "Landscape Gravel", price: "Starting at $20/bag", imageSrc:
"http://img.b2bpic.net/free-photo/cement-crossed-by-diagonal-line-pebbles-stone_158595-6388.jpg", imageAlt: "Natural landscape gravel"}, "http://img.b2bpic.net/free-photo/cement-crossed-by-diagonal-line-pebbles-stone_158595-6388.jpg", imageAlt: "Natural landscape gravel"
},
]} ]}
gridVariant="three-columns-all-equal-width" gridVariant="three-columns-all-equal-width"
animationType="slide-up" animationType="slide-up"
@@ -119,19 +130,23 @@ export default function LandingPage() {
{ {
id: "01", title: "Wide Selection", description: id: "01", title: "Wide Selection", description:
"Browse from our extensive collection of rocks, stones, mulch, and landscape materials", imageSrc: "Browse from our extensive collection of rocks, stones, mulch, and landscape materials", imageSrc:
"http://img.b2bpic.net/free-photo/girl-buying-cosmetic_1398-1040.jpg", imageAlt: "Diverse product selection"}, "http://img.b2bpic.net/free-photo/girl-buying-cosmetic_1398-1040.jpg", imageAlt: "Diverse product selection"
},
{ {
id: "02", title: "Competitive Pricing", description: id: "02", title: "Competitive Pricing", description:
"Quality materials at fair prices. Bulk discounts available for larger projects", imageSrc: "Quality materials at fair prices. Bulk discounts available for larger projects", imageSrc:
"http://img.b2bpic.net/free-vector/gradient-sale-badge-collection_23-2147820548.jpg", imageAlt: "Great value pricing"}, "http://img.b2bpic.net/free-vector/gradient-sale-badge-collection_23-2147820548.jpg", imageAlt: "Great value pricing"
},
{ {
id: "03", title: "Expert Advice", description: id: "03", title: "Expert Advice", description:
"Our knowledgeable staff can help you choose the perfect materials for your project", imageSrc: "Our knowledgeable staff can help you choose the perfect materials for your project", imageSrc:
"http://img.b2bpic.net/free-photo/happy-customer-service-representative-using-computer-while-communicating-with-clients-online_637285-6679.jpg", imageAlt: "Professional consultation"}, "http://img.b2bpic.net/free-photo/happy-customer-service-representative-using-computer-while-communicating-with-clients-online_637285-6679.jpg", imageAlt: "Professional consultation"
},
{ {
id: "04", title: "Fast Service", description: id: "04", title: "Fast Service", description:
"Quick checkout and convenient loading. Open until 5 PM daily for your schedule", imageSrc: "Quick checkout and convenient loading. Open until 5 PM daily for your schedule", imageSrc:
"http://img.b2bpic.net/free-photo/call-center-onboarding-specialist-tutoring-intern-how-use-csm-system_482257-117972.jpg", imageAlt: "Efficient service"}, "http://img.b2bpic.net/free-photo/call-center-onboarding-specialist-tutoring-intern-how-use-csm-system_482257-117972.jpg", imageAlt: "Efficient service"
},
]} ]}
gridVariant="four-items-2x2-equal-grid" gridVariant="four-items-2x2-equal-grid"
animationType="slide-up" animationType="slide-up"
@@ -151,25 +166,28 @@ export default function LandingPage() {
id: "1", name: "James Mitchell", handle: "@jmitchell", testimonial: id: "1", name: "James Mitchell", handle: "@jmitchell", testimonial:
"Excellent selection and competitive prices. The staff helped me choose the perfect stones for my garden redesign. Highly recommended!", rating: 5, "Excellent selection and competitive prices. The staff helped me choose the perfect stones for my garden redesign. Highly recommended!", rating: 5,
imageSrc: imageSrc:
"http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=1", imageAlt: "James Mitchell"}, "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=1", imageAlt: "James Mitchell"
},
{ {
id: "2", name: "Sarah Johnson", handle: "@sarahjohnson", testimonial: id: "2", name: "Sarah Johnson", handle: "@sarahjohnson", testimonial:
"Best garden center in Joplin. Great products, friendly service, and they really know their materials. Perfect for all my landscaping projects.", rating: 5, "Best garden center in Joplin. Great products, friendly service, and they really know their materials. Perfect for all my landscaping projects.", rating: 5,
imageSrc: imageSrc:
"http://img.b2bpic.net/free-photo/positive-confident-businesswoman-wearing-formal-suit-standing-with-arms-folded_74855-10328.jpg?_wi=1", imageAlt: "Sarah Johnson"}, "http://img.b2bpic.net/free-photo/positive-confident-businesswoman-wearing-formal-suit-standing-with-arms-folded_74855-10328.jpg?_wi=1", imageAlt: "Sarah Johnson"
},
{ {
id: "3", name: "Michael Chen", handle: "@mchen", testimonial: id: "3", name: "Michael Chen", handle: "@mchen", testimonial:
"Professional team that takes care of their customers. The quality of materials is outstanding and the pricing is fair. Will definitely return.", rating: 5, "Professional team that takes care of their customers. The quality of materials is outstanding and the pricing is fair. Will definitely return.", rating: 5,
imageSrc: imageSrc:
"http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=2", imageAlt: "Michael Chen"}, "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=2", imageAlt: "Michael Chen"
},
{ {
id: "4", name: "Emma Rodriguez", handle: "@erodriguez", testimonial: id: "4", name: "Emma Rodriguez", handle: "@erodriguez", testimonial:
"Rock Yard made my landscaping project so much easier. Great advice and fast service. My neighbors are already asking where I got my materials!", rating: 5, "Rock Yard made my landscaping project so much easier. Great advice and fast service. My neighbors are already asking where I got my materials!", rating: 5,
imageSrc: imageSrc:
"http://img.b2bpic.net/free-photo/positive-confident-businesswoman-wearing-formal-suit-standing-with-arms-folded_74855-10328.jpg?_wi=2", imageAlt: "Emma Rodriguez"}, "http://img.b2bpic.net/free-photo/positive-confident-businesswoman-wearing-formal-suit-standing-with-arms-folded_74855-10328.jpg?_wi=2", imageAlt: "Emma Rodriguez"
},
]} ]}
showRating={true} showRating={true}
gridVariant="four-items-2x2-equal-grid"
animationType="slide-up" animationType="slide-up"
textboxLayout="default" textboxLayout="default"
useInvertedBackground={false} useInvertedBackground={false}
@@ -181,21 +199,26 @@ export default function LandingPage() {
faqs={[ faqs={[
{ {
id: "1", title: "What are your hours?", content: id: "1", title: "What are your hours?", content:
"We are open daily. Our garden center closes at 5 PM. Call us at (417) 781-1016 for current hours and seasonal variations."}, "We are open daily. Our garden center closes at 5 PM. Call us at (417) 781-1016 for current hours and seasonal variations."
},
{ {
id: "2", title: "Do you offer delivery?", content: id: "2", title: "Do you offer delivery?", content:
"Yes, we offer delivery services for larger orders. Contact us at (417) 781-1016 to discuss your project and get a delivery quote."}, "Yes, we offer delivery services for larger orders. Contact us at (417) 781-1016 to discuss your project and get a delivery quote."
},
{ {
id: "3", title: "Can I get advice on my project?", content: id: "3", title: "Can I get advice on my project?", content:
"Absolutely! Our knowledgeable staff is happy to provide guidance on material selection and project planning. Visit us or call with details about your landscaping needs."}, "Absolutely! Our knowledgeable staff is happy to provide guidance on material selection and project planning. Visit us or call with details about your landscaping needs."
},
{ {
id: "4", title: "Do you have bulk discounts?", content: id: "4", title: "Do you have bulk discounts?", content:
"Yes, we offer competitive pricing for bulk orders. Ask our staff about volume discounts when you visit or call (417) 781-1016."}, "Yes, we offer competitive pricing for bulk orders. Ask our staff about volume discounts when you visit or call (417) 781-1016."
},
]} ]}
ctaTitle="Visit Rock Yard Today" ctaTitle="Visit Rock Yard Today"
ctaDescription="Stop by our garden center to explore our full selection of landscaping materials. Open daily until 5 PM." ctaDescription="Visit us in person at 815 S Schifferdecker Ave, Joplin. Open daily until 5 PM—our team is ready to help with your project."
ctaButton={{ ctaButton={{
text: "Get Directions", href: "https://maps.google.com/?q=815+S+Schifferdecker+Ave,+Joplin,+MO+64801"}} text: "Get Directions", href: "https://maps.google.com/?q=815+S+Schifferdecker+Ave,+Joplin,+MO+64801"
}}
ctaIcon={MapPin} ctaIcon={MapPin}
useInvertedBackground={false} useInvertedBackground={false}
animationType="slide-up" animationType="slide-up"
@@ -211,4 +234,4 @@ export default function LandingPage() {
</div> </div>
</ThemeProvider> </ThemeProvider>
); );
} }

View File

@@ -2,23 +2,23 @@
/* Base units */ /* Base units */
/* --vw is set by ThemeProvider */ /* --vw is set by ThemeProvider */
/* --background: #f5f5f5;; /* --background: #f5f5f5;;;;;
--card: #ffffff;; --card: #ffffff;;;;;
--foreground: #1c1c1c;; --foreground: #1c1c1c;;;;;
--primary-cta: #6139e6;; --primary-cta: #84a643;;;;;
--secondary-cta: #ffffff;; --secondary-cta: #ffffff;;;;;
--accent: #6139e6;; --accent: #84a643;;;;;
--background-accent: #b3a8e8;; */ --background-accent: #e8daa7;;;;; */
--background: #f5f5f5;; --background: #f5f5f5;;;;;
--card: #ffffff;; --card: #ffffff;;;;;
--foreground: #1c1c1c;; --foreground: #1c1c1c;;;;;
--primary-cta: #6139e6;; --primary-cta: #84a643;;;;;
--primary-cta-text: #f5f5f5;; --primary-cta-text: #f5f5f5;;;;;
--secondary-cta: #ffffff;; --secondary-cta: #ffffff;;;;;
--secondary-cta-text: #1c1c1c;; --secondary-cta-text: #1c1c1c;;;;;
--accent: #6139e6;; --accent: #84a643;;;;;
--background-accent: #b3a8e8;; --background-accent: #e8daa7;;;;;
/* text sizing - set by ThemeProvider */ /* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem); /* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);