diff options
author | Ezekiel Aquino <ezekiel@bakkenbaeck.no> | 2018-12-11 21:54:05 +0800 |
---|---|---|
committer | Ezekiel Aquino <ezekiel@bakkenbaeck.no> | 2018-12-11 21:54:19 +0800 |
commit | 528d882ec4103441b8eacb4d1fdcf1613830a960 (patch) | |
tree | 3fce84611ff950c51f3d5ee20429803c781d2cc0 /packages | |
parent | 2471d4098fcbdc3735f77254f7f0cfcb9d597f9d (diff) | |
download | dexon-sol-tools-528d882ec4103441b8eacb4d1fdcf1613830a960.tar dexon-sol-tools-528d882ec4103441b8eacb4d1fdcf1613830a960.tar.gz dexon-sol-tools-528d882ec4103441b8eacb4d1fdcf1613830a960.tar.bz2 dexon-sol-tools-528d882ec4103441b8eacb4d1fdcf1613830a960.tar.lz dexon-sol-tools-528d882ec4103441b8eacb4d1fdcf1613830a960.tar.xz dexon-sol-tools-528d882ec4103441b8eacb4d1fdcf1613830a960.tar.zst dexon-sol-tools-528d882ec4103441b8eacb4d1fdcf1613830a960.zip |
Creates about page wrapper component, clean up
Diffstat (limited to 'packages')
-rw-r--r-- | packages/website/ts/@next/components/aboutPageLayout.tsx | 53 | ||||
-rw-r--r-- | packages/website/ts/@next/pages/about/jobs.tsx | 160 | ||||
-rw-r--r-- | packages/website/ts/@next/pages/about/mission.tsx | 111 | ||||
-rw-r--r-- | packages/website/ts/@next/pages/about/press.tsx | 51 | ||||
-rw-r--r-- | packages/website/ts/@next/pages/about/team.tsx | 93 |
5 files changed, 231 insertions, 237 deletions
diff --git a/packages/website/ts/@next/components/aboutPageLayout.tsx b/packages/website/ts/@next/components/aboutPageLayout.tsx new file mode 100644 index 000000000..562f4f810 --- /dev/null +++ b/packages/website/ts/@next/components/aboutPageLayout.tsx @@ -0,0 +1,53 @@ +import * as React from 'react'; +import styled from 'styled-components'; + +import { Link } from 'ts/@next/components/button'; +import { ChapterLink } from 'ts/@next/components/chapter_link'; +import { Column, Section, Wrap } from 'ts/@next/components/layout'; +import { SiteWrap } from 'ts/@next/components/siteWrap'; +import { Heading, Paragraph } from 'ts/@next/components/text'; + +interface Props { + title: string; + description: React.Node; + linkLabel?: string; + linkUrl?: string; +} + +export const AboutPageLayout = (props: Props) => ( + <SiteWrap theme="light"> + <Section isPadLarge={true}> + <Wrap> + <Column colWidth="1/3"> + <ChapterLink to="/next/about/mission">Our Mission</ChapterLink> + <ChapterLink to="/next/about/team">Team</ChapterLink> + <ChapterLink to="/next/about/press">Press</ChapterLink> + <ChapterLink to="/next/about/jobs">Jobs</ChapterLink> + </Column> + + <Column colWidth="2/3"> + <IntroWrap> + <Heading size="medium"> + {props.title} + </Heading> + <Paragraph size="medium" marginBottom="60px"> + {props.description} + </Paragraph> + + {(props.linkLabel && props.linkUrl) && + <Link href={props.linkUrl} isNoBorder={true} isWithArrow={true}> + {props.linkLabel} + </Link> + } + </IntroWrap> + </Column> + </Wrap> + </Section> + + {props.children} + </SiteWrap> +); + +const IntroWrap = styled.div` + max-width: 680px; +`; diff --git a/packages/website/ts/@next/pages/about/jobs.tsx b/packages/website/ts/@next/pages/about/jobs.tsx index 0146995a5..26a6f70f2 100644 --- a/packages/website/ts/@next/pages/about/jobs.tsx +++ b/packages/website/ts/@next/pages/about/jobs.tsx @@ -1,12 +1,11 @@ -import * as React from 'react'; import * as _ from 'lodash/core'; +import * as React from 'react'; import styled from 'styled-components'; -import { ChapterLink } from 'ts/@next/components/chapter_link'; +import { AboutPageLayout } from 'ts/@next/components/aboutPageLayout'; import { Column, Section, Wrap } from 'ts/@next/components/layout'; import { Link } from 'ts/@next/components/link'; import { Separator } from 'ts/@next/components/separator'; -import { SiteWrap } from 'ts/@next/components/siteWrap'; import { Heading, Paragraph } from 'ts/@next/components/text'; interface PositionInterface { @@ -38,6 +37,75 @@ const positions: PositionInterface[] = [ }, ]; +export const NextAboutJobs = () => ( + <AboutPageLayout + title="Join Us in Our Mission" + description="To create a tokenized world where all value can flow freely. We are powering a growing ecosystem of decentralized applications and solving novel challenges to make our technology intuitive, flexible, and accessible to all. Read more about our mission, and join us in building financial infrastructure upon which the exchange of anything of value will take place." + linkLabel="Our mission and values" + linkUrl="/mission" + > + <Section bgColor="#F3F6F4" isPadLarge={true}> + <Wrap> + <Column colWidth="1/3"> + <Heading size="medium" isNoMargin={true}> + Powered by a Diverse Worldwide Community + </Heading> + </Column> + </Wrap> + <Wrap> + <Column colWidth="1/3"> + <Paragraph> + We're a highly technical team with varied backgrounds in engineering, science, business, finance, and research. While the core team is headquartered in San Francisco, there are 30+ teams building on 0x and hundreds of thousands of participants behind our efforts globally. We're passionate about open-source software and decentralized technology's potential to act as an equalizing force in the world. + </Paragraph> + </Column> + + <Column colWidth="2/3"> + <img src="/images/@next/jobs/map@2x.png" height="365" alt="Map of community"/> + </Column> + </Wrap> + </Section> + + <Section isPadLarge={true}> + <Wrap> + <Column colWidth="1/3"> + <Heading size="medium">Benefits</Heading> + </Column> + + <Column colWidth="2/3"> + <Wrap> + <Column> + <BenefitsList> + <li>Comprehensive Insurance</li> + <li>Unlimited Vacation</li> + <li>Meals and snacks provided daily</li> + <li>Flexible hours and liberal work-from-home-policy</li> + <li>Supportive of remote working</li> + <li>Transportation, phone, and wellness expense</li> + <li>Relocation assistance</li> + <li>Optional team excursions</li> + <li>Competitive salary</li> + <li>Cryptocurrency based compensation</li> + </BenefitsList> + </Column> + </Wrap> + </Column> + </Wrap> + </Section> + + <Section isPadLarge={true}> + <Wrap> + <Column colWidth="1/3"> + <Heading size="medium">Current<br/>Openings</Heading> + </Column> + + <Column colWidth="2/3"> + {_.map(positions, (position, index) => <Position key={`position-${index}`} position={position} /> )} + </Column> + </Wrap> + </Section> + </AboutPageLayout> +); + const Position = ({ position }) => ( <> <Wrap> @@ -55,92 +123,6 @@ const Position = ({ position }) => ( </> ); -export const NextAboutJobs = () => ( - <SiteWrap theme="light"> - <Section isPadLarge={true}> - <Wrap> - <Column colWidth="1/3"> - <ChapterLink to="/next/about/mission">Our Mission</ChapterLink> - <ChapterLink to="/next/about/team">Team</ChapterLink> - <ChapterLink to="/next/about/press">Press</ChapterLink> - <ChapterLink to="/next/about/jobs">Jobs</ChapterLink> - </Column> - <Column colWidth="2/3"> - <div style={{ maxWidth: '680px' }}> - <Heading size="medium"> - Join Us in Our Mission - </Heading> - <Paragraph size="medium"> - To create a tokenized world where all value can flow freely. We are powering a growing ecosystem of decentralized applications and solving novel challenges to make our technology intuitive, flexible, and accessible to all. Read more about our mission, and join us in building financial infrastructure upon which the exchange of anything of value will take place. - </Paragraph> - <Link href="#">Our misson and values</Link> - </div> - </Column> - </Wrap> - </Section> - - <Section bgColor="#F3F6F4" isPadLarge={true}> - <Wrap> - <Column colWidth="1/3"> - <Heading size="medium" isNoMargin={true}> - Powered by a Diverse Worldwide Community - </Heading> - </Column> - </Wrap> - <Wrap> - <Column colWidth="1/3"> - <Paragraph> - We're a highly technical team with varied backgrounds in engineering, science, business, finance, and research. While the core team is headquartered in San Francisco, there are 30+ teams building on 0x and hundreds of thousands of participants behind our efforts globally. We're passionate about open-source software and decentralized technology's potential to act as an equalizing force in the world. - </Paragraph> - </Column> - - <Column colWidth="2/3"> - <img src="/images/@next/jobs/map@2x.png" height="365" alt="Map of community"/> - </Column> - </Wrap> - </Section> - - <Section isPadLarge={true}> - <Wrap> - <Column colWidth="1/3"> - <Heading size="medium">Benefits</Heading> - </Column> - - <Column colWidth="2/3"> - <Wrap> - <Column> - <BenefitsList> - <li>Comprehensive Insurance</li> - <li>Unlimited Vacation</li> - <li>Meals and snacks provided daily</li> - <li>Flexible hours and liberal work-from-home-policy</li> - <li>Supportive of remote working</li> - <li>Transportation, phone, and wellness expense</li> - <li>Relocation assistance</li> - <li>Optional team excursions</li> - <li>Competitive salary</li> - <li>Cryptocurrency based compensation</li> - </BenefitsList> - </Column> - </Wrap> - </Column> - </Wrap> - </Section> - - <Section isPadLarge={true}> - <Wrap> - <Column colWidth="1/3"> - <Heading size="medium">Current<br/>Openings</Heading> - </Column> - - <Column colWidth="2/3"> - {_.map(positions, (position, index) => <Position key={`position-${index}`} position={position} /> )} - </Column> - </Wrap> - </Section> - </SiteWrap> -); - const BenefitsList = styled.ul` color: #000; list-style: disc; diff --git a/packages/website/ts/@next/pages/about/mission.tsx b/packages/website/ts/@next/pages/about/mission.tsx index aee49351a..1b5e18b10 100644 --- a/packages/website/ts/@next/pages/about/mission.tsx +++ b/packages/website/ts/@next/pages/about/mission.tsx @@ -1,80 +1,61 @@ import * as React from 'react'; -import { Link as ReactRouterLink } from 'react-router-dom'; -import styled from 'styled-components'; -import { Link } from 'ts/@next/components/button'; -import { ChapterLink } from 'ts/@next/components/chapter_link'; +import { AboutPageLayout } from 'ts/@next/components/aboutPageLayout'; import { Icon } from 'ts/@next/components/icon'; import { Image } from 'ts/@next/components/image'; import { Column, Section, Wrap } from 'ts/@next/components/layout'; import { Separator } from 'ts/@next/components/separator'; -import { SiteWrap } from 'ts/@next/components/siteWrap'; import { Heading, Paragraph } from 'ts/@next/components/text'; export const NextAboutMission = () => ( - <SiteWrap theme="light"> - <Section isPadLarge={true}> - <Wrap> - <Column colWidth="1/3"> - <ChapterLink to="/next/about/mission">Our Mission</ChapterLink> - <ChapterLink to="/next/about/team">Team</ChapterLink> - <ChapterLink to="/next/about/press">Press</ChapterLink> - <ChapterLink to="/next/about/jobs">Jobs</ChapterLink> - </Column> - <Column colWidth="2/3"> - <div style={{ maxWidth: '680px '}}> - <Heading size="medium">Creating a tokenized world where all value can flow freely.</Heading> - <Paragraph size="medium" marginBottom="60px">0x Protocol is an important infrastructure layer for the emerging crypto economy and enables markets to be created that couldn't have existed before. As more assets become tokenized, public blockchains provide the opportunity to establish a new financial stack that is more efficient, transparent, and equitable than any system in the past.</Paragraph> - <Link href="/mission" isNoBorder={true} isWithArrow={true}>Our missions and values</Link> - </div> - </Column> - </Wrap> - </Section> - - <Section isFullWidth={true} isNoPadding={true}> - <Wrap width="full"> - <Image src="/images/@next/about/about-mission@2x.jpg" height="372" alt="" isCentered={true} /> - </Wrap> - </Section> - - <Section isPadLarge={true}> - <Wrap> - <Column colWidth="1/3"> - <Heading size="medium">Core<br/>Values</Heading> - </Column> - - <Column colWidth="2/3" isNoPadding={true}> - <Wrap> - <Column colWidth="1/4"> - <Icon name="right-thing" size={120} /> - </Column> - <Column colWidth="2/3" isFlexGrow={true}> - <Heading>Do The Right Thing</Heading> - <Paragraph isMuted={true}>We acknowledge the broad subjectivity behind doing “the right thing,” and are committed to rigorously exploring its nuance in our decision making. We believe this responsibility drives our decision making above all else, and pledge to act in the best interest of our peers, community, and society as a whole.</Paragraph> - </Column> + <AboutPageLayout + title="Creating a tokenized world where all value can flow freely." + description="0x Protocol is an important infrastructure layer for the emerging crypto economy and enables markets to be created that couldn't have existed before. As more assets become tokenized, public blockchains provide the opportunity to establish a new financial stack that is more efficient, transparent, and equitable than any system in the past." + > + <Section isFullWidth={true} isNoPadding={true}> + <Wrap width="full"> + <Image src="/images/@next/about/about-mission@2x.jpg" height="372" alt="" isCentered={true} /> </Wrap> - <Separator/> - <Wrap> - <Column colWidth="1/4"> - <Icon name="consistently-ship" size={120} /> - </Column> - <Column colWidth="2/3" isFlexGrow={true}> - <Heading>Consistently Ship</Heading> - <Paragraph isMuted={true}>Achieving our mission requires dedication and diligence. We aspire to be an organization that consistently ships. We set high-impact goals that are rooted in data and pride ourselves in consistently outputting outstanding results across the organization.</Paragraph> - </Column> - </Wrap> - <Separator/> + </Section> + + <Section isPadLarge={true}> <Wrap> - <Column colWidth="1/4"> - <Icon name="long-term-impact" size={120} /> + <Column colWidth="1/3"> + <Heading size="medium">Core Values</Heading> </Column> - <Column colWidth="2/3" isFlexGrow={true}> - <Heading>Focus on long-term Impact</Heading> - <Paragraph isMuted={true}>We anticipate that over time, awareness of the fundamentally disruptive nature of frictionless global exchange will cause some to see this technology as a threat. There will be setbacks, some will claim that this technology is too disruptive, and we will face adversity. Persistence and a healthy long-term focus will see us through these battles.</Paragraph> + + <Column colWidth="2/3" isNoPadding={true}> + <Wrap> + <Column colWidth="1/4"> + <Icon name="right-thing" size={120} /> + </Column> + <Column colWidth="2/3" isFlexGrow={true}> + <Heading>Do The Right Thing</Heading> + <Paragraph isMuted={true}>We acknowledge the broad subjectivity behind doing “the right thing,” and are committed to rigorously exploring its nuance in our decision making. We believe this responsibility drives our decision making above all else, and pledge to act in the best interest of our peers, community, and society as a whole.</Paragraph> + </Column> + </Wrap> + <Separator/> + <Wrap> + <Column colWidth="1/4"> + <Icon name="consistently-ship" size={120} /> + </Column> + <Column colWidth="2/3" isFlexGrow={true}> + <Heading>Consistently Ship</Heading> + <Paragraph isMuted={true}>Achieving our mission requires dedication and diligence. We aspire to be an organization that consistently ships. We set high-impact goals that are rooted in data and pride ourselves in consistently outputting outstanding results across the organization.</Paragraph> + </Column> + </Wrap> + <Separator/> + <Wrap> + <Column colWidth="1/4"> + <Icon name="long-term-impact" size={120} /> + </Column> + <Column colWidth="2/3" isFlexGrow={true}> + <Heading>Focus on long-term Impact</Heading> + <Paragraph isMuted={true}>We anticipate that over time, awareness of the fundamentally disruptive nature of frictionless global exchange will cause some to see this technology as a threat. There will be setbacks, some will claim that this technology is too disruptive, and we will face adversity. Persistence and a healthy long-term focus will see us through these battles.</Paragraph> + </Column> + </Wrap> </Column> </Wrap> - </Column> - </Wrap> - </Section> - </SiteWrap> + </Section> + </AboutPageLayout> ); diff --git a/packages/website/ts/@next/pages/about/press.tsx b/packages/website/ts/@next/pages/about/press.tsx index e03505635..ea2485a33 100644 --- a/packages/website/ts/@next/pages/about/press.tsx +++ b/packages/website/ts/@next/pages/about/press.tsx @@ -1,12 +1,11 @@ -import * as React from 'react'; import * as _ from 'lodash'; +import * as React from 'react'; import styled from 'styled-components'; -import { ChapterLink } from 'ts/@next/components/chapter_link'; +import { AboutPageLayout } from 'ts/@next/components/aboutPageLayout'; +import { Link } from 'ts/@next/components/button'; import { Column, Section, Wrap } from 'ts/@next/components/layout'; -import { Link } from 'ts/@next/components/link'; import { Separator } from 'ts/@next/components/separator'; -import { SiteWrap } from 'ts/@next/components/siteWrap'; import { Heading, Paragraph } from 'ts/@next/components/text'; interface HighlightInterface { @@ -37,6 +36,25 @@ const highlights: HighlightInterface[] = [ }, ]; +export const NextAboutPress = () => ( + <AboutPageLayout + title="Press Highlights" + description={ + <> + <Paragraph marginBottom="60px"> + Want to write about 0x? Get in touch, or download our press kit. + </Paragraph> + + <Separator/> + + {_.map(highlights, (highlight, index) => ( + <Highlight key={`highlight-${index}`} highlight={highlight} /> + ))} + </> + } + /> +); + const Highlight = ({ highlight }) => ( <> <Wrap> @@ -45,32 +63,9 @@ const Highlight = ({ highlight }) => ( </Column> <Column colWidth="2/3"> <Paragraph isMuted={false}>{highlight.text}</Paragraph> - <Link href={highlight.href}>Read Article</Link> + <Link href={highlight.href} isWithArrow={true} isNoBorder={true}>Read Article</Link> </Column> </Wrap> <Separator/> </> ); - -export const NextAboutPress = () => ( - <SiteWrap theme="light"> - <Section isPadLarge={true}> - <Wrap> - <Column colWidth="1/3"> - <ChapterLink to="/next/about/mission">Our Mission</ChapterLink> - <ChapterLink to="/next/about/team">Team</ChapterLink> - <ChapterLink to="/next/about/press">Press</ChapterLink> - <ChapterLink to="/next/about/jobs">Jobs</ChapterLink> - </Column> - <Column colWidth="2/3"> - <Heading size="medium">Press Highlights</Heading> - <Paragraph size="medium" marginBottom="60px">Want to write about 0x? Get in touch, or download our press kit.</Paragraph> - - <Separator/> - - {_.map(highlights, (highlight, index) => <Highlight key={`highlight-${index}`} highlight={highlight} /> )} - </Column> - </Wrap> - </Section> - </SiteWrap> -); diff --git a/packages/website/ts/@next/pages/about/team.tsx b/packages/website/ts/@next/pages/about/team.tsx index 20b5a49eb..8d7ab4b0e 100644 --- a/packages/website/ts/@next/pages/about/team.tsx +++ b/packages/website/ts/@next/pages/about/team.tsx @@ -1,14 +1,11 @@ import * as _ from 'lodash/core'; import * as React from 'react'; -import { Link as ReactRouterLink } from 'react-router-dom'; import styled from 'styled-components'; import { colors } from 'ts/style/colors'; -import { Link } from 'ts/@next/components/button'; -import { ChapterLink } from 'ts/@next/components/chapter_link'; +import { AboutPageLayout } from 'ts/@next/components/aboutPageLayout'; import { Column, Section, Wrap } from 'ts/@next/components/layout'; -import { SiteWrap } from 'ts/@next/components/siteWrap'; import { Heading, Paragraph } from 'ts/@next/components/text'; interface TeamMember { @@ -143,63 +140,49 @@ const advisors: TeamMember[] = [ }, ]; -const Member = ({ name, title, imageUrl }: TeamMember) => ( - <StyledMember> - <svg width="184" height="184" viewBox="0 0 184 184" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="184" height="184" fill="#003831"/></svg> - <Heading color={colors.textDarkPrimary} size="small" isNoMargin={true}>{name}</Heading> - <Paragraph isMuted={0.5}>{title}</Paragraph> - </StyledMember> -); - export const NextAboutTeam = () => ( - <SiteWrap theme="light"> - <Section isPadLarge={true}> - <Wrap> - <Column colWidth="1/3"> - <ChapterLink to="/next/about/mission">Our Mission</ChapterLink> - <ChapterLink to="/next/about/team">Team</ChapterLink> - <ChapterLink to="/next/about/press">Press</ChapterLink> - <ChapterLink to="/next/about/jobs">Jobs</ChapterLink> - </Column> + <AboutPageLayout + title="We are a global, growing team" + description="We are a distributed team with backgrounds in engineering, academic research, business, and design. The 0x Core Team is passionate about accelerating the adoption decentralized technology and believe in its potential to be an equalizing force in the world. Join us and do the most impactful work of your life." + linkLabel="Join the team" + linkUrl="/jobs" + > + <Section> + <Wrap> + <Column colWidth="1/3"> + <Heading size="medium">0x Team</Heading> + </Column> - <Column colWidth="2/3"> - <div style={{ maxWidth: '680px' }}> - <Heading size="medium">We are a global, growing team</Heading> - <Paragraph size="medium" marginBottom="60px">We are a distributed team with backgrounds in engineering, academic research, business, and design. The 0x Core Team is passionate about accelerating the adoption decentralized technology and believe in its potential to be an equalizing force in the world. Join us and do the most impactful work of your life.</Paragraph> - <Link href="/mission" isNoBorder={true} isWithArrow={true}>Join the team</Link> - </div> - </Column> - </Wrap> - </Section> + <Column colWidth="2/3"> + <Wrap isWrapped={true} isCentered={false}> + {_.map(team, (info: TeamMember, index) => <Member key={`team-${index}`} name={info.name} title={info.title} />)} + </Wrap> + </Column> + </Wrap> + </Section> - <Section> - <Wrap> - <Column colWidth="1/3"> - <Heading size="medium">0x Team</Heading> - </Column> + <Section bgColor="#F3F6F4"> + <Wrap> + <Column colWidth="1/3"> + <Heading size="medium">Advisors</Heading> + </Column> - <Column colWidth="2/3"> - <Wrap isWrapped={true} isCentered={false}> - {_.map(team, (info, index) => <Member key={`team-${index}`} name={info.name} title={info.title} />)} + <Column colWidth="2/3"> + <Wrap isWrapped={true} isCentered={false}> + {_.map(advisors, (info: TeamMember, index) => <Member key={`team-${index}`} name={info.name} title={info.title} />)} + </Wrap> + </Column> </Wrap> - </Column> - </Wrap> - </Section> - - <Section bgColor="#F3F6F4"> - <Wrap> - <Column colWidth="1/3"> - <Heading size="medium">Advisors</Heading> - </Column> + </Section> + </AboutPageLayout> +); - <Column colWidth="2/3"> - <Wrap isWrapped={true} isCentered={false}> - {_.map(advisors, (info, index) => <Member key={`team-${index}`} name={info.name} title={info.title} />)} - </Wrap> - </Column> - </Wrap> - </Section> - </SiteWrap> +const Member = ({ name, title, imageUrl }: TeamMember) => ( + <StyledMember> + <svg width="184" height="184" viewBox="0 0 184 184" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="184" height="184" fill="#003831"/></svg> + <Heading color={colors.textDarkPrimary} size="small" isNoMargin={true}>{name}</Heading> + <Paragraph isMuted={0.5}>{title}</Paragraph> + </StyledMember> ); const StyledMember = styled.div` |