From c3e00ee204b01b81ab9968b786b1803d6ae0494a Mon Sep 17 00:00:00 2001 From: Nam Doan Date: Mon, 29 Dec 2025 11:25:46 +0700 Subject: [PATCH] bugfix: style of card product card homepage --- config/nam.3bear.design.json | 4 +- config/nam.drsquatch.design.json | 1 + config/nam.vibentec.design.json | 1 + .../components/vt-product-card/index.tsx | 73 ++++++++++++------- 4 files changed, 49 insertions(+), 30 deletions(-) diff --git a/config/nam.3bear.design.json b/config/nam.3bear.design.json index 743f04a..75406bc 100644 --- a/config/nam.3bear.design.json +++ b/config/nam.3bear.design.json @@ -381,8 +381,8 @@ "styles": { "container": "content-container py-12 small:py-20", "header": { - "container": "hidden", - "title": "hidden", + "container": "ml-16", + "title": "text-2xl mb-12", "isShowViewAll": false }, "list": "grid grid-cols-2 small:grid-cols-3 gap-x-6 gap-y-24 small:gap-y-36", diff --git a/config/nam.drsquatch.design.json b/config/nam.drsquatch.design.json index 210a4a9..1b01132 100644 --- a/config/nam.drsquatch.design.json +++ b/config/nam.drsquatch.design.json @@ -301,6 +301,7 @@ "content": " flex flex-col flex-1", "title": "mt-2 text-[#1f3521] text-[22px] font-bold", "price": "mt-2 text-[#3B6F47] font-bold text-[20px] flex gap-3 flex-row-reverse justify-end", + "description": "mt-2", "reviews": { "container": "mt-3 flex items-center gap-2", "stars": "flex gap-1", diff --git a/config/nam.vibentec.design.json b/config/nam.vibentec.design.json index 6fa233e..c6622a1 100644 --- a/config/nam.vibentec.design.json +++ b/config/nam.vibentec.design.json @@ -342,6 +342,7 @@ "subtitle": "text-ui-fg-subtle text-[14px]", "content": "flex flex-col flex-1 justify-between p-4", "title": "text-ui-fg-subtle text-[18px]", + "description": "mt-2 text-ui-fg-subtle text-[14px]", "price": "flex items-center gap-x-1 text-[#285A86] font-bold border-b pb-4", "button": { "addToCart": "w-fit h-[40px] bg-black text-white rounded-md", diff --git a/src/modules/products/components/vt-product-card/index.tsx b/src/modules/products/components/vt-product-card/index.tsx index 6d58d37..c967588 100644 --- a/src/modules/products/components/vt-product-card/index.tsx +++ b/src/modules/products/components/vt-product-card/index.tsx @@ -57,7 +57,7 @@ export default function ProductCard({ const classes = { card: styles?.card ?? className ?? "", badge: { - container: styles?.badge?.container ?? "p-4", + container: styles?.badge?.container ?? " pb-4", text: styles?.badge?.text ?? "z-20 px-3 py-1 border-[0.5px] rounded bg-[#c9e0f5] txt-compact-small-plus shadow-borders-base text-[#285A86] ", @@ -68,9 +68,9 @@ export default function ProductCard({ }, subtitle: styles?.subtitle ?? "", content: styles?.content ?? "p-6 flex flex-col flex-1", - title: styles?.title ?? "mt-2 text-ui-fg-base", - price: styles?.price ?? "mt-2 flex items-baseline gap-2", - description: styles?.description ?? "txt-small text-[#285A86] my-4", + title: styles?.title ?? "", + price: styles?.price ?? "", + description: styles?.description ?? "", reviews: { container: styles?.reviews?.container ?? undefined, stars: styles?.reviews?.stars ?? "flex gap-1", @@ -83,15 +83,18 @@ export default function ProductCard({ count: styles?.reviews?.count, }, button: { - addToCart: styles?.button?.addToCart ?? "flex-1", - moreInfo: styles?.button?.moreInfo ?? "w-full", - isShowIcon: styles?.button?.isShowIcon ?? true, + addToCart: styles?.button?.addToCart ?? "", + moreInfo: styles?.button?.moreInfo ?? "", + isShowIcon: styles?.button?.isShowIcon ?? false, }, } return (
- +
{badgeText && (
@@ -118,7 +121,10 @@ export default function ProductCard({ )} - + -
- {cheapestPrice && } -
+ {classes.price && ( +
+ {cheapestPrice && } +
+ )} {(classes.reviews.rating !== undefined || classes.reviews.count !== undefined) && ( @@ -182,25 +190,34 @@ export default function ProductCard({
)} - {description} + {classes.description && ( + + {description} + + )}
- - - - + )} + + {classes.button?.moreInfo && ( + + + + )}