parent
4459b7d062
commit
55f7d00e83
4 changed files with 198 additions and 34 deletions
@ -0,0 +1,46 @@ |
|||||||
|
import { Box, Heading, Link, Text, Tooltip } from '@chakra-ui/react'; |
||||||
|
import { InfoIcon } from '@chakra-ui/icons'; |
||||||
|
|
||||||
|
type RoadmapGridItemProps = { |
||||||
|
title: string; |
||||||
|
subtitle: string; |
||||||
|
isCommunity?: boolean; |
||||||
|
colorIndex?: number |
||||||
|
}; |
||||||
|
|
||||||
|
const bgColorList = [ |
||||||
|
'blue.900', |
||||||
|
'red.800', |
||||||
|
'green.800', |
||||||
|
'teal.800', |
||||||
|
'gray.800', |
||||||
|
'red.900' |
||||||
|
]; |
||||||
|
|
||||||
|
export function HomeRoadmapItem(props: RoadmapGridItemProps) { |
||||||
|
const { title, subtitle, isCommunity, colorIndex = 0 } = props; |
||||||
|
|
||||||
|
return ( |
||||||
|
<Link |
||||||
|
as={Box} |
||||||
|
href={'#'} |
||||||
|
_hover={{ textDecoration: 'none', transform: 'scale(1.02)' }} |
||||||
|
flex={1} |
||||||
|
shadow='2xl' |
||||||
|
bg={bgColorList[colorIndex] ?? bgColorList[0]} |
||||||
|
color='white' |
||||||
|
p='15px' |
||||||
|
rounded='10px' |
||||||
|
pos='relative' |
||||||
|
> |
||||||
|
{isCommunity && ( |
||||||
|
<Tooltip label={'Community contribution'} hasArrow placement='top'> |
||||||
|
<InfoIcon opacity={0.5} position='absolute' top='10px' right='10px' /> |
||||||
|
</Tooltip> |
||||||
|
)} |
||||||
|
|
||||||
|
<Heading fontSize='22px' mb='5px'>{title}</Heading> |
||||||
|
<Text color='gray.200' fontSize='13px'>{subtitle}</Text> |
||||||
|
</Link> |
||||||
|
); |
||||||
|
} |
@ -1,46 +1,66 @@ |
|||||||
import { Box, Heading, Link, Text, Tooltip } from '@chakra-ui/react'; |
import { Badge, Box, Heading, Link, Text } from '@chakra-ui/react'; |
||||||
import { InfoIcon } from '@chakra-ui/icons'; |
|
||||||
|
|
||||||
type RoadmapGridItemProps = { |
type RoadmapGridItemProps = { |
||||||
title: string; |
title: string; |
||||||
subtitle: string; |
subtitle: string; |
||||||
|
date: string; |
||||||
isCommunity?: boolean; |
isCommunity?: boolean; |
||||||
colorIndex?: number |
colorIndex?: number; |
||||||
}; |
}; |
||||||
|
|
||||||
const bgColorList = [ |
const bgColorList = [ |
||||||
|
'gray.900', |
||||||
|
'purple.900', |
||||||
'blue.900', |
'blue.900', |
||||||
|
'red.900', |
||||||
|
'green.900', |
||||||
|
'teal.900', |
||||||
|
'yellow.900', |
||||||
|
'cyan.900', |
||||||
|
'pink.900', |
||||||
|
|
||||||
|
'gray.800', |
||||||
|
'purple.800', |
||||||
|
'blue.800', |
||||||
'red.800', |
'red.800', |
||||||
'green.800', |
'green.800', |
||||||
'teal.800', |
'teal.800', |
||||||
'gray.800', |
'yellow.800', |
||||||
'red.900' |
'cyan.800', |
||||||
|
'pink.800', |
||||||
|
|
||||||
|
'gray.700', |
||||||
|
'purple.700', |
||||||
|
'blue.700', |
||||||
|
'red.700', |
||||||
|
'green.700', |
||||||
|
'teal.700', |
||||||
|
'yellow.700', |
||||||
|
'cyan.700', |
||||||
|
'pink.700', |
||||||
|
|
||||||
|
'gray.600', |
||||||
|
'purple.600', |
||||||
|
'blue.600', |
||||||
|
'red.600', |
||||||
|
'green.600', |
||||||
|
'teal.600', |
||||||
|
'yellow.600', |
||||||
|
'cyan.600', |
||||||
|
'pink.600' |
||||||
]; |
]; |
||||||
|
|
||||||
export function RoadmapGridItem(props: RoadmapGridItemProps) { |
export function RoadmapGridItem(props: RoadmapGridItemProps) { |
||||||
const { title, subtitle, isCommunity, colorIndex = 0 } = props; |
const { title, subtitle, date, isCommunity = false, colorIndex = 0 } = props; |
||||||
|
|
||||||
return ( |
return ( |
||||||
<Link |
<Link _hover={{ textDecoration: 'none', transform: 'scale(1.02)' }} as={Box} href='#' shadow='xl' p='20px' |
||||||
as={Box} |
rounded='10px' bg={bgColorList[colorIndex] ?? bgColorList[0]} flex={1}> |
||||||
href={'#'} |
<Heading color='white' mb={'6px'} fontSize='20px'>{title}</Heading> |
||||||
_hover={{ textDecoration: 'none', transform: 'scale(1.02)' }} |
<Text color='gray.300' fontSize='14px'>{subtitle}</Text> |
||||||
flex={1} |
{isCommunity && <Text mt='10px' fontSize='13px' color='gray.400'> |
||||||
shadow='2xl' |
<Badge colorScheme={'yellow'} mr='10px'>Community</Badge> |
||||||
bg={bgColorList[colorIndex] ?? bgColorList[0]} |
</Text>} |
||||||
color='white' |
|
||||||
p='15px' |
|
||||||
rounded='10px' |
|
||||||
pos='relative' |
|
||||||
> |
|
||||||
{isCommunity && ( |
|
||||||
<Tooltip label={'Community contribution'} hasArrow placement='top'> |
|
||||||
<InfoIcon opacity={0.5} position='absolute' top='10px' right='10px' /> |
|
||||||
</Tooltip> |
|
||||||
)} |
|
||||||
|
|
||||||
<Heading fontSize='22px' mb='5px'>{title}</Heading> |
|
||||||
<Text color='gray.200' fontSize='13px'>{subtitle}</Text> |
|
||||||
</Link> |
</Link> |
||||||
); |
); |
||||||
} |
} |
||||||
|
@ -1,5 +1,103 @@ |
|||||||
|
import { Box, Container, SimpleGrid } from '@chakra-ui/react'; |
||||||
|
import { Header } from '../../components/header'; |
||||||
|
import { OpensourceBanner } from '../../components/opensource-banner'; |
||||||
|
import { UpdatesBanner } from '../../components/updates-banner'; |
||||||
|
import { Footer } from '../../components/footer'; |
||||||
|
import { PageHeader } from '../../components/page-header'; |
||||||
|
import { HomeRoadmapItem } from './components/home-roadmap-item'; |
||||||
|
import { RoadmapGridItem } from './components/roadmap-grid-item'; |
||||||
|
|
||||||
export default function Roadmaps() { |
export default function Roadmaps() { |
||||||
return ( |
return ( |
||||||
<h1>Hello world</h1> |
<Box bg='white' minH='100vh'> |
||||||
|
<Header /> |
||||||
|
<Box mb='60px'> |
||||||
|
<PageHeader |
||||||
|
title={'Developer Roadmaps'} |
||||||
|
subtitle={'Step by step guides and paths to learn different tools or technologies'} |
||||||
|
/> |
||||||
|
<Container maxW='container.md' position='relative'> |
||||||
|
<SimpleGrid columns={{ md: 2 }} mb='30px' spacing='15px'> |
||||||
|
<RoadmapGridItem |
||||||
|
colorIndex={0} title={'Frontend'} |
||||||
|
subtitle={'Step by step guide to becoming a frontend developer in 2021'} |
||||||
|
date={'June 12, 2021'} |
||||||
|
/> |
||||||
|
<RoadmapGridItem |
||||||
|
colorIndex={1} |
||||||
|
title={'Backend'} |
||||||
|
subtitle={'Step by step guide to becoming a backend developer in 2021'} |
||||||
|
date='June 15, 2021' |
||||||
|
/> |
||||||
|
|
||||||
|
<RoadmapGridItem |
||||||
|
date={'August 25, 2021'} |
||||||
|
colorIndex={2} |
||||||
|
title={'DevOps'} |
||||||
|
subtitle={'Step by step guide for DevOps or Operations role in 2021'} |
||||||
|
/> |
||||||
|
|
||||||
|
<RoadmapGridItem |
||||||
|
date={'August 25, 2021'} |
||||||
|
colorIndex={3} |
||||||
|
title={'React'} |
||||||
|
subtitle={'Step by step guide to become a React Developer in 2021'} |
||||||
|
/> |
||||||
|
<RoadmapGridItem |
||||||
|
date={'August 25, 2021'} |
||||||
|
colorIndex={4} |
||||||
|
title={'DBA'} |
||||||
|
subtitle={'Step by step guide to becoming a PostgreSQL Database Administrator in 2021'} |
||||||
|
/> |
||||||
|
<RoadmapGridItem |
||||||
|
date={'August 25, 2021'} |
||||||
|
colorIndex={5} |
||||||
|
title={'Android'} |
||||||
|
subtitle={'Step by step guide to become an Android Developer in 2021'} |
||||||
|
/> |
||||||
|
<RoadmapGridItem |
||||||
|
date={'August 25, 2021'} |
||||||
|
colorIndex={6} |
||||||
|
title={'QA Engineer'} |
||||||
|
subtitle={'Step by step guide to become a Quality Assurance Engineer in 2021'} |
||||||
|
/> |
||||||
|
<RoadmapGridItem |
||||||
|
date={'August 25, 2021'} |
||||||
|
colorIndex={7} |
||||||
|
title={'AI Engineer'} |
||||||
|
subtitle={'Step by step guide to become a Quality Assurance Engineer in 2021'} |
||||||
|
/> |
||||||
|
<RoadmapGridItem |
||||||
|
date={'August 25, 2021'} |
||||||
|
colorIndex={8} |
||||||
|
title={'iOS Engineer'} |
||||||
|
subtitle={'Step by step guide to become a Quality Assurance Engineer in 2021'} |
||||||
|
/> |
||||||
|
<RoadmapGridItem |
||||||
|
date={'August 25, 2021'} |
||||||
|
colorIndex={9} |
||||||
|
title={'Golang'} |
||||||
|
subtitle={'Step by step guide to become a Quality Assurance Engineer in 2021'} |
||||||
|
/> |
||||||
|
<RoadmapGridItem |
||||||
|
date={'August 25, 2021'} |
||||||
|
colorIndex={10} |
||||||
|
title={'Java'} |
||||||
|
subtitle={'Step by step guide to become a Quality Assurance Engineer in 2021'} |
||||||
|
/> |
||||||
|
<RoadmapGridItem |
||||||
|
date={'August 25, 2021'} |
||||||
|
colorIndex={10} |
||||||
|
title={'Angular'} |
||||||
|
subtitle={'Step by step guide to become a Quality Assurance Engineer in 2021'} |
||||||
|
/> |
||||||
|
</SimpleGrid> |
||||||
|
</Container> |
||||||
|
</Box> |
||||||
|
|
||||||
|
<OpensourceBanner /> |
||||||
|
<UpdatesBanner /> |
||||||
|
<Footer /> |
||||||
|
</Box> |
||||||
); |
); |
||||||
} |
} |
||||||
|
Loading…
Reference in new issue