Skip to content
Open
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
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,9 @@
padding: functions.spacing(2);
}
}

.description {
font-size: 0.65em;
opacity: 0.7;
margin-top: functions.spacing(0.5);
}
16 changes: 13 additions & 3 deletions src/components/Sponsors/SponsorsSection/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,21 +34,31 @@ const SponsorsSection = ({
</Prose>
)}
<Grid flex className={styles.root}>
{sponsors.map(({ name, logo, label }, index) => (
{sponsors.map(({ name, logo, label, description }, index) => (
<Grid.Item key={name ?? index} sizes={columns} className={styles.item}>
<Card
href={!logo && '#become-a-sponsor'}
theme={{ root: styles.card, content: styles.content }}
className={classNames(square && styles.square)}
heading={!logo && <p>{label ?? 'Sponsor slot available'}</p>}
heading={
!logo && (
<>
<p>{label ?? 'Sponsor slot available'}</p>
{description && <p className={styles.description}>{description}</p>}
</>
)
}
>
<VisuallyHidden>
{[title, 'Sponsor', name].filter(Boolean).join(' ')}
</VisuallyHidden>
<Image
<Image
{...logo}
priority={title === 'Platinum'}
/>
{logo && description && (
<p className={styles.description}>{description}</p>
)}
</Card>
</Grid.Item>
))}
Expand Down
15 changes: 15 additions & 0 deletions src/components/Team/TeamSection/TeamSection.module.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
@use '~styles/breakpoints.module';
@use '~styles/functions';
@use '~styles/mixins';

.root {
row-gap: functions.spacing(2);

@include mixins.mq(breakpoints.$desktop) {
row-gap: functions.spacing(4);
}
}

.centered {
place-content: center;
}
43 changes: 43 additions & 0 deletions src/components/Team/TeamSection/index.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import { Card, classNames, Grid, Prose } from '@newhighsco/chipset'
import { array, bool, string } from 'prop-types'
import React from 'react'

import Section from '~components/Section'

import styles from './TeamSection.module.scss'

const TeamSection = ({ title, members, alt, centered, ...rest }) => (
<Section
align="center"
size="desktop"
variant={alt ? 'light' : 'striped'}
{...rest}
>
{title && (
<Prose align="center">
<h2>{title}</h2>
</Prose>
)}
<Grid flex className={classNames(styles.root, centered && styles.centered)}>
{members.map(({ name, role, company }, index) => (
<Grid.Item key={name ?? index} sizes={['one-half', 'tablet-one-quarter']}>
<Card heading={<h3>{name ?? 'Team Member'}</h3>}>
<Prose align="center">
<p>{role}</p>
{company && <p><small>{company}</small></p>}
</Prose>
</Card>
</Grid.Item>
))}
</Grid>
</Section>
)

TeamSection.propTypes = {
title: string,
members: array,
alt: bool,
centered: bool
}

export default TeamSection
2 changes: 1 addition & 1 deletion src/data/header.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"links": [
{ "href": "/", "children": "Home", "target": "" },
{ "href": "/#about", "children": "About", "target": "" },
{ "href": "/sponsors", "children": "Sponsors", "target": "" },
{ "href": "/team", "children": "Team", "target": "" },
{ "href": "/speakers", "children": "Speakers", "target": "" },
{ "href": "/workshops", "children": "Workshops", "target": "" },
{ "href": "/events", "children": "Events", "target": "" },
Expand Down
24 changes: 24 additions & 0 deletions src/pages/sponsors.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ const silver = [
height: 1250
}
},
{ label: 'Reserved' },
{ label: 'Reserved' },
{},
{},
{},
{},
{}
Expand All @@ -67,6 +71,18 @@ const media = [
}
]

const charity = [
{
name: 'Scottish Summit Learning',
logo: {
src: '/images/sponsors/2026/charity/scottish-summit-learning.png',
width: 1448,
height: 1086
},
description: 'Part of Scottish Summit SCIO (SC052785)'
}
]

const SponsorsPage = () => (
<PageContainer meta={meta}>
<Section align="center" variant="dark">
Expand Down Expand Up @@ -106,6 +122,14 @@ const SponsorsPage = () => (
square
alt
/>
<SponsorsSection
title="Charity Partner"
id="charity"
size="desktop"
sponsors={charity}
columns={['one-half', 'tablet-one-quarter']}
square
/>
<SponsorshipCallToAction />
</PageContainer>
)
Expand Down
64 changes: 64 additions & 0 deletions src/pages/team.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import { Prose } from '@newhighsco/chipset'
import React from 'react'

import PageContainer from '~components/PageContainer'
import Section from '~components/Section'
import TeamSection from '~components/Team/TeamSection'
import config from '~config'
import { canonicalUrl } from '~utils/urls'

const { name } = config

const meta = { canonical: canonicalUrl('/team'), title: 'Meet The Team' }

const leads = [
{ name: 'Zoe Wilson', role: 'Global Digital Workplace Consulting Leader', company: 'Kyndryl' },
{ name: 'Matt Beard', role: 'Chief AI Officer', company: 'Data8 Ltd' }
]

const organisers = [
{ name: 'Rex de Koning', role: 'Senior Cloud Engineer', company: 'InSpark B.V.' },
{ name: 'Mike Hartley', role: 'Senior Solutions Architect', company: 'Capgemini' },
{ name: 'Areti Iles', role: 'Head of Professional Services - AI Business Solutions', company: 'Telefonica Tech' },
{ name: 'Sara Fennah', role: 'Microsoft 365 Consultant/Trainer', company: 'Znrgy Ltd' },
{ name: 'Gemma Adair', role: 'Microsoft Partner Marketing Expert', company: 'Riada Consultancy' },
{ name: 'Paddy Byrne', role: 'Solution Architect', company: 'Kerv Digital' },
{ name: 'Carl Cookson', role: 'Consultant / Owner', company: 'LinkeD365 Consulting' }
]

const contentTeam = [
{ name: 'Amy Stewart', role: 'Content Team' },
{ name: 'Michael Grant', role: 'Content Team' },
{ name: 'Rachel MacLeod', role: 'Content Team' },
{ name: 'Tom Henderson', role: 'Content Team' },
{ name: 'Kate Morrison', role: 'Content Team' },
{ name: 'Alan Murray', role: 'Content Team' }
]

const TeamPage = () => (
<PageContainer meta={meta}>
<Section align="center" variant="dark">
<Prose align="center">
<h1>{meta.title}</h1>
<p>
{name}{' '}is a volunteer-run, community-led Microsoft technology
conference. Here&rsquo;s the incredible people who make it happen.
</p>
</Prose>
</Section>
<TeamSection title="Led By" id="leads" members={leads} centered />
<TeamSection
title="The People Who Make It Happen"
id="organisers"
members={organisers}
alt
/>
<TeamSection
title="Behind The Scenes"
id="content-team"
members={contentTeam}
/>
</PageContainer>
)

export default TeamPage