@t2ca/gatsby-theme-showcase 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/gatsby-config.js +6 -0
- package/index.js +2 -0
- package/package.json +1 -1
- package/src/components/hero.js +18 -29
- package/src/components/logo-banner.js +127 -0
- package/src/components/nav-link.js +2 -2
- package/src/components/project.js +5 -2
- package/src/components/wave.js +40 -0
- package/src/gatsby-plugin-theme-ui/colors.js +0 -2
- package/src/templates/project.js +5 -1
package/gatsby-config.js
CHANGED
|
@@ -13,6 +13,12 @@ module.exports = ({ contentPath = "data", basePath = "/" }) => ({
|
|
|
13
13
|
path: contentPath,
|
|
14
14
|
},
|
|
15
15
|
},
|
|
16
|
+
{
|
|
17
|
+
resolve: `gatsby-source-filesystem`,
|
|
18
|
+
options: {
|
|
19
|
+
path: "./src/assets",
|
|
20
|
+
},
|
|
21
|
+
},
|
|
16
22
|
`gatsby-plugin-sharp`,
|
|
17
23
|
`gatsby-transformer-sharp`,
|
|
18
24
|
{
|
package/index.js
CHANGED
|
@@ -3,3 +3,5 @@ export { default as Layout } from "./src/components/layout"
|
|
|
3
3
|
export { default as Alert } from "./src/components/alert"
|
|
4
4
|
export { default as Card } from "./src/components/card"
|
|
5
5
|
export { default as Button } from "./src/components/button"
|
|
6
|
+
export { default as LogoBanner } from "./src/components/logo-banner"
|
|
7
|
+
export { default as Wave } from "./src/components/wave"
|
package/package.json
CHANGED
package/src/components/hero.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import React from "react"
|
|
3
3
|
import { jsx, Styled, Container } from "theme-ui"
|
|
4
4
|
import { useSpring, animated } from "react-spring"
|
|
5
|
+
import Wave from "./wave"
|
|
5
6
|
|
|
6
7
|
export default props => {
|
|
7
8
|
const titleProps = useSpring({
|
|
@@ -13,49 +14,37 @@ export default props => {
|
|
|
13
14
|
<React.Fragment>
|
|
14
15
|
<div
|
|
15
16
|
sx={{
|
|
16
|
-
|
|
17
|
+
pt: 6,
|
|
17
18
|
px: [4, 5],
|
|
18
19
|
position: "relative",
|
|
19
20
|
bg: `MainHero`,
|
|
20
|
-
minHeight: `
|
|
21
|
+
minHeight: `75vh`, // screenHeight
|
|
21
22
|
}}
|
|
22
23
|
>
|
|
23
24
|
<Container>
|
|
24
25
|
<animated.div style={titleProps}>
|
|
25
|
-
<Styled.h1 sx={{ fontSize: [6, 7] }}>
|
|
26
|
-
|
|
26
|
+
<Styled.h1 sx={{ fontSize: [6, 7], fontWeight: `extrabold` }}>
|
|
27
|
+
{props.headingTop}
|
|
28
|
+
</Styled.h1>
|
|
29
|
+
<Styled.h1 sx={{ fontSize: [6, 7], fontWeight: `extrabold` }}>
|
|
27
30
|
{props.headingMiddle}
|
|
28
31
|
</Styled.h1>
|
|
29
|
-
<Styled.h1 sx={{ fontSize: [6, 7] }}>
|
|
32
|
+
<Styled.h1 sx={{ fontSize: [6, 7], fontWeight: `extrabold` }}>
|
|
30
33
|
{props.headingBottom}
|
|
31
34
|
</Styled.h1>
|
|
35
|
+
<div sx={{ width: [`5/6`, `2/3`] }}>
|
|
36
|
+
<Styled.p sx={{ fontSize: [1, 2], py: 4, lineHeight: 2.5 }}>
|
|
37
|
+
Partnering with us is a journey and not just a single
|
|
38
|
+
transaction. While working together we will help you navigate
|
|
39
|
+
the dynamic digital landscape and help you get ahead of your
|
|
40
|
+
competitors.
|
|
41
|
+
</Styled.p>
|
|
42
|
+
</div>
|
|
32
43
|
</animated.div>
|
|
33
44
|
</Container>
|
|
34
45
|
</div>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
sx={{ fill: "Menu" }}
|
|
38
|
-
d="M0,96L40,112C80,128,160,160,240,170.7C320,181,400,171,480,160C560,149,640,139,720,112C800,85,880,43,960,37.3C1040,32,1120,64,1200,96C1280,128,1360,160,1400,176L1440,192L1440,0L1400,0C1360,0,1280,0,1200,0C1120,0,1040,0,960,0C880,0,800,0,720,0C640,0,560,0,480,0C400,0,320,0,240,0C160,0,80,0,40,0L0,0Z"
|
|
39
|
-
></path>
|
|
40
|
-
<g transform="translate(0.000000, 44.000000)">
|
|
41
|
-
<path
|
|
42
|
-
sx={{ fill: "waveX" }}
|
|
43
|
-
d="M0,0 C90.7283404,0.927527913 147.912752,27.187927 291.910178,59.9119003 C387.908462,81.7278826 543.605069,89.334785 759,82.7326078 C469.336065,156.254352 216.336065,153.6679 0,74.9732496"
|
|
44
|
-
opacity="0.100000001"
|
|
45
|
-
></path>
|
|
46
|
-
<path
|
|
47
|
-
sx={{ fill: "waveY" }}
|
|
48
|
-
d="M100,104.708498 C277.413333,72.2345949 426.147877,52.5246657 546.203633,45.5787101 C666.259389,38.6327546 810.524845,41.7979068 979,55.0741668 C931.069965,56.122511 810.303266,74.8455141 616.699903,111.243176 C423.096539,147.640838 250.863238,145.462612 100,104.708498 Z"
|
|
49
|
-
opacity="0.100000001"
|
|
50
|
-
></path>
|
|
51
|
-
<path
|
|
52
|
-
sx={{ fill: "waveZ" }}
|
|
53
|
-
d="M920,51.6521276 C1130.83045,29.328812 1279.08318,17.607883 1439,40.1656806 L1439,120 C1271.17211,77.9435312 1140.17211,55.1609071 1046,51.6521276 Z"
|
|
54
|
-
id="Path-4"
|
|
55
|
-
opacity="0.200000003"
|
|
56
|
-
></path>
|
|
57
|
-
</g>
|
|
58
|
-
</svg>
|
|
46
|
+
|
|
47
|
+
<Wave background="Menu" />
|
|
59
48
|
</React.Fragment>
|
|
60
49
|
)
|
|
61
50
|
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import React from "react"
|
|
3
|
+
import { useStaticQuery, graphql } from "gatsby"
|
|
4
|
+
import { jsx } from "theme-ui"
|
|
5
|
+
import Img from "gatsby-image"
|
|
6
|
+
import styled from "@emotion/styled"
|
|
7
|
+
|
|
8
|
+
// import { colors, space, mediaQueries } from "../../utils/presets"
|
|
9
|
+
// import { Name } from "./homepage-section"
|
|
10
|
+
|
|
11
|
+
// const Section = styled(`section`)`
|
|
12
|
+
// overflow: hidden;
|
|
13
|
+
// padding: ${space[5]} 0;
|
|
14
|
+
// width: 100%;
|
|
15
|
+
// border-bottom: 1px solid ${colors.ui.border.subtle};
|
|
16
|
+
|
|
17
|
+
// ${mediaQueries.xl} {
|
|
18
|
+
// margin: -1px 0;
|
|
19
|
+
// padding: ${space[5]} 0;
|
|
20
|
+
// }
|
|
21
|
+
|
|
22
|
+
// ${mediaQueries.xxl} {
|
|
23
|
+
// padding: ${space[7]} 0;
|
|
24
|
+
// }
|
|
25
|
+
// `
|
|
26
|
+
|
|
27
|
+
// const Title = styled(`header`)`
|
|
28
|
+
// padding-right: ${space[6]};
|
|
29
|
+
// padding-left: ${space[6]};
|
|
30
|
+
// ${mediaQueries.md} {
|
|
31
|
+
// max-width: 30rem;
|
|
32
|
+
// }
|
|
33
|
+
|
|
34
|
+
// ${mediaQueries.lg} {
|
|
35
|
+
// margin-left: ${space[9]};
|
|
36
|
+
// }
|
|
37
|
+
|
|
38
|
+
// ${mediaQueries.xl} {
|
|
39
|
+
// padding-right: 5%;
|
|
40
|
+
// padding-left: 5%;
|
|
41
|
+
// }
|
|
42
|
+
|
|
43
|
+
// ${mediaQueries.xxl} {
|
|
44
|
+
// padding-right: 8%;
|
|
45
|
+
// padding-left: 8%;
|
|
46
|
+
// }
|
|
47
|
+
// `
|
|
48
|
+
|
|
49
|
+
// const LogoGroup = styled(`div`)`
|
|
50
|
+
// position: relative;
|
|
51
|
+
// display: grid;
|
|
52
|
+
// grid-auto-flow: column;
|
|
53
|
+
// grid-auto-columns: auto;
|
|
54
|
+
// grid-gap: 16;
|
|
55
|
+
// align-items: center;
|
|
56
|
+
// overflow-x: scroll;
|
|
57
|
+
// padding-left: 3;
|
|
58
|
+
// padding-bottom: 1;
|
|
59
|
+
|
|
60
|
+
// &::-webkit-scrollbar {
|
|
61
|
+
// display: none;
|
|
62
|
+
// }
|
|
63
|
+
// `
|
|
64
|
+
|
|
65
|
+
const LogoBanner = () => {
|
|
66
|
+
const data = useStaticQuery(graphql`
|
|
67
|
+
query {
|
|
68
|
+
allFile(
|
|
69
|
+
filter: {
|
|
70
|
+
extension: { regex: "/(jpg)|(png)|(jpeg)/" }
|
|
71
|
+
relativeDirectory: { eq: "tech-logos" }
|
|
72
|
+
}
|
|
73
|
+
sort: { fields: publicURL }
|
|
74
|
+
) {
|
|
75
|
+
edges {
|
|
76
|
+
node {
|
|
77
|
+
base
|
|
78
|
+
childImageSharp {
|
|
79
|
+
fixed(quality: 75, height: 42, grayscale: true) {
|
|
80
|
+
...GatsbyImageSharpFixed_tracedSVG
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
`)
|
|
88
|
+
|
|
89
|
+
return (
|
|
90
|
+
<section
|
|
91
|
+
sx={{
|
|
92
|
+
overflow: ` hidden`,
|
|
93
|
+
padding: 3,
|
|
94
|
+
width: `100%`,
|
|
95
|
+
borderBottom: `1px solid transparent`,
|
|
96
|
+
bg: `gray.1`,
|
|
97
|
+
}}
|
|
98
|
+
>
|
|
99
|
+
<div>{/*<div>Technologies we use</div>*/}</div>
|
|
100
|
+
<div
|
|
101
|
+
sx={{
|
|
102
|
+
position: "relative",
|
|
103
|
+
display: "grid",
|
|
104
|
+
gridAutoFlow: "column",
|
|
105
|
+
gridAutoColumns: "auto",
|
|
106
|
+
gridGap: 4,
|
|
107
|
+
alignItems: "center",
|
|
108
|
+
overflowX: "scroll",
|
|
109
|
+
paddingRight: 5,
|
|
110
|
+
paddingBottom: 1,
|
|
111
|
+
"&::-webkit-scrollbar": { display: "none" },
|
|
112
|
+
}}
|
|
113
|
+
>
|
|
114
|
+
{data.allFile.edges.map(({ node: image }) => (
|
|
115
|
+
<Img
|
|
116
|
+
alt={`${image.base.split(`.`)[0]}`}
|
|
117
|
+
fixed={image.childImageSharp.fixed}
|
|
118
|
+
key={image.base}
|
|
119
|
+
style={{ opacity: 0.5 }}
|
|
120
|
+
/>
|
|
121
|
+
))}
|
|
122
|
+
</div>
|
|
123
|
+
</section>
|
|
124
|
+
)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export default LogoBanner
|
|
@@ -9,10 +9,10 @@ const styles = {
|
|
|
9
9
|
px: 0,
|
|
10
10
|
py: 0,
|
|
11
11
|
color: "primary",
|
|
12
|
-
margin:
|
|
12
|
+
margin: 3,
|
|
13
13
|
textDecoration: "none",
|
|
14
14
|
borderBottom: `2px solid transparent`,
|
|
15
|
-
lineHeight:
|
|
15
|
+
lineHeight: 2,
|
|
16
16
|
transition: `all .5s ease-in;`,
|
|
17
17
|
"&.active": {
|
|
18
18
|
borderBottom: `1px solid transparent`,
|
|
@@ -5,6 +5,7 @@ import { Link } from "gatsby"
|
|
|
5
5
|
import Img from "gatsby-image"
|
|
6
6
|
import { useSpring, animated } from "react-spring"
|
|
7
7
|
import { FaArrowLeft } from "react-icons/fa"
|
|
8
|
+
import Wave from "./wave"
|
|
8
9
|
|
|
9
10
|
const Project = data => {
|
|
10
11
|
const Image = animated(Img)
|
|
@@ -20,7 +21,7 @@ const Project = data => {
|
|
|
20
21
|
})
|
|
21
22
|
|
|
22
23
|
return (
|
|
23
|
-
<
|
|
24
|
+
<React.Fragment>
|
|
24
25
|
<Container sx={{ px: [0, 4], py: 0 }}>
|
|
25
26
|
<div
|
|
26
27
|
sx={{
|
|
@@ -52,7 +53,9 @@ const Project = data => {
|
|
|
52
53
|
/>
|
|
53
54
|
</div>
|
|
54
55
|
</Container>
|
|
55
|
-
|
|
56
|
+
|
|
57
|
+
<Wave background="cBg" />
|
|
58
|
+
</React.Fragment>
|
|
56
59
|
)
|
|
57
60
|
}
|
|
58
61
|
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import React from "react"
|
|
3
|
+
import { jsx } from "theme-ui"
|
|
4
|
+
|
|
5
|
+
const Wave = ({ background = "mBg" }) => {
|
|
6
|
+
return (
|
|
7
|
+
<div sx={{ bg: `mBg` }}>
|
|
8
|
+
<svg
|
|
9
|
+
sx={{ bg: "mBg" }}
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
viewBox="0 0 1440 200"
|
|
12
|
+
>
|
|
13
|
+
<path
|
|
14
|
+
sx={{ fill: background }}
|
|
15
|
+
d="M0,96L40,112C80,128,160,160,240,170.7C320,181,400,171,480,160C560,149,640,139,720,112C800,85,880,43,960,37.3C1040,32,1120,64,1200,96C1280,128,1360,160,1400,176L1440,192L1440,0L1400,0C1360,0,1280,0,1200,0C1120,0,1040,0,960,0C880,0,800,0,720,0C640,0,560,0,480,0C400,0,320,0,240,0C160,0,80,0,40,0L0,0Z"
|
|
16
|
+
></path>
|
|
17
|
+
<g transform="translate(0.000000, 44.000000)">
|
|
18
|
+
<path
|
|
19
|
+
sx={{ fill: "waveX" }}
|
|
20
|
+
d="M0,0 C90.7283404,0.927527913 147.912752,27.187927 291.910178,59.9119003 C387.908462,81.7278826 543.605069,89.334785 759,82.7326078 C469.336065,156.254352 216.336065,153.6679 0,74.9732496"
|
|
21
|
+
opacity="0.100000001"
|
|
22
|
+
></path>
|
|
23
|
+
<path
|
|
24
|
+
sx={{ fill: "waveY" }}
|
|
25
|
+
d="M100,104.708498 C277.413333,72.2345949 426.147877,52.5246657 546.203633,45.5787101 C666.259389,38.6327546 810.524845,41.7979068 979,55.0741668 C931.069965,56.122511 810.303266,74.8455141 616.699903,111.243176 C423.096539,147.640838 250.863238,145.462612 100,104.708498 Z"
|
|
26
|
+
opacity="0.100000001"
|
|
27
|
+
></path>
|
|
28
|
+
<path
|
|
29
|
+
sx={{ fill: "waveZ" }}
|
|
30
|
+
d="M920,51.6521276 C1130.83045,29.328812 1279.08318,17.607883 1439,40.1656806 L1439,120 C1271.17211,77.9435312 1140.17211,55.1609071 1046,51.6521276 Z"
|
|
31
|
+
id="Path-4"
|
|
32
|
+
opacity="0.200000003"
|
|
33
|
+
></path>
|
|
34
|
+
</g>
|
|
35
|
+
</svg>
|
|
36
|
+
</div>
|
|
37
|
+
)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export default Wave
|
package/src/templates/project.js
CHANGED
|
@@ -9,7 +9,11 @@ const ProjectTemplates = ({ data: { projectYaml }, location }) => {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
return (
|
|
12
|
-
<Layout
|
|
12
|
+
<Layout
|
|
13
|
+
main={{ ...styles, borderBottom: `inherit` }}
|
|
14
|
+
header={styles}
|
|
15
|
+
location={location}
|
|
16
|
+
>
|
|
13
17
|
<Project {...projectYaml} />
|
|
14
18
|
</Layout>
|
|
15
19
|
)
|