diff --git a/src/componants/home/featuredsection/FeaturedSection.jsx b/src/componants/home/featuredsection/FeaturedSection.jsx new file mode 100644 index 0000000..bb91d37 --- /dev/null +++ b/src/componants/home/featuredsection/FeaturedSection.jsx @@ -0,0 +1,20 @@ +import { useTranslation } from "react-i18next"; +import SectionTitle from "../../Shared/MiniComponents/SectionTitle/SectionTitle"; +import s from "./FeaturedSection.module.scss"; +import FeaturedSectionPosters from "./FeaturedSectionPosters"; + +const FeaturedSection = () => { + const { t } = useTranslation(); + const featuredSection = "sectionTitles.featuredSection"; + + return ( +
+ + +
+ ); +}; +export default FeaturedSection; diff --git a/src/componants/home/featuredsection/FeaturedSection.module.scss b/src/componants/home/featuredsection/FeaturedSection.module.scss new file mode 100644 index 0000000..df4c201 --- /dev/null +++ b/src/componants/home/featuredsection/FeaturedSection.module.scss @@ -0,0 +1,41 @@ +@import "src/Styles/mixins"; + +.featuredSection { + margin-bottom: 170px; +} + +@include small { + .featuredSection { + margin-bottom: 100px; + } +} + +.wrapper { + display: flex; + justify-content: space-between; + align-items: flex-end; + gap: 30px; + margin-bottom: 40px; +} + +@include small { + .wrapper { + flex-direction: column; + align-items: flex-start; + } +} + +.viewAllBtn { + border: none; + outline: none; + cursor: pointer; + width: fit-content; + height: fit-content; + background: var(--dark-red); + color: var(--white); + padding: 12px 48px; + border-radius: 4px; + letter-spacing: 0em; + font-weight: 500; + text-wrap: nowrap; +} \ No newline at end of file diff --git a/src/componants/home/featuredsection/FeaturedSectionFeatures.jsx b/src/componants/home/featuredsection/FeaturedSectionFeatures.jsx new file mode 100644 index 0000000..4e6abc1 --- /dev/null +++ b/src/componants/home/featuredsection/FeaturedSectionFeatures.jsx @@ -0,0 +1,30 @@ +import { useTranslation } from "react-i18next"; +import { featuresSectionData } from "src/Data/staticData"; +import { camelCase } from "src/Functions/helper"; +import Feature from "../../Shared/MiniComponents/Feature/Feature"; +import s from "./FeaturedSectionFeatures.module.scss"; + +const FeaturedSectionFeatures = () => { + const featureSection = "aboutPage.featuresSectionData"; + const { t } = useTranslation(); + + return ( +
+ {featuresSectionData?.map(({ iconImg, iconAlt, id }) => { + const featuresTransData = `${featureSection}.${camelCase(iconAlt)}`; + + return ( + + ); + })} +
+ ); +}; +export default FeaturedSectionFeatures; diff --git a/src/componants/home/featuredsection/FeaturedSectionFeatures.module.scss b/src/componants/home/featuredsection/FeaturedSectionFeatures.module.scss new file mode 100644 index 0000000..c274ac2 --- /dev/null +++ b/src/componants/home/featuredsection/FeaturedSectionFeatures.module.scss @@ -0,0 +1,24 @@ +@import "src/Styles/mixins"; + +.features { + display: flex; + align-items: center; + margin-bottom: 120px; + gap: 30px; +} + +@include medium { + .features { + flex-direction: column; + align-items: center; + gap: 40px; + } +} + +// Multi language styles +@include large { + :where([lang=fr], [lang=ru], [lang=hu], [lang=ar]) .features { + flex-direction: column; + align-items: center; + } +} \ No newline at end of file diff --git a/src/componants/home/featuredsection/FeaturedSectionPosters.jsx b/src/componants/home/featuredsection/FeaturedSectionPosters.jsx new file mode 100644 index 0000000..6d4a90e --- /dev/null +++ b/src/componants/home/featuredsection/FeaturedSectionPosters.jsx @@ -0,0 +1,58 @@ +import { useTranslation } from "react-i18next"; +import { + perfumeGucci, + ps5, + speakers, + womanWithHat, +} from "src/Assets/Images/Images"; +import HorizontalPoster from "../../Shared/Posters/HorizontalPoster"; +import MediumPoster from "../../Shared/Posters/MediumPoster"; +import SmallPoster from "../../Shared/Posters/SmallPoster"; +import s from "./FeaturedSectionPosters.module.scss"; + +const FeaturedSectionPosters = () => { + const { t } = useTranslation(); + const medPosterTitleTrans = t("featuredSection.mediumPoster.title"); + const medPosterDescTrans = t("featuredSection.mediumPoster.description"); + + const smallPoster1TitleTrans = t("featuredSection.smallPoster1.title"); + const smallPoster1DescTrans = t("featuredSection.smallPoster1.description"); + const smallPoster2TitleTrans = t("featuredSection.smallPoster2.title"); + const smallPoster2DescTrans = t("featuredSection.smallPoster2.description"); + + const horizontalPosterTitleTrans = t("featuredSection.horizontalPoster.title"); + const horizontalPosterDescTrans = t("featuredSection.horizontalPoster.description"); + + return ( +
+ + +
+ + +
+ + + +
+
+
+ ); +}; +export default FeaturedSectionPosters; diff --git a/src/componants/home/featuredsection/FeaturedSectionPosters.module.scss b/src/componants/home/featuredsection/FeaturedSectionPosters.module.scss new file mode 100644 index 0000000..5b80cd0 --- /dev/null +++ b/src/componants/home/featuredsection/FeaturedSectionPosters.module.scss @@ -0,0 +1,45 @@ +@import "src/Styles/mixins"; + +.posters { + margin: 50px 0 100px; + display: flex; + width: 100%; +} + +@media (max-width: 1300px) { + .posters { + display: block; + } +} + +.posters>* { + display: flex; + flex-direction: column; + flex: 1; +} + +.smallPosters { + margin-inline-start: 30px; +} + +@media (max-width: 1300px) { + .smallPosters { + margin-inline-start: 0; + margin-top: 30px; + } +} + +.smallerPosters { + display: flex; + align-items: center; + width: 100%; + margin-top: 30px; + display: flex; + gap: 30px; +} + +@include small { + .smallerPosters { + flex-direction: column; + } +} \ No newline at end of file