firq-dev-website/src/components/taCard.astro

123 lines
2.2 KiB
Text
Raw Normal View History

---
export interface Props {
date: string
2023-03-09 10:44:18 +00:00
title: string
link: string
image: string
2023-03-11 18:59:51 +00:00
user?: string
}
2023-03-11 18:59:51 +00:00
const { user, date, image, link, title } = Astro.props
const options_date: Intl.DateTimeFormatOptions = {
year: 'numeric',
month: '2-digit',
day: '2-digit',
}
const formatted_date = new Date(date).toLocaleDateString('de-DE', options_date)
const icon: string = `background: url('/assets/ta_icons/${image}.webp')`
2023-03-11 18:59:51 +00:00
let hasuser = ''
if (user !== undefined) {
hasuser = 'hasuser'
}
---
2023-03-09 10:44:18 +00:00
2023-01-27 10:16:01 +00:00
<a href={link} target="_blank" rel="noopener noreferrer" aria-label={title}>
2023-03-09 10:44:18 +00:00
<article>
<div style={icon}>
<span>
<h2>{title}</h2>
</span>
2023-03-09 10:44:18 +00:00
</div>
<p>
2023-03-11 18:59:51 +00:00
<span class={hasuser}>
By {user}<br /> •
</span>
{formatted_date}
</p>
2023-03-09 10:44:18 +00:00
</article>
</a>
<style>
2023-03-11 18:59:51 +00:00
span {
display: none;
}
.hasuser {
display: flex;
}
a {
text-decoration: none;
}
2023-03-09 10:44:18 +00:00
article {
2023-03-05 20:58:01 +00:00
background-color: var(--c-darkergray);
border-color: var(--c-darkgray);
padding: 10px;
text-align: center;
transition: transform var(--speed) var(--ease);
height: auto;
width: auto;
2023-03-09 10:44:18 +00:00
}
article:hover {
transform: scale(var(--hover-scale));
2023-03-09 10:44:18 +00:00
}
article > div {
width: 128px;
height: 128px;
object-fit: cover;
object-position: 0% 0%;
2023-03-09 10:44:18 +00:00
}
article:hover div span {
padding: 0.5rem 0.5rem;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
2023-03-05 20:58:01 +00:00
background-color: var(--c-darkgray);
height: 90%;
width: 90%;
opacity: 90%;
2023-03-09 10:44:18 +00:00
}
article:hover span h2 {
margin: 0;
display: inline-flex;
font-weight: bold;
color: white;
font-size: 18px;
line-height: 150%;
}
article span h2 {
display: none;
}
article div span {
display: none;
2023-03-09 10:44:18 +00:00
}
div {
display: flex;
justify-content: center;
align-items: center;
}
p {
display: flex;
text-align: center;
justify-content: center;
2023-03-11 18:59:51 +00:00
align-items: center;
line-height: 100%;
text-decoration: none;
color: white;
font-size: 1rem;
font-weight: bold;
padding-top: 0.5rem;
margin: 0.5rem 0px;
2023-03-11 18:59:51 +00:00
flex-wrap: wrap;
flex-direction: column;
}
2023-03-09 10:44:18 +00:00
</style>