Skip to content

Commit

Permalink
About page
Browse files Browse the repository at this point in the history
  • Loading branch information
marcomezzavilla committed Nov 20, 2024
1 parent 9a67b0a commit 96b6d77
Show file tree
Hide file tree
Showing 7 changed files with 204 additions and 22 deletions.
4 changes: 2 additions & 2 deletions schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -12322,9 +12322,9 @@ input TeamMemberModelFilter {
_updatedAt: UpdatedAtFilter
updatedAt: UpdatedAtFilter
_isValid: BooleanFilter
avatar: FileFilter
name: StringFilter
role: StringFilter
avatar: FileFilter
OR: [TeamMemberModelFilter]
AND: [TeamMemberModelFilter]
}
Expand Down Expand Up @@ -12380,7 +12380,7 @@ type TeamMemberRecord implements RecordInterface {
_status: ItemStatus!
_unpublishingScheduledAt: DateTime
_updatedAt: DateTime!
avatar: ImageFileField
avatar: ImageFileField!
createdAt: DateTime!
id: ItemId!
name: String!
Expand Down
2 changes: 1 addition & 1 deletion src/components/quote/SingleQuote/Component.astro
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ const quote =
) : (
<article class={s.wrapper}>
<p class={s.quote}>
<InlineText data={quote.quote} />
<InlineText data={quote.quote} />
</p>

<div class={s.content}>
Expand Down
28 changes: 11 additions & 17 deletions src/components/quote/SingleQuote/style.module.css
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
.root {
width: 100%;
align-items: center;
display: flex;
flex-direction: column;
align-items: center;
padding-top: rfs(40px);
width: 100%;
}

.wrapper {
Expand Down Expand Up @@ -59,7 +59,7 @@

.root[data-size='big'] & {
font-size: rfs(40px);
max-width: 800px;
max-width: 820px;
}

.root[data-size='medium'] & {
Expand All @@ -71,19 +71,11 @@
font-size: 24px;
/* width: min(450px, 90vw); */
}

&:before {
content: '\201C';
}

&:after {
content: '\201D';
}
}

.content {
display: flex;
align-items: center;
display: flex;
justify-content: center;
text-align: left;
}
Expand All @@ -95,10 +87,12 @@

.root[data-size='big'] & {
width: rfs(130px);
min-width: 70px;
}

.root[data-size='medium'] & {
width: 100px;
width: rfs(100px);
min-width: 70px;
}

.root[data-size='small'] & {
Expand All @@ -108,22 +102,22 @@

.authorRole {
color: inherit;
max-width: 260px;
max-width: 280px;
text-decoration: none;
display: flex;
flex-direction: column;
gap: 3px;

.root[data-size='big'] & {
font-size: rfs(1.275em);
font-size: rfs(1.25rem);
}

.root[data-size='medium'] & {
font-size: rfs(1em);
font-size: rfs(1rem);
}

.root[data-size='small'] & {
font-size: 0.875em;
font-size: 0.875rem;
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/lib/datocms/graphql-env.d.ts

Large diffs are not rendered by default.

34 changes: 34 additions & 0 deletions src/pages/company/about/_graphql.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { ReviewQuoteFragment } from '~/components/quote/graphql';
import { ResponsiveImageFragment } from '~/components/ResponsiveImage/graphql';
import { TagFragment } from '~/lib/datocms/commonFragments';
import { graphql } from '~/lib/datocms/graphql';

export const query = graphql(
/* GraphQL */ `
query Features {
page: aboutPage {
_seoMetaTags {
...TagFragment
}
}
members: allTeamMembers {
name
role
avatar {
responsiveImage(imgixParams: { auto: format, w: 480, h: 360, fit: crop }) {
...ResponsiveImageFragment
}
}
}
review1: review(filter: { name: { eq: "Jeff Escalante" } }) {
__typename
...ReviewQuoteFragment
}
review2: review(filter: { name: { eq: "Marc Ammann" } }) {
__typename
...ReviewQuoteFragment
}
}
`,
[ResponsiveImageFragment, TagFragment, ReviewQuoteFragment],
);
26 changes: 26 additions & 0 deletions src/pages/company/about/_style.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
.membersWrapper {
align-items: center;
display: flex;
flex-direction: column;
justify-content: center;
padding: var(--page-margin);
}

.members {
display: grid;
gap: 40px 25px;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
max-width: var(--page-width-with-margin);
width: 100%;
}

.memberImage {
border-radius: 4px;
box-shadow: var(--smaller-box-shadow);
overflow: hidden;
}

.memberInfo {
font-size: 14px;
margin-top: 10px;
}
128 changes: 128 additions & 0 deletions src/pages/company/about/index.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
---
import { notFoundResponse, avoidAstroTypeCheckBug } from '~/lib/notFoundResponse';
import { executeQuery } from '~/lib/datocms/executeQuery';
import { Wrapper } from '~/components/Wrapper';
import { Svg } from '~/components/Svg';
import { Space } from '~/components/Space';
import { SingleQuote } from '~/components/quote/SingleQuote';
import { ResponsiveImage } from '~/components/ResponsiveImage';
import { LogosBar } from '~/components/LogosBar';
import { Layout } from '~/layouts/Layout';
import { Hero } from '~/components/Hero';
import { Flag } from '~/components/Flag';
import { query } from './_graphql';
import s from './_style.module.css';
const { page, members, review1, review2 } = await executeQuery(Astro, query);
if (!page || members.length === 0 || !review1 || !review2) {
avoidAstroTypeCheckBug(notFoundResponse);
return notFoundResponse();
}
---

<Layout additionalSeo={page._seoMetaTags}>
<Hero>
<Fragment slot="kicker">Meet our team</Fragment>
<Fragment slot="title">
We build tools that work <mark>the way you do</mark>
</Fragment>
<Fragment slot="subtitle">
Our mission? Help you create projects that truly feel yours
</Fragment>
</Hero>

<Space top={2} bottom={2}>
<LogosBar
title="We power experiences for over half a billion users"
clients={[
'svg/logos/deutsche-telekom',
'svg/logos/hashicorp',
'svg/logos/verizon',
'svg/logos/polestar',
'svg/logos/vercel',
]}
/>
</Space>

<Wrapper>
<Flag style="good">
<Fragment slot="visual">
<Svg name="svg/illustrations/team" />
</Fragment>
<Fragment slot="title">
Designed by an agency <mark>with your needs in mind</mark>
</Fragment>
<p>
DatoCMS started in 2015 as an internal tool for our italian{' '}
<a href="https://www.leanpanda.com/" target="_blank">web agency</a>.
<strong>
We understand the needs of your clients and partners because they are just like ours.
</strong>
We know what worries you, because we too choke up the night before that deploy.
</p>
<p>
We don’t follow trends and we keep our things simple; we design every feature from the
practical, real-world needs we see every day in our job.
</p>
<p>
Since 2019, DatoCMS is an independent, profitable company with a fully dedicated team behind
it, committed in giving you the best headless CMS in the market.
</p>
</Flag>

<Space top={3}>
<SingleQuote quote={review1} size="big" />
</Space>

<Space top={3}>
<Flag style="good">
<Fragment slot="visual">
<Svg name="svg/illustrations/growing" />
</Fragment>
<Fragment slot="title">
Slowly and <mark>steadily</mark>
</Fragment>
<p>
You can call us a bootstrap company, big enough to serve customers all over the world,
small enough for a Friday evening spritz together.
</p>
<p>
<strong>We’re healthy, happy and — excuse our language — profitable.</strong>
</p>
<p>
We don’t want venture capital funding. We don’t have an outbound sales team. We like dogs
more than unicorns, sharing instead of disrupting and we’re here to stay. We owe only our
best efforts to you and ourselves. We've put down our roots and we want them to grow.
Slowly but steadily.
</p>
</Flag>
</Space>
</Wrapper>

<Space top={3}>
<div class={s.membersWrapper}>
<div class={s.members}>
{
members.map((member) => (
<div class={s.member}>
<div class={s.memberImage}>
<ResponsiveImage data={member.avatar.responsiveImage} />
</div>
<div class={s.memberInfo}>
<h3>{member.name}</h3>
<p>{member.role}</p>
</div>
</div>
))
}
</div>
</div>
</Space>

<Wrapper>
<Space top={3}>
<SingleQuote quote={review2} size="big" />
</Space>
</Wrapper>
</Layout>

0 comments on commit 96b6d77

Please sign in to comment.