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