diff --git a/src/components/ui/buttons/ProductTabBtn.astro b/src/components/ui/buttons/ProductTabBtn.astro new file mode 100644 index 0000000..d431485 --- /dev/null +++ b/src/components/ui/buttons/ProductTabBtn.astro @@ -0,0 +1,31 @@ +--- +const { id, dataTab, title, first } = Astro.props; + +interface Props { + id: string; + dataTab: string; + title: string; + first?: boolean; +} + +const BUTTON_CLASS = + "flex w-full justify-center rounded-xl border border-transparent p-3 outline-none ring-zinc-500 transition duration-300 hover:bg-neutral-100 focus-visible:ring dark:ring-zinc-200 dark:hover:bg-neutral-700 dark:focus:outline-none md:p-5"; + + const HEADING_CLASS = "block text-center font-semibold"; + const INACTIVE_HEADING_CLASS = "text-neutral-800 dark:text-neutral-200"; +--- + + + diff --git a/src/content/products/b203.json b/src/content/products/b203.json new file mode 100644 index 0000000..889f941 --- /dev/null +++ b/src/content/products/b203.json @@ -0,0 +1,63 @@ +{ + "main": { + "title": "SF-BN B203", + "subTitle": "Tap Bolts and Nuts Set", + "content": "Meet the SF-BN B203 – your reliable companion for professional-grade fastening. This comprehensive box set comes with a versatile selection of tap bolts and nuts, meticulously crafted to provide the strongest hold for your construction and assembly projects.", + "img": "../images/product-main.avif", + "imgAlt": "Mockup boxes of a tap bolts and nuts set" + }, + "tabs": [ + { + "id": "tabs-with-card-item-1", + "dataTab": "#tabs-with-card-1", + "title": "Product Description" + }, + { + "id": "tabs-with-card-item-2", + "dataTab": "#tabs-with-card-2", + "title": "Specifications" + }, + { + "id": "tabs-with-card-item-3", + "dataTab": "#tabs-with-card-3", + "title": "Blueprints" + } + ], + "description": { + "title": "Strength Meets Precision", + "subTitle": "The SF-BN B203 Tap Bolts and Nuts Set offers robust durability and precision for construction professionals, ensuring reliable performance in every application, from house framing to machinery assembly.", + "btnTitle": "Contact sales to learn more", + "btnURL": "#" + }, + "descriptionList": [ + { + "title": "Corrosion Resistance", + "subTitle": "Zinc coating not only provides a polished look but also shields against corrosion, ensuring longevity." + }, + { + "title": "Improved Safety", + "subTitle": "A secure fitting translates to safer structures with reduced risk of component failure." + }, + { + "title": "Convenience", + "subTitle": "This all-in-one set means you have the right size on hand, cutting down on project delays and additional trips to the hardware store." + } + ], + "specifications": [ + { + "id": "tabs-with-card-item-1", + "dataTab": "#tabs-with-card-1", + "title": "Product Description" + }, + { + "id": "tabs-with-card-item-2", + "dataTab": "#tabs-with-card-2", + "title": "Specifications" + }, + { + "id": "tabs-with-card-item-3", + "dataTab": "#tabs-with-card-3", + "title": "Blueprints" + } + ] +} \ No newline at end of file diff --git a/src/images/blueprint-1.avif b/src/images/blueprint-1.avif new file mode 100644 index 0000000..97d156c Binary files /dev/null and b/src/images/blueprint-1.avif differ diff --git a/src/images/blueprint-2.avif b/src/images/blueprint-2.avif new file mode 100644 index 0000000..1d4346a Binary files /dev/null and b/src/images/blueprint-2.avif differ diff --git a/src/images/product-main.avif b/src/images/product-main.avif new file mode 100644 index 0000000..2a5e2d8 Binary files /dev/null and b/src/images/product-main.avif differ diff --git a/src/pages/prod.astro b/src/pages/prod.astro new file mode 100644 index 0000000..9c0dabf --- /dev/null +++ b/src/pages/prod.astro @@ -0,0 +1,341 @@ +--- +// Import section components +import MainLayout from "../layouts/MainLayout.astro"; +import productData from "../content/products/b203.json"; +import ProductTabBtn from "../components/ui/buttons/ProductTabBtn.astro"; +import PrimaryCTA from "../components/ui/buttons/PrimaryCTA.astro"; + +declare global { + interface Window { + gsap: any; + } +} +import { Image } from "astro:assets"; +--- + + +
+
+ +
+
+

+ {productData.main.content} +

+
+
+
+

+ {productData.main.title} +

+

+ {productData.main.subTitle} +

+
+
+ {productData.main.imgAlt} +
+
+
+ + +
+ + + + +
+
+
+
+
+

+ {productData.description.title} +

+

+ {productData.description.subTitle} +

+

+ +

+
+ + +
+ + { + productData.descriptionList.map((list) => ( +
+
+

+ {list.title} +

+

+ {list.subTitle} +

+
+
+ )) + } +
+
+
+
+ + + +
+
+ + + + + + + +