Skip to content

Commit 3aba747

Browse files
committed
Initial structure
1 parent 2b418cb commit 3aba747

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1662
-811
lines changed

.editorconfig

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
root = true
2+
3+
[*]
4+
indent_style = space
5+
indent_size = 2
6+
charset = utf-8
7+
trim_trailing_whitespace = true
8+
insert_final_newline = true

gatsby-config.js

+24-10
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module.exports = {
22
siteMetadata: {
3-
title: `Gatsby Default Starter`,
4-
description: `Kick off your next, great Gatsby project with this default starter. This barebones starter ships with the main Gatsby configuration files you might need.`,
5-
author: `@gatsbyjs`,
3+
title: `Python Pizza`,
4+
description: `AAA`,
5+
author: `@pythonpizzaconf`,
66
},
77
plugins: [
88
`gatsby-plugin-react-helmet`,
@@ -18,17 +18,31 @@ module.exports = {
1818
{
1919
resolve: `gatsby-plugin-manifest`,
2020
options: {
21-
name: `gatsby-starter-default`,
22-
short_name: `starter`,
23-
start_url: `/`,
24-
background_color: `#663399`,
25-
theme_color: `#663399`,
21+
name: `python.pizza`,
22+
short_name: `python.pizza`,
23+
start_url: `/?homepage=1`,
24+
background_color: `#fff`,
25+
theme_color: `#ed4337`,
2626
display: `minimal-ui`,
27-
icon: `src/images/gatsby-icon.png`, // This path is relative to the root of the site.
27+
icon: `src/images/favicon.png`, // This path is relative to the root of the site.
2828
},
2929
},
30+
{
31+
resolve: 'gatsby-plugin-favicon',
32+
options: {
33+
logo: './src/images/favicon.png',
34+
},
35+
},
36+
`gatsby-transformer-yaml`,
37+
{
38+
resolve: `gatsby-source-filesystem`,
39+
options: {
40+
path: `./src/data/`,
41+
},
42+
},
43+
'gatsby-plugin-postcss',
3044
// this (optional) plugin enables Progressive Web App + Offline functionality
3145
// To learn more, visit: https://gatsby.dev/offline
3246
// `gatsby-plugin-offline`,
3347
],
34-
}
48+
};

package.json

+6
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,20 @@
55
"version": "0.1.0",
66
"author": "Kyle Mathews <[email protected]>",
77
"dependencies": {
8+
"classnames": "^2.2.6",
89
"gatsby": "^2.5.5",
910
"gatsby-image": "^2.1.0",
11+
"gatsby-plugin-favicon": "^3.1.6",
1012
"gatsby-plugin-manifest": "^2.1.1",
1113
"gatsby-plugin-offline": "^2.1.1",
14+
"gatsby-plugin-postcss": "^2.0.7",
1215
"gatsby-plugin-react-helmet": "^3.0.12",
1316
"gatsby-plugin-sharp": "^2.0.37",
1417
"gatsby-source-filesystem": "^2.0.36",
1518
"gatsby-transformer-sharp": "^2.1.19",
19+
"gatsby-transformer-yaml": "^2.1.12",
20+
"postcss-custom-media": "^7.0.8",
21+
"postcss-nested": "^4.1.2",
1622
"prop-types": "^15.7.2",
1723
"react": "^16.8.6",
1824
"react-dom": "^16.8.6",

postcss.config.js

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
module.exports = {
2+
plugins: {
3+
'postcss-nested': {},
4+
'postcss-custom-media': {
5+
importFrom: './src/components/layout/breakpoints.css',
6+
},
7+
},
8+
};

src/components/container/index.css

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
.Container {
2+
margin: 0 auto;
3+
padding: 0 3rem;
4+
max-width: var(--container-size);
5+
6+
&--small {
7+
--container-size: 72rem;
8+
}
9+
10+
&--medium {
11+
--container-size: 96rem;
12+
}
13+
14+
&--large {
15+
--container-size: 120rem;
16+
}
17+
18+
h1 {
19+
text-align: center;
20+
}
21+
}

src/components/container/index.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import React from 'react';
2+
import classnames from 'classnames';
3+
4+
import './index.css';
5+
6+
export default props => {
7+
const { size, children, className } = props;
8+
9+
return (
10+
<div className={classnames('Container', `Container--${size}`, className)}>
11+
{children}
12+
</div>
13+
);
14+
};
+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
.EventsSlider {
2+
&--wrapper {
3+
width: 100%;
4+
margin: auto;
5+
z-index: 10;
6+
}
7+
8+
display: flex;
9+
overflow: hidden;
10+
11+
&--item {
12+
flex: 0 0 33.3333%;
13+
14+
text-align: center;
15+
font-family: var(--font-name--heading);
16+
font-weight: bold;
17+
color: var(--white);
18+
opacity: 0.3;
19+
cursor: pointer;
20+
21+
&.active {
22+
opacity: 1;
23+
}
24+
}
25+
26+
&--description {
27+
margin-top: 5rem;
28+
text-align: center;
29+
30+
li,
31+
a {
32+
color: var(--white);
33+
}
34+
}
35+
}

src/components/events-slider/index.js

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import React from 'react';
2+
import { useStaticQuery, graphql } from 'gatsby';
3+
4+
import './index.css';
5+
6+
export default props => {
7+
const {
8+
allFutureEventsYaml: { edges: events },
9+
} = useStaticQuery(graphql`
10+
{
11+
allFutureEventsYaml {
12+
edges {
13+
node {
14+
city
15+
where
16+
}
17+
}
18+
}
19+
}
20+
`);
21+
console.log('allFutureEventsYaml:', events);
22+
return (
23+
<div className="EventsSlider--wrapper">
24+
<ul className="EventsSlider">
25+
{events.map(({ node: event }, i) => {
26+
return (
27+
<li key={i} className="EventsSlider--item">
28+
{event.city}
29+
</li>
30+
);
31+
})}
32+
</ul>
33+
<div className="EventsSlider--description">
34+
<ul>
35+
<li>
36+
<strong>Where?</strong>
37+
SinnerSchrader
38+
</li>
39+
<li>
40+
<strong>When?</strong>
41+
20 December 2018
42+
</li>
43+
<li>
44+
<a href="/">Find out more here!</a>
45+
</li>
46+
</ul>
47+
</div>
48+
</div>
49+
);
50+
};

src/components/footer/index.css

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
.footer {
2+
background: var(--primary-color);
3+
4+
.wave {
5+
transform: scale(-1);
6+
}
7+
8+
&--socials {
9+
display: flex;
10+
align-items: center;
11+
justify-content: center;
12+
padding: 6rem 0;
13+
14+
a {
15+
display: inline-block;
16+
17+
width: 3.2rem;
18+
height: 3.2rem;
19+
margin: 0 1rem;
20+
21+
transition: transform 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
22+
cursor: pointer;
23+
24+
img {
25+
width: 100%;
26+
height: 100%;
27+
}
28+
29+
&:hover {
30+
perspective: 24rem;
31+
32+
transform: scale(1.1);
33+
img {
34+
animation: lollipop 1.6s linear infinite alternate both;
35+
}
36+
}
37+
}
38+
}
39+
}
40+
41+
@keyframes lollipop {
42+
0% {
43+
transform: rotateX(0) rotateY(0) rotateZ(0);
44+
}
45+
25% {
46+
transform: rotateX(15deg) rotateY(0) rotateZ(5deg);
47+
}
48+
50% {
49+
transform: rotateX(-15deg) rotateY(15deg) rotateZ(-5deg);
50+
}
51+
75% {
52+
transform: rotateX(15deg) rotateY(-15deg) rotateZ(-5deg);
53+
}
54+
100% {
55+
transform: rotateX(0deg) rotateY(0deg) rotateZ(5deg);
56+
}
57+
}

src/components/footer/index.js

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import React from 'react';
2+
3+
import Wave from '../wave';
4+
import Container from '../container';
5+
6+
import './index.css';
7+
8+
const SOCIALS = [
9+
{
10+
name: 'facebook',
11+
icon: require('../../images/socials/facebook.png'),
12+
link: 'https://www.facebook.com/pythonpizza/',
13+
},
14+
{
15+
name: 'twitter',
16+
icon: require('../../images/socials/twitter.png'),
17+
link: 'https://twitter.com/pythonpizzaconf/',
18+
},
19+
{
20+
name: 'instagram',
21+
icon: require('../../images/socials/instagram.png'),
22+
link: 'https://www.instagram.com/python.pizza/',
23+
},
24+
{
25+
name: 'youtube',
26+
icon: require('../../images/socials/youtube.png'),
27+
link: 'https://www.youtube.com/channel/UCdtynhT6G97JwdDPsiKbx8Q/',
28+
},
29+
];
30+
31+
export default props => {
32+
return (
33+
<footer className="footer">
34+
<Wave />
35+
36+
<Container size="large">
37+
<div className="footer--socials">
38+
{SOCIALS.map(social => (
39+
<a
40+
key={social.name}
41+
id={social.name}
42+
href={social.link}
43+
target="_blank"
44+
rel="noopener noreferrer"
45+
>
46+
<img alt={social.name} src={social.icon} />
47+
</a>
48+
))}
49+
</div>
50+
</Container>
51+
</footer>
52+
);
53+
};

src/components/header.js

-42
This file was deleted.

0 commit comments

Comments
 (0)