Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 49 additions & 52 deletions app/about/executives/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -90,63 +90,60 @@ export default async function Executives() {
const executives = await loadExecutives();

return (
<div className="">
<div className="max-w-6xl mx-auto px-4 py-12 md:py-20">
<HeroText text="Our Team"></HeroText>

<Text as="p">Get to know your 2024-25 ASSU Executive Team.</Text>
<Divider />

<div className="max-w-3xl mx-auto grid grid-cols-1 md:grid-cols-2 gap-8 md:gap-12">
{executives.map((executive, index) => (
<div
key={`${executive.name}-${index}`}
className="bg-white rounded-lg shadow-sm p-6 md:p-8 flex flex-col space-y-6"
>
<div className="relative w-full aspect-[4/5] rounded-lg overflow-hidden bg-gray-200">
{executive.image ? (
<Image
src={executive.image}
alt={`${executive.name}${
executive.title ? ` - ${executive.title}` : ""
}`}
fill
sizes="(max-width: 768px) 100vw, 50vw"
className="object-cover"
/>
) : (
<div className="absolute inset-0 flex items-center justify-center text-gray-400 text-sm">
No image available
</div>
)}
</div>

<div className="space-y-3">
<Text
as="h2"
className="text-3xl md:text-4xl font-bold text-[var(--color-text-primary)]"
>
{executive.name}
</Text>
{executive.title && (
<Text
as="h3"
className="text-xl md:text-2xl text-[var(--color-text-primary)]"
>
{executive.title}
</Text>
)}
</div>
<div className="mx-auto px-4">
<HeroText text="Our Team"></HeroText>

<Text as="p">Get to know your 2024-25 ASSU Executive Team.</Text>

<div className="mx-auto grid grid-cols-1 md:grid-cols-3 gap-8 md:gap-12">
{executives.map((executive, index) => (
<div
key={`${executive.name}-${index}`}
className="bg-white rounded-lg shadow-sm p-6 md:p-8 flex flex-col space-y-6"
>
<div className="relative w-full aspect-[4/5] rounded-lg overflow-hidden bg-gray-200">
{executive.image ? (
<Image
src={executive.image}
alt={`${executive.name}${
executive.title ? ` - ${executive.title}` : ""
}`}
fill
sizes="(max-width: 768px) 100vw, 50vw"
className="object-cover"
/>
) : (
<div className="absolute inset-0 flex items-center justify-center text-gray-400 text-sm">
No image available
</div>
)}
</div>

<div className="space-y-3">
<Text
as="p"
className="text-[var(--color-text-secondary)] leading-relaxed text-base md:text-lg whitespace-pre-line"
as="h2"
className="text-3xl md:text-4xl font-bold text-[var(--color-text-primary)]"
>
{executive.bio}
{executive.name}
</Text>
{executive.title && (
<Text
as="h3"
className="text-xl md:text-2xl text-[var(--color-text-primary)]"
>
{executive.title}
</Text>
)}
</div>
))}
</div>

<Text
as="p"
className="text-[var(--color-text-secondary)] leading-relaxed text-base md:text-lg whitespace-pre-line"
>
{executive.bio}
</Text>
</div>
))}
</div>

<Divider />
Expand Down
85 changes: 40 additions & 45 deletions app/about/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import VerticalTimeline, {
} from "@/components/common/VerticalTimeline";
import MapSection from "@/components/common/MapSection";
import ContactInfoGrid from "@/components/layout/ContactInfoGrid";
import HeroText from "@/components/sections/HeroText";

export default function About() {
const overlays: OverlayBlock[] = [
Expand All @@ -28,51 +29,45 @@ export default function About() {
];

return (
<div className="bg-gray-lighter">
<div className="max-w-5xl mx-auto">
<AssuImage
src="/images/about-assu-hero.webp"
alt="University of Toronto campus with historic buildings"
overlays={overlays}
aspectClassName="aspect-[4/3] md:aspect-[18/9]"
sizes="(max-width: 640px) 100vw, (max-width: 980px) 100vw, 980px"
className="mb-8"
/>
<Divider borderTopWidth="3px" />
<Text as="h2" className="text-5xl font-sans font-bold">
About the ASSU
</Text>
<Divider borderTopWidth="3px" />
<Text as="p" className="text-lg">
The Arts and Science Students’ Union (ASSU) is the academic student
union for over 27,000 full-time undergraduate students in the Faculty
of Arts & Science at the University of Toronto. Based in Sidney Smith,
1068, ASSU is made up of over 60 course unions, 7 elected executives,
and 3 staff members. Through our structure of course unions, we
organize with students and community members to hold events, change
policies, improve programs, run successful campaigns, and provide
support for academic grievances.
</Text>
<Text as="p" className="text-lg">
ASSU recognizes that our academic experience is inherently linked to
our lived experience and seeks to support our members in addressing
the systemic barriers that they face, including poverty, racism,
sexism, homophobia, transphobia, ableism, and discrimination based
upon immigration status. We work to ensure that the academic needs and
concerns of all students are fulfilled.
</Text>
<Divider />
<VerticalTimeline
timelinePoints={assuTimelineData}
header="Our History"
className="mb-8"
/>
<Divider margin="0" />
<ContactInfoGrid />
<Divider borderTopWidth="3px" margin="0" />
<MapSection title="" description="" className="!py-8" />
<Divider borderTopWidth="3px" />
</div>
<div className=" mx-auto">
<AssuImage
src="/images/about-assu-hero.webp"
alt="University of Toronto campus with historic buildings"
overlays={overlays}
aspectClassName="aspect-[4/3] md:aspect-[18/9]"
sizes="(max-width: 640px) 100vw, (max-width: 980px) 100vw, 980px"
className="mb-8"
/>
<HeroText text="About the ASSU"></HeroText>
<Text as="p" className="text-lg">
The Arts and Science Students’ Union (ASSU) is the academic student
union for over 27,000 full-time undergraduate students in the Faculty of
Arts & Science at the University of Toronto. Based in Sidney Smith,
1068, ASSU is made up of over 60 course unions, 7 elected executives,
and 3 staff members. Through our structure of course unions, we organize
with students and community members to hold events, change policies,
improve programs, run successful campaigns, and provide support for
academic grievances.
</Text>
<Text as="p" className="text-lg">
ASSU recognizes that our academic experience is inherently linked to our
lived experience and seeks to support our members in addressing the
systemic barriers that they face, including poverty, racism, sexism,
homophobia, transphobia, ableism, and discrimination based upon
immigration status. We work to ensure that the academic needs and
concerns of all students are fulfilled.
</Text>
<Divider />
<VerticalTimeline
timelinePoints={assuTimelineData}
header="Our History"
className="mb-8"
/>
<Divider margin="0" />
<ContactInfoGrid />
<Divider borderTopWidth="3px" margin="0" />
<MapSection title="" description="" className="!py-8" />
<Divider borderTopWidth="3px" />
</div>
);
}
126 changes: 60 additions & 66 deletions app/about/staff/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import React from "react";
import Text from "@/components/common/Text";
import Image from "next/image";
import HeroText from "@/components/sections/HeroText";
import Divider from "@/components/common/Divider";

type StaffMember = {
name: string;
Expand Down Expand Up @@ -32,80 +33,73 @@ const staff: StaffMember[] = [

export default function Staff() {
return (
<div className="min-h-screen bg-gray-lighter">
<div className="min-h-screen">
{/* Header Section */}
<div className="max-w-3xl mx-auto px-4 py-12 md:py-20">
<div className="text-center mb-16">
<HeroText text="Our Staff"></HeroText>
<Text
as="p"
className="text-xl md:text-2xl text-[var(--color-text-secondary)] mb-4"
>
At the heart of the ASSU is a dedicated group of individuals
committed to enriching the academic and campus experience for all
Arts and Science students at the University of Toronto.
</Text>
<div className="w-full h-px bg-black opacity-25"></div>
</div>
<HeroText text="Our Staff"></HeroText>
<Text as="p" className=" text-[var(--color-text-secondary)] mb-4">
At the heart of the ASSU is a dedicated group of individuals committed
to enriching the academic and campus experience for all Arts and Science
students at the University of Toronto.
</Text>
<Divider></Divider>

{/* Staff Grid */}
<div className="max-w-3xl mx-auto grid grid-cols-1 md:grid-cols-2 gap-8 md:gap-12">
{staff.map((member, index) => (
<div
key={`${member.name}-${index}`}
className="bg-white rounded-lg shadow-sm p-6 md:p-8 flex flex-col space-y-6"
>
<div className="relative w-full aspect-[4/5] rounded-lg overflow-hidden bg-gray-200">
{member.image ? (
<Image
src={member.image}
alt={`${member.name}${
member.title ? ` - ${member.title}` : ""
}`}
fill
sizes="(max-width: 768px) 100vw, 50vw"
className="object-cover"
/>
) : (
<div className="absolute inset-0 flex items-center justify-center text-gray-400 text-sm">
No image available
</div>
)}
</div>
{/* Staff Grid */}
<div className="mx-auto grid grid-cols-1 md:grid-cols-2 gap-8 md:gap-12">
{staff.map((member, index) => (
<div
key={`${member.name}-${index}`}
className="bg-white rounded-lg shadow-sm p-6 md:p-8 flex flex-col space-y-6"
>
<div className="relative w-full aspect-[4/5] rounded-lg overflow-hidden bg-gray-200">
{member.image ? (
<Image
src={member.image}
alt={`${member.name}${
member.title ? ` - ${member.title}` : ""
}`}
fill
sizes="(max-width: 768px) 100vw, 50vw"
className="object-cover"
/>
) : (
<div className="absolute inset-0 flex items-center justify-center text-gray-400 text-sm">
No image available
</div>
)}
</div>

<div className="space-y-3">
<div className="space-y-3">
<Text
as="h2"
className="text-3xl md:text-4xl font-bold text-[var(--color-text-primary)]"
>
{member.name}
</Text>
{member.title && (
<Text
as="h2"
className="text-3xl md:text-4xl font-bold text-[var(--color-text-primary)]"
as="h3"
className="text-xl md:text-2xl text-[var(--color-text-primary)]"
>
{member.name}
{member.title}
</Text>
{member.title && (
<Text
as="h3"
className="text-xl md:text-2xl text-[var(--color-text-primary)]"
>
{member.title}
</Text>
)}
</div>
)}
</div>

<Text
as="p"
className="text-[var(--color-text-secondary)] leading-relaxed text-base md:text-lg whitespace-pre-line"
>
{member.bio}
</Text>
<Text
as="p"
className="text-[var(--color-text-secondary)] leading-relaxed text-base md:text-lg whitespace-pre-line"
>
{member.bio}
</Text>

<a
href={`mailto:${member.email}`}
className="text-pink font-semibold underline"
>
{member.email}
</a>
</div>
))}
</div>
<a
href={`mailto:${member.email}`}
className="text-pink font-semibold underline"
>
{member.email}
</a>
</div>
))}
</div>
</div>
);
Expand Down
Loading