diff --git a/nuxt/app.vue b/nuxt/app.vue index e6779eca1e..97c28574fa 100644 --- a/nuxt/app.vue +++ b/nuxt/app.vue @@ -8,6 +8,8 @@ useSchemaOrg([ 'https://twitter.com/FlowFuseinc', 'https://github.com/FlowFuse', 'https://www.linkedin.com/company/flowfuse/', + 'https://www.facebook.com/FlowFuse/', + 'https://www.youtube.com/channel/UCbBzP8NZbv3WDtlt4UouA-g', ], }), defineWebSite({ name: 'FlowFuse' }), diff --git a/nuxt/components/icons/MailIcon.vue b/nuxt/components/icons/MailIcon.vue new file mode 100644 index 0000000000..4ed675af00 --- /dev/null +++ b/nuxt/components/icons/MailIcon.vue @@ -0,0 +1,3 @@ + diff --git a/nuxt/components/icons/RssIcon.vue b/nuxt/components/icons/RssIcon.vue new file mode 100644 index 0000000000..0909c40385 --- /dev/null +++ b/nuxt/components/icons/RssIcon.vue @@ -0,0 +1,3 @@ + diff --git a/nuxt/composables/useTeam.ts b/nuxt/composables/useTeam.ts index c5d8ce0140..10d1a132ac 100644 --- a/nuxt/composables/useTeam.ts +++ b/nuxt/composables/useTeam.ts @@ -10,6 +10,11 @@ interface TeamMember { github?: string twitter?: string | null knowsAbout?: string[] + // Read by /about/: `order` sorts the grid, `facts` is the hover panel, `blog` is one + // more social link. Declared here so that page is typed rather than casting. + order?: number + facts?: string[] + blog?: string } const teamModules = import.meta.glob('../../src/_data/team/*.json', { eager: true, import: 'default' }) @@ -19,16 +24,34 @@ function keyFor(path: string): string { return path.split('/').pop()!.replace(/\.json$/, '') } -const people: Record = {} -for (const [path, mod] of Object.entries({ ...teamModules, ...guestModules })) { - const slug = keyFor(path) - people[slug] = { slug, ...(mod as Omit) } +function index(modules: Record): Record { + const out: Record = {} + for (const [path, mod] of Object.entries(modules)) { + const slug = keyFor(path) + out[slug] = { slug, ...(mod as Omit) } + } + return out } +const staff = index(teamModules) +const people: Record = { ...staff, ...index(guestModules) } + +/** Everyone who can be named as an author: current staff and guest writers alike. */ export function useTeam() { return people } +/** + * Current staff only, for /about/'s "Meet the Team" grid. + * + * A guest file is not only an outside writer: three of them are former team members, and + * they keep the `order` field they had while they were staff. Reading the merged map here + * put all three back on the page. + */ +export function useStaff() { + return staff +} + export function useTeamMember(slug?: string): TeamMember | null { return (slug && people[slug]) || null } diff --git a/nuxt/nuxt.config.ts b/nuxt/nuxt.config.ts index 5fc28173fe..3b4ee2feea 100644 --- a/nuxt/nuxt.config.ts +++ b/nuxt/nuxt.config.ts @@ -448,6 +448,8 @@ export default defineNuxtConfig({ ...collectWebinarRoutes(join(__dirname, '../src/webinars'), '/webinars'), ...collectSlugRoutes(join(__dirname, 'content/vs'), '/vs'), + + '/about/', // Without this, @nuxtjs/sitemap only bakes /sitemap.xml statically when // isNuxtGenerate() is true, which checks for nitro.static/preset "static" - // the netlify preset here is hybrid (prerendered pages + a fallback diff --git a/nuxt/pages/about/index.vue b/nuxt/pages/about/index.vue new file mode 100644 index 0000000000..947dcb423c --- /dev/null +++ b/nuxt/pages/about/index.vue @@ -0,0 +1,267 @@ + + + diff --git a/nuxt/public/images/about/about.png b/nuxt/public/images/about/about.png new file mode 100644 index 0000000000..7682dcc420 Binary files /dev/null and b/nuxt/public/images/about/about.png differ diff --git a/nuxt/public/images/about/investors/cota-capital.png b/nuxt/public/images/about/investors/cota-capital.png new file mode 100644 index 0000000000..40f26c5dac Binary files /dev/null and b/nuxt/public/images/about/investors/cota-capital.png differ diff --git a/nuxt/public/images/about/investors/opencore.png b/nuxt/public/images/about/investors/opencore.png new file mode 100644 index 0000000000..178a9480bc Binary files /dev/null and b/nuxt/public/images/about/investors/opencore.png differ diff --git a/nuxt/public/images/about/investors/uncorrelated.png b/nuxt/public/images/about/investors/uncorrelated.png new file mode 100644 index 0000000000..41358d5136 Binary files /dev/null and b/nuxt/public/images/about/investors/uncorrelated.png differ diff --git a/nuxt/public/images/about/investors/westwave.png b/nuxt/public/images/about/investors/westwave.png new file mode 100644 index 0000000000..4aa3f27ec3 Binary files /dev/null and b/nuxt/public/images/about/investors/westwave.png differ diff --git a/nuxt/public/images/node-red-hexagon.png b/nuxt/public/images/node-red-hexagon.png new file mode 100644 index 0000000000..011a4d9c9e Binary files /dev/null and b/nuxt/public/images/node-red-hexagon.png differ diff --git a/nuxt/public/images/pictograms/candor_blue.png b/nuxt/public/images/pictograms/candor_blue.png new file mode 100644 index 0000000000..14d7727c84 Binary files /dev/null and b/nuxt/public/images/pictograms/candor_blue.png differ diff --git a/nuxt/public/images/pictograms/education_blue.png b/nuxt/public/images/pictograms/education_blue.png new file mode 100644 index 0000000000..02b9bd35b4 Binary files /dev/null and b/nuxt/public/images/pictograms/education_blue.png differ diff --git a/nuxt/public/images/pictograms/equipment_blue.png b/nuxt/public/images/pictograms/equipment_blue.png new file mode 100644 index 0000000000..2f37e6651a Binary files /dev/null and b/nuxt/public/images/pictograms/equipment_blue.png differ diff --git a/nuxt/public/images/pictograms/iteration_blue.png b/nuxt/public/images/pictograms/iteration_blue.png new file mode 100644 index 0000000000..8ab63a0fc1 Binary files /dev/null and b/nuxt/public/images/pictograms/iteration_blue.png differ diff --git a/nuxt/public/images/pictograms/opensource_red.png b/nuxt/public/images/pictograms/opensource_red.png new file mode 100644 index 0000000000..d37bfc0ea8 Binary files /dev/null and b/nuxt/public/images/pictograms/opensource_red.png differ diff --git a/nuxt/public/images/pictograms/remote_blue.png b/nuxt/public/images/pictograms/remote_blue.png new file mode 100644 index 0000000000..eb8fa3de47 Binary files /dev/null and b/nuxt/public/images/pictograms/remote_blue.png differ diff --git a/nuxt/public/images/pictograms/trusting_blue.png b/nuxt/public/images/pictograms/trusting_blue.png new file mode 100644 index 0000000000..233bd52f09 Binary files /dev/null and b/nuxt/public/images/pictograms/trusting_blue.png differ diff --git a/nuxt/public/images/pictograms/vacation_blue.png b/nuxt/public/images/pictograms/vacation_blue.png new file mode 100644 index 0000000000..309b6269f2 Binary files /dev/null and b/nuxt/public/images/pictograms/vacation_blue.png differ diff --git a/nuxt/public/images/team/headshot-Travis-Elliot.png b/nuxt/public/images/team/headshot-Travis-Elliot.png new file mode 100644 index 0000000000..dd35fcdd5a Binary files /dev/null and b/nuxt/public/images/team/headshot-Travis-Elliot.png differ diff --git a/nuxt/public/images/team/headshot-alejandro.png b/nuxt/public/images/team/headshot-alejandro.png new file mode 100644 index 0000000000..631f74693b Binary files /dev/null and b/nuxt/public/images/team/headshot-alejandro.png differ diff --git a/nuxt/public/images/team/headshot-andrea.png b/nuxt/public/images/team/headshot-andrea.png new file mode 100644 index 0000000000..1415e034b5 Binary files /dev/null and b/nuxt/public/images/team/headshot-andrea.png differ diff --git a/nuxt/public/images/team/headshot-andrew.png b/nuxt/public/images/team/headshot-andrew.png new file mode 100644 index 0000000000..bf8741eb2c Binary files /dev/null and b/nuxt/public/images/team/headshot-andrew.png differ diff --git a/nuxt/public/images/team/headshot-anthony-sargeant.png b/nuxt/public/images/team/headshot-anthony-sargeant.png new file mode 100644 index 0000000000..d1b1a6638c Binary files /dev/null and b/nuxt/public/images/team/headshot-anthony-sargeant.png differ diff --git a/nuxt/public/images/team/headshot-ben.png b/nuxt/public/images/team/headshot-ben.png new file mode 100644 index 0000000000..470c289fc7 Binary files /dev/null and b/nuxt/public/images/team/headshot-ben.png differ diff --git a/nuxt/public/images/team/headshot-boris.png b/nuxt/public/images/team/headshot-boris.png new file mode 100644 index 0000000000..6c25bbd4ee Binary files /dev/null and b/nuxt/public/images/team/headshot-boris.png differ diff --git a/nuxt/public/images/team/headshot-dan.png b/nuxt/public/images/team/headshot-dan.png new file mode 100644 index 0000000000..39ec6ca4c0 Binary files /dev/null and b/nuxt/public/images/team/headshot-dan.png differ diff --git a/nuxt/public/images/team/headshot-dimitrie.png b/nuxt/public/images/team/headshot-dimitrie.png new file mode 100644 index 0000000000..0d569d30c6 Binary files /dev/null and b/nuxt/public/images/team/headshot-dimitrie.png differ diff --git a/nuxt/public/images/team/headshot-drew-gatti.png b/nuxt/public/images/team/headshot-drew-gatti.png new file mode 100644 index 0000000000..03be306731 Binary files /dev/null and b/nuxt/public/images/team/headshot-drew-gatti.png differ diff --git a/nuxt/public/images/team/headshot-esme.png b/nuxt/public/images/team/headshot-esme.png new file mode 100644 index 0000000000..3ab4f7320c Binary files /dev/null and b/nuxt/public/images/team/headshot-esme.png differ diff --git a/nuxt/public/images/team/headshot-etienne.png b/nuxt/public/images/team/headshot-etienne.png new file mode 100644 index 0000000000..583ccb60fd Binary files /dev/null and b/nuxt/public/images/team/headshot-etienne.png differ diff --git a/nuxt/public/images/team/headshot-grey.png b/nuxt/public/images/team/headshot-grey.png new file mode 100644 index 0000000000..d84e4d858a Binary files /dev/null and b/nuxt/public/images/team/headshot-grey.png differ diff --git a/nuxt/public/images/team/headshot-harshad.jpg b/nuxt/public/images/team/headshot-harshad.jpg new file mode 100644 index 0000000000..39b5eb0568 Binary files /dev/null and b/nuxt/public/images/team/headshot-harshad.jpg differ diff --git a/nuxt/public/images/team/headshot-jamie.png b/nuxt/public/images/team/headshot-jamie.png new file mode 100644 index 0000000000..be95f10e8a Binary files /dev/null and b/nuxt/public/images/team/headshot-jamie.png differ diff --git a/nuxt/public/images/team/headshot-joe.png b/nuxt/public/images/team/headshot-joe.png new file mode 100644 index 0000000000..ab06f74073 Binary files /dev/null and b/nuxt/public/images/team/headshot-joe.png differ diff --git a/nuxt/public/images/team/headshot-john.png b/nuxt/public/images/team/headshot-john.png new file mode 100644 index 0000000000..eb3aac4922 Binary files /dev/null and b/nuxt/public/images/team/headshot-john.png differ diff --git a/nuxt/public/images/team/headshot-joyce.jpg b/nuxt/public/images/team/headshot-joyce.jpg new file mode 100644 index 0000000000..da9e8a4907 Binary files /dev/null and b/nuxt/public/images/team/headshot-joyce.jpg differ diff --git a/nuxt/public/images/team/headshot-kasheef.png b/nuxt/public/images/team/headshot-kasheef.png new file mode 100644 index 0000000000..d335cf9c7b Binary files /dev/null and b/nuxt/public/images/team/headshot-kasheef.png differ diff --git a/nuxt/public/images/team/headshot-kin.png b/nuxt/public/images/team/headshot-kin.png new file mode 100644 index 0000000000..49dc7a8b13 Binary files /dev/null and b/nuxt/public/images/team/headshot-kin.png differ diff --git a/nuxt/public/images/team/headshot-klaus.png b/nuxt/public/images/team/headshot-klaus.png new file mode 100644 index 0000000000..b0be90c378 Binary files /dev/null and b/nuxt/public/images/team/headshot-klaus.png differ diff --git a/nuxt/public/images/team/headshot-kristopher.png b/nuxt/public/images/team/headshot-kristopher.png new file mode 100644 index 0000000000..95fe647b58 Binary files /dev/null and b/nuxt/public/images/team/headshot-kristopher.png differ diff --git a/nuxt/public/images/team/headshot-kudzai-manditereza.png b/nuxt/public/images/team/headshot-kudzai-manditereza.png new file mode 100644 index 0000000000..43763ec875 Binary files /dev/null and b/nuxt/public/images/team/headshot-kudzai-manditereza.png differ diff --git a/nuxt/public/images/team/headshot-kurt-braun.png b/nuxt/public/images/team/headshot-kurt-braun.png new file mode 100644 index 0000000000..d769ed8115 Binary files /dev/null and b/nuxt/public/images/team/headshot-kurt-braun.png differ diff --git a/nuxt/public/images/team/headshot-mandeep.png b/nuxt/public/images/team/headshot-mandeep.png new file mode 100644 index 0000000000..e6f5817574 Binary files /dev/null and b/nuxt/public/images/team/headshot-mandeep.png differ diff --git a/nuxt/public/images/team/headshot-marian.png b/nuxt/public/images/team/headshot-marian.png new file mode 100644 index 0000000000..ce4ce5c7d3 Binary files /dev/null and b/nuxt/public/images/team/headshot-marian.png differ diff --git a/nuxt/public/images/team/headshot-michael.png b/nuxt/public/images/team/headshot-michael.png new file mode 100644 index 0000000000..37acf0a22d Binary files /dev/null and b/nuxt/public/images/team/headshot-michael.png differ diff --git a/nuxt/public/images/team/headshot-michaelp.png b/nuxt/public/images/team/headshot-michaelp.png new file mode 100644 index 0000000000..63d5bbb88b Binary files /dev/null and b/nuxt/public/images/team/headshot-michaelp.png differ diff --git a/nuxt/public/images/team/headshot-nick.png b/nuxt/public/images/team/headshot-nick.png new file mode 100644 index 0000000000..6384e0ad67 Binary files /dev/null and b/nuxt/public/images/team/headshot-nick.png differ diff --git a/nuxt/public/images/team/headshot-noley.png b/nuxt/public/images/team/headshot-noley.png new file mode 100644 index 0000000000..a719319af4 Binary files /dev/null and b/nuxt/public/images/team/headshot-noley.png differ diff --git a/nuxt/public/images/team/headshot-noubar.png b/nuxt/public/images/team/headshot-noubar.png new file mode 100644 index 0000000000..0df79ac20f Binary files /dev/null and b/nuxt/public/images/team/headshot-noubar.png differ diff --git a/nuxt/public/images/team/headshot-pablo.png b/nuxt/public/images/team/headshot-pablo.png new file mode 100644 index 0000000000..5d017059d2 Binary files /dev/null and b/nuxt/public/images/team/headshot-pablo.png differ diff --git a/nuxt/public/images/team/headshot-piotr.png b/nuxt/public/images/team/headshot-piotr.png new file mode 100644 index 0000000000..5700410c9b Binary files /dev/null and b/nuxt/public/images/team/headshot-piotr.png differ diff --git a/nuxt/public/images/team/headshot-quintijn.png b/nuxt/public/images/team/headshot-quintijn.png new file mode 100644 index 0000000000..9de3690198 Binary files /dev/null and b/nuxt/public/images/team/headshot-quintijn.png differ diff --git a/nuxt/public/images/team/headshot-raymond.png b/nuxt/public/images/team/headshot-raymond.png new file mode 100644 index 0000000000..960a1208cc Binary files /dev/null and b/nuxt/public/images/team/headshot-raymond.png differ diff --git a/nuxt/public/images/team/headshot-rhythm.png b/nuxt/public/images/team/headshot-rhythm.png new file mode 100644 index 0000000000..80e7e271a1 Binary files /dev/null and b/nuxt/public/images/team/headshot-rhythm.png differ diff --git a/nuxt/public/images/team/headshot-rob.png b/nuxt/public/images/team/headshot-rob.png new file mode 100644 index 0000000000..c97978f543 Binary files /dev/null and b/nuxt/public/images/team/headshot-rob.png differ diff --git a/nuxt/public/images/team/headshot-serban.png b/nuxt/public/images/team/headshot-serban.png new file mode 100644 index 0000000000..410e93abe6 Binary files /dev/null and b/nuxt/public/images/team/headshot-serban.png differ diff --git a/nuxt/public/images/team/headshot-steve.png b/nuxt/public/images/team/headshot-steve.png new file mode 100644 index 0000000000..7668c3a8d7 Binary files /dev/null and b/nuxt/public/images/team/headshot-steve.png differ diff --git a/nuxt/public/images/team/headshot-sumit.png b/nuxt/public/images/team/headshot-sumit.png new file mode 100644 index 0000000000..f1fdc8d131 Binary files /dev/null and b/nuxt/public/images/team/headshot-sumit.png differ diff --git a/nuxt/public/images/team/headshot-trent.png b/nuxt/public/images/team/headshot-trent.png new file mode 100644 index 0000000000..9df68c80d8 Binary files /dev/null and b/nuxt/public/images/team/headshot-trent.png differ diff --git a/nuxt/public/images/team/headshot-yndira.png b/nuxt/public/images/team/headshot-yndira.png new file mode 100644 index 0000000000..c3b6e12b85 Binary files /dev/null and b/nuxt/public/images/team/headshot-yndira.png differ diff --git a/nuxt/public/images/team/headshot-zj.png b/nuxt/public/images/team/headshot-zj.png new file mode 100644 index 0000000000..d0e7e7e326 Binary files /dev/null and b/nuxt/public/images/team/headshot-zj.png differ diff --git a/nuxt/server/middleware/legacy.ts b/nuxt/server/middleware/legacy.ts index e55d21ae74..deb9c7a86e 100644 --- a/nuxt/server/middleware/legacy.ts +++ b/nuxt/server/middleware/legacy.ts @@ -4,7 +4,7 @@ import { defineEventHandler, proxyRequest } from 'h3' // Extend this list as pages are migrated. Trailing slashes are matched automatically. // Note: /sitemap-legacy.xml is deliberately NOT listed here — it only exists in // nuxt/public/ after a production build, so in dev it must keep proxying to 11ty's _site/. -const NUXT_ROUTES = new Set(['/', '/ai', '/terms', '/privacy-policy', '/integrations', '/sitemap.xml', '/robots.txt', '/llms.txt', '/llms-full.txt', '/contact-us', '/book-demo', '/support', '/professional-services', '/dashboard/tags-and-canvas-feedback']) +const NUXT_ROUTES = new Set(['/', '/about', '/ai', '/terms', '/privacy-policy', '/integrations', '/sitemap.xml', '/robots.txt', '/llms.txt', '/llms-full.txt', '/contact-us', '/book-demo', '/support', '/professional-services', '/dashboard/tags-and-canvas-feedback']) // Path prefixes handled by Nuxt. Used for dynamic routes like /integrations/{id}. const NUXT_ROUTE_PREFIXES = ['/integrations/', '/raw/'] @@ -19,7 +19,7 @@ const NUXT_PREFIXES = ['/handbook', '/ebooks', '/whitepaper', '/pricing', '/docs // Top-level routes still on 11ty, not yet ported to Nuxt (everything not listed above // already falls through to the 11ty proxy by default). Remove entries here as they migrate: -// /about, /blueprints, /careers, /community, /events +// /blueprints, /careers, /community, /events // /free-consultation, /industries, /landing, /node-red, /partners, /platform, // /use-cases, /webinars diff --git a/src/about.njk b/src/about.njk deleted file mode 100644 index 41ca88edf8..0000000000 --- a/src/about.njk +++ /dev/null @@ -1,200 +0,0 @@ ---- -layout: layouts/page.njk -nohero: true -meta: - title: About - description: FlowFuse provides a complete platform for building, scaling and securing your production Node-RED applications. Accelerate digitalization of your industrial processes with ease. - organization: - name: FlowFuse - legalName: FlowFuse Inc - url: https://www.flowfuse.com - logo: - src: https://flowfuse.com/handbook/images/logos/ff-logo--square--dark.png - width: 396 - height: 215 - foundingDate: '2021' - founders: - - name: Nick O'Leary - address: - streetAddress: 548 Market Street PO Box 7775 #29439 - addressLocality: San Francisco - addressRegion: CA - postalCode: '94120' - addressCountry: US - sameAs: - - https://www.linkedin.com/company/flowfuse - - https://www.facebook.com/FlowFuse/ - - https://twitter.com/flowfuseinc - - https://github.com/FlowFuse - - https://www.youtube.com/channel/UCbBzP8NZbv3WDtlt4UouA-g -eleventyComputed: - meta: - organization: - description: "{{ site.messaging.subtitle }}" ---- - - -
-
-
-

About FlowFuse

-
-
-

FlowFuse was founded in 2021 by Nick - O’Leary, co-creator of Node-RED, a renowned open-source development - tool. Nick saw the potential to make Node-RED a powerful solution for industrial enterprises and FlowFuse was created to elevate Node-RED through a secure and scalable platform.

-

FlowFuse seamlessly integrates into existing industrial environments, offering an adaptable foundation for building bespoke applications. Our customers rely on FlowFuse to develop innovative applications that modernize their industrial operations creating the opportunity to improve their processes continuously.

-

See our security certifications

-
-
- {% image "./images/about/about.png", "FlowFuse hosting Node-RED connected to many devices", [440] %} -
-
-
-
- - - -
-
-
-
-
- {% image "./images/node-red-hexagon.png", "Node-RED Logo", [42] %} -
-

Node-RED

-
-

We are deeply committed to the success of the Node-RED open - source project. FlowFuse dedicates significant resources to improving the core technology of the project and fostering the growth of the Node-RED community.

-
-
-
-
- {% image "./images/pictograms/opensource_red.png", "Open Source Logo", [42] %} -
-

Open Source

-
-
-

We believe strongly that Open Source is the heart of everything we - do influencing not just our contributions to Node-RED but also the development of FlowFuse. We - strive to be good Open Source citizens and to empower the community to get involved.

-
-
-
-
-
- - -
-
-

Meet the Team

-
-
-
- {%- for member in team | dictsortBy(false, 'order') -%} -
- {% set imageSrc = ["./images/team/headshot-", member.headshot ] | join %} - {% set imageAlt = ["Photo of ", member.name ] | join %} - {% image imageSrc, imageAlt, [256] %} -
    - {%- for fact in member.facts -%} -
  • {{ fact | safe }}
  • - {%- endfor -%} -
-
-
-
{{ member.name }}
-
{{ member.title }}
-
-
- {% if member.email %} - - - {% include "components/mail.njk" %} - - - {% endif %} - {% if member.twitter %} - - - {% include "components/twitter.njk" %} - - - {% endif %} - {% if member.github %} - - - {% include "components/github.njk" %} - - - {% endif %} - {% if member.linkedin %} - - - {% include "components/linkedin.njk" %} - - - {% endif %} - {% if member.blog %} - - - {% include "components/rss.njk" %} - - - {% endif %} -
-
-
- {%- endfor -%} -
-
-
- - -
-
-
-

Corporate Values

-

As a remote-only company, FlowFuse seeks and fosters talent from Europe, North America, and Asia. Our corporate values encourage our team to continuously iterate using constructive candor to prioritize customer empathy.

-
- {% include "values.njk" %} -
-
- - -
-
-

Our Investors

- -
-
- {% image "./images/about/investors/opencore.png", "Open Core Ventures Logo", [280] %} - {% image "./images/about/investors/cota-capital.png", "Cota Capital Logo", [200] %} -
-
- {% image "./images/about/investors/westwave.png", "Westwave Capital Logo", [215] %} - {% image "./images/about/investors/uncorrelated.png", "Uncorrelated Logo", [190] %} -
-
- - -
-
- -
-
-
-

Working at FlowFuse

-

Here are just some of the benefits enjoyed by our employees. We are always looking to improve and expand these too. You can read more about them in our Handbook.

-
- {% include "benefits.njk" %} -

Interested in joining FlowFuse? Check out our Jobs page for our current openings.

-
-
diff --git a/src/css/style.page.css b/src/css/style.page.css index 0aacfe733e..4be86b165f 100644 --- a/src/css/style.page.css +++ b/src/css/style.page.css @@ -451,6 +451,12 @@ height: 100%; position: relative; overflow: hidden; + /* The grid stretches every card to the tallest in its row, but the headshot keeps its + aspect ratio and .member-info its natural height, so a card whose role fits on one + line used to stop short of the row and leave the bottom open. Laying the card out as + a column lets .member-info take up that slack. */ + display: flex; + flex-direction: column; } .team-headshot img { @@ -500,6 +506,7 @@ .member-info { position: relative; + flex: 1 1 auto; border-color: var(--color-indigo-200); background-color: white; text-align: center;