aboutsummaryrefslogtreecommitdiffstats
path: root/packages/website/ts/@next/components/sections/landing/clients.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/website/ts/@next/components/sections/landing/clients.tsx')
-rw-r--r--packages/website/ts/@next/components/sections/landing/clients.tsx113
1 files changed, 113 insertions, 0 deletions
diff --git a/packages/website/ts/@next/components/sections/landing/clients.tsx b/packages/website/ts/@next/components/sections/landing/clients.tsx
new file mode 100644
index 000000000..4170fde46
--- /dev/null
+++ b/packages/website/ts/@next/components/sections/landing/clients.tsx
@@ -0,0 +1,113 @@
+import * as _ from 'lodash';
+import * as React from 'react';
+import styled from 'styled-components';
+import { Heading } from 'ts/@next/components/text';
+
+import { Section, WrapGrid } from 'ts/@next/components/newLayout';
+
+interface ProjectLogo {
+ name: string;
+ imageUrl?: string;
+ persistOnMobile?: boolean;
+}
+
+interface StyledProjectInterface {
+ isOnMobile?: boolean;
+}
+
+const projects: ProjectLogo[] = [
+ {
+ name: 'Radar Relay',
+ imageUrl: 'images/@next/clients/radar-relay.svg',
+ persistOnMobile: true,
+ },
+ {
+ name: 'Paradex',
+ imageUrl: 'images/@next/clients/paradex.svg',
+ persistOnMobile: true,
+ },
+ {
+ name: 'Star Bit Ex',
+ imageUrl: 'images/@next/clients/starbitex.svg',
+ },
+ {
+ name: 'LedgerDex',
+ imageUrl: 'images/@next/clients/ledgerdex.svg',
+ },
+ {
+ name: 'OpenRelay',
+ imageUrl: 'images/@next/clients/openrelay.svg',
+ persistOnMobile: true,
+ },
+ {
+ name: 'Bamboo Relay',
+ imageUrl: 'images/@next/clients/bamboo.svg',
+ persistOnMobile: true,
+ },
+ {
+ name: 'dEX',
+ imageUrl: 'images/@next/clients/ercdex.svg',
+ persistOnMobile: true,
+ },
+ {
+ name: 'emoon',
+ imageUrl: 'images/@next/clients/emoon.svg',
+ persistOnMobile: true,
+ },
+ {
+ name: 'Gods Unchained',
+ imageUrl: 'images/@next/clients/godsUnchained.svg',
+ },
+ {
+ name: 'Instex',
+ imageUrl: 'images/@next/clients/instex.svg',
+ },
+ {
+ name: 'Lake Trade',
+ imageUrl: 'images/@next/clients/laketrade.svg',
+ },
+ {
+ name: 'Veil',
+ imageUrl: 'images/@next/clients/veil.svg',
+ },
+];
+
+export const SectionLandingClients = () => (
+ <Section isTextCentered={true}>
+ <Heading size="small">Join the growing number of projects developing on 0x</Heading>
+
+ <WrapGrid isWrapped={true}>
+ {_.map(projects, (item: ProjectLogo, index) => (
+ <StyledProject key={`client-${index}`} isOnMobile={item.persistOnMobile}>
+ <img src={item.imageUrl} alt={item.name} />
+ </StyledProject>
+ ))}
+ </WrapGrid>
+ </Section>
+);
+
+const StyledProject =
+ styled.div <
+ StyledProjectInterface >
+ `
+ flex-shrink: 0;
+
+ img {
+ object-fit: contain;
+ width: 100%;
+ height: 100%;
+ }
+
+ @media (min-width: 768px) {
+ width: auto;
+ height: 50px;
+ margin: 30px;
+ }
+
+ @media (max-width: 768px) {
+ width: auto;
+ height: 42px;
+ margin: 15px;
+ display: ${props => !props.isOnMobile && 'none'};
+ }
+`;