diff options
Diffstat (limited to 'packages/dev-tools-pages/ts/components/hero.tsx')
-rw-r--r-- | packages/dev-tools-pages/ts/components/hero.tsx | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/packages/dev-tools-pages/ts/components/hero.tsx b/packages/dev-tools-pages/ts/components/hero.tsx new file mode 100644 index 000000000..cdcad6982 --- /dev/null +++ b/packages/dev-tools-pages/ts/components/hero.tsx @@ -0,0 +1,63 @@ +import * as React from 'react'; +import styled from 'styled-components'; + +import { ContextInterface, ThemeContext } from 'ts/context'; +import { media } from 'ts/variables'; + +import { Button } from './button'; +import { Beta } from './typography'; + +const Hero: React.StatelessComponent<ContextInterface> = ({ children }) => ( + <ThemeContext.Consumer> + {({ subtitle, tagline }: ContextInterface) => ( + <StyledHero> + <HeroContainer> + <Subtitle>{subtitle}</Subtitle> + <Tagline as="p">{tagline}</Tagline> + <Button as="a" href="#" large={true}> + Read the Docs + </Button> + </HeroContainer> + {navigator.userAgent !== 'ReactSnap' ? children : null} + </StyledHero> + )} + </ThemeContext.Consumer> +); + +const StyledHero = styled.section` + text-align: center; + padding-top: 9.375rem; + padding-bottom: 2rem; + padding-left: 2.5rem; + padding-right: 2.5rem; + min-height: min-content; + max-height: 37.5rem; + height: 80vh; + position: relative; +`; + +const HeroContainer = styled.div` + margin: 0 auto; + max-width: 590px; +`; + +const Subtitle = styled.h2` + font-size: 3.75rem; + line-height: 1.16; + margin-bottom: 1.5rem; + + ${media.small` + font-size: 2.25rem; + line-height: 1.1; + margin-bottom: 1.375rem; + `}; +`; + +const Tagline = styled(Beta)` + margin-bottom: 2rem; + ${media.small` + margin-bottom: 1.25rem; + `}; +`; + +export { Hero }; |