Creates about page wrapper component, clean up

This commit is contained in:
Ezekiel Aquino
2018-12-11 14:54:05 +01:00
parent 2471d4098f
commit 528d882ec4
5 changed files with 231 additions and 237 deletions

View File

@@ -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;
`;

View File

@@ -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;

View File

@@ -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>
<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>
</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}>
<Section isPadLarge={true}>
<Wrap>
<Column colWidth="1/4">
<Icon name="right-thing" size={120} />
<Column colWidth="1/3">
<Heading size="medium">Core Values</Heading>
</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 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>
<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>
</Section>
</SiteWrap>
</Section>
</AboutPageLayout>
);

View File

@@ -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>
);

View File

@@ -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,6 +140,43 @@ const advisors: TeamMember[] = [
},
];
export const NextAboutTeam = () => (
<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">
<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 bgColor="#F3F6F4">
<Wrap>
<Column colWidth="1/3">
<Heading size="medium">Advisors</Heading>
</Column>
<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>
</Section>
</AboutPageLayout>
);
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>
@@ -151,57 +185,6 @@ const Member = ({ name, title, imageUrl }: TeamMember) => (
</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>
<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>
<Section>
<Wrap>
<Column colWidth="1/3">
<Heading size="medium">0x Team</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} />)}
</Wrap>
</Column>
</Wrap>
</Section>
<Section bgColor="#F3F6F4">
<Wrap>
<Column colWidth="1/3">
<Heading size="medium">Advisors</Heading>
</Column>
<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 StyledMember = styled.div`
width: calc(25% - 10px);
margin-bottom: 10px;