diff --git a/src/components/LogosSection/logosSection.scss b/src/components/LogosSection/logosSection.scss
index 687960a4..45e6baba 100644
--- a/src/components/LogosSection/logosSection.scss
+++ b/src/components/LogosSection/logosSection.scss
@@ -12,7 +12,8 @@
&__summary {
font-weight: 400;
text-align: center;
- line-height: 30px;
+ line-height: 33px;
+ color: $summary-color
}
&__logos {
margin-top: 10px;
diff --git a/src/components/Professionals/Professionals.js b/src/components/Professionals/Professionals.js
new file mode 100644
index 00000000..68867583
--- /dev/null
+++ b/src/components/Professionals/Professionals.js
@@ -0,0 +1,53 @@
+import React from 'react'
+import { getImage, GatsbyImage } from "gatsby-plugin-image"
+import { useProfessionals } from '../../hooks'
+import "./Professionals.scss"
+import { FaLinkedinIn } from "react-icons/fa"
+
+const Professionals = ({ data }) => {
+ const { title, summary, professionals } = data
+ const professionalsData = useProfessionals()
+
+ const professionalsList = professionals.map(pro =>
+ professionalsData?.allStrapiProfessional?.nodes.find(professional => professional.strapiId === pro.id)
+ ).slice(0,6)
+
+ const professionalsCards = professionalsList.map((pro, idx) => {
+
+ const photo = getImage(pro.photo.localFile)
+
+ const {name, position, quote, linkedin} = pro
+
+ return (
+
+ )
+}
+
+export default Professionals
\ No newline at end of file
diff --git a/src/components/Professionals/Professionals.scss b/src/components/Professionals/Professionals.scss
new file mode 100644
index 00000000..f6a3a369
--- /dev/null
+++ b/src/components/Professionals/Professionals.scss
@@ -0,0 +1,112 @@
+@import "../../styles/global.scss";
+
+.prosSection {
+ &__summary {
+ font-weight: 400;
+ text-align: center;
+ line-height: 33px;
+ color: $summary-color;
+ }
+ p {
+ margin-bottom: 10px;
+ }
+ a {
+ display: inline-block;
+ margin-bottom: 10px;
+ }
+ color: $primary;
+ h2 {
+ text-align: center;
+ font-weight: 700;
+ text-transform: uppercase;
+ }
+ h6 {
+ margin-bottom: 10px;
+ }
+}
+.pro {
+ color: $primary;
+ --bs-gutter-x: 0 !important;
+ padding: 10px;
+ &__img {
+ height: 260px;
+ width: 100%;
+ object-fit: cover;
+ border-radius: 10px;
+ }
+ &__descr {
+ padding-left: 10px;
+ &_title {
+ font-weight: 700;
+ width: 100%;
+ }
+ &_position {
+ font-weight: 400;
+ }
+ }
+ button {
+ @include primaryBtn;
+ margin-left: 10px;
+ }
+ &__socials {
+ display: flex;
+ justify-content: flex-start;
+ margin-top: 10px;
+ svg {
+ margin-right: 10px;
+ }
+ }
+}
+
+
+
+@media screen and (min-width: $breakpoint-md) {
+ .prosSection {
+ &__summary {
+ margin-top: 20px;
+ margin-bottom: 50px !important;
+ }
+ }
+ .pro {
+ &__img {
+ height: 240px;
+ margin-bottom: 15px;
+ }
+ &__descr {
+ h6 {
+ margin-bottom: 10px;
+ }
+ a {
+ width: 15%;
+ }
+ min-height: 210px;
+ &_title {
+ display: inline-block;
+ width: 85%;
+ }
+ }
+ &__socials {
+ justify-content: flex-end;
+ svg {
+ margin-left: 10px;
+ margin-right: 1px;
+ }
+ }
+ }
+
+}
+
+@media screen and (min-width: $breakpoint-lg) {
+ .prosSection {
+ &__summary {
+ margin-top: 40px;
+ margin-bottom: 80px !important;
+ }
+ }
+ .pro {
+ &__descr {
+ min-height: 260px;
+ }
+ }
+}
+
diff --git a/src/components/Text/Text.js b/src/components/Text/Text.js
index a43046e5..28b01d9c 100644
--- a/src/components/Text/Text.js
+++ b/src/components/Text/Text.js
@@ -8,27 +8,29 @@ export default function Text({ data }) {
const bgImage = data?.backgroundImage?.url
return (
-
- {title !== "" && title !== undefined && title !== null ? (
-
-
-
{title}
+ }}>
+
+ {title !== "" && title !== undefined && title !== null ? (
+
-
-
- ) : (
-
-
-
- )}
+ ) : (
+
+
+
+ )}
+
)
}
diff --git a/src/components/Text/Text.scss b/src/components/Text/Text.scss
index 02c5b153..6abd1b42 100644
--- a/src/components/Text/Text.scss
+++ b/src/components/Text/Text.scss
@@ -4,21 +4,23 @@
.text {
color: $primary;
.title {
- width: 100%;
.titleText {
- margin: 0;
text-transform: uppercase;
margin-top: 2rem;
}
}
.description {
- background-color: $primary-container;
- padding-bottom: 3rem;
+ background-color: $grey-light-bg;
+
p:first-child {
padding-top: 1rem;
}
+ p:last-child {
+ margin-bottom: 0.5rem;
+ }
p {
- padding: 0rem 1rem;
+ color: $black;
+ padding: 0rem 0.5rem;
}
}
}
@@ -29,10 +31,10 @@
.notTitle {
color: $primary;
border-radius: 20px;
- background-color: $primary-container;
+ background-color: $white;
padding: 1rem;
- margin: 1rem;
- p:nth-last-child(2) {
+ margin: 1.5rem 0rem;
+ p:nth-last-child(-n+2) {
margin-bottom: 0px;
}
}
@@ -46,9 +48,8 @@
padding-top: 4rem;
}
.description {
- p:first-child {
- padding-top: 4rem;
- }
+ margin-left: 2rem;
+ margin-top: 2rem;
}
}
}
@@ -58,8 +59,7 @@
.text {
.description {
p {
- padding: 0rem 2.5rem;
- padding-right: 7rem;
+ padding: 0rem 2rem;
}
}
}
diff --git a/src/components/index.js b/src/components/index.js
index 08084117..e2cf84c3 100644
--- a/src/components/index.js
+++ b/src/components/index.js
@@ -14,7 +14,8 @@ import OneSection from "./DualSection/OneSection"
import DualSection from "./DualSection/DualSection"
import AnimatedTransitionContinous from "./animatedTransitionContinous/AnimatedTransitionContinous"
import BannerTop from "./Banners/BannerTop"
-import BannerHead from "./BannerHead/BannerHead";
+import BannerHead from "./BannerHead/BannerHead"
+import Professionals from "./Professionals/Professionals"
import FeaturedBlogs from './FeaturedBlogs/FeaturedBlogs'
export {
@@ -35,5 +36,6 @@ export {
AnimatedTransitionContinous,
BannerTop,
BannerHead,
- FeaturedBlogs
+ Professionals,
+ FeaturedBlogs,
}
diff --git a/src/context/themeContext.js b/src/context/themeContext.js
index 7d1b846f..f6b28014 100644
--- a/src/context/themeContext.js
+++ b/src/context/themeContext.js
@@ -17,6 +17,7 @@ const themes = {
"--border-bottom": "#cdcdcd",
"--bg-form": "#DBDBDD",
"--bg-diagonal": "#f2f0f7",
+ "--summary-color": "rgba(0, 0, 0, 0.5)"
},
dark: {
"--nav-footer-container": "#383838",
@@ -34,6 +35,7 @@ const themes = {
"--secondary-container": "#191919",
"--bg-form": "#FAF8F8",
"--bg-diagonal": "#4A494B",
+ "--summary-color": "#ffffff",
},
}
diff --git a/src/hooks/index.js b/src/hooks/index.js
index 81e39987..445b6a5f 100644
--- a/src/hooks/index.js
+++ b/src/hooks/index.js
@@ -4,6 +4,7 @@ import useBlog from './useBlog'
import useFooter from './useFooter';
import useCases from './useCases'
import useNavbar from './useNavbar';
+import useProfessionals from "./useProfessionals";
export {
useGlobalSeo,
@@ -11,5 +12,6 @@ export {
useBlog,
useFooter,
useCases,
- useNavbar
+ useNavbar,
+ useProfessionals,
}
diff --git a/src/hooks/useProfessionals.js b/src/hooks/useProfessionals.js
new file mode 100644
index 00000000..32f3c039
--- /dev/null
+++ b/src/hooks/useProfessionals.js
@@ -0,0 +1,27 @@
+import { useStaticQuery, graphql } from "gatsby"
+
+const useContactPage = () => {
+ return useStaticQuery(graphql`
+ {
+ allStrapiProfessional {
+ nodes {
+ quote
+ position
+ name
+ linkedin
+ strapiId
+ id
+ photo {
+ localFile {
+ childImageSharp {
+ gatsbyImageData
+ }
+ }
+ }
+ }
+ }
+ }
+ `)
+}
+
+export default useContactPage
diff --git a/src/schema/professionalsSchema.js b/src/schema/professionalsSchema.js
new file mode 100644
index 00000000..13c4472a
--- /dev/null
+++ b/src/schema/professionalsSchema.js
@@ -0,0 +1,41 @@
+const blogSchema = `
+type StrapiProfessional implements Node {
+ id: ID!
+ parent: Node
+ children: [Node!]!
+ internal: Internal!
+ name: String
+ position: String
+ quote: String
+ linkedin: String
+ published_at(
+ formatString: String
+ fromNow: Boolean
+ difference: String
+ locale: String
+ ): Date
+ created_at(
+ formatString: String
+ fromNow: Boolean
+ difference: String
+ locale: String
+ ): Date
+ updated_at(
+ formatString: String
+ fromNow: Boolean
+ difference: String
+ locale: String
+ ): Date
+ photo: LocalFile
+ strapiId: Int
+ }
+
+ type LocalFile {
+ localFile: File @link(from: "localFile___NODE")
+ }
+
+`
+
+module.exports = {
+ value: blogSchema,
+}
\ No newline at end of file
diff --git a/src/styles/global.scss b/src/styles/global.scss
index 04e6c766..64eef92c 100644
--- a/src/styles/global.scss
+++ b/src/styles/global.scss
@@ -22,6 +22,8 @@ $jobs-hover: var(--jobs-hover);
$bg-form: var(--bg-form);
$bg-diagonal: var(--bg-diagonal);
+$summary-color: var(--summary-color);
+
main {
background-color: $primary-container !important;
}
@@ -57,7 +59,7 @@ $grey: #545468;
$light-grey: #c4c4c4;
$alt: #67f293;
$blackBit: #242424;
-
+$grey-light-bg: #FAF8F8;
/* Sizes */
$small: 15px;
$medium: 20px;
diff --git a/src/templates/LandingPage.js b/src/templates/LandingPage.js
index c5251315..c15fc02b 100644
--- a/src/templates/LandingPage.js
+++ b/src/templates/LandingPage.js
@@ -18,6 +18,7 @@ import {
DualSection,
OneSection,
Quote,
+ Professionals,
FeaturedBlogs
} from "../components"
@@ -93,6 +94,11 @@ const LandingPage = ({ data, location }) => {
) : null
+ const professionals =
+ component.strapi_component === "components.professionals-section" ? (
+
+ ) : null
+
const featuredBlogs =
component.strapi_component === "components.featured-blogs" ? (
@@ -114,6 +120,7 @@ const LandingPage = ({ data, location }) => {
{quote}
{dualSection}
{animatedTransition}
+ {professionals}
{featuredBlogs}
>