hyprland-website/src/routes/wall_of_fame/FamedRice.svelte

97 lines
2.4 KiB
Svelte
Raw Normal View History

2023-08-27 17:02:35 +02:00
<script>
/** @type {string} */
export let name
/** @type {string} */
export let creator
/** @type {string} */
export let dotfilesLink
/** @type {string} */
export let creatorProfilePicture
/** @type {string} */
export let thumbnail
2023-08-31 19:57:26 +02:00
/**
* Specify the blurred background image to be used.
* Defaults to `"generated_<thumbnail>"`
* @type {string | undefined} */
export let blurredThumbnail = undefined
2023-08-27 17:02:35 +02:00
/** @type {string} */
export let pretitel
2023-08-31 19:57:26 +02:00
let background =
blurredThumbnail ??
// Get the `generated_<filename>` if blurredThumbnail is not set manually
`${thumbnail.substring(0, thumbnail.lastIndexOf('/'))}/generated_${thumbnail.split('/').at(-1)}`
2023-08-27 17:02:35 +02:00
</script>
<div class="flex flex-col gap-14">
<div class="flex justify-center items-center flex-col">
<div class="text-lg font-bold mb-2">{pretitel}</div>
<h3 class="text-6xl hover:text-slate-200 mb-6 font-bold">
<a href={dotfilesLink} target="_blank">{name}</a>
</h3>
<a class="flex gap-3 group" href={dotfilesLink} target="_blank">
<img
src={creatorProfilePicture}
class="rounded-full h-6 aspect-square"
alt={creator + ' profile picture'}
/>
<div class="font-medium text-lg transition-colors group-hover:text-white text-slate-300">
{creator}
</div>
</a>
</div>
<div class="px-6 sm:px-8 w-full max-w-[1100px] relative">
<a class="" href={dotfilesLink} target="_blank">
<img
src={thumbnail}
alt={`${name} by ${creator} thumbnail`}
class="rounded-lg hover:scale-[1.01] duration-300 transition-transform w-full"
/>
</a>
2023-08-31 19:57:26 +02:00
<!-- wide background -->
<!-- <img
src={background}
aria-hidden="true"
class="background"
alt={`${name} by ${creator} thumbnail`}
/> -->
<!-- blur background -->
2023-08-27 17:02:35 +02:00
<img
2023-08-31 19:57:26 +02:00
src={background}
2023-08-27 17:02:35 +02:00
aria-hidden="true"
2023-08-31 19:57:26 +02:00
class="background-blurred"
2023-08-27 17:02:35 +02:00
alt={`${name} by ${creator} thumbnail`}
/>
</div>
</div>
2023-08-31 19:57:26 +02:00
<style lang="postcss">
.background {
position: absolute;
opacity: 0.4;
min-width: calc(200% + 400px);
height: calc(100% + 200px);
pointer-events: none;
inset: 0px 0 0 -200px;
translate: 0px -50%;
z-index: -10;
background: red;
mask-image: radial-gradient(closest-side, black, transparent);
}
.background-blurred {
position: absolute;
opacity: 0.3;
min-width: calc(120% + 400px);
height: calc(120% + 200px);
pointer-events: none;
top: -55%;
left: 50%;
translate: -50%;
z-index: -10;
mask-image: radial-gradient(farthest-side, black, transparent);
}
</style>