diff --git a/public/images/sponsors/2026/charity/scottish-summit-learning.png b/public/images/sponsors/2026/charity/scottish-summit-learning.png new file mode 100644 index 0000000..82d8261 Binary files /dev/null and b/public/images/sponsors/2026/charity/scottish-summit-learning.png differ diff --git a/src/components/Sponsors/SponsorsSection/SponsorsSection.module.scss b/src/components/Sponsors/SponsorsSection/SponsorsSection.module.scss index be25f8e..98643d7 100644 --- a/src/components/Sponsors/SponsorsSection/SponsorsSection.module.scss +++ b/src/components/Sponsors/SponsorsSection/SponsorsSection.module.scss @@ -30,3 +30,9 @@ padding: functions.spacing(2); } } + +.description { + font-size: 0.65em; + opacity: 0.7; + margin-top: functions.spacing(0.5); +} diff --git a/src/components/Sponsors/SponsorsSection/index.jsx b/src/components/Sponsors/SponsorsSection/index.jsx index 9057149..ba55416 100644 --- a/src/components/Sponsors/SponsorsSection/index.jsx +++ b/src/components/Sponsors/SponsorsSection/index.jsx @@ -34,21 +34,31 @@ const SponsorsSection = ({ )} - {sponsors.map(({ name, logo, label }, index) => ( + {sponsors.map(({ name, logo, label, description }, index) => ( {label ?? 'Sponsor slot available'}

} + heading={ + !logo && ( + <> +

{label ?? 'Sponsor slot available'}

+ {description &&

{description}

} + + ) + } > {[title, 'Sponsor', name].filter(Boolean).join(' ')} - + {logo && description && ( +

{description}

+ )}
))} diff --git a/src/components/Team/TeamSection/TeamSection.module.scss b/src/components/Team/TeamSection/TeamSection.module.scss new file mode 100644 index 0000000..aa1d079 --- /dev/null +++ b/src/components/Team/TeamSection/TeamSection.module.scss @@ -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; +} diff --git a/src/components/Team/TeamSection/index.jsx b/src/components/Team/TeamSection/index.jsx new file mode 100644 index 0000000..cc0f1c7 --- /dev/null +++ b/src/components/Team/TeamSection/index.jsx @@ -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 }) => ( +
+ {title && ( + +

{title}

+
+ )} + + {members.map(({ name, role, company }, index) => ( + + {name ?? 'Team Member'}}> + +

{role}

+ {company &&

{company}

} +
+
+
+ ))} +
+
+) + +TeamSection.propTypes = { + title: string, + members: array, + alt: bool, + centered: bool +} + +export default TeamSection diff --git a/src/data/header.json b/src/data/header.json index bf507c1..6d58289 100644 --- a/src/data/header.json +++ b/src/data/header.json @@ -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": "" }, diff --git a/src/pages/sponsors.jsx b/src/pages/sponsors.jsx index e92585c..417f467 100644 --- a/src/pages/sponsors.jsx +++ b/src/pages/sponsors.jsx @@ -55,6 +55,10 @@ const silver = [ height: 1250 } }, + { label: 'Reserved' }, + { label: 'Reserved' }, + {}, + {}, {}, {}, {} @@ -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 = () => (
@@ -106,6 +122,14 @@ const SponsorsPage = () => ( square alt /> + ) diff --git a/src/pages/team.jsx b/src/pages/team.jsx new file mode 100644 index 0000000..1a4a362 --- /dev/null +++ b/src/pages/team.jsx @@ -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 = () => ( + +
+ +

{meta.title}

+

+ {name}{' '}is a volunteer-run, community-led Microsoft technology + conference. Here’s the incredible people who make it happen. +

+
+
+ + + +
+) + +export default TeamPage