From 14acb4ffff207637c1fec380c27c1ba8d1a340df Mon Sep 17 00:00:00 2001 From: N0Obitaz Date: Fri, 6 Feb 2026 11:54:46 +0800 Subject: [PATCH 1/7] feat: created reusable BullionCard Component --- client/components/ui/bullion-card.tsx | 136 ++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 client/components/ui/bullion-card.tsx diff --git a/client/components/ui/bullion-card.tsx b/client/components/ui/bullion-card.tsx new file mode 100644 index 0000000..54ff2f1 --- /dev/null +++ b/client/components/ui/bullion-card.tsx @@ -0,0 +1,136 @@ +import React from "react"; +import { cn } from "@/lib/utils"; + +interface BullionCardProps { + type: "gold" | "silver" | "platinum"; + weight: string; + purity: string; + price: string; + className?: string; +} + +const BullionCard: React.FC = ({ + type, + weight, + purity, + price, + className +}) => { + + // REFINED METAL GRADIENTS + const metalStyles = { + gold: { + face: "linear-gradient(135deg, #B38728 0%, #FBF5B7 25%, #BF953F 50%, #FBF5B7 75%, #AA771C 100%)", + border: "border-[#C69C48]", + text: "text-[#7A5C18]", + shadow: "shadow-[#5E430C]/50", + glow: "from-[#FFED8A]/50" + }, + silver: { + face: "linear-gradient(135deg, #8E8E8E 0%, #FFFFFF 25%, #A8A8A8 50%, #FFFFFF 75%, #777777 100%)", + border: "border-[#B0B0B0]", + text: "text-[#555555]", + shadow: "shadow-[#444444]/50", + glow: "from-white/50" + }, + platinum: { + face: "linear-gradient(135deg, #6B7687 0%, #E6EDF5 25%, #8593A8 50%, #E6EDF5 75%, #5C687A 100%)", + border: "border-[#7D8A9E]", + text: "text-[#3D4859]", + shadow: "shadow-[#2D3642]/50", + glow: "from-[#CDD9E8]/50" + }, + }; + + const theme = metalStyles[type]; + + return ( +
+ {/* MAIN CARD SLAB */} +
+ {/* Layer A: Glass Reflection (Static) */} +
+ + {/* Layer B: Moving Sheen (Holographic effect on hover) */} +
+ + {/* Layer C: Sharp Edge Highlights */} +
+ + {/* INNER FACE (Minted Area) */} +
+ + {/* Purity Mark */} +
+ Fine {type} + + {purity} + +
+ + {/* Weight (Deep Engraving Effect) */} +
+
+ +

+ {weight} +

+
+ + {/* Price Tag */} +
+
+ + Spot Price + + + {price} + +
+
+
+
+
+ +
+ + {/* THICKNESS (Side Edge) */} +
+ +
+
+ ); +}; + +export default BullionCard; \ No newline at end of file From 5a3eace85e68ebb651c9597bafc85d5abd28af9c Mon Sep 17 00:00:00 2001 From: N0Obitaz Date: Fri, 6 Feb 2026 20:00:06 +0800 Subject: [PATCH 2/7] feat: added showRoomItems for mock data of BullionCards --- client/components/views/dashboard-view.tsx | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/client/components/views/dashboard-view.tsx b/client/components/views/dashboard-view.tsx index 6804e19..e0e9b24 100644 --- a/client/components/views/dashboard-view.tsx +++ b/client/components/views/dashboard-view.tsx @@ -4,8 +4,16 @@ import Image from 'next/image' import { PortfolioOverview } from '@/components/portfolio-overview' import { AssetAllocationChart } from '@/components/asset-allocation-chart' import { ShariaCertificationHub } from '@/components/sharia-certification-hub' +import BullionCard from '@/components/ui/bullion-card' export function DashboardView() { + const showroomItems = [ + { type: "gold" as const, weight: "1 kg", purity: "999.9", price: "$74,250.00" }, + { type: "silver" as const, weight: "100 oz", purity: "999.0", price: "$2,450.00" }, + { type: "platinum" as const, weight: "500 g", purity: "999.5", price: "$14,800.00" }, + { type: "gold" as const, weight: "100 g", purity: "999.9", price: "$7,450.00" }, + ]; + return (
{/* Live Ledger Ticker */} @@ -54,6 +62,31 @@ export function DashboardView() { {/* Sharia Certification Hub - Moved inside grid for better density */}
+
+
+

+ Bullion Showroom +

+ +
+ +
+ {showroomItems.map((item, idx) => ( + + ))} +
+
+ +
) } From 67ab86f4310c4a764845fc8775ebfc0c886d7317 Mon Sep 17 00:00:00 2001 From: N0Obitaz Date: Fri, 6 Feb 2026 22:05:06 +0800 Subject: [PATCH 3/7] refactor: enhanced metal styles. Made it more realistic using radial-gradient --- client/components/ui/bullion-card.tsx | 196 +++++++++++++++----------- 1 file changed, 116 insertions(+), 80 deletions(-) diff --git a/client/components/ui/bullion-card.tsx b/client/components/ui/bullion-card.tsx index 54ff2f1..096e671 100644 --- a/client/components/ui/bullion-card.tsx +++ b/client/components/ui/bullion-card.tsx @@ -20,116 +20,152 @@ const BullionCard: React.FC = ({ // REFINED METAL GRADIENTS const metalStyles = { gold: { - face: "linear-gradient(135deg, #B38728 0%, #FBF5B7 25%, #BF953F 50%, #FBF5B7 75%, #AA771C 100%)", - border: "border-[#C69C48]", - text: "text-[#7A5C18]", + // 1. YOUR CUSTOM RADIAL GRADIENT + face: "radial-gradient(ellipse farthest-corner at right bottom, #FEDB37 0%, #FDB931 8%, #9f7928 30%, #8A6E2F 40%, transparent 80%), radial-gradient(ellipse farthest-corner at left top, #FFFFFF 0%, #FFFFAC 8%, #D1B464 25%, #5d4a1f 62.5%, #5d4a1f 100%)", + border: "border-[#b38728]", + text: "text-[#5e430c]", shadow: "shadow-[#5E430C]/50", - glow: "from-[#FFED8A]/50" + glow: "from-[#FFED8A]/50", + // Engraving Physics: Light on Bottom-Right (White), Dark on Top-Left (Black) + engrave: "1px 1px 0px rgba(255,255,255,0.5), -1px -1px 1px rgba(0,0,0,0.4)" }, silver: { - face: "linear-gradient(135deg, #8E8E8E 0%, #FFFFFF 25%, #A8A8A8 50%, #FFFFFF 75%, #777777 100%)", - border: "border-[#B0B0B0]", - text: "text-[#555555]", + // Cool Silver Radial Gradient + // Bottom-Right: Bright White/Light Gray -> Medium Gray + // Top-Left: Pure White Highlight -> Deep Steel Gray + face: "radial-gradient(ellipse farthest-corner at right bottom, #FFFFFF 0%, #F0F0F0 8%, #A8A8A8 30%, #808080 40%, transparent 80%), radial-gradient(ellipse farthest-corner at left top, #FFFFFF 0%, #E6E6E6 8%, #B0B0B0 25%, #666666 62.5%, #444444 100%)", + border: "border-[#a0a0a0]", + text: "text-[#333333]", shadow: "shadow-[#444444]/50", - glow: "from-white/50" + glow: "from-white/50", + engrave: "1px 1px 0px rgba(255,255,255,0.8), -1px -1px 1px rgba(0,0,0,0.2)" }, platinum: { - face: "linear-gradient(135deg, #6B7687 0%, #E6EDF5 25%, #8593A8 50%, #E6EDF5 75%, #5C687A 100%)", - border: "border-[#7D8A9E]", - text: "text-[#3D4859]", + // Blue-Tinted Platinum Radial Gradient + // Bottom-Right: Icy White -> Blue-Gray + // Top-Left: Bright Blue-White -> Dark Slate Blue + face: "radial-gradient(ellipse farthest-corner at right bottom, #EEF2F5 0%, #E6EDF5 8%, #8593A8 30%, #6B7687 40%, transparent 80%), radial-gradient(ellipse farthest-corner at left top, #FFFFFF 0%, #F0F4F8 8%, #98A6BA 25%, #475569 62.5%, #2D3642 100%)", + border: "border-[#6b7687]", + text: "text-[#1a2330]", shadow: "shadow-[#2D3642]/50", - glow: "from-[#CDD9E8]/50" + glow: "from-[#CDD9E8]/50", + engrave: "1px 1px 0px rgba(255,255,255,0.6), -1px -1px 1px rgba(0,0,0,0.3)" }, }; const theme = metalStyles[type]; return ( -
- {/* MAIN CARD SLAB */} -
+ {/* Animation Style Block */} + + +
- {/* Layer A: Glass Reflection (Static) */} -
- - {/* Layer B: Moving Sheen (Holographic effect on hover) */} + {/* MAIN CARD SLAB */}
+ style={{ + background: theme.face, + boxShadow: "0px 10px 20px -5px rgba(0,0,0,0.4)" + }} + > + {/* Layer A: Texture (Noise) */} +
- {/* Layer C: Sharp Edge Highlights */} -
+ {/* Layer B: Glass Reflection (Static) */} +
+ + {/* Layer C: Moving Sheen (Holographic Loop) */} +
- {/* INNER FACE (Minted Area) */} -
- - {/* Purity Mark */} -
- Fine {type} - - {purity} - -
+ {/* Layer D: Sharp Edge Highlights */} +
- {/* Weight (Deep Engraving Effect) */} -
-
- -

- {weight} -

-
- - {/* Price Tag */} -
-
- - Spot Price + {/* INNER FACE (Minted Area) */} +
+ + {/* Purity Mark */} +
+ + Fine {type} - - {price} + + {purity}
-
-
+ + {/* Weight (Deep Engraving Effect) */} +
+
+ +

+ {weight} +

+ + {/* Price Tag */} +
+
+ + Spot Price + + + {price} + +
+
+
+
+
+
+ {/* THICKNESS (Side Edge) */} +
+
- - {/* THICKNESS (Side Edge) */} -
-
-
+ ); }; From 63693e9f02472d9f0973f19a376e1db980bcbf34 Mon Sep 17 00:00:00 2001 From: N0Obitaz Date: Fri, 6 Feb 2026 22:05:06 +0800 Subject: [PATCH 4/7] refactor: removed additional showRoomItem gold --- client/components/views/dashboard-view.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/views/dashboard-view.tsx b/client/components/views/dashboard-view.tsx index aeb18b7..75ba00b 100644 --- a/client/components/views/dashboard-view.tsx +++ b/client/components/views/dashboard-view.tsx @@ -8,7 +8,7 @@ import BullionCard from '@/components/ui/bullion-card' export function DashboardView() { const showroomItems = [ - { type: "gold" as const, weight: "1 kg", purity: "999.9", price: "$74,250.00" }, + { type: "silver" as const, weight: "100 oz", purity: "999.0", price: "$2,450.00" }, { type: "platinum" as const, weight: "500 g", purity: "999.5", price: "$14,800.00" }, { type: "gold" as const, weight: "100 g", purity: "999.9", price: "$7,450.00" }, From b5bb45d7878b2b975fde752b9c30c6de2a5ef839 Mon Sep 17 00:00:00 2001 From: N0Obitaz Date: Fri, 6 Feb 2026 22:05:06 +0800 Subject: [PATCH 5/7] refactor: Enhanced Shimmer effect to completely transform diagonally on the metal card --- client/components/ui/bullion-card.tsx | 28 +++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/client/components/ui/bullion-card.tsx b/client/components/ui/bullion-card.tsx index 096e671..436e357 100644 --- a/client/components/ui/bullion-card.tsx +++ b/client/components/ui/bullion-card.tsx @@ -59,13 +59,17 @@ const BullionCard: React.FC = ({ <> {/* Animation Style Block */}
= ({ {/* Layer C: Moving Sheen (Holographic Loop) */}
- + className={cn( + "shimmer-effect absolute inset-0 z-20 -translate-x-[140%] skew-x-[-45deg]", + + "bg-gradient-to-r from-transparent via-white/10 via-30% via-white/70 via-50% to-transparent", + "mix-blend-overlay" + )} +/> {/* Layer D: Sharp Edge Highlights */}
From 863004a61f8696ba3baf61c5708e0013204f5e16 Mon Sep 17 00:00:00 2001 From: N0Obitaz Date: Fri, 6 Feb 2026 22:05:06 +0800 Subject: [PATCH 6/7] refactor: Enhanced Shimmer effect to completely transform diagonally on the metal card --- client/components/ui/bullion-card.tsx | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/client/components/ui/bullion-card.tsx b/client/components/ui/bullion-card.tsx index 436e357..474cc73 100644 --- a/client/components/ui/bullion-card.tsx +++ b/client/components/ui/bullion-card.tsx @@ -17,22 +17,20 @@ const BullionCard: React.FC = ({ className }) => { - // REFINED METAL GRADIENTS + // REFINED METAL STYLES USING RADIAL GRADIENT const metalStyles = { gold: { - // 1. YOUR CUSTOM RADIAL GRADIENT + // Custom Modal Gradient face: "radial-gradient(ellipse farthest-corner at right bottom, #FEDB37 0%, #FDB931 8%, #9f7928 30%, #8A6E2F 40%, transparent 80%), radial-gradient(ellipse farthest-corner at left top, #FFFFFF 0%, #FFFFAC 8%, #D1B464 25%, #5d4a1f 62.5%, #5d4a1f 100%)", border: "border-[#b38728]", text: "text-[#5e430c]", shadow: "shadow-[#5E430C]/50", glow: "from-[#FFED8A]/50", - // Engraving Physics: Light on Bottom-Right (White), Dark on Top-Left (Black) + engrave: "1px 1px 0px rgba(255,255,255,0.5), -1px -1px 1px rgba(0,0,0,0.4)" }, silver: { - // Cool Silver Radial Gradient - // Bottom-Right: Bright White/Light Gray -> Medium Gray - // Top-Left: Pure White Highlight -> Deep Steel Gray + face: "radial-gradient(ellipse farthest-corner at right bottom, #FFFFFF 0%, #F0F0F0 8%, #A8A8A8 30%, #808080 40%, transparent 80%), radial-gradient(ellipse farthest-corner at left top, #FFFFFF 0%, #E6E6E6 8%, #B0B0B0 25%, #666666 62.5%, #444444 100%)", border: "border-[#a0a0a0]", text: "text-[#333333]", @@ -41,9 +39,7 @@ const BullionCard: React.FC = ({ engrave: "1px 1px 0px rgba(255,255,255,0.8), -1px -1px 1px rgba(0,0,0,0.2)" }, platinum: { - // Blue-Tinted Platinum Radial Gradient - // Bottom-Right: Icy White -> Blue-Gray - // Top-Left: Bright Blue-White -> Dark Slate Blue + face: "radial-gradient(ellipse farthest-corner at right bottom, #EEF2F5 0%, #E6EDF5 8%, #8593A8 30%, #6B7687 40%, transparent 80%), radial-gradient(ellipse farthest-corner at left top, #FFFFFF 0%, #F0F4F8 8%, #98A6BA 25%, #475569 62.5%, #2D3642 100%)", border: "border-[#6b7687]", text: "text-[#1a2330]", @@ -60,12 +56,9 @@ const BullionCard: React.FC = ({ {/* Animation Style Block */}