diff --git a/app/components/card.tsx b/app/components/card.tsx index ab57a04..2fa425b 100644 --- a/app/components/card.tsx +++ b/app/components/card.tsx @@ -6,6 +6,10 @@ interface CardProps { variant?: 'default' | 'elevated' | 'glass' | 'outlined'; hover?: boolean; style?: React.CSSProperties; + bgImageUrl?: string; // optional background image shown on right with a diagonal mask + bgOpacity?: number; // 0..1 opacity for the image + bgDim?: number; // 0..1 black overlay intensity over the image + bg?: string; // optional generic CSS background (e.g., linear-gradient) } export default function Card({ @@ -13,9 +17,13 @@ export default function Card({ className = '', variant = 'default', hover = true, - style + style, + bgImageUrl, + bgOpacity = 0.25, + bgDim = 0.35, + bg }: CardProps) { - const baseClasses = "rounded-xl transition-all duration-300 ease-out"; + const baseClasses = "relative overflow-hidden rounded-xl transition-all duration-300 ease-out"; const variantClasses = { default: "bg-gray-900/50 border border-gray-800/50 backdrop-blur-sm", @@ -37,6 +45,33 @@ export default function Card({ ...style }} > + {(bg || bgImageUrl) && ( + <> + {/* Image layer clipped with diagonal mask, only right side visible */} +
+ {/* Dimming overlay to preserve contrast over the image area only */} + + > + )} {children} ); diff --git a/app/page.tsx b/app/page.tsx index ad253d3..b1113f4 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -6,7 +6,12 @@ export default function Home() { {/* Hero Section */}High School Education
@@ -77,7 +100,12 @@ export default function Home() {Higher Education
@@ -154,7 +182,13 @@ export default function Home() { {/* Portfolio Section */}Graphics Programming
@@ -196,7 +230,13 @@ export default function Home() {System Programming
@@ -217,7 +257,13 @@ export default function Home() {Language Implementation