Merge branch 'feat/study-card-visual-improvements' into 'master'

feat: improved on ui so that user can see the spaces they want to view easier

See merge request gk1623/drp-48!3

Co-authored-by: Gleb Koval <gleb@koval.net>
Co-authored-by: Caspar Jojo Asaam <caspar@dyn3159-95.wlan.ic.ac.uk>
This commit is contained in:
Caspar Jojo Asaam
2025-06-05 11:03:37 +00:00
3 changed files with 28 additions and 17 deletions

View File

@@ -24,15 +24,18 @@
height: 4rem;
top: 0;
left: 0;
right: 0;
background: linear-gradient(-77deg, #2e4653, #3a5b56);
box-shadow: 0rem 0rem 0.5rem #182125;
align-items: center;
overflow: hidden;
}
.logo {
display: block;
height: 100%;
}
.logo img {
height: 100%;
}

View File

@@ -1,22 +1,21 @@
<script lang="ts">
import type { Snippet } from "svelte";
import type { Table } from "$lib";
interface Props {
space: Table<"study_spaces">;
alt: string;
imgSrc: string;
title?: Snippet;
description?: Snippet;
href?: string;
}
const { alt, imgSrc, title, description, href }: Props = $props();
const { space, alt, imgSrc, href }: Props = $props();
</script>
<a class="card" {href}>
<img src={imgSrc} {alt} />
<div class="description">
{@render title?.()}
{@render description?.()}
<h1>{space.location}</h1>
<p>{space.description}</p>
</div>
</a>
@@ -25,6 +24,11 @@
display: flex;
flex-direction: column;
background-color: #49bd85;
width: 100%;
max-width: 20rem;
border-radius: 0.5rem;
overflow: hidden;
text-decoration: none;
}
.description {
padding: 0.5rem;
@@ -32,7 +36,9 @@
font-size: 0.875rem;
}
img {
width: 16rem;
width: 100%;
height: auto;
aspect-ratio: 1 / 1;
object-fit: cover;
}
</style>

View File

@@ -26,28 +26,30 @@
alt="Photo of {studySpace.description}"
href="/space/{studySpace.id}"
imgSrc={imgUrl}
>
{#snippet title()}
<h1>{studySpace.location}</h1>
{/snippet}
{#snippet description()}
<p>{studySpace.description}</p>
{/snippet}
</SpaceCard>
space={studySpace}
/>
{/each}
</main>
<style>
main {
display: grid;
box-sizing: border-box;
grid-template-columns: 1fr 1fr;
gap: 1rem;
padding: 1rem;
width: min(600px, 100vw);
max-width: 600px;
width: 100%;
margin: 0 auto;
}
.new-space {
transform: rotate(45deg);
}
@media (max-width: 20rem) {
main {
grid-template-columns: 1fr;
}
}
</style>