From a5f85bb41108828d3f5a5646b3e7f143ab0bd170 Mon Sep 17 00:00:00 2001 From: Klink <85062+dogmar@users.noreply.github.com> Date: Mon, 10 Jul 2023 08:02:54 -0700 Subject: [PATCH 01/15] Correct header text on Contact Sales page --- pages/contact-sales.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/contact-sales.tsx b/pages/contact-sales.tsx index f7fb633a..4a744f0b 100644 --- a/pages/contact-sales.tsx +++ b/pages/contact-sales.tsx @@ -28,8 +28,8 @@ export default function Index() { image="/images/gradients/gradient-bg-4.jpg" > From 4c319db7df67c5ae06bc1b39bf129e1ed1288b49 Mon Sep 17 00:00:00 2001 From: Klink <85062+dogmar@users.noreply.github.com> Date: Mon, 10 Jul 2023 17:52:17 -0700 Subject: [PATCH 02/15] Careers page work started --- next.config.js | 8 +- pages/_app.tsx | 1 + .../[[...about-index]].tsx => about.tsx} | 14 +- pages/careers/hire/[job].tsx | 119 +++++++++ pages/careers/index.tsx | 149 ++++++++++++ ......community-index]].tsx => community.tsx} | 6 +- pages/legal/[legal].tsx | 15 +- .../[[...pricing-index]].tsx => pricing.tsx} | 14 +- ...LegalPage.tsx => MarkdocMarketingPage.tsx} | 53 +++- src/components/PageHeader.tsx | 18 +- src/components/PrimaryPage.tsx | 2 +- src/components/TableOfContent.tsx | 21 +- src/components/TableOfContents.tsx | 14 +- .../page-sections/JobListingsSection.tsx | 63 +++++ src/components/page-sections/TeamSection.tsx | 8 +- src/consts/routes.tsx | 5 + src/data/getJobListings.tsx | 76 ++++++ src/data/getLegalPageData.ts | 16 +- src/data/normalizeSlugs.ts | 9 + src/generated/graphqlDirectus.ts | 228 ++++++++++++++++++ src/generated/pages.json | 6 +- src/graph/directus/jobs.graphql | 31 +++ src/markdoc/mdParser.ts | 23 +- 23 files changed, 790 insertions(+), 109 deletions(-) rename pages/{about/[[...about-index]].tsx => about.tsx} (97%) create mode 100644 pages/careers/hire/[job].tsx create mode 100644 pages/careers/index.tsx rename pages/{community/[[...community-index]].tsx => community.tsx} (97%) rename pages/{pricing/[[...pricing-index]].tsx => pricing.tsx} (94%) rename src/components/{MarkdocLegalPage.tsx => MarkdocMarketingPage.tsx} (56%) create mode 100644 src/components/page-sections/JobListingsSection.tsx create mode 100644 src/data/getJobListings.tsx create mode 100644 src/data/normalizeSlugs.ts create mode 100644 src/graph/directus/jobs.graphql diff --git a/next.config.js b/next.config.js index 5c616af0..274456e1 100644 --- a/next.config.js +++ b/next.config.js @@ -28,7 +28,13 @@ module.exports = () => { }, pageExtensions: ['js', 'jsx', 'ts', 'tsx', 'md', 'mdoc'], async redirects() { - return [] + return [ + { + source: '/hiring-senior-account-executive', + destination: '/careers/hire/senior-account-executive', + permanent: true, + }, + ] }, }) } diff --git a/pages/_app.tsx b/pages/_app.tsx index 9e9f7c7f..9344e5a9 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -37,6 +37,7 @@ export type GlobalPageProps = { metaTitleFull?: string metaDescription?: string footerVariant?: FooterVariant + showHeaderBG?: boolean } type MyAppProps = AppProps diff --git a/pages/about/[[...about-index]].tsx b/pages/about.tsx similarity index 97% rename from pages/about/[[...about-index]].tsx rename to pages/about.tsx index ec908fdd..7bcac1ce 100644 --- a/pages/about/[[...about-index]].tsx +++ b/pages/about.tsx @@ -1,11 +1,7 @@ import { type ReactNode } from 'react' import { ColorModeProvider } from '@pluralsh/design-system' -import { - type GetStaticPaths, - type GetStaticProps, - type InferGetStaticPropsType, -} from 'next' +import { type GetStaticProps, type InferGetStaticPropsType } from 'next' import classNames from 'classnames' @@ -19,14 +15,8 @@ import { Cta, ResponsiveText, SectionHead } from '@src/components/Typography' import { getTeamMembers } from '@src/data/getTeamMembers' import { type TeamMemberFragment } from '@src/generated/graphqlDirectus' import { propsWithGlobalSettings } from '@src/utils/getGlobalProps' -import { indexPageStaticPaths } from '@src/utils/staticPaths' -import { HeaderPad } from '../../src/components/layout/HeaderPad' - -const DUMMY_PATH_PARAM = 'about' as const - -export const getStaticPaths: GetStaticPaths = async () => - indexPageStaticPaths(DUMMY_PATH_PARAM) +import { HeaderPad } from '../src/components/layout/HeaderPad' export default function About({ teamMembers, diff --git a/pages/careers/hire/[job].tsx b/pages/careers/hire/[job].tsx new file mode 100644 index 00000000..cfadd997 --- /dev/null +++ b/pages/careers/hire/[job].tsx @@ -0,0 +1,119 @@ +import { ColorModeProvider } from '@pluralsh/design-system' +import { type GetStaticPaths, type GetStaticProps } from 'next' +import Head from 'next/head' +import Script from 'next/script' + +import { FooterVariant } from '@src/components/FooterFull' +import { StandardPage } from '@src/components/layout/FullPage' +import { HeaderPad } from '@src/components/layout/HeaderPad' +import { MarkdocMarketingPage } from '@src/components/MarkdocMarketingPage' +import { ResponsiveText } from '@src/components/Typography' +import { getJobListing, getJobListingSlugs } from '@src/data/getJobListings' +import { type FullJobListingFragment } from '@src/generated/graphqlDirectus' +import { ReadMdContent } from '@src/markdoc/mdParser' +import { type MarkdocPage } from '@src/markdoc/mdSchema' +import { propsWithGlobalSettings } from '@src/utils/getGlobalProps' + +const PAGE_PARAM_NAME = 'job' as const + +export const getStaticPaths: GetStaticPaths = async () => { + if (process.env.NODE_ENV === 'development') { + return { + paths: [], + fallback: 'blocking' as const, + } + } + + const { data: slugs } = await getJobListingSlugs() + + return { + paths: (slugs || []).map((slug) => ({ + params: { [PAGE_PARAM_NAME]: slug }, + })), + fallback: false as const, + } +} + +export default function Index({ + markdoc, + job, +}: { + markdoc: MarkdocPage + job: FullJobListingFragment +}) { + return ( + <> + +
\ No newline at end of file diff --git a/public/animations/hoisted.0808a080.js b/public/animations/hoisted.0808a080.js new file mode 100644 index 00000000..bd4b7b0a --- /dev/null +++ b/public/animations/hoisted.0808a080.js @@ -0,0 +1 @@ +import"./chunks/gradient-loop.1e6d521e.js";import"./chunks/IframeLayout.astro_astro_type_script_index_1_lang.a5b4a2bb.js";import"./chunks/How02_Row.astro_astro_type_script_index_0_lang.56535159.js"; \ No newline at end of file diff --git a/public/animations/hoisted.0808a0802.js b/public/animations/hoisted.0808a0802.js new file mode 100644 index 00000000..bd4b7b0a --- /dev/null +++ b/public/animations/hoisted.0808a0802.js @@ -0,0 +1 @@ +import"./chunks/gradient-loop.1e6d521e.js";import"./chunks/IframeLayout.astro_astro_type_script_index_1_lang.a5b4a2bb.js";import"./chunks/How02_Row.astro_astro_type_script_index_0_lang.56535159.js"; \ No newline at end of file diff --git a/public/animations/hoisted.24ab337d.js b/public/animations/hoisted.24ab337d.js new file mode 100644 index 00000000..4dd9779c --- /dev/null +++ b/public/animations/hoisted.24ab337d.js @@ -0,0 +1 @@ +import"./chunks/heroAnim.4b395621.js";import"./chunks/gradient-loop.1e6d521e.js"; \ No newline at end of file diff --git a/public/animations/hoisted.873b4243.js b/public/animations/hoisted.873b4243.js new file mode 100644 index 00000000..f17454c6 --- /dev/null +++ b/public/animations/hoisted.873b4243.js @@ -0,0 +1 @@ +import"./chunks/gradient-loop.1e6d521e.js";import"./chunks/IframeLayout.astro_astro_type_script_index_1_lang.a5b4a2bb.js"; \ No newline at end of file diff --git a/public/animations/hoisted.873b42432.js b/public/animations/hoisted.873b42432.js new file mode 100644 index 00000000..f17454c6 --- /dev/null +++ b/public/animations/hoisted.873b42432.js @@ -0,0 +1 @@ +import"./chunks/gradient-loop.1e6d521e.js";import"./chunks/IframeLayout.astro_astro_type_script_index_1_lang.a5b4a2bb.js"; \ No newline at end of file diff --git a/public/animations/hoisted.873b42433.js b/public/animations/hoisted.873b42433.js new file mode 100644 index 00000000..f17454c6 --- /dev/null +++ b/public/animations/hoisted.873b42433.js @@ -0,0 +1 @@ +import"./chunks/gradient-loop.1e6d521e.js";import"./chunks/IframeLayout.astro_astro_type_script_index_1_lang.a5b4a2bb.js"; \ No newline at end of file diff --git a/public/animations/hoisted.8dddd3dd.js b/public/animations/hoisted.8dddd3dd.js new file mode 100644 index 00000000..d0dcc7f0 --- /dev/null +++ b/public/animations/hoisted.8dddd3dd.js @@ -0,0 +1 @@ +import"./chunks/heroAnim.4b395621.js";import"./chunks/IframeLayout.astro_astro_type_script_index_1_lang.a5b4a2bb.js";import"./chunks/gradient-loop.1e6d521e.js"; \ No newline at end of file diff --git a/public/animations/hoisted.d251661d.js b/public/animations/hoisted.d251661d.js new file mode 100644 index 00000000..c8961fd9 --- /dev/null +++ b/public/animations/hoisted.d251661d.js @@ -0,0 +1 @@ +import{g as L}from"./chunks/gradient-loop.1e6d521e.js";import"./chunks/IframeLayout.astro_astro_type_script_index_1_lang.a5b4a2bb.js";function T(e,t=3){return e<.5?1-Math.pow(1-2*e,t):1-Math.pow(2*(e-.5),t)}function M(e){return T(e)}const E=e=>e.map((e=>e[1])),v=(e,t)=>{const{xPadding:a,spacing:n}=t;return e.map(((e,t)=>[a+n*t,e]))},D=e=>e.reduce(((e,t,a)=>({...e,[a]:t})),{}),O=(e,{nodeCount:t,spacing:a,floor:n,ceiling:o,xPadding:r})=>[r+a*e,Math.random()*(o-n)+n];function w(e,t){return e.map(((a,n)=>n===e.length-1?O(n,t):[a[0],e[n+1][1]]))}function h(e){const t=e.length;return e.reduce(((e,a,n)=>{const o=M(n/(t-1));return`${e}${0===n?"M":1===n?"L":""}${a[0]},${a[1]*o} `}),"")}const V=.5,m=2,Y=document.querySelectorAll("[data-graph-id]"),f=new Set;Y.forEach((e=>{e.dataset.graphId&&f.add(e.dataset.graphId)})),console.log("uniqueIds",f),f.forEach((e=>{const t=document.querySelector(`[data-graph-id=${e}]`).dataset,a=document.querySelectorAll(`[data-graph-id=${e}] [data-graph-path]`);console.log("graphPaths",a);const n=Number(t.nodeCount),o=Number(t.floor),r=Number(t.ceiling),d=Number(t.spacing),s=Number(t.xPadding),c=JSON.parse(t.initialNodes),i={nodeCount:n,floor:o,ceiling:r,spacing:d,xPadding:s},u=h(c);a.forEach((e=>{e.setAttribute("d",u)})),h(w(c,i));let p=c;!function e(t=0){let n=E(p),o=E(w(p,i));const r={...D(o),duration:2,delay:t,ease:"sine.inOut",onUpdate:e=>{p=v(n,i);const t=h(p);a.forEach((e=>{e.setAttribute("d",t)}))},onComplete:()=>{e(),s&&window.removeEventListener("message",s)}},d=L.to(n,r),s=e=>{"play"===e?.data?(d.play(),console.log("graph play")):"pause"===e?.data&&(console.log("graph pause"),d.pause())};window?.addEventListener("message",s)}("graph1"===e?0:"graph2"===e?.666:1.332)})); \ No newline at end of file diff --git a/public/animations/how-01/index.html b/public/animations/how-01/index.html new file mode 100644 index 00000000..0bc06714 --- /dev/null +++ b/public/animations/how-01/index.html @@ -0,0 +1 @@ +01 - Select your applications
\ No newline at end of file diff --git a/public/animations/how-02-sm/index.html b/public/animations/how-02-sm/index.html new file mode 100644 index 00000000..5653959c --- /dev/null +++ b/public/animations/how-02-sm/index.html @@ -0,0 +1 @@ +02 - Bring your cloud & add your Git credentials
\ No newline at end of file diff --git a/public/animations/how-02/index.html b/public/animations/how-02/index.html new file mode 100644 index 00000000..13f9efe1 --- /dev/null +++ b/public/animations/how-02/index.html @@ -0,0 +1 @@ +02 - Bring your cloud & add your Git credentials
\ No newline at end of file diff --git a/public/animations/how-03-sm/index.html b/public/animations/how-03-sm/index.html new file mode 100644 index 00000000..36e66c57 --- /dev/null +++ b/public/animations/how-03-sm/index.html @@ -0,0 +1 @@ +03 - Build & Deploy
\ No newline at end of file diff --git a/public/animations/how-03/index.html b/public/animations/how-03/index.html new file mode 100644 index 00000000..763add2b --- /dev/null +++ b/public/animations/how-03/index.html @@ -0,0 +1 @@ +03 - Build & Deploy
\ No newline at end of file diff --git a/public/animations/how-04/index.html b/public/animations/how-04/index.html new file mode 100644 index 00000000..22428db2 --- /dev/null +++ b/public/animations/how-04/index.html @@ -0,0 +1 @@ +04 - Maintain & Scale with Plural Console
\ No newline at end of file diff --git a/public/animations/iframe-test/index.html b/public/animations/iframe-test/index.html new file mode 100644 index 00000000..929ace69 --- /dev/null +++ b/public/animations/iframe-test/index.html @@ -0,0 +1 @@ +Test \ No newline at end of file diff --git a/public/animations/images/how-03-app-name.png b/public/animations/images/how-03-app-name.png new file mode 100644 index 0000000000000000000000000000000000000000..9b390505917602755ced566cd07865b863d4fb6c GIT binary patch literal 2587 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 IjZv6?08Px&o&W#< literal 0 HcmV?d00001 diff --git a/public/animations/images/how-03-plural-build.png b/public/animations/images/how-03-plural-build.png new file mode 100644 index 0000000000000000000000000000000000000000..a14a00fd24cad5f3637391c47d94879c02e6c03c GIT binary patch literal 2247 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 literal 0 HcmV?d00001 diff --git a/public/animations/images/how-04-audit-logs.png b/public/animations/images/how-04-audit-logs.png new file mode 100644 index 0000000000000000000000000000000000000000..4978b3aa6839d82cd63e855ccddac1f6377dbf19 GIT binary patch literal 9154 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 literal 0 HcmV?d00001 diff --git a/public/animations/images/how-04-k8s-cluster.png b/public/animations/images/how-04-k8s-cluster.png new file mode 100644 index 0000000000000000000000000000000000000000..16bd6670047f31cf5bd657c327f89486b0018600 GIT binary patch literal 4532 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�Pf0mU6G#TeQusLHh=n2=Bgq)5?g(%zXEXg)j#= zbn;(ZNtTOT=J}o1c+PbHlr;}!#WK@JL|WEd^N)d|V1dIsw%;kv$C#R;(j#gwxN!Et z-0xQc@}GO~eUA(2yGSN=EF1=9uHAu=p%n>^{=|3cIuP7Ep_{gEMMg1WML{AAkWv4^ zfBgT<|0?YY<_z|%*u@?4z!xLH$L2EEi@)+QP{QP0bpzk@6DVrohW(Mk@lPy3PWh2n zrZyGoD46$+sid5x%(4Vg-$t$^-Pz`1njxTg(WY&=VyE0-MIC^g41=7)+D6ag8=3C@ z@$zl0&Cuu^Un3eGc=`58lYAWBF6Ral{5T$u{alr!-K3OV*In`gqu3p+9RC!H|6B{k z0-ka_=*_AZ<)!{S$P*!OvI9ljaX#&~c}NX#jQO0N6WgI}15i3*bC$>D%w6vKdsdam P0SCoM-%PJs2PXdyZY4Fn literal 0 HcmV?d00001 diff --git a/public/animations/index.html b/public/animations/index.html new file mode 100644 index 00000000..4e252d8f --- /dev/null +++ b/public/animations/index.html @@ -0,0 +1 @@ +My animation
\ No newline at end of file diff --git a/public/animations/scripts/scroll-pause.js b/public/animations/scripts/scroll-pause.js new file mode 100644 index 00000000..8b22f986 --- /dev/null +++ b/public/animations/scripts/scroll-pause.js @@ -0,0 +1 @@ +!function(){var n,e=document.querySelectorAll("iframe[data-animation-frame]"),o=[];e.forEach((function(n){n.addEventListener("load",(function(){o.push(n.contentWindow)}))}));var t=function(){"number"!=typeof n?o.forEach((function(n){n.postMessage("pause","*")})):window.clearTimeout(n),n=window.setTimeout((function(){o.forEach((function(e){n=void 0,e.postMessage("play","*")}))}),300)};window.addEventListener("scroll",t),window.addEventListener("resize",t)}(); \ No newline at end of file diff --git a/public/animations/scripts/scroll-pause.ts b/public/animations/scripts/scroll-pause.ts new file mode 100644 index 00000000..a134cb6c --- /dev/null +++ b/public/animations/scripts/scroll-pause.ts @@ -0,0 +1,35 @@ +(function () { + const DEBOUNCE_TIME = 300; + + const iframes = document.querySelectorAll( + "iframe[data-animation-frame]" + ); + const iframeWindows: Window[] = []; + + iframes.forEach((iframe) => { + // Once the iframe is done loading, assign its window object to the variable we prepared earlier + iframe.addEventListener("load", () => { + iframeWindows.push(iframe.contentWindow); + }); + }); + + let timeout: number | undefined | null; + const listener = () => { + if (typeof timeout !== "number") { + iframeWindows.forEach((win) => { + win.postMessage("pause", "*"); + }); + } else { + window.clearTimeout(timeout); + } + + timeout = window.setTimeout(() => { + iframeWindows.forEach((win) => { + timeout = undefined; + win.postMessage("play", "*"); + }); + }, DEBOUNCE_TIME); + }; + const scrollListener = window.addEventListener("scroll", listener); + const resizeListener = window.addEventListener("resize", listener); +})(); diff --git a/public/images/product/architecture.png b/public/images/product/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..3a7f3488745abffe475ee2b62256a0172bc79e98 GIT binary patch literal 90694 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 literal 0 HcmV?d00001 diff --git a/public/images/product/dotted-line-vertical.png b/public/images/product/dotted-line-vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..9e0fb0ad3191cea81b24b5b628be133072fd56a4 GIT binary patch literal 975 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz$iGdO@GgW-!8lYkUwfk$L90|U1Z2s2)~Tla^7 zfw|Gs#WAE}&fAL{bD0ALm;+DOS{41DS-i5byGPYyLh(c21Ai;l&%eL_`}M=$|9;u5 zx#!;dnyiSE6kX>a9-JUnOkdCFR>75>Y4xm literal 0 HcmV?d00001 diff --git a/src/components/BasicFooter.tsx b/src/components/BasicFooter.tsx index a354ad39..89191243 100644 --- a/src/components/BasicFooter.tsx +++ b/src/components/BasicFooter.tsx @@ -5,13 +5,13 @@ import styled from 'styled-components' import { mqs } from '@src/breakpoints' import GithubStars from './GithubStars' -import { FullPage } from './layout/FullPage' +import { FullPageWidth } from './layout/LayoutHelpers' import { SocialLink } from './PageHeaderButtons' export function BasicFooter({ className }: { className?: string }) { return ( - +
-
+
) } diff --git a/src/components/CompanyLogos.tsx b/src/components/CompanyLogos.tsx index 1cf1ecd3..55165be4 100644 --- a/src/components/CompanyLogos.tsx +++ b/src/components/CompanyLogos.tsx @@ -2,7 +2,7 @@ import styled from 'styled-components' import { TextLabel } from '@src/components/Typography' -import { StandardPage } from './layout/FullPage' +import { StandardPageWidth } from './layout/LayoutHelpers' const partnerLogos = [ { @@ -43,7 +43,7 @@ const partnerLogos = [ ] export const CompanyLogosSection = styled(({ ...props }) => ( - +
Companies using Plural @@ -60,7 +60,7 @@ export const CompanyLogosSection = styled(({ ...props }) => ( ))}
-
+ ))(({ theme: _ }) => ({ ul: {}, img: { diff --git a/src/components/FooterNav.tsx b/src/components/FooterNav.tsx index 4ded6f0b..8d4e8ec6 100644 --- a/src/components/FooterNav.tsx +++ b/src/components/FooterNav.tsx @@ -7,7 +7,7 @@ import { type ReadonlyDeep } from 'type-fest' import { mqs } from '@src/breakpoints' -import { FullPage } from './layout/FullPage' +import { FullPageWidth } from './layout/LayoutHelpers' import { NewsletterSignupForm } from './NewsletterSignupForm' type NavItemT = { @@ -172,7 +172,7 @@ export const FooterNavLink = styled(Link)(({ theme }) => ({ export const FooterNav = styled(({ ...props }: ComponentProps<'div'>) => (
- + {navItems.map((navItem) => ( @@ -190,7 +190,7 @@ export const FooterNav = styled(({ ...props }: ComponentProps<'div'>) => ( - +
))(({ theme }) => { const outlineOffset = -4 diff --git a/src/components/FooterValueProp.tsx b/src/components/FooterValueProp.tsx index b02acefd..e901b067 100644 --- a/src/components/FooterValueProp.tsx +++ b/src/components/FooterValueProp.tsx @@ -18,12 +18,12 @@ import styled, { useTheme } from 'styled-components' import { Columns, EqualColumn } from '@src/components/layout/Columns' -import { StandardPage } from './layout/FullPage' +import { StandardPageWidth } from './layout/LayoutHelpers' import { TextLimiter } from './layout/TextLimiter' import { ResponsiveText } from './Typography' export const FooterValueProp = styled(({ ...props }: ComponentProps<'div'>) => ( - + ) => ( - + ))(({ theme: _ }) => ({})) function ValueProp({ diff --git a/src/components/PageHeader.tsx b/src/components/PageHeader.tsx index e049672a..c806a64f 100644 --- a/src/components/PageHeader.tsx +++ b/src/components/PageHeader.tsx @@ -17,7 +17,7 @@ import { breakpointIsGreaterOrEqual, mqs } from '../breakpoints' import { useBreakpoint } from './contexts/BreakpointProvider' import GithubStars from './GithubStars' -import { FullPage } from './layout/FullPage' +import { FullPageWidth } from './layout/LayoutHelpers' import { NavigationDesktop } from './NavigationDesktop' import { NavigationMobile } from './NavigationMobile' import { HamburgerButton, SearchButton, SocialLink } from './PageHeaderButtons' @@ -208,7 +208,7 @@ const HeaderWrap = styled(({ children, alwaysShowBG = false, ...props }) => { }, })) -const PageHeaderInner = styled(FullPage).attrs(() => ({ +const PageHeaderInner = styled(FullPageWidth).attrs(() => ({ as: 'header', }))(({ theme }) => ({ height: 'var(--top-nav-height)', diff --git a/src/components/PageHeros.tsx b/src/components/PageHeros.tsx new file mode 100644 index 00000000..ad947473 --- /dev/null +++ b/src/components/PageHeros.tsx @@ -0,0 +1,105 @@ +import { type ReactNode } from 'react' + +import classNames from 'classnames' + +import { Columns, EqualColumn } from '@src/components/layout/Columns' +import { StandardPageWidth } from '@src/components/layout/LayoutHelpers' +import { TextLimiter } from '@src/components/layout/TextLimiter' +import { ResponsiveText } from '@src/components/Typography' + +export function HeroMainText({ + preHeading, + heading, + ctas, + children, + ...props +}: { + preHeading?: ReactNode + heading: ReactNode + ctas?: ReactNode + children?: ReactNode +}) { + return ( + +
+ + {preHeading && ( + <> + + {preHeading} + + + + )} + {heading} + +
+ {ctas &&
{ctas}
} + {children &&
{children}
} +
+ ) +} + +export function BasicPageHero({ + preHeading, + heading, + intro, + ctas, + ...props +}: { + preHeading?: ReactNode + heading: ReactNode + ctas?: ReactNode + intro?: ReactNode +}) { + return ( + +
+ + + + + + + + {intro} + + + + +
+
+ ) +} diff --git a/src/components/ProductStepNum.tsx b/src/components/ProductStepNum.tsx new file mode 100644 index 00000000..540621db --- /dev/null +++ b/src/components/ProductStepNum.tsx @@ -0,0 +1,244 @@ +import { type ComponentProps } from 'react' + +import styled from 'styled-components' +import { type Merge } from 'type-fest' + +import { mqs } from '@src/breakpoints' + +const StepNumSC = styled.div((_) => ({ + '--step-diameter': '62px', + + width: 'var(--step-diameter)', + height: 'var(--step-diameter)', + backgroundImage: 'linear-gradient(297deg,#2a2e37,#5d63f4)', + borderRadius: '50%', + justifyContent: 'center', + marginLeft: 'auto', + marginRight: 'auto', + display: 'block', + position: 'relative', + boxShadow: '0 3px 6px rgba(0,0,0,.15),0 10px 20px rgba(0,0,0,.1)', + [mqs.md]: { + '--step-diameter': '40px', + }, +})) + +const StepNumInnerSC = styled.div(({ theme }) => ({ + backgroundColor: theme.colors['fill-one'], + borderRadius: '50%', + justifyContent: 'center', + alignItems: 'center', + display: 'flex', + position: 'absolute', + top: 1, + bottom: 1, + left: 1, + right: 1, +})) + +const StepNumTextSC = styled.div(({ theme }) => ({ + // Might need to put these in new nested div + marginLeft: '-.05em', + fontSize: '32.5px', + paddingTop: '.05em', + fontFamily: theme.fontFamilies.sans, + [mqs.md]: { + fontSize: '21px', + marginLeft: 0, + }, +})) + +const CenterColSC = styled.div(({ theme }) => ({ + width: '96px', + WebkitTextFillColor: 'inherit', + backgroundClip: 'padding-box', + flexDirection: 'column', + flex: '1 0 auto', + display: 'flex', + position: 'relative', + overflow: 'hidden', + + alignSelf: 'center', + marginBottom: theme.spacing.large, + [mqs.md]: { + alignSelf: 'revert', + marginBottom: 0, + }, +})) + +const StepSC = styled.div((_) => ({ + flex: '1', + alignSelf: 'auto', +})) + +const ConnectorGradientSC = styled.div((_) => ({ + backgroundImage: + 'linear-gradient(#171a21,rgba(23,26,33,0) 0%,rgba(23,26,33,.8))', + position: 'absolute', + top: '0%', + bottom: '0%', + left: '0%', + right: '0%', +})) + +const ConnectorSC = styled.div((_) => ({ + width: '10px', + position: 'absolute', + top: '0', + left: '50%', + overflow: 'visible', + transform: 'translate(-50%)', + '.connector-img': { + transformOrigin: '50% 0', + marginLeft: '50%', + position: 'absolute', + transform: 'translate(-50%)scale(.166)', + }, +})) + +export function HowWorksStepCol({ stepNum, showConnector }) { + return ( + + + {showConnector && ( + <> + + + + + + + )} + + + {stepNum} + + + + + ) +} + +export const HowWorks = styled.div(({ theme }) => ({ + display: 'flex', + flexDirection: 'column', + rowGap: theme.spacing.xxxxlarge, + [mqs.md]: { + rowGap: 0, + }, +})) + +export const HowWorksSection = styled.div((_) => ({ + width: '100%', + justifyContent: 'space-between', + marginLeft: 'auto', + marginRight: 'auto', + display: 'flex', + maxWidth: '460px', + flexDirection: 'column', + [mqs.md]: { + maxWidth: '1000px', + flexDirection: 'row', + }, +})) + +const HowWorksColSC = styled.div(() => ({ + [mqs.md]: { + flex: '0 420px', + flexGrow: 0, + flexShrink: 1, + flexBasis: 420, + }, +})) + +export const HowWorksItemCol = styled(HowWorksColSC)(({ theme }) => ({ + paddingBottom: theme.spacing.large, + alignSelf: 'center', + [mqs.md]: { + alignSelf: 'revert', + paddingBottom: theme.spacing.xxxlarge, + }, + + 'h3, h4, h5, h6': { + ...theme.partials.marketingText.subtitle1, + color: theme.colors.text, + marginBottom: theme.spacing.small, + }, + ul: { + ...theme.partials.marketingText.componentText, + color: theme.colors['text-xlight'], + }, +})) + +export const HowWorksImgCol = styled(HowWorksColSC)(() => ({ + marginBottom: '0', + [mqs.md]: { + order: -1, + marginBottom: '13%', + }, + [mqs.lg]: { + marginBottom: '12%', + }, +})) + +const HowWorksImagWrapSC = styled.div((_) => ({ + margin: '-7%', + position: 'relative', + '--width': '300px', + '--height': '300px', +})) + +const HowWorksImageSC = styled.div<{ $width: number; $height: number }>( + ({ $width, $height }) => ({ + width: '100%', + position: 'relative', + height: '0', + paddingBottom: `calc((${$height} / ${$width}) * 100%)`, + iframe: { + position: 'absolute', + top: '0', + left: '0', + width: '100%', + height: '100%', + }, + }) +) + +export function HowWorksImage({ + width, + height, + src, + title, + ...props +}: Merge< + ComponentProps, + { + width: number + height: number + src: string + title: string + } +>) { + return ( + + +