25 Commits

Author SHA1 Message Date
ec7d4940a3 Update theme colors 2026-03-11 03:58:25 +00:00
98a1c8696d Update theme colors 2026-03-11 03:58:15 +00:00
6424d874f9 Update theme colors 2026-03-11 03:57:05 +00:00
b36e788f0a Update theme colors 2026-03-11 03:56:51 +00:00
d5e9113fc3 Update theme colors 2026-03-11 02:34:02 +00:00
ef3813bc86 Update theme colors 2026-03-11 02:33:48 +00:00
1c6c7e3103 Update theme colors 2026-03-11 02:33:19 +00:00
5cb959a27a Update src/app/page.tsx 2026-03-11 02:26:29 +00:00
bf94dc196f Update src/app/page.tsx 2026-03-11 02:15:45 +00:00
a0b1e94a0a Update src/app/page.tsx 2026-03-11 01:58:57 +00:00
bbdcfc5260 Update src/app/page.tsx 2026-03-11 01:58:06 +00:00
cead8f4f2b Merge version_3 into main
Merge version_3 into main
2026-03-11 01:55:56 +00:00
7e807733f5 Update src/app/page.tsx 2026-03-11 01:55:52 +00:00
15d5bcd880 Merge version_3 into main
Merge version_3 into main
2026-03-11 01:52:55 +00:00
36196fc0ff Update src/app/page.tsx 2026-03-11 01:52:51 +00:00
7642759650 Merge version_2 into main
Merge version_2 into main
2026-03-11 01:51:29 +00:00
b1c04a236f Update theme fonts 2026-03-11 01:51:24 +00:00
920dcd1acd Update theme fonts 2026-03-11 01:51:24 +00:00
2607d2ef96 Merge version_2 into main
Merge version_2 into main
2026-03-11 01:51:08 +00:00
d46eb019c7 Update theme fonts 2026-03-11 01:51:04 +00:00
a3757a47a0 Update theme fonts 2026-03-11 01:51:03 +00:00
403c2c508d Merge version_2 into main
Merge version_2 into main
2026-03-11 01:50:06 +00:00
5c484bbf65 Update src/app/page.tsx 2026-03-11 01:50:02 +00:00
f1a348f994 Merge version_1 into main
Merge version_1 into main
2026-03-11 01:40:20 +00:00
b24de6fd6d Merge version_1 into main
Merge version_1 into main
2026-03-11 01:39:57 +00:00
4 changed files with 65 additions and 208 deletions

View File

@@ -6,22 +6,12 @@ import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script";
import { Open_Sans } from "next/font/google";
import { Manrope } from "next/font/google";
import { DM_Sans } from "next/font/google";
const halant = Halant({
variable: "--font-halant",
subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
const publicSans = Public_Sans({
variable: "--font-public-sans",
subsets: ["latin"],
});
export const metadata: Metadata = {
title: "Flying V Construction | Alberta Roofing, Decking & Exterior",
@@ -58,6 +48,16 @@ export const metadata: Metadata = {
},
};
const manrope = Manrope({
variable: "--font-manrope",
subsets: ["latin"],
});
const dmSans = DM_Sans({
variable: "--font-dm-sans",
subsets: ["latin"],
});
export default function RootLayout({
children,
}: Readonly<{
@@ -66,9 +66,7 @@ export default function RootLayout({
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${halant.variable} ${inter.variable} ${publicSans.variable} antialiased`}
>
<body className={`${manrope.variable} ${dmSans.variable} antialiased`}>
<Tag />
{children}
<script

View File

@@ -2,7 +2,7 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
import HeroBillboardRotatedCarousel from "@/components/sections/hero/HeroBillboardRotatedCarousel";
import HeroBillboard from "@/components/sections/hero/HeroBillboard";
import FeatureCardTwentyFour from "@/components/sections/feature/FeatureCardTwentyFour";
import TextSplitAbout from "@/components/sections/about/TextSplitAbout";
import ProductCardFour from "@/components/sections/product/ProductCardFour";
@@ -23,8 +23,7 @@ export default function HomePage() {
const footerColumns = [
{
title: "Quick Links",
items: [
title: "Quick Links", items: [
{ label: "Home", href: "/" },
{ label: "Services", href: "/services" },
{ label: "Projects", href: "/projects" },
@@ -33,8 +32,7 @@ export default function HomePage() {
],
},
{
title: "Services",
items: [
title: "Services", items: [
{ label: "Roofing", href: "/services" },
{ label: "Decking", href: "/services" },
{ label: "Fencing", href: "/services" },
@@ -42,16 +40,14 @@ export default function HomePage() {
],
},
{
title: "Contact",
items: [
title: "Contact", items: [
{ label: "Phone: (403) 307-7097", href: "tel:(403)307-7097" },
{ label: "Alberta, Canada", href: "#" },
{ label: "Get a Free Quote", href: "/contact" },
],
},
{
title: "Company",
items: [
title: "Company", items: [
{ label: "About Us", href: "/about" },
{ label: "Our Team", href: "/about" },
{ label: "5-Star Rated", href: "#" },
@@ -87,54 +83,19 @@ export default function HomePage() {
/>
</div>
<div id="hero" data-section="hero" className="bg-gradient-to-b from-gray-50 to-white">
<HeroBillboardRotatedCarousel
title="Reliable Construction Done Right"
description="Trusted exterior renovations and construction services in Alberta. 5-star rated, on-time delivery, and honest pricing from a family-owned contractor."
tag="5-Star Rated Contractor"
tagIcon={Star}
tagAnimation="slide-up"
<div id="hero" data-section="hero">
<HeroBillboard
title="Flying V Construction"
description="A trusted and family-owned business dedicated to delivering exceptional quality and reliability"
background={{ variant: "plain" }}
buttons={[
{ text: "Get a Quote", href: "/contact" },
{ text: "Call Now", href: "tel:(403)307-7097" },
{ text: "Get a Free Quote", href: "/contact" },
{ text: "Learn More", href: "/about" },
]}
buttonAnimation="slide-up"
carouselItems={[
{
id: "hero-1",
imageSrc: "http://img.b2bpic.net/free-photo/young-innocent-pure-beautiful-woman-dreaming-sitting-couch-white-dress-romantic-lyrical-thinking-green-tropical-nature-summer-relaxed-chilling-legs-resort-hotel_285396-6069.jpg",
imageAlt: "beautiful composite deck wooden backyard",
},
{
id: "hero-2",
imageSrc: "http://img.b2bpic.net/free-photo/side-view-man-holding-schematics_23-2148269844.jpg",
imageAlt: "roof replacement new shingles residential",
},
{
id: "hero-3",
imageSrc: "http://img.b2bpic.net/free-photo/country-music-interpret-singing-outdoors_23-2149498452.jpg",
imageAlt: "wooden privacy fence backyard residential",
},
{
id: "hero-4",
imageSrc: "http://img.b2bpic.net/free-photo/mother-with-daughter-posing-street_1303-31802.jpg",
imageAlt: "home exterior renovation siding upgrade",
},
{
id: "hero-5",
imageSrc: "http://img.b2bpic.net/free-photo/girl-chatting-smartphone_23-2147679110.jpg",
imageAlt: "covered deck patio roof modern",
},
{
id: "hero-6",
imageSrc: "http://img.b2bpic.net/free-photo/glasses-house-figurine-blueprint_23-2147694498.jpg",
imageAlt: "complete home exterior renovation",
},
]}
autoPlay={true}
autoPlayInterval={4000}
ariaLabel="Hero section with project carousel"
imageSrc="http://img.b2bpic.net/free-photo/man-working-roof-medium-shot_23-2149343644.jpg?_wi=1"
imageAlt="Professional roofing and construction work"
mediaAnimation="slide-up"
ariaLabel="Hero section for Flying V Construction"
/>
</div>
@@ -144,41 +105,16 @@ export default function HomePage() {
description="We specialize in high-quality exterior renovations and construction projects across Alberta. From roofing to custom decks, every project is handled with professionalism and attention to detail."
features={[
{
id: "roofing",
title: "Roofing & Shingling",
author: "Expert Service",
description: "Professional roof installation and replacement with premium materials. We ensure proper ventilation, flashing, and waterproofing for long-lasting protection.",
tags: ["Roofing", "Shingles"],
imageSrc: "http://img.b2bpic.net/free-photo/man-working-roof-medium-shot_23-2149343644.jpg?_wi=1",
imageAlt: "professional roofing installation modern",
},
id: "roofing", title: "Roofing & Shingling", author: "Expert Service", description: "Professional roof installation and replacement with premium materials. We ensure proper ventilation, flashing, and waterproofing for long-lasting protection.", tags: ["Roofing", "Shingles"],
imageSrc: "http://img.b2bpic.net/free-photo/man-working-roof-medium-shot_23-2149343644.jpg?_wi=1", imageAlt: "professional roofing installation modern"},
{
id: "decking",
title: "Composite Deck Construction",
author: "Expert Service",
description: "Beautiful, durable composite decks built to withstand Alberta weather. Low maintenance, eco-friendly materials with exceptional longevity.",
tags: ["Decks", "Composite"],
imageSrc: "http://img.b2bpic.net/free-photo/romantic-couple-sitting-rooftop-kissing-each-other_23-2147891126.jpg?_wi=1",
imageAlt: "composite deck construction modern backyard",
},
id: "decking", title: "Composite Deck Construction", author: "Expert Service", description: "Beautiful, durable composite decks built to withstand Alberta weather. Low maintenance, eco-friendly materials with exceptional longevity.", tags: ["Decks", "Composite"],
imageSrc: "http://img.b2bpic.net/free-photo/romantic-couple-sitting-rooftop-kissing-each-other_23-2147891126.jpg?_wi=1", imageAlt: "composite deck construction modern backyard"},
{
id: "fencing",
title: "Fencing Solutions",
author: "Expert Service",
description: "Quality fence installation for privacy, security, and curb appeal. Wood, vinyl, and composite options to match your home's style.",
tags: ["Fencing", "Privacy"],
imageSrc: "http://img.b2bpic.net/free-photo/wooden-cross-nature-with-wooden-fence-it_181624-45737.jpg?_wi=1",
imageAlt: "privacy fence residential backyard wooden",
},
id: "fencing", title: "Fencing Solutions", author: "Expert Service", description: "Quality fence installation for privacy, security, and curb appeal. Wood, vinyl, and composite options to match your home's style.", tags: ["Fencing", "Privacy"],
imageSrc: "http://img.b2bpic.net/free-photo/wooden-cross-nature-with-wooden-fence-it_181624-45737.jpg?_wi=1", imageAlt: "privacy fence residential backyard wooden"},
{
id: "exterior",
title: "Exterior Renovations",
author: "Expert Service",
description: "Complete exterior upgrades including siding, trim, windows, and doors. Transform your home's appearance and energy efficiency.",
tags: ["Renovation", "Exterior"],
imageSrc: "http://img.b2bpic.net/free-photo/two-happy-woman-friends-with-sunglasses-vacation-tropical-country_343596-723.jpg?_wi=1",
imageAlt: "home exterior renovation siding windows",
},
id: "exterior", title: "Exterior Renovations", author: "Expert Service", description: "Complete exterior upgrades including siding, trim, windows, and doors. Transform your home's appearance and energy efficiency.", tags: ["Renovation", "Exterior"], imageSrc: "http://img.b2bpic.net/free-photo/two-happy-woman-friends-with-sunglasses-vacation-tropical-country_343596-723.jpg?_wi=1", imageAlt: "home exterior renovation siding windows"},
]}
animationType="slide-up"
textboxLayout="default"
@@ -191,9 +127,7 @@ export default function HomePage() {
<TextSplitAbout
title="About Flying V Construction"
description={[
"Flying V Construction Ltd. is a family-owned contractor based in Alberta, dedicated to providing honest, reliable construction services. Founded on principles of integrity and quality craftsmanship, we've built lasting relationships with homeowners throughout the province.",
"Led by Evan, our team brings years of experience to every project. We believe in showing up on time, delivering exceptional work, and treating every customer like family. Your satisfaction is our success.",
]}
"Flying V Construction Ltd. is a family-owned contractor based in Alberta, dedicated to providing honest, reliable construction services. Founded on principles of integrity and quality craftsmanship, we've built lasting relationships with homeowners throughout the province.", "Led by Evan, our team brings years of experience to every project. We believe in showing up on time, delivering exceptional work, and treating every customer like family. Your satisfaction is our success."]}
buttons={[{ text: "Learn More", href: "/about" }]}
showBorder={true}
useInvertedBackground={false}
@@ -207,53 +141,17 @@ export default function HomePage() {
description="See our recent work. From complete roof replacements to custom deck builds, these projects showcase our attention to detail and craftsmanship."
products={[
{
id: "project-1",
name: "Modern Composite Deck",
price: "Completed 2024",
variant: "Composite Materials",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-rusted-railing-with-white-stairs_23-2148269845.jpg?_wi=1",
imageAlt: "composite deck modern residential backyard",
},
id: "project-1", name: "Modern Composite Deck", price: "Completed 2024", variant: "Composite Materials", imageSrc: "http://img.b2bpic.net/free-photo/close-up-rusted-railing-with-white-stairs_23-2148269845.jpg?_wi=1", imageAlt: "composite deck modern residential backyard"},
{
id: "project-2",
name: "Full Roof Replacement",
price: "Completed 2024",
variant: "Premium Shingles",
imageSrc: "http://img.b2bpic.net/free-photo/sky-modern-building_23-2147694760.jpg?_wi=1",
imageAlt: "full roof replacement new shingles",
},
id: "project-2", name: "Full Roof Replacement", price: "Completed 2024", variant: "Premium Shingles", imageSrc: "http://img.b2bpic.net/free-photo/sky-modern-building_23-2147694760.jpg?_wi=1", imageAlt: "full roof replacement new shingles"},
{
id: "project-3",
name: "Cedar Fence Installation",
price: "Completed 2024",
variant: "6ft Privacy Fence",
imageSrc: "http://img.b2bpic.net/free-photo/still-life-bicycle-basket_23-2149682001.jpg?_wi=1",
imageAlt: "cedar fence installation completed",
},
id: "project-3", name: "Fence Installation", price: "Completed 2024", variant: "6ft Privacy Fence", imageSrc: "http://img.b2bpic.net/free-photo/still-life-bicycle-basket_23-2149682001.jpg?_wi=1", imageAlt: "cedar fence installation completed"},
{
id: "project-4",
name: "Exterior Siding Upgrade",
price: "Completed 2024",
variant: "James Hardie Board",
imageSrc: "http://img.b2bpic.net/free-photo/low-angle-shot-apartment-building-sunlight-daytime_181624-19251.jpg?_wi=1",
imageAlt: "home siding upgrade modern exterior",
},
id: "project-4", name: "Exterior Siding Upgrade", price: "Completed 2024", variant: "James Hardie Board", imageSrc: "http://img.b2bpic.net/free-photo/low-angle-shot-apartment-building-sunlight-daytime_181624-19251.jpg?_wi=1", imageAlt: "home siding upgrade modern exterior"},
{
id: "project-5",
name: "Covered Deck Addition",
price: "Completed 2024",
variant: "Composite + Roofing",
imageSrc: "http://img.b2bpic.net/free-photo/parasol-chairs_1137-314.jpg?_wi=1",
imageAlt: "covered patio deck modern outdoor",
},
id: "project-5", name: "Covered Deck Addition", price: "Completed 2024", variant: "Composite + Roofing", imageSrc: "http://img.b2bpic.net/free-photo/parasol-chairs_1137-314.jpg?_wi=1", imageAlt: "covered patio deck modern outdoor"},
{
id: "project-6",
name: "Complete Exterior Refresh",
price: "Completed 2024",
variant: "Multiple Services",
imageSrc: "http://img.b2bpic.net/free-photo/creative-people-talking-office_23-2147668785.jpg?_wi=1",
imageAlt: "complete home exterior renovation",
},
id: "project-6", name: "Complete Exterior and Interior Refresh", price: "Completed 2024", variant: "Multiple Services", imageSrc: "http://img.b2bpic.net/free-photo/creative-people-talking-office_23-2147668785.jpg?_wi=1", imageAlt: "complete home exterior renovation"},
]}
gridVariant="uniform-all-items-equal"
animationType="slide-up"
@@ -269,51 +167,27 @@ export default function HomePage() {
description="Don't just take our word for it. Hear from homeowners who've experienced our reliable service, honest pricing, and professional work."
testimonials={[
{
id: "testimonial-1",
name: "John Mitchell",
handle: "@jmitchell",
testimonial: "Evan and his team did an amazing job on our roof. They showed up exactly when they said they would, communicated throughout the project, and the final result is outstanding. Highly recommend!",
rating: 5,
id: "testimonial-1", name: "John Mitchell", handle: "@jmitchell", testimonial: "Evan and his team did an amazing job on our roof. They showed up exactly when they said they would, communicated throughout the project, and the final result is outstanding. Highly recommend!", rating: 5,
icon: MessageCircle,
},
{
id: "testimonial-2",
name: "Sarah Thompson",
handle: "@sthompson",
testimonial: "The composite deck they built has completely transformed our backyard. The craftsmanship is exceptional, and it's holding up beautifully through the Alberta winters. Worth every penny!",
rating: 5,
id: "testimonial-2", name: "Sarah Thompson", handle: "@sthompson", testimonial: "The composite deck they built has completely transformed our backyard. The craftsmanship is exceptional, and it's holding up beautifully through the Alberta winters. Worth every penny!", rating: 5,
icon: MessageCircle,
},
{
id: "testimonial-3",
name: "Mike Anderson",
handle: "@manderson",
testimonial: "Flying V Construction repaired our fence and it looks brand new. Their pricing was honest and fair - no hidden costs. Professional crew and great service from start to finish.",
rating: 5,
id: "testimonial-3", name: "Mike Anderson", handle: "@manderson", testimonial: "Flying V Construction repaired our fence and it looks brand new. Their pricing was honest and fair - no hidden costs. Professional crew and great service from start to finish.", rating: 5,
icon: MessageCircle,
},
{
id: "testimonial-4",
name: "Jennifer Lee",
handle: "@jlee",
testimonial: "We had exterior siding done last summer. The team was punctual, kept our property clean, and the attention to detail was incredible. Best home improvement investment we've made!",
rating: 5,
id: "testimonial-4", name: "Jennifer Lee", handle: "@jlee", testimonial: "We had exterior siding done last summer. The team was punctual, kept our property clean, and the attention to detail was incredible. Best home improvement investment we've made!", rating: 5,
icon: MessageCircle,
},
{
id: "testimonial-5",
name: "Robert Chen",
handle: "@rchen",
testimonial: "Professional, reliable, and honest. That's Flying V Construction. They do exactly what they promise, when they promise it. No surprises, just quality work.",
rating: 5,
id: "testimonial-5", name: "Robert Chen", handle: "@rchen", testimonial: "Professional, reliable, and honest. That's Flying V Construction. They do exactly what they promise, when they promise it. No surprises, just quality work.", rating: 5,
icon: MessageCircle,
},
{
id: "testimonial-6",
name: "Patricia White",
handle: "@pwhite",
testimonial: "Had our entire exterior redone - siding, roof, and decking. Evan's team treated our home with such care. They're not just contractors, they're partners in making your home beautiful.",
rating: 5,
id: "testimonial-6", name: "Patricia White", handle: "@pwhite", testimonial: "Had our entire exterior redone - siding, roof, and decking. Evan's team treated our home with such care. They're not just contractors, they're partners in making your home beautiful.", rating: 5,
icon: MessageCircle,
},
]}
@@ -333,30 +207,15 @@ export default function HomePage() {
ctaIcon={Phone}
faqs={[
{
id: "faq-1",
title: "How do you provide quotes?",
content: "We offer free on-site consultations where we assess your project, discuss your needs, and provide a detailed, honest estimate. No surprises, no hidden costs.",
},
id: "faq-1", title: "How do you provide quotes?", content: "We offer free on-site consultations where we assess your project, discuss your needs, and provide a detailed, honest estimate. No surprises, no hidden costs."},
{
id: "faq-2",
title: "What areas do you serve?",
content: "We serve the greater Alberta region and specialize in residential exterior renovations. Contact us to confirm service availability for your location.",
},
id: "faq-2", title: "What areas do you serve?", content: "We serve the greater Alberta region and specialize in residential exterior renovations. Contact us to confirm service availability for your location."},
{
id: "faq-3",
title: "How long do projects typically take?",
content: "Project timelines vary based on scope and weather. We'll provide a realistic timeline during your consultation and stick to it.",
},
id: "faq-3", title: "How long do projects typically take?", content: "Project timelines vary based on scope and weather. We'll provide a realistic timeline during your consultation and stick to it."},
{
id: "faq-4",
title: "Do you provide warranties?",
content: "Yes! We stand behind our work with warranties on materials and labor. We'll discuss specific warranty details for your project.",
},
id: "faq-4", title: "Do you provide warranties?", content: "Yes! We stand behind our work with warranties on materials and labor. We'll discuss specific warranty details for your project."},
{
id: "faq-5",
title: "Can you work in winter?",
content: "We can handle some winter projects, but many are best completed in warmer months. We'll recommend the optimal time for your specific work.",
},
id: "faq-5", title: "Can you work in winter?", content: "We can handle some winter projects, but many are best completed in warmer months. We'll recommend the optimal time for your specific work."},
]}
useInvertedBackground={false}
animationType="slide-up"

View File

@@ -11,7 +11,7 @@ html {
body {
background-color: var(--background);
color: var(--foreground);
font-family: var(--font-inter), sans-serif;
font-family: var(--font-dm-sans), sans-serif;
position: relative;
min-height: 100vh;
overscroll-behavior: none;
@@ -24,5 +24,5 @@ h3,
h4,
h5,
h6 {
font-family: var(--font-public-sans), sans-serif;
font-family: var(--font-manrope), sans-serif;
}

View File

@@ -10,15 +10,15 @@
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #f5f5f5;
--card: #ffffff;
--foreground: #1c1c1c;
--primary-cta: #1c1c1c;
--primary-cta-text: #f5f5f5;
--secondary-cta: #ffffff;
--secondary-cta-text: #1c1c1c;
--accent: #15479c;
--background-accent: #a8cce8;
--background: #ffffff;
--card: #f9f9f9;
--foreground: #000612e6;
--primary-cta: #15479c;
--primary-cta-text: #ffffff;
--secondary-cta: #f9f9f9;
--secondary-cta-text: #000612e6;
--accent: #e2e2e2;
--background-accent: #c4c4c4;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);