tweak upcoming design, use bgpig on event pages

This commit is contained in:
elisejakob
2024-05-23 00:00:33 +02:00
parent 259307c550
commit f22b110bf0
8 changed files with 54 additions and 31 deletions

View File

@ -5,6 +5,7 @@ import { Blocks } from "@/components/blocks/Blocks";
import Image from "@/components/general/Image"; import Image from "@/components/general/Image";
import { EventHeader } from "@/components/events/EventHeader"; import { EventHeader } from "@/components/events/EventHeader";
import { DateList } from "@/components/events/DateList"; import { DateList } from "@/components/events/DateList";
import { BgPig } from "@/components/general/BgPig";
export async function generateStaticParams() { export async function generateStaticParams() {
const allEventSlugsQuery = graphql(` const allEventSlugsQuery = graphql(`
@ -37,7 +38,6 @@ export default async function Page({ params }: { params: { slug: string } }) {
} }
`); `);
const { data, error } = await getClient().query(eventBySlugQuery, { const { data, error } = await getClient().query(eventBySlugQuery, {
slug: params.slug, slug: params.slug,
}); });
@ -45,12 +45,15 @@ export default async function Page({ params }: { params: { slug: string } }) {
const event = (data?.event ?? {}) as EventFragment; const event = (data?.event ?? {}) as EventFragment;
return ( return (
<main className="site-main" id="main"> <>
<EventHeader event={event} /> <main className="site-main" id="main">
<section className="page-content"> <EventHeader event={event} />
<DateList /> <section className="page-content">
<Blocks blocks={event.body} /> <DateList />
</section> <Blocks blocks={event.body} />
</main> </section>
</main>
<BgPig type="dance" color="white" />
</>
); );
} }

View File

@ -5,7 +5,7 @@ import { Pig } from "../general/Pig";
import Link from "next/link"; import Link from "next/link";
export const EventHeader = ({ event }: { event: EventFragment }) => { export const EventHeader = ({ event }: { event: EventFragment }) => {
const featuredImage: any = event.featuredImage const featuredImage: any = event.featuredImage;
return ( return (
<div className={styles.eventHeader}> <div className={styles.eventHeader}>
@ -72,9 +72,6 @@ export const EventHeader = ({ event }: { event: EventFragment }) => {
sizes="100vw" sizes="100vw"
/> />
)} )}
<div className={styles.pig}>
<Pig type="student" />
</div>
</div> </div>
</div> </div>
); );

View File

@ -6,7 +6,12 @@ import Link from "next/link";
export const UpcomingEvents = ({ events }: { events: EventFragment[] }) => { export const UpcomingEvents = ({ events }: { events: EventFragment[] }) => {
return ( return (
<section className={styles.upcomingWrapper}> <section className={styles.upcomingWrapper}>
<h2 className="suphead">Denne uka Chateau Neuf</h2> <h2 className="circlehead">
<span className="circle"></span>
<span className="circle"></span>
<span className="circle"></span>
Denne uka Chateau Neuf
</h2>
<ul className={styles.eventList}> <ul className={styles.eventList}>
{events.slice(0, 5).map((event) => ( {events.slice(0, 5).map((event) => (
<EventItem key={event.id} event={event} mode="list" size="medium" /> <EventItem key={event.id} event={event} mode="list" size="medium" />

View File

@ -24,16 +24,4 @@
.details { .details {
font-family: var(--font-serif); font-family: var(--font-serif);
font-size: var(--font-size-lead); font-size: var(--font-size-lead);
}
.pig {
position: absolute;
bottom: 0;
right: -2.5rem;
transform: translateY(50%);
color: var(--color-white);
>div {
width: 30vw;
}
} }

View File

@ -7,7 +7,7 @@
overflow-x: hidden; overflow-x: hidden;
h2 { h2 {
margin-bottom: 1rem; margin-bottom: .5rem;
} }
} }

View File

@ -15,6 +15,7 @@ import { useInView } from "react-intersection-observer";
export const BgPig = ({ export const BgPig = ({
type, type,
color,
}: { }: {
type: type:
| "logo" | "logo"
@ -28,11 +29,16 @@ export const BgPig = ({
| "key" | "key"
| "chill" | "chill"
| "peek"; | "peek";
color: "neufPink" | "white" | "goldenBeige";
}) => { }) => {
const { ref: observer, inView: IsInView } = useInView({ triggerOnce: false }); const { ref: observer, inView: IsInView } = useInView({ triggerOnce: false });
return ( return (
<div className={styles.bgPigWrapper}> <div className={styles.bgPigWrapper}>
<div className={`${styles.pig} ${styles.bgPig}`} data-inview={IsInView}> <div
className={`${styles.pig} ${styles.bgPig}`}
style={{ "--color-pig": color }}
data-inview={IsInView}
>
{type === "logo" && <LogoPig />} {type === "logo" && <LogoPig />}
{type === "music" && <MusicPig />} {type === "music" && <MusicPig />}
{type === "drink" && <DrinkPig />} {type === "drink" && <DrinkPig />}

View File

@ -7,13 +7,16 @@
} }
} }
.bgPigWrapper {
--color-pig: var(--color-neufPink);
}
.bgPig { .bgPig {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
right: 0; right: 0;
transform: translate(1vw, 20%); transform: translate(1vw, 20%);
z-index: 600; z-index: 1;
--color-pig: var(--color-neufPink);
transition: opacity .6s ease; transition: opacity .6s ease;
&[data-inview=true] { &[data-inview=true] {
@ -23,6 +26,5 @@
.observer { .observer {
position: absolute; position: absolute;
bottom: -5rem;
right: 0; right: 0;
} }

View File

@ -91,6 +91,28 @@ h6 {
letter-spacing: .05em; letter-spacing: .05em;
} }
.circlehead {
font-size: var(--font-size-caption);
font-weight: 700;
text-transform: uppercase;
letter-spacing: .05em;
.circle {
display: inline-block;
vertical-align: middle;
width: 1rem;
height: 1rem;
margin-bottom: .16rem;
margin-right: .5rem;
border-radius: 1rem;
background: var(--color-goldenOrange);
&:last-of-type {
margin-right: .75rem;
}
}
}
.breadcrumb { .breadcrumb {
display: block; display: block;
font-weight: 500; font-weight: 500;
@ -110,7 +132,7 @@ button,
border: none; border: none;
padding: .5rem 1rem; padding: .5rem 1rem;
margin: 0 0 .5rem; margin: 0 0 .5rem;
font-family: inherit; font-family: var(--font-main);
font-size: var(--font-size-body); font-size: var(--font-size-body);
font-weight: 500; font-weight: 500;
text-decoration: none; text-decoration: none;