diff --git a/client/components/ui/bullion-card.tsx b/client/components/ui/bullion-card.tsx new file mode 100644 index 0000000..474cc73 --- /dev/null +++ b/client/components/ui/bullion-card.tsx @@ -0,0 +1,169 @@ +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 STYLES USING RADIAL GRADIENT + const metalStyles = { + gold: { + // 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", + + engrave: "1px 1px 0px rgba(255,255,255,0.5), -1px -1px 1px rgba(0,0,0,0.4)" + }, + silver: { + + 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", + engrave: "1px 1px 0px rgba(255,255,255,0.8), -1px -1px 1px rgba(0,0,0,0.2)" + }, + platinum: { + + 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", + engrave: "1px 1px 0px rgba(255,255,255,0.6), -1px -1px 1px rgba(0,0,0,0.3)" + }, + }; + + const theme = metalStyles[type]; + + return ( + <> + {/* Animation Style Block */} + + +
+ {/* MAIN CARD SLAB */} +
+ {/* Layer A: Texture (Noise) */} +
+ + {/* Layer B: Glass Reflection (Static) */} +
+ + {/* Layer C: Moving Sheen (Holographic Loop) */} +
+ {/* Layer D: 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 diff --git a/client/components/views/dashboard-view.tsx b/client/components/views/dashboard-view.tsx index c0ed4a3..ee1ed0d 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: "100 g", purity: "999.9", price: "$7,450.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) => ( + + ))} +
+
+ +
) }