diff --git a/package-lock.json b/package-lock.json
index a60e5a0..df25545 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3418,6 +3418,11 @@
}
}
},
+ "body-scroll-lock": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz",
+ "integrity": "sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg=="
+ },
"bonjour": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
diff --git a/src/components/footer/footer-styles.js b/src/components/footer/footer-styles.js
index 80486e4..5549b6a 100644
--- a/src/components/footer/footer-styles.js
+++ b/src/components/footer/footer-styles.js
@@ -227,10 +227,11 @@ export const SockDescription = styled.div`
}
`
-export const SockCTA = styled.a`
+export const SockCTA = styled.button`
font-size: 16px;
padding-right: 60px;
padding-left: 60px;
+ border: none;
padding-top: 16px;
padding-bottom: 16px;
background-color: ${colors.seafoam900};
diff --git a/src/components/footer/footer.js b/src/components/footer/footer.js
index 4814665..d5ea1cf 100644
--- a/src/components/footer/footer.js
+++ b/src/components/footer/footer.js
@@ -64,16 +64,24 @@ export default function footer({ data }) {
-
+
-
-
- {data.prismicFooter.data.sock_description}
-
+
+ {data.prismicFooter.data.sock_description}
+
-
- Sign Up
-
+
+ Sign Up
+
+
@@ -85,7 +93,7 @@ export default function footer({ data }) {
{data.prismicFooter.data.powerhouse_title}
- {data.prismicFooter.data.address}{" "}
+ {data.prismicFooter.data.address}
@@ -93,13 +101,13 @@ export default function footer({ data }) {
@@ -107,13 +115,13 @@ export default function footer({ data }) {
diff --git a/src/components/header/header-styles.js b/src/components/header/header-styles.js
index 1f25c03..2034a4c 100644
--- a/src/components/header/header-styles.js
+++ b/src/components/header/header-styles.js
@@ -1,24 +1,37 @@
import styled from "styled-components"
import dimensions from "../../style/dimensions"
import colors from "../../style/colors"
+import { Link } from "gatsby"
export const NavContainer = styled.div`
- z-index: 1;
- padding-bottom: 32px;
+ z-index: 2;
&.colorChange {
- background-color: rgb(0, 0, 0, 0.55);
+ background-color: ${colors.blue900};
color: ${colors.white900};
-
}
position: fixed;
width: 100%;
transition: 0.5s all ease;
+
+ color: ${colors.white900};
+
+ svg {
+ cursor: pointer;
+ }
+`
+export const LogoLink = styled.a`
color: ${colors.black900};
+ text-decoration: none;
&.home-header {
color: ${colors.white900};
}
+
+ img {
+ width: 186px;
+ margin-bottom: 32px;
+ }
`
export const Logo = styled.div`
@@ -26,7 +39,6 @@ export const Logo = styled.div`
font-size: 24px;
padding-top: 32px;
padding-left: 80px;
- color: ${colors.black900};
@media (max-width: ${dimensions.maxwidthTablet}px) {
text-align: center;
@@ -35,8 +47,16 @@ export const Logo = styled.div`
padding-left: 0px;
}
+ &.colorChange {
+ a {
+ color: ${colors.white900};
+ }
+ }
+
&.home-header {
- color: ${colors.white900};
+ a {
+ color: ${colors.white900} !important;
+ }
}
`
@@ -58,18 +78,20 @@ export const NavLinks = styled.div`
}
`
-export const NavLink = styled.a`
+export const NavLink = styled(Link)`
font-weight: bold;
padding-left: 100px;
text-decoration: none;
+ &.colorChange {
+ color: ${colors.white900};
+ }
color: ${colors.black900};
&.home-header {
color: ${colors.white900};
}
-
`
export const MobileIcon = styled.div`
@@ -83,3 +105,51 @@ export const MobileIcon = styled.div`
position: absolute;
}
`
+
+export const OpenNavContainer = styled.div`
+ display: none;
+
+ &.open {
+ position: absolute;
+ top: 0;
+ z-index: 4;
+ width: 100%;
+ height: 100vh;
+ background-color: ${colors.blue900};
+ display: inherit;
+ }
+`
+
+export const CloseButton = styled.div`
+ position: absolute;
+ top: 17px;
+ right: 24px;
+`
+
+export const MobileLink = styled.li`
+ margin-bottom: 14.5vh;
+ display: flex;
+ z-index: 5;
+ position: relative;
+
+ a {
+ color: ${colors.white900};
+ font-size: 24px;
+ text-decoration: none;
+ margin-left: 36px;
+ }
+`
+
+export const MobileLinks = styled.ul`
+ margin-top: 8vh;
+ list-style: none;
+`
+export const NodeLine = styled.div`
+ width: 4px;
+ height: 80vh;
+ position: absolute;
+ top: 8vh;
+ left: 55px;
+ z-index: 3;
+ background-color: ${colors.grass900};
+`
diff --git a/src/components/header/header.jsx b/src/components/header/header.jsx
index d8f2a97..0a0f8f2 100644
--- a/src/components/header/header.jsx
+++ b/src/components/header/header.jsx
@@ -1,50 +1,132 @@
-import React, { useState } from "react"
+import React, { useState, useEffect } from "react"
import Hamburger from "../../vectors/hamburger.svg"
+import CloseIcon from "../../vectors/CloseIcon.svg"
+import { Link } from "gatsby"
+
import {
NavContainer,
Logo,
MobileIcon,
NavLinks,
NavLink,
+ OpenNavContainer,
+ CloseButton,
+ MobileLink,
+ MobileLinks,
+ NodeLine,
+ LogoLink,
} from "./header-styles"
-
+import Circle from "../../vectors/circle.svg"
import { NavText } from "../../style/type-styles"
+import { createGlobalStyle } from "styled-components"
+import LogoHomepage from "../../images/navlogohomepage.png"
+import NavLogo from "../../images/navlogo.png"
+
+const GlobalStyle = createGlobalStyle`
+ body {
+ overflow: ${props => (props.open == "open" ? "hidden" : "visible")};;
+ }
+`
export const Header = ({ home }) => {
const [open, setOpen] = useState(false)
const [colorChange, setColorchange] = useState(false)
+ const [logoImage, setLogoImage] = useState()
const changeNavbarColor = () => {
if (typeof window !== "undefined" && window.scrollY >= 80) {
setColorchange(true)
+ setLogoImage(LogoHomepage)
} else {
setColorchange(false)
+ !home && setLogoImage(NavLogo)
}
}
+
+ useEffect(() => {
+ home ? setLogoImage(LogoHomepage) : setLogoImage(NavLogo)
+ }, [setLogoImage])
+
typeof window !== "undefined" &&
window.addEventListener("scroll", changeNavbarColor)
- return (
-
- PowerHouse
+ return (
+
+
+
+
+
+
+
+
+
setOpen(!open)} className={open ? "open" : ""}>
+
+
+ setOpen(!open)}
+ className={open ? "open" : ""}
+ >
+
+
+
+
+
+
+
+
+ PowerHouse
+
+
+
+
+ About
+
+
+
+
+ Process
+
+
+
+
+ Products
+
+
+
+
+ Solutions
+
+
+
+
-
+
ABOUT
-
+
PROCESS
-
+
PRODUCTS
-
+
SOLUTIONS
diff --git a/src/components/homepage/index-styles.js b/src/components/homepage/index-styles.js
index 4087733..074150d 100644
--- a/src/components/homepage/index-styles.js
+++ b/src/components/homepage/index-styles.js
@@ -204,7 +204,7 @@ export const HomePageContainer = styled.div`
`
export const SolutionsSection = styled.div`
- height: 100vh;
+ min-height: 100vh;
margin-top: 200px;
color: ${colors.ocean900};
padding-bottom: 100px;
@@ -262,9 +262,10 @@ a {
}
`
export const CTASection = styled.div`
- height: 100vh;
+ min-height: 100vh;
+ position: relative;
@media (max-width: ${dimensions.maxwidthTablet}px) {
- margin-top: 480px;
+ margin-top: 100px;
}
`
@@ -273,7 +274,7 @@ export const CTAImage = styled.div`
margin-bottom: 100px;
img {
object-fit: cover;
- width: 351px;
+ width: 100%;
height: 234px;
}
diff --git a/src/components/singular-product/singular-product-styles.js b/src/components/singular-product/singular-product-styles.js
new file mode 100644
index 0000000..fe01071
--- /dev/null
+++ b/src/components/singular-product/singular-product-styles.js
@@ -0,0 +1,313 @@
+import styled from "styled-components"
+import dimensions from "../../style/dimensions"
+import {
+ layoutPaddingDesktop,
+ layoutPaddingMobile,
+} from "../../style/variables"
+import colors from "../../style/colors"
+
+
+export const SingularProductContainer = styled.div``
+
+export const HeroSection = styled.div`
+ padding-top: 130px;
+
+ @media (min-width: ${dimensions.maxwidthTablet}px) {
+ display: flex;
+ padding-top: 114px;
+ }
+`
+
+export const ImageContainer = styled.div`
+ display: flex;
+ flex-wrap: wrap;
+ img {
+ width: 4vw;
+ height: 56px;
+ object-fit: cover;
+ margin-right: 18px;
+ margin-top: 44px;
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ width: 39px;
+ height: 39px;
+ margin-right: 12px;
+ margin-top: 32px;
+ }
+
+ &.main-image {
+ object-fit: cover;
+ width: 47vw;
+ height: 432px;
+ flex: 100%;
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ width: 100%;
+ height: 225px;
+ }
+ }
+ }
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ justify-content: center;
+ }
+`
+
+export const SmallImageContainer = styled.div`
+ display: flex;
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ justify-content: center;
+ }
+`
+
+export const TextContainer = styled.div`
+ padding-left: 67px;
+
+ color: ${colors.blue900};
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ padding-left: 0px;
+ }
+`
+
+export const ProductType = styled.div`
+ padding-top: 49px;
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ padding-top: 26px;
+ }
+`
+
+export const IconSection = styled.div`
+ margin-top: 127px;
+ background-color: rgb(110, 168, 192, 0.07);
+ width: 100vw;
+ margin-left: -${layoutPaddingDesktop};
+ padding-top: 80px;
+ padding-bottom: 80px;
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ margin-left: -${layoutPaddingMobile};
+ }
+`
+
+export const IconContainer = styled.div`
+ display: flex;
+ margin-top: 80px;
+ justify-content: space-between;
+ margin-left: ${layoutPaddingDesktop};
+ margin-right: ${layoutPaddingDesktop};
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ flex-wrap: wrap;
+ justify-content: center;
+ margin-top: 54px;
+ margin-left: 0px;
+ margin-right: 0px;
+ }
+`
+
+export const Icon = styled.div`
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ margin-top: 30px;
+ }
+`
+
+export const IconHeader = styled.div`
+ margin-left: ${layoutPaddingDesktop};
+ color: ${colors.blue900};
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ text-align: center;
+ margin-left: 0px;
+ }
+`
+
+export const IconImage = styled.div`
+ width: 54px;
+ height: 55px;
+ margin-left: auto;
+ margin-right: auto;
+`
+
+export const IconCaption = styled.div`
+ margin-top: 25px;
+ width: 12vw;
+ color: ${colors.blue900};
+
+ text-align: center;
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ width: 44vw;
+ }
+`
+
+export const ImageHighlightSection = styled.div`
+ padding-top: 76px;
+ position: relative;
+`
+
+export const ImageHighlightHeading = styled.div`
+ padding-top: 147px;
+ margin-left: 4vw;
+ color: ${colors.blue900};
+`
+
+export const ImageHighlightGroupContainer = styled.div``
+
+export const ImageHighlightGroup = styled.div`
+ color: ${colors.blue900};
+
+ &.second-section {
+ position: absolute;
+ right: 0;
+ top: 200px;
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ position: relative;
+ top: 0px;
+ }
+ }
+`
+
+export const HighlightedImage = styled.div`
+ &.first-image {
+ img {
+ margin-left: -${layoutPaddingDesktop};
+ margin-top: 60px;
+ width: 50vw;
+ height: 372px;
+ object-fit: cover;
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ width: 100%;
+ margin-left: auto;
+ margin-right: auto;
+ }
+ }
+ }
+
+ &.second-image {
+ img {
+ width: 28vw;
+ height: 357px;
+ object-fit: cover;
+ }
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ img {
+ width: 100%;
+ height: 275px;
+ object-fit: cover;
+ }
+ }
+ }
+
+ img {
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ width: 100%;
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 25px;
+ }
+ }
+`
+
+export const ImageHighlightDescription = styled.div`
+ font-size: calc(18px + (18 - 16) * ((100vw - 300px) / (1440 - 300)));
+ width: 35vw;
+ padding-top: 40px;
+
+ &.second-section {
+ padding-top: 88px;
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ }
+ }
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ width: 100%;
+ }
+`
+
+export const ThirdSection = styled.div`
+ &.third-section {
+ display: flex;
+ flex-direction: row-reverse;
+ align-items: center;
+ margin-top: 97px;
+ margin-right: -${layoutPaddingDesktop};
+ justify-content: space-between;
+
+ img {
+ width: 56vw;
+ height: 372px;
+ object-fit: cover;
+ }
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ display: block;
+ width: 100%;
+ margin-top: 25px;
+ flex-direction: none;
+
+ img {
+ width: 100%;
+ height: 275px;
+ object-fit: cover;
+ }
+ }
+ }
+`
+
+export const FeatureSpecSection = styled.div`
+ margin-top: 100px;
+ color: ${colors.blue900};
+`
+
+export const FeatureIcon = styled.div`
+ width: 3vw;
+ height: 45px;
+`
+
+export const Feature = styled.div`
+ padding-top: 90px;
+
+ @media (min-width: ${dimensions.maxwidthTablet}px) {
+ display: flex;
+ }
+`
+
+export const FeatureName = styled.div`
+ width: 20vw;
+ padding-right: 2vw;
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ width: 100%;
+ padding-right: 0px;
+ }
+`
+
+export const FeatureImage = styled.div`
+ img {
+ &.not-image {
+ display: none;
+ }
+ }
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ img {
+ width: 87vw;
+ }
+ }
+`
+
+export const FeatureDescription = styled.div`
+ font-size: 15px;
+ width: 35vw;
+
+ @media (max-width: ${dimensions.maxwidthTablet}px) {
+ width: 100%;
+ padding-top: 16px;
+ }
+`
diff --git a/src/images/navlogo.png b/src/images/navlogo.png
new file mode 100644
index 0000000..412a10c
Binary files /dev/null and b/src/images/navlogo.png differ
diff --git a/src/images/navlogohomepage.png b/src/images/navlogohomepage.png
new file mode 100644
index 0000000..06adf57
Binary files /dev/null and b/src/images/navlogohomepage.png differ
diff --git a/src/vectors/CloseIcon.svg b/src/vectors/CloseIcon.svg
new file mode 100644
index 0000000..f7d7811
--- /dev/null
+++ b/src/vectors/CloseIcon.svg
@@ -0,0 +1,5 @@
+
+
diff --git a/src/vectors/powerhouselogo.png b/src/vectors/powerhouselogo.png
new file mode 100644
index 0000000..06adf57
Binary files /dev/null and b/src/vectors/powerhouselogo.png differ