@@ -25,46 +25,62 @@ export const ProductCard: React.FC<ProductCardProps> = ({
2525 return firstLetter ;
2626 } ;
2727
28- const productIcon = getProductIcon ( title ) ;
29-
3028 return (
3129 < div className = "group relative" >
32- < div
33- className = "bg-white dark:bg-gray-800 rounded-xl overflow-hidden w-80 border border-gray-200
34- dark:border-gray-700 transition-all duration-300 hover:shadow-md hover:shadow-blue-100 dark:hover:shadow-blue-900/30 hover:-translate-y-0.15"
35- >
36- < div className = "bg-blue-50 dark:bg-blue-900/30 px-6 py-4" >
30+ < div className = "absolute -inset-0.5 bg-gradient-to-r from-blue-600/20 to-blue-400/20 rounded-2xl opacity-0 group-hover:opacity-100 transition-opacity duration-300 blur-sm" > </ div >
31+
32+ < div className = "relative bg-white dark:bg-gray-800 rounded-xl overflow-hidden w-80 border border-gray-200/60 dark:border-gray-700/60 backdrop-blur-sm transition-all duration-300 hover:shadow-xl hover:shadow-blue-100/50 dark:hover:shadow-blue-900/20 hover:-translate-y-1 hover:border-blue-200/40 dark:hover:border-blue-600/30" >
33+ < div className = "relative bg-gradient-to-br from-blue-50/80 via-blue-50/60 to-indigo-50/40 dark:from-blue-900/20 dark:via-blue-900/15 dark:to-indigo-900/10 px-6 py-5 border-b border-gray-100/80 dark:border-gray-700/50" >
3734 < div className = "flex items-center" >
38- < div className = "w-8 h-8 bg-blue-200 dark:bg -blue-800 rounded-lg flex items-center justify-center mr-3 " >
39- < span className = "text-blue-700 dark:text-blue-300 font-semibold text-sm " >
40- { productIcon }
35+ < div className = "relative w-10 h-10 bg-gradient-to-br from- blue-200/80 to-blue-300/60 dark:from -blue-700/60 dark:to-blue-600/40 rounded-xl flex items-center justify-center mr-4 shadow-sm " >
36+ < span className = "text-blue-700 dark:text-blue-200 font-bold text-base " >
37+ { getProductIcon ( title ) }
4138 </ span >
39+ < div className = "absolute inset-0 bg-gradient-to-br from-white/20 to-transparent rounded-xl" > </ div >
4240 </ div >
43- < h3 className = "text-lg font-semibold text-gray-800 dark:text-white" >
41+ < h3 className = "text-lg font-semibold text-gray-800 dark:text-white tracking-tight " >
4442 { title }
4543 </ h3 >
4644 </ div >
4745 </ div >
4846
49- < div className = "p-6" >
50- < div className = "mb-4 " >
51- < h4 className = "text-base font-semibold text-gray-900 dark:text-white mb-1 " >
52- About
47+ < div className = "p-6 space-y-4 " >
48+ < div className = "space-y-2 " >
49+ < h4 className = "text-sm font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider " >
50+ Overview
5351 </ h4 >
52+ < div className = "w-8 h-0.5 bg-gradient-to-r from-blue-400/60 to-transparent rounded-full" > </ div >
5453 </ div >
5554
56- < p className = "text-sm text-gray-700 dark:text-gray-300 leading-relaxed mb-6" >
55+ < p
56+ className = "text-md text-gray-600 dark:text-gray-300 leading-relaxed line-clamp-3"
57+ title = { description }
58+ >
5759 { description }
5860 </ p >
5961
60- < div className = "flex justify-end " >
62+ < div className = "pt-2 " >
6163 < Button
62- className = "bg-blue-400 hover:bg-blue-500 dark:bg-blue-600 dark:hover:bg-blue-700 text-white text-sm
63- px-6 py-2.5 rounded-full font-medium transition-colors duration-200 shadow-sm hover:shadow-md cursor-pointer"
64+ className = "w-full bg-gradient-to-r from-blue-500 to-blue-600 hover:from-blue-600 hover:to-blue-700 dark:from-blue-600 dark:to-blue-700 dark:hover:from-blue-700 dark:hover:to-blue-800 text-white text-sm px-6 py-2.5 rounded-lg font-medium transition-all duration-200 shadow-sm hover:shadow-md hover:scale-[1.02] active:scale-[0.98]"
6465 onClick = { handleDemoButtonClick }
65- title = " View Demo"
66+ title = { ` View ${ title } Demo` }
6667 >
67- Demo
68+ < span className = "flex items-center justify-center gap-2" >
69+ Explore Demo
70+ < svg
71+ className = "w-4 h-4 transition-transform group-hover:translate-x-0.5"
72+ fill = "none"
73+ stroke = "currentColor"
74+ viewBox = "0 0 24 24"
75+ >
76+ < path
77+ strokeLinecap = "round"
78+ strokeLinejoin = "round"
79+ strokeWidth = { 2 }
80+ d = "M13 7l5 5m0 0l-5 5m5-5H6"
81+ />
82+ </ svg >
83+ </ span >
6884 </ Button >
6985 </ div >
7086 </ div >
0 commit comments