Skip to content

Commit c8c08eb

Browse files
committed
set up styling for front page hero
1 parent 7227a7b commit c8c08eb

File tree

1 file changed

+93
-1
lines changed

1 file changed

+93
-1
lines changed

packages/gatsby-theme/src/pages/index.tsx

Lines changed: 93 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,104 @@ import * as React from 'react';
33
import Layout from '../components/shared/layout';
44
import Listing from '../components/index/listing';
55
import { GlobalStyles } from '../styles';
6+
import {
7+
Heading,
8+
Box,
9+
Flex,
10+
Text,
11+
Button,
12+
Image,
13+
} from '../components/shared/base';
14+
import { styled } from '../styles';
15+
import { TutorialButton } from '../components/shared/buttons';
16+
import { Space } from '../components/shared/Space';
617

718
const IndexPage: React.FunctionComponent<RouterProps> = ({ location }) => (
819
<Layout location={location}>
920
<GlobalStyles />
10-
<Listing />
21+
<Flex flexDirection="column" alignItems="center">
22+
<Space height={119} />
23+
<MainHero alignItems="center" flexDirection="column">
24+
<Title width={2 / 3}>The Fullstack Tutorial for GraphQL</Title>
25+
<Space height={32} />
26+
<Box width={4 / 7}>
27+
<HeroText textAlign="center">
28+
How to GraphQL is a free tutorial website that teaches all aspects
29+
of GraphQL - from writing your first GraphQL query to taking your
30+
GraphQL server to production.
31+
</HeroText>
32+
</Box>
33+
<Space height={54} />
34+
<TutorialButton>Start with Introduction</TutorialButton>
35+
<Space height={82} />
36+
<Fundamentals width={2 / 3} px={4} pt={4}>
37+
<Flex>
38+
<Box width={1 / 2} mx={4} mt={3}>
39+
<Heading>GraphQL Fundamentals</Heading>
40+
<Image
41+
width={1 / 20}
42+
src="https://image.flaticon.com/icons/svg/84/84510.svg"
43+
/>
44+
<Space height={12} />
45+
<Text>
46+
A general introduction to GraphQL for frontend and backend
47+
developers.
48+
<br /> <br />
49+
Read this tutorial to learn about GraphQL's basic concepts and
50+
prepare yourself for a hands-on beginner tutorial.
51+
</Text>
52+
</Box>
53+
<Box width={1 / 2} px={3} pt={3}>
54+
<Image src="https://i.ibb.co/vHkQHv7/Chapters.png" />
55+
</Box>
56+
</Flex>
57+
</Fundamentals>
58+
</MainHero>
59+
<Box width={2 / 3} backgroundColor="yellow">
60+
<Flex backgroundColor="green">
61+
<CommunityText width={2 / 3}>
62+
<Heading>Community Tutorials</Heading>
63+
Community tutorials are targeting a wide range of topics. Client or
64+
server, beginner or advanced, theoretical or code-along, high-level
65+
or niche – discover the amazing tutorials contributed by the GraphQL
66+
community!
67+
</CommunityText>
68+
<Box backgroundColor="red" width={1 / 3}>
69+
<TutorialButton>View All Tutorials</TutorialButton>
70+
</Box>
71+
</Flex>
72+
<Listing />
73+
</Box>
74+
</Flex>
1175
</Layout>
1276
);
1377

78+
const MainHero = styled(Flex)`
79+
background-image: url('https://i.ibb.co/rmNKQGk/Group-2.png');
80+
background-position: center;
81+
background-size: cover;
82+
`;
83+
84+
const HeroText = styled(Text)`
85+
font-family: Open Sans;
86+
font-size: 24px;
87+
`;
88+
89+
const Fundamentals = styled(Box)`
90+
box-shadow: 0px 4px 27px rgba(14, 15, 59, 0.072);
91+
border-radius: 8px 8px 0px 0px;
92+
background: #ffffff;
93+
`;
94+
95+
const Title = styled(Heading)`
96+
font-size: 64pt;
97+
text-align: center;
98+
color: #515273;
99+
font-weight: bold;
100+
letter-spacing: -0.03em;
101+
`;
102+
103+
const CommunityText = styled(Text)`
104+
margin: 0 auto;
105+
`;
14106
export default IndexPage;

0 commit comments

Comments
 (0)