diff --git a/components/TeamMemberCard.module.css b/components/TeamMemberCard.module.css new file mode 100644 index 00000000..86527d28 --- /dev/null +++ b/components/TeamMemberCard.module.css @@ -0,0 +1,48 @@ +.card { + --name-size: 2.25rem; + --role-size: 1.5rem; + + display: grid; + grid-template-columns: auto auto; + grid-template-rows: calc(var(--name-size) + 0.75rem) calc(var(--role-size) + 0.75rem) auto; + grid-template-areas: + "picture name" + "picture role" + "picture description"; + column-gap: 1.875rem; + row-gap: 0.25rem; + justify-items: start; + align-items: start; + + width: 53rem; +} + +.picture { + grid-area: picture; + justify-self: center; + + clip-path: circle(50%); +} + +.name { + grid-area: name; + margin: 0; + + color: var(--blue-1); + font-size: var(--name-size); + font-weight: 700; +} + +.role { + grid-area: role; + margin: 0; + + color: var(--purple-2); + font-size: var(--role-size); + font-weight: 600; +} + +.description { + grid-area: description; + margin: 0; +} diff --git a/components/TeamMemberCard.tsx b/components/TeamMemberCard.tsx new file mode 100644 index 00000000..c1448147 --- /dev/null +++ b/components/TeamMemberCard.tsx @@ -0,0 +1,31 @@ +import React from "react"; +import Image from "next/image"; +import styles from "./TeamMemberCard.module.css"; + +interface TeamMemberCardProps { + name: string; + role: string; + image?: string; // path to image of person, relative to public directory + children: React.ReactNode; +} + +export function TeamMemberCard(props: TeamMemberCardProps) { + return ( +
+ {`Picture +

{props.name}

+

{props.role}

+

{props.children}

+
+ ); +} diff --git a/pages/playground.mdx b/pages/playground.mdx index 2584b4e4..86795782 100644 --- a/pages/playground.mdx +++ b/pages/playground.mdx @@ -4,11 +4,13 @@ import { EventDescriptionCardDemo, } from "../components/playground"; +import { TeamMemberCard } from "../components/TeamMemberCard"; + # Playground ## `` -The `` component has a collapsible description, and it is used +The `` component has a collapsible description, and it is used on the events page. It uses the `
` tag and works without JS! @@ -31,3 +33,16 @@ The `` component is used on the home page, and uses the --- + +## `` + +The `` component is used on the "Meet the Team!" page to +display information about the execs: prez, VP, trez, AVP, and syscom overlord. + + + The one, the only, Codey! Codey is ecstatic to be your mascot for this term. + Codey loves programming and playing on their laptop. You can often find Codey + posing for event promo graphics, or chilling in the CSC discord. + + +--- diff --git a/public/images/team-member-placeholder.svg b/public/images/team-member-placeholder.svg new file mode 100644 index 00000000..3de69d51 --- /dev/null +++ b/public/images/team-member-placeholder.svg @@ -0,0 +1,3 @@ + + +