add people components

This commit is contained in:
elisejakob
2024-05-10 14:07:15 +02:00
parent 1c8abcfe83
commit 8f10cc615c
6 changed files with 113 additions and 2 deletions

View File

@ -1,9 +1,10 @@
import { graphql } from "@/gql"; import { graphql } from "@/gql";
import {EventFragment} from "@/gql/graphql" import { EventFragment } from "@/gql/graphql";
import { getClient } from "@/app/client"; import { getClient } from "@/app/client";
import { EventList } from "@/components/events/EventList"; import { EventList } from "@/components/events/EventList";
import { Body } from "@/components/general/Body"; import { Body } from "@/components/general/Body";
import Image from "next/image"; import Image from "next/image";
import { PersonList } from "@/components/people/PersonList";
export default async function Home() { export default async function Home() {
const homeQuery = graphql(` const homeQuery = graphql(`
@ -14,13 +15,21 @@ export default async function Home() {
} }
`); `);
const { data, error } = await getClient().query(homeQuery, {}); const { data, error } = await getClient().query(homeQuery, {});
const events = (data?.events ?? []) as EventFragment[] const events = (data?.events ?? []) as EventFragment[];
return ( return (
<main className="site-main" id="main"> <main className="site-main" id="main">
<div> <div>
<EventList events={events} /> <EventList events={events} />
<blockquote>«Hvor Glæden hersker, er alltid Fest»</blockquote> <blockquote>«Hvor Glæden hersker, er alltid Fest»</blockquote>
<div>
<h2>Styret</h2>
<PersonList />
</div>
<div>
<h2>Administrasjonen</h2>
<PersonList />
</div>
<p className="lead"> <p className="lead">
Sed sodales nunc quis sapien malesuada, a faucibus turpis blandit. Sed sodales nunc quis sapien malesuada, a faucibus turpis blandit.
Suspendisse potenti. Sed auctor enim et augue dapibus, vitae laoreet Suspendisse potenti. Sed auctor enim et augue dapibus, vitae laoreet

View File

@ -0,0 +1,27 @@
import styles from "./personItem.module.scss";
export const PersonItem = () => {
return (
<li className={styles.personItem}>
<div className={styles.image}></div>
<div className={styles.text}>
<h1 className={styles.name}>Ellisiv Sunde Myrva</h1>
<p className={styles.role}>Kommunikasjonssjef</p>
<ul className={styles.contact}>
<li>
<span className={styles.icon}>&#9993;&nbsp;</span>
<a href="mailto:ellisiv@neuf.no" target="_blank">
ellisiv@neuf.no
</a>
</li>
<li>
<span className={styles.icon}>&#9742;&nbsp;</span>
<a href="tel:94 47 34 04" target="_blank">
94 47 34 04
</a>
</li>
</ul>
</div>
</li>
);
};

View File

@ -0,0 +1,12 @@
import { PersonItem } from "./PersonItem";
import styles from "./personList.module.scss";
export const PersonList = () => {
return (
<ul className={styles.personList}>
<PersonItem />
<PersonItem />
<PersonItem />
</ul>
);
};

View File

@ -0,0 +1,43 @@
.personItem {
position: relative;
list-style: none;
display: flex;
align-items: center;
gap: 1rem;
}
.image {
flex: none;
width: 7rem;
height: 7rem;
background: var(--color-neufPink);
border-radius: 100%;
}
.text {
padding: 0;
}
.name,
.role {
font-size: 1rem;
}
.role {
font-family: var(--font-serif);
}
.contact {
list-style: none;
margin: .6rem 0;
font-size: var(--font-size-caption);
font-weight: 500;
line-height: 1.7;
}
.icon {
display: inline-block;
width: 1rem;
text-align: center;
margin-right: .4rem;
}

View File

@ -0,0 +1,19 @@
.personList {
display: grid;
grid-template-columns: 1fr;
column-gap: var(--spacing-gap-column);
row-gap: var(--spacing-gap-row);
padding-bottom: var(--spacing-section-bottom);
}
@media (min-width: 700px) {
.personList {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 1200px) {
.personList {
grid-template-columns: repeat(3, 1fr);
}
}

View File

@ -6,6 +6,7 @@
html { html {
min-height: 100%; min-height: 100%;
font-size: calc(1rem + 8 * (100vw - 320px) / 1920);
} }
html, html,