diff --git a/src/app.css b/src/app.css index 7cd4c18..46bd27e 100644 --- a/src/app.css +++ b/src/app.css @@ -6,21 +6,29 @@ /* Light shades - for backgrounds and cards */ --color-ecsess-50: #e8ffd9; --color-ecsess-100: #cce7ba; + --color-ecsess-150: #bae9a5; --color-ecsess-200: #a9d0a0; /* Mid-light shades - for borders and hover states */ + --color-ecsess-250: #9cc295; --color-ecsess-300: #8fb98a; + --color-ecsess-350: #7daa7a; --color-ecsess-400: #6a9a6a; /* Mid shades - for accents and interactive elements */ + --color-ecsess-450: #62925a; --color-ecsess-500: #5a8b5a; + --color-ecsess-550: #4c7a4f; --color-ecsess-600: #3f6a3f; + --color-ecsess-650: #306032; /* Mid-dark shades - for text on light backgrounds */ - --color-ecsess-700: #2d5a2d; + --color-ecsess-700: #2f4d29; + --color-ecsess-750: #1c4a1e; --color-ecsess-800: #0a3d2a; /* Dark shades - for text and backgrounds */ + --color-ecsess-850: #083525; --color-ecsess-900: #062c20; --color-ecsess-950: #031c15; @@ -28,14 +36,14 @@ --color-ecsess-black: #1f1f1f; --color-ecsess-black-hover: #161917; - --animate-wiggle: wiggle 0.3s ease-in-out infinite; + --animate-wiggle: wiggle 0.5s ease-in-out 1; @keyframes wiggle { 0%, 100% { - transform: rotateY(-3deg); + transform: rotateY(-2.4deg); } 50% { - transform: rotateY(3deg); + transform: rotateY(2.4deg); } } } diff --git a/src/components/Link.svelte b/src/components/Link.svelte index d3b0e12..2094483 100644 --- a/src/components/Link.svelte +++ b/src/components/Link.svelte @@ -1,11 +1,12 @@ {@render children()} diff --git a/src/components/RichText.svelte b/src/components/RichText.svelte index b6662c9..316019e 100644 --- a/src/components/RichText.svelte +++ b/src/components/RichText.svelte @@ -4,6 +4,6 @@ let { value } = $props(); -
+
diff --git a/src/components/homepage/AffiliatedGroups.svelte b/src/components/homepage/AffiliatedGroups.svelte index ad8e1f9..06e9d5d 100644 --- a/src/components/homepage/AffiliatedGroups.svelte +++ b/src/components/homepage/AffiliatedGroups.svelte @@ -1,5 +1,5 @@
-
-

+
+

Subcommittees & Affiliated Groups

-

+

Explore opportunities to enhance your skills, build innovative projects, and connect with the engineering community through our subcommittees and affiliated groups.

- -
+ +
{#each groups as group, i (group.name)} {@const Icon = group.icon}
- -
- -
- -
-
-
-
-

- {group.name} -

-
- -
- - - {#if group.instagram} - - - {/if} +
+ +
+
+
-
+

+ {group.name} +

+ -

+

{group.description}

-
    +
      {#each group.features as feature (feature)} -
    • - - - {feature} - +
    • + + {feature}
    • {/each}
    + + +
    + {#if group.instagram} + + + {/if} + {#if group.website} + + + {/if} +
{/each}
- - -
-

- Want to get involved? Visit their websites and social media pages to learn about upcoming - events and how to join! -

-
diff --git a/src/components/homepage/Sponsors.svelte b/src/components/homepage/Sponsors.svelte new file mode 100644 index 0000000..ed1e773 --- /dev/null +++ b/src/components/homepage/Sponsors.svelte @@ -0,0 +1,58 @@ + + +
+ +
+

+ Our Sponsors +

+

+ We're grateful to our sponsors for their continued support of ECSESS, our events, activities, + and our community. +

+ +
+ + + +
+
+ + + {#if sponsors && sponsors.length > 0} +
+
+ {#each sponsors as sponsor} + +
+ {sponsor.name} +
+ + {/each} +
+
+ {:else} +
+

You can be our next sponsor!

+
+ {/if} +
diff --git a/src/components/layout/PageThumbnail.svelte b/src/components/layout/PageThumbnail.svelte new file mode 100644 index 0000000..e194505 --- /dev/null +++ b/src/components/layout/PageThumbnail.svelte @@ -0,0 +1,10 @@ + + + + {#if thumbnail} + + + {/if} + diff --git a/src/components/layout/SeoMetaTags.svelte b/src/components/layout/SeoMetaTags.svelte index d669f4e..4c70003 100644 --- a/src/components/layout/SeoMetaTags.svelte +++ b/src/components/layout/SeoMetaTags.svelte @@ -4,9 +4,6 @@ description = 'Meet the student council, get access to academic and technical resources, registration for events, and much more!', canonical = 'https://ecsess.mcgilleus.ca' } = $props(); - - let thumbnail = - 'https://cdn.sanity.io/images/vmtsvpe2/production/5d68504038cc692805dc5e51af83adedfefde442-5304x3443.jpg?h=628&fm=webp'; @@ -22,12 +19,10 @@ - - diff --git a/src/components/officehour/OHBlock.svelte b/src/components/officehour/OHBlock.svelte index e2b2a7f..5676bec 100644 --- a/src/components/officehour/OHBlock.svelte +++ b/src/components/officehour/OHBlock.svelte @@ -9,14 +9,14 @@
-

+

{officeHour.member.name.split(' ')[0]}

{#if !isShortBlock} -

+

{shortenPosition(officeHour.member.position)}

{/if} diff --git a/src/components/officehour/OHSchedule.svelte b/src/components/officehour/OHSchedule.svelte index cc77936..040711a 100644 --- a/src/components/officehour/OHSchedule.svelte +++ b/src/components/officehour/OHSchedule.svelte @@ -114,10 +114,14 @@
-
+
-
Time
+
+ Time +
{#each DAYS as day}
{day} @@ -135,7 +139,7 @@ {#if dayIndex === 0} -
+
{#each timeSlots as timeSlot} {@const isHourMark = timeSlot % 60 === 0}

- The page you are looking for is not implemented because we are too lazy to do it. But if you - really want to see it, you can reboot to the homepage and try again. + The page you are looking for is not implemented because we are too lazy to do it.
+ But if you really want to see it, you can reboot to the homepage and try again.

Or even better, you can join us and help us implement it. diff --git a/src/routes/+layout.server.ts b/src/routes/+layout.server.ts new file mode 100644 index 0000000..4a972c6 --- /dev/null +++ b/src/routes/+layout.server.ts @@ -0,0 +1,14 @@ +import { getFromCMS } from '$lib/utils.js'; + +const thumbnailQuery = `*[_type == "homepage"]{ + "thumbnail": councilPhoto.asset->url+"?h=800&fm=webp", +}[0]`; + +export const load = async () => { + try { + return { thumbnail: (await getFromCMS(thumbnailQuery)).thumbnail }; + } catch (err) { + console.error('Failed to fetch homepage thumbnail from CMS:', err); + return { thumbnail: null }; + } +}; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 2781ad6..8008c05 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -4,9 +4,9 @@ import { onMount } from 'svelte'; import Navbar from 'components/layout/NavBar.svelte'; import Footer from 'components/layout/Footer.svelte'; + import PageThumbnail from 'components/layout/PageThumbnail.svelte'; - let { children } = $props(); - + let { children, data } = $props(); // Lazy load analytics only in production for faster dev startup onMount(async () => { if (!dev) { @@ -17,5 +17,6 @@ + {@render children()}