website/src/components/footer.js (124 lines of code) (raw):

// Copyright (c) 2019 Uber Technologies, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. import React, {PureComponent} from 'react'; import styled from 'styled-components'; import {FacebookIcon, FacebookShareButton, TwitterIcon, TwitterShareButton} from 'react-share'; import {media} from '../styles'; import MapboxLogo from './mapbox-logo'; import {ATG_LOGO, VIS_LOGO, AI_LOGO} from '../contents/content'; const Container = styled.div` background: #242730; display: flex; justify-content: space-between; padding: ${props => props.theme.margins.large}; ${media.palm` flex-direction: column; justify-content: center; `}; `; const SectionContainer = styled.div` display: inline-flex; align-items: center; > *:not(:last-child) { margin-right: 10px; } ${media.palm` display: flex; justify-content: center; margin-top: ${props => props.theme.margins.small}; `}; `; const SectionText = styled.div` display: inline-flex; align-items: center; color: ${props => props.theme.footerColor}; font-size: 11px; justify-content: center; letter-spacing: 0.5px; line-height: 14px; z-index: 101; `; const StyledLogo = styled.div` display: inline-flex; font-size: 11px; font-weight: 500; letter-spacing: 4px; position: relative; margin-top: 0; margin-bottom: 0; line-height: 0; a { color: #e5e5e4; letter-spacing: 2px; } `; const VisGLLogo = styled(StyledLogo)` margin-left: 1.8rem; :before { content: ''; background: url(${props => props.logo}) no-repeat; background-size: cover; height: 20px; width: 24px; position: absolute; top: -12px; left: -28px; } `; const GithubButton = styled.a` width: 32px; height: 32px; font-size: 14px; line-height: 32px; text-align: center; background: #fff; color: #000 !important; `; export default class Footer extends PureComponent { render() { return ( <Container> <SectionContainer> <SectionText>created by</SectionText> <a target="_blank" rel="noopener noreferrer" href="https://www.uber.com/info/atg/"> <img src={ATG_LOGO} height={16} /> </a> <SectionText>and</SectionText> <VisGLLogo logo={VIS_LOGO}> <a target="_blank" rel="noopener noreferrer" href="http://vis.gl"> VIS.GL </a> </VisGLLogo> </SectionContainer> <SectionContainer> <SectionText>partnership with</SectionText> <StyledLogo> <a target="_blank" rel="noopener noreferrer" href="https://voyage.auto/" style={{lineHeight: 1.2}} > Voyage Auto </a> </StyledLogo> <MapboxLogo target="_blank" rel="noopener noreferrer" href="https://mapbox.com/" /> <StyledLogo> <a target="_blank" rel="noopener noreferrer" href="https://www.appliedintuition.com/"> <img src={AI_LOGO} height={24} /> </a> </StyledLogo> </SectionContainer> <SectionContainer> <GithubButton href="https://github.com/uber/streetscape.gl"> <span className={'icon-github'} /> </GithubButton> <FacebookShareButton url="https://avs.auto"> <FacebookIcon size={32} /> </FacebookShareButton>{' '} <TwitterShareButton url="https://avs.auto" hashtags={['AVS']}> <TwitterIcon size={32} /> </TwitterShareButton> </SectionContainer> </Container> ); } }