aboutsummaryrefslogtreecommitdiff
path: root/src/components/CardLink.tsx
diff options
context:
space:
mode:
authorschererleander <leander@schererleander.de>2025-05-30 01:01:17 +0200
committerschererleander <leander@schererleander.de>2025-05-30 01:01:17 +0200
commitafdc982863b6cca573f1db58e1795aa8c45fabca (patch)
tree6b94d2ffdcb0e1b5ccbaf584c825763ab72ab99d /src/components/CardLink.tsx
parent8f2c8393510dfefc22871661b0ef9964569e290b (diff)
rewrite site
Diffstat (limited to 'src/components/CardLink.tsx')
-rw-r--r--src/components/CardLink.tsx29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/components/CardLink.tsx b/src/components/CardLink.tsx
new file mode 100644
index 0000000..3492038
--- /dev/null
+++ b/src/components/CardLink.tsx
@@ -0,0 +1,29 @@
+import ExternalLinkIcon from "./ExternalLink";
+
+interface Props {
+ title: string;
+ body: string;
+ href?: string;
+ imgSrc?: string;
+}
+
+export default function CardLink({ title, body, href, imgSrc }: Props) {
+ const Wrapper = href ? 'a' : 'div';
+ return (
+ <Wrapper
+ {...(href && {
+ href,
+ target: '_blank',
+ rel: 'noopener noreferrer',
+ })}
+ className="group flex items-center gap-4 py-2 px-2 rounded-lg"
+ >
+ <img src={imgSrc || ''} className="w-20 h-20 object-cover rounded-lg transition-transform duration-200 group-hover:scale-105"/>
+ <div className="flex-1">
+ <h3 className="font-medium">{title}</h3>
+ <p className="text-sm text-gray-600 black:text-gray-300">{body}</p>
+ </div>
+ {href && <ExternalLinkIcon />}
+ </Wrapper>
+ );
+} \ No newline at end of file