diff --git a/src/components/FeaturesStats.astro b/src/components/FeaturesStats.astro new file mode 100644 index 0000000..89f3418 --- /dev/null +++ b/src/components/FeaturesStats.astro @@ -0,0 +1,72 @@ +--- +import StatsBig from "../components/ui/blocks/StatsBig.astro"; +import StatsSmall from "../components/ui/blocks/StatsSmall.astro"; + +const { title, subTitle } = Astro.props; + +interface Props { + title: string; + subTitle: string; +} + +/* TypeScript type for testimonials. */ +type Stat = { + stat: string; + description: string; +}; + +/* An array of testimonials, each being an object that conforms to the above `Testimonial` type. */ +const stats: Stat[] = [ + { + stat: "99.8%", + description: "project completion rate", + }, + { + stat: "5,000+", + description: "successful installations", + }, + { + stat: "85%", + description: "client growth year-over-year", + }, +]; +--- + +
+
+

+ {title} +

+

+ {subTitle} +

+
+
+
+ + +
+
+ { + stats.map((stat) => ( + + )) + } +
+
+
+
+
diff --git a/src/components/ui/blocks/LeftSection.astro b/src/components/ui/blocks/LeftSection.astro new file mode 100644 index 0000000..8749892 --- /dev/null +++ b/src/components/ui/blocks/LeftSection.astro @@ -0,0 +1,41 @@ +--- +import { Image } from "astro:assets"; +import PrimaryCTA from "../buttons/PrimaryCTA.astro"; + +const { title, subTitle, btn, btnTitle, btnURL, img, imgAlt } = + Astro.props; + +interface Props { + title: string; + subTitle: string; + btn?: boolean; + btnTitle?: string; + btnURL?: string; + img: any; + imgAlt: any; +} +--- + +
+ {imgAlt} +
+

+ {title} +

+

+ {subTitle} +

+ {btn ? : null} +
+
diff --git a/src/components/ui/blocks/MainSection.astro b/src/components/ui/blocks/MainSection.astro new file mode 100644 index 0000000..b971e1e --- /dev/null +++ b/src/components/ui/blocks/MainSection.astro @@ -0,0 +1,37 @@ +--- +import PrimaryCTA from "../buttons/PrimaryCTA.astro"; + +const { title, subTitle, btn, btnTitle, btnURL } = Astro.props; + +interface Props { + title: string; + subTitle: string; + btn?: boolean; + btnTitle?: string; + btnURL?: string; +} +--- + +
+
+

+ {title} +

+

+ {subTitle} +

+ { + btn ? ( +
+ +
+ ) : null + } +
+
diff --git a/src/components/ui/blocks/RightSection.astro b/src/components/ui/blocks/RightSection.astro new file mode 100644 index 0000000..79774b8 --- /dev/null +++ b/src/components/ui/blocks/RightSection.astro @@ -0,0 +1,75 @@ +--- +import { Image } from "astro:assets"; +import PrimaryCTA from "../buttons/PrimaryCTA.astro"; + +const { + title, + subTitle, + btn, + btnTitle, + btnURL, + single, + imgOne, + imgOneAlt, + imgTwo, + imgTwoAlt, +} = Astro.props; + +interface Props { + title: string; + subTitle: string; + btn?: boolean; + btnTitle?: string; + btnURL?: string; + single?: boolean; + imgOne?: any; + imgOneAlt?: any; + imgTwo?: any; + imgTwoAlt?: any; +} +--- + +
+
+

+ {title} +

+

+ {subTitle} +

+ {btn ? : null} +
+ { + single ? ( +
+ {imgOneAlt} +
+ ) : ( +
+ {imgOneAlt} + {imgTwoAlt} +
+ ) + } +
diff --git a/src/components/ui/blocks/StatsBig.astro b/src/components/ui/blocks/StatsBig.astro new file mode 100644 index 0000000..b6a7c5b --- /dev/null +++ b/src/components/ui/blocks/StatsBig.astro @@ -0,0 +1,15 @@ +--- +const { title, subTitle } = Astro.props; + +interface Props { + title: string; + subTitle: string; +} +--- +
+

+ {title} + +

+

{subTitle}

+
\ No newline at end of file diff --git a/src/components/ui/blocks/StatsSmall.astro b/src/components/ui/blocks/StatsSmall.astro new file mode 100644 index 0000000..6c62e16 --- /dev/null +++ b/src/components/ui/blocks/StatsSmall.astro @@ -0,0 +1,13 @@ +--- +const { title, subTitle } = Astro.props; + +interface Props { + title: string; + subTitle: string; +} +--- + +
+

{title}

+

{subTitle}

+
diff --git a/src/components/ui/forms/input/Checkbox.astro b/src/components/ui/forms/input/Checkbox.astro new file mode 100644 index 0000000..8c4aebb --- /dev/null +++ b/src/components/ui/forms/input/Checkbox.astro @@ -0,0 +1,16 @@ +--- +const { label = "Remember me", id } = Astro.props; + +interface Props { + label?: string; + id?: string; +} +--- +
+
+ +
+
+ +
+
diff --git a/src/images/aerial-view.avif b/src/images/aerial-view.avif new file mode 100644 index 0000000..cd1cbc7 Binary files /dev/null and b/src/images/aerial-view.avif differ diff --git a/src/images/before-after-1.avif b/src/images/before-after-1.avif new file mode 100644 index 0000000..9b5a2a8 Binary files /dev/null and b/src/images/before-after-1.avif differ diff --git a/src/images/before-after.avif b/src/images/before-after.avif new file mode 100644 index 0000000..b1ea2de Binary files /dev/null and b/src/images/before-after.avif differ diff --git a/src/images/blueprints-image.avif b/src/images/blueprints-image.avif new file mode 100644 index 0000000..124de3b Binary files /dev/null and b/src/images/blueprints-image.avif differ diff --git a/src/images/construction-worker.avif b/src/images/construction-worker.avif new file mode 100644 index 0000000..b128b1f Binary files /dev/null and b/src/images/construction-worker.avif differ diff --git a/src/images/construction-workers.avif b/src/images/construction-workers.avif new file mode 100644 index 0000000..7fa569c Binary files /dev/null and b/src/images/construction-workers.avif differ diff --git a/src/images/person-working.avif b/src/images/person-working.avif new file mode 100644 index 0000000..f4bf905 Binary files /dev/null and b/src/images/person-working.avif differ diff --git a/src/images/progress-building.avif b/src/images/progress-building.avif new file mode 100644 index 0000000..a448d16 Binary files /dev/null and b/src/images/progress-building.avif differ diff --git a/src/images/under-construction.avif b/src/images/under-construction.avif new file mode 100644 index 0000000..673d584 Binary files /dev/null and b/src/images/under-construction.avif differ diff --git a/src/images/using-tools.avif b/src/images/using-tools.avif new file mode 100644 index 0000000..c1b08f0 Binary files /dev/null and b/src/images/using-tools.avif differ