parent
c185804341
commit
27d220de87
14 changed files with 204 additions and 13 deletions
@ -0,0 +1,15 @@ |
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; |
||||
|
||||
import RowBlock from 'components/row-block'; |
||||
import { SubmitText, SubmitWrap } from './style'; |
||||
|
||||
const IconRowBlock = ({ url, icon, text, openExternal=false }) => ( |
||||
<RowBlock url={ url } openExternal={openExternal}> |
||||
<SubmitWrap> |
||||
<FontAwesomeIcon icon={ icon } /> |
||||
<SubmitText>{ text }</SubmitText> |
||||
</SubmitWrap> |
||||
</RowBlock> |
||||
); |
||||
|
||||
export default IconRowBlock; |
@ -0,0 +1,20 @@ |
||||
import styled from 'styled-components'; |
||||
|
||||
export const SubmitWrap = styled.div` |
||||
display: flex; |
||||
flex-direction: column; |
||||
height: 100%; |
||||
align-items: center; |
||||
justify-content: center; |
||||
|
||||
svg { |
||||
height: 25px; |
||||
color: dimgrey; |
||||
} |
||||
`;
|
||||
|
||||
export const SubmitText = styled.p` |
||||
margin-bottom: 0; |
||||
color: dimgrey; |
||||
margin-top: 8px; |
||||
`;
|
@ -0,0 +1,11 @@ |
||||
import { HeaderWrap, Subtitle, Title } from './style'; |
||||
|
||||
const PageHeader = (props) => ( |
||||
<HeaderWrap> |
||||
<Title>Developer Roadmaps</Title> |
||||
<Subtitle>We continue to improve these roadmaps and add new ones, subscribe to get occasional updates</Subtitle> |
||||
{ props.children } |
||||
</HeaderWrap> |
||||
); |
||||
|
||||
export default PageHeader; |
@ -0,0 +1,16 @@ |
||||
import styled from 'styled-components'; |
||||
|
||||
export const HeaderWrap = styled.div` |
||||
text-align: center; |
||||
padding: 45px 30px; |
||||
`;
|
||||
|
||||
export const Title = styled.h1` |
||||
font-size: 48px; |
||||
font-weight: 700; |
||||
`;
|
||||
|
||||
export const Subtitle = styled.p` |
||||
font-size: 16px; |
||||
color: #444; |
||||
`;
|
@ -0,0 +1,28 @@ |
||||
import { Badge, BlockItem, ItemSubtitle, ItemTitle, ItemWrap } from './style'; |
||||
|
||||
const RowBlock = ({ |
||||
title, |
||||
subtitle, |
||||
url, |
||||
badge, |
||||
openExternal = false, |
||||
disabled = false, |
||||
children = null |
||||
}) => ( |
||||
<ItemWrap className="col-md-6 col-lg-4 col-xl-4"> |
||||
<BlockItem href={ url } disabled={ disabled } target={openExternal ? '_blank' : '_self'}> |
||||
{ !children && ( |
||||
<> |
||||
<ItemTitle> |
||||
{ title } |
||||
{ badge && <Badge>{ badge }</Badge>} |
||||
</ItemTitle> |
||||
<ItemSubtitle>{ subtitle }</ItemSubtitle> |
||||
</> |
||||
) } |
||||
{ children } |
||||
</BlockItem> |
||||
</ItemWrap> |
||||
); |
||||
|
||||
export default RowBlock; |
@ -0,0 +1,62 @@ |
||||
import styled from 'styled-components'; |
||||
|
||||
export const ItemWrap = styled.div` |
||||
padding: 0 10px 20px; |
||||
`;
|
||||
|
||||
export const BlockItem = styled.a` |
||||
height: 114px; |
||||
box-shadow: rgba(0, 0, 0, 0.12) 0 5px 10px; |
||||
transition: box-shadow 0.2s ease 0s; |
||||
align-items: stretch; |
||||
flex: 1; |
||||
display: flex; |
||||
flex-direction: column; |
||||
min-width: 1px; |
||||
max-width: 100%; |
||||
background: white; |
||||
padding: 20px; |
||||
border-radius: 10px; |
||||
justify-content: center; |
||||
text-decoration:none; |
||||
opacity: ${ props => props.disabled ? 0.5 : 1 }; |
||||
|
||||
&:hover { |
||||
text-decoration:none; |
||||
box-shadow: rgba(0, 0, 0, 0.12) 0 30px 60px; |
||||
z-index: 1; |
||||
} |
||||
`;
|
||||
|
||||
export const ItemTitle = styled.h3` |
||||
font-weight: 600; |
||||
font-size: 18px; |
||||
line-height: 24px; |
||||
color: #101010; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: flex-start; |
||||
`;
|
||||
|
||||
export const Badge = styled.span` |
||||
font-size: 10px; |
||||
font-weight: 600; |
||||
background: #696969; |
||||
color: white; |
||||
padding: 0 8px; |
||||
border-radius: 4px; |
||||
text-transform: uppercase; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
margin-left: 10px; |
||||
height: 18px; |
||||
`;
|
||||
|
||||
export const ItemSubtitle = styled.p` |
||||
font-size: 14px; |
||||
color: rgb(102, 102, 102); |
||||
white-space: normal; |
||||
line-height: 1.5; |
||||
margin: 0; |
||||
`;
|
@ -0,0 +1,2 @@ |
||||
## Submitting a Guide |
||||
|
Loading…
Reference in new issue