diff --git a/config/nam.3bear.design.json b/config/nam.3bear.design.json new file mode 100644 index 0000000..3f59388 --- /dev/null +++ b/config/nam.3bear.design.json @@ -0,0 +1,90 @@ +[ + { + "Header": { + "config": { + "sticky": true, + "variant": "ticker" + }, + "children": [ + { + "Banner": { + "config": { + "variant": "ticker", + "className": "h-12 bg-[#009b93] text-[#fff] gap-12", + "speed": 24, + "items": [ + { + "Link": { + "config": { + "label": "NEU: Overnight Oats – Sallys Nussecke 😍", + "href": "/" + } + } + }, + { + "Link": { + "config": { + "label": "Versandkostenfrei ab 45 € 💛", + "href": "/" + } + } + }, + { + "Link": { + "config": { + "label": "Gratis Geschenk ab 60 € Warenkorbwert 🎁", + "href": "/" + } + } + } + ] + } + } + }, + { + "Nav": { + "config": { + "className": "h-12 bg-white text-[#003F31] gap-12", + "left": [ + { + "Image": { + "config": { + "src": "/3bear-logo.png", + "alt": "MyShop", + "className": "h-[150px] w-[180px]", + "objectFit": "contain" + } + } + } + ] + } + } + } + ] + } + }, + { + "CartMismatchBanner": { + "config": { + "show": true + } + } + }, + { + "FreeShippingPriceNudge": { + "config": { + "variant": "popup" + } + } + }, + { + "PropsChildren": {} + }, + { + "Footer": { + "config": { + "copyrightText": "© 2025 MyShop" + } + } + } +] diff --git a/public/3bear-logo.png b/public/3bear-logo.png new file mode 100644 index 0000000..f74c9f7 Binary files /dev/null and b/public/3bear-logo.png differ diff --git a/src/modules/layout/templates/vt-banner/banner-ticker.module.css b/src/modules/layout/templates/vt-banner/banner-ticker.module.css index 46007d1..fea2cee 100644 --- a/src/modules/layout/templates/vt-banner/banner-ticker.module.css +++ b/src/modules/layout/templates/vt-banner/banner-ticker.module.css @@ -1,6 +1,10 @@ @keyframes bannerTicker { - 0% { transform: translateX(100%); } - 100% { transform: translateX(-100%); } + 0% { + transform: translateX(100%); + } + 100% { + transform: translateX(-100%); + } } .ticker { @@ -8,5 +12,6 @@ white-space: nowrap; align-items: center; animation: bannerTicker linear infinite; - height: 100%; -} \ No newline at end of file + height: 100%; + gap: 3rem +} diff --git a/src/vibentec/component-map.tsx b/src/vibentec/component-map.tsx index 8b907c3..d5a324e 100644 --- a/src/vibentec/component-map.tsx +++ b/src/vibentec/component-map.tsx @@ -12,6 +12,7 @@ import Banner from "@modules/layout/templates/vt-banner" import VtMegaMenu from "@modules/layout/components/vt-mega-menu" import VtLink from "@modules/layout/components/vt-linkbutton" import VtSideMenu from "@modules/layout/components/vt-sidemenu" +import VtImage from "@modules/layout/templates/vt-image" type ComponentConfig = Record; @@ -32,7 +33,7 @@ export type ComponentRenderer = { } // Utility methods -const configOnly = (Component: React.ComponentType): ComponentRenderer => ({ +const configOnly = (Component: React.ComponentType): ComponentRenderer => ({ render: (entry) => }) @@ -55,6 +56,7 @@ export const componentMap: Record = { AccountButton: nodesContextRenderer(AccountButton), VtCartButton: nodesContextRenderer(VtCartButton), Link: nodesContextRenderer(VtLink), + Image: nodesContextRenderer(VtImage), CartMismatchBanner: configOnly(CartMismatchBanner), FreeShippingPriceNudge: configOnly(FreeShippingPriceNudge), PropsChildren: { diff --git a/src/vibentec/configloader.ts b/src/vibentec/configloader.ts index 8dae4ca..1c18fc4 100644 --- a/src/vibentec/configloader.ts +++ b/src/vibentec/configloader.ts @@ -2,7 +2,7 @@ import fs from "fs" import path from "path" import { jsonFileNames } from "./devJsonFileNames"; -const fileName = jsonFileNames.stePlayGround; +const fileName = jsonFileNames.nam3Bear; export async function loadDesignConfig() { const filePath = path.join(process.cwd(), "config", fileName) diff --git a/src/vibentec/devJsonFileNames.ts b/src/vibentec/devJsonFileNames.ts index d2daa69..901242c 100644 --- a/src/vibentec/devJsonFileNames.ts +++ b/src/vibentec/devJsonFileNames.ts @@ -1,4 +1,5 @@ export const jsonFileNames = { steMedusaStarter: "ste.medusa-starter.design.json", - stePlayGround: "ste.playground.design.json" + stePlayGround: "ste.playground.design.json", + nam3Bear: "nam.3bear.design.json", }; \ No newline at end of file