Merge branch 'develop'

This commit is contained in:
Fernando Videira
2024-06-16 02:51:45 +01:00
13 changed files with 249 additions and 86 deletions
+29
View File
@@ -0,0 +1,29 @@
interface IProps {
title: string;
description: string;
image: string;
}
const Card = ({ title, description, image }: IProps) => {
const defaultImgClasses = `w-full h-20 mt-5`;
const imgClasses = image ? defaultImgClasses : `${defaultImgClasses} hidden`;
return (
<div className="mt-5 xl:mt-0 flex flex-1 bg-gradient-to-b from-gold-light to-gold-dark p-0.5 shadow-lg">
<div className="w-full font-medium flex-col md:px-4 py-1 bg-gradient-to-br from-custom-bglight to-custom-bgdark">
<object type="image/svg+xml" data={image} className={imgClasses} aria-label={title}></object>
<h1 className="mt-2 lg:mt-6 text-3xl xl:text-5xl">{title}</h1>
<h2 className="px-2 mb-2 mt-3 italic text-xl xl:text-3xl font-medium text-gray-300">
{description.split("\n").map((line, i) => (
<span key={i}>
{line}
<br />
</span>
))}
</h2>
</div>
</div>
);
};
export default Card;
+1 -1
View File
@@ -19,9 +19,9 @@ export default () => {
window.addEventListener("scroll", changeColor);
// Replace javascript:void(0) path with your path
const navigation = [
{ title: t("navbar.services"), path: "Services" },
{ title: t("navbar.optimization"), path: "Optimization" },
{ title: t("navbar.advantages"), path: "Advantages" },
{ title: t("navbar.contact"), path: "Contact" },
];
@@ -0,0 +1,32 @@
import Card from "../../Card";
import yourself from "../../../assets/Yourself.svg"
import staff from "../../../assets/Staff.svg"
import agency from "../../../assets/Agency.svg"
import { useTranslation } from "react-i18next";
const CardContainer = () => {
const { t } = useTranslation();
return (
<div className="mt-10 lg:mt-32 flex gap-10 flex-col h-full lg:flex-row px-10 lg:px-32 1920:margin-calc">
<Card
title={t("optimization.cards.card1.title")}
description={t("optimization.cards.card1.description")}
image={yourself}
/>
<Card
title={t("optimization.cards.card2.title")}
description={t("optimization.cards.card2.description")}
image={staff}
/>
<Card
title={t("optimization.cards.card3.title")}
description={t("optimization.cards.card3.description")}
image={agency}
/>
</div>
);
};
export default CardContainer;
@@ -0,0 +1,18 @@
import CardContainer from './CardContainer'
import { useTranslation } from 'react-i18next'
const Optimization = () => {
const { t } = useTranslation('optimization')
return (
<div className="header-text">
<h1>
<span className="gold-text">"</span>
{t("optimization.heading.part1")} <br /> {t("optimization.heading.part2")}
<span className="gold-text">"</span>
</h1>
<CardContainer />
</div>
)
}
export default Optimization
-42
View File
@@ -1,42 +0,0 @@
import { useTranslation } from "react-i18next";
interface IProps {
title: string;
description: string;
}
const Card = ({ title, description }: IProps) => {
const { i18n } = useTranslation();
return (
<div className="mt-5 xl:mt-0 flex bg-gradient-to-b from-gold-light to-gold-dark p-0.5 shadow-lg">
<div className="w-full font-medium md:px-4 py-1 bg-gradient-to-br from-custom-bglight to-custom-bgdark">
<h1
className={
i18n.language === "en"
? "results-card-heading"
: "results-card-heading-pt"
}
>
{title}
</h1>
<h2
className={
i18n.language === "en"
? "results-card-content"
: "results-card-content-pt"
}
>
{description.split("\n").map((line, i) => (
<span key={i}>
{line}
<br />
</span>
))}
</h2>
</div>
</div>
);
};
export default Card;
@@ -1,5 +1,5 @@
import { useTranslation } from "react-i18next";
import Card from "./Card";
import Card from "../../Card";
const CardContainer = () => {
const { t } = useTranslation();
@@ -9,18 +9,22 @@ const CardContainer = () => {
<Card
title={t("results.cards.card1.title")}
description={t("results.cards.card1.description")}
image=""
/>
<Card
title={t("results.cards.card2.title")}
description={t("results.cards.card2.description")}
image=""
/>
<Card
title={t("results.cards.card3.title")}
description={t("results.cards.card3.description")}
image=""
/>
<Card
title={t("results.cards.card4.title")}
description={t("results.cards.card4.description")}
image=""
/>
</div>
);
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" width="800px" height="800px" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<linearGradient id="goldGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#FACC97;stop-opacity:1" />
<stop offset="100%" style="stop-color:#54330F;stop-opacity:1" />
</linearGradient>
</defs>
<path d="M9 0C7.355469 0 6 1.355469 6 3L6 50L44 50L44 3C44 1.355469 42.644531 0 41 0 Z M 9 2L41 2C41.554688 2 42 2.445313 42 3L42 48L38 48L38 36L27 36L27 48L8 48L8 3C8 2.445313 8.445313 2 9 2 Z M 12 6L12 14L23 14L23 6 Z M 27 6L27 14L38 14L38 6 Z M 14 8L21 8L21 12L14 12 Z M 29 8L36 8L36 12L29 12 Z M 12 16L12 24L23 24L23 16 Z M 27 16L27 24L38 24L38 16 Z M 14 18L21 18L21 22L14 22 Z M 29 18L36 18L36 22L29 22 Z M 12 26L12 34L23 34L23 26 Z M 27 26L27 34L38 34L38 26 Z M 14 28L21 28L21 32L14 32 Z M 29 28L36 28L36 32L29 32 Z M 12 36L12 44L23 44L23 36 Z M 14 38L21 38L21 42L14 42 Z M 29 38L36 38L36 48L29 48Z" fill="url(#goldGradient)"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+61
View File
@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg height="800px" width="800px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 200.688 200.688" xml:space="preserve">
<defs>
<linearGradient id="goldGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#FACC97;stop-opacity:1" />
<stop offset="100%" style="stop-color:#54330F;stop-opacity:1" />
</linearGradient>
</defs>
<g>
<path d="M190.985,111.644l-0.293-0.347c-1.399-1.729-4.459-4.187-8.922-5.891l-0.684-0.208
c-4.649-2.144-8.861-3.582-10.096-3.987c-0.97-0.319-1.782-0.666-2.43-0.948c-5.128-2.53-5.708-4.008-5.791-4.237l-0.233-0.544
l0.197-0.49c3.811-4.746,6.488-10.275,7.508-15.486l0.15-0.354c1.052-1.342,1.725-2.91,1.993-4.638
c1.213-4.384,1.263-7.605,0.175-9.863l-0.097-0.2l0.05-0.222c1.353-5.665,2.656-16.277-3.847-23.681
c-1.038-1.303-5.025-5.705-12.759-7.97l-3.772-1.292c-6.181-1.904-10.089-2.362-10.74-2.373c-0.412,0-0.78,0.05-1.317,0.168
l-0.465,0.093c-0.272-0.043-0.555-0.068-0.873-0.068c-2.069,0-4.305,0.909-4.305,0.909c-2.18,0.916-13.252,6.023-16.763,16.874
c-0.583,1.542-1.772,6.231-0.233,16.488l0.039,0.254l-0.161,0.215c-1.578,2.126-1.711,5.572-0.397,10.203
c0.344,2.051,1.013,3.69,1.997,4.924l0.165,0.347c0.97,5.372,3.357,10.665,6.904,15.317l0.283,0.376l-0.265,0.376
c-0.154,0.229-0.261,0.465-0.301,0.637c-0.544,1.553-4.706,4.012-11.159,6.596c-1.442-0.523-2.444-0.852-2.799-0.97
c-1.306-0.437-2.398-0.905-3.282-1.292c-6.825-3.368-7.723-5.332-7.859-5.783l-0.358-0.798l0.315-0.741
c5.121-6.381,8.715-13.811,10.096-20.843l0.211-0.483c1.417-1.8,2.323-3.905,2.663-6.199c1.628-5.866,1.714-10.182,0.247-13.192
l-0.161-0.319l0.086-0.344c1.822-7.609,3.568-21.845-5.161-31.762c-1.385-1.736-6.703-7.641-17.096-10.683l-5.078-1.743
C77.89,4.865,72.629,4.296,71.946,4.289c-0.558,0-1.041,0.061-1.746,0.229l-0.68,0.111c-2.813-0.455-6.27,0.88-6.896,1.124
c-2.928,1.228-17.769,8.092-22.475,22.643c-0.784,2.061-2.373,8.346-0.308,22.114l0.061,0.415l-0.258,0.344
c-2.104,2.813-2.265,7.412-0.501,13.621c0.451,2.734,1.346,4.917,2.673,6.589l0.233,0.49c1.285,7.208,4.491,14.326,9.266,20.593
l0.447,0.583l-0.426,0.616c-0.208,0.304-0.347,0.616-0.379,0.812c-1.185,3.375-14.394,9.276-25.968,12.809
c-8.332,3.157-11.989,8.271-12.011,8.303C1.503,132.72,0.05,169.292,0,170.863c0.179,9.513,4.499,11.445,5.329,11.724l0.73,0.319
c25.385,11.077,62.462,13.235,66.61,13.446l1.296,0.039c1.238,0,2.494-0.068,3.672-0.132l0.104-0.004l0.383,0.029
c0.308,0.075,0.558,0.115,0.816,0.115h0.004l0.175-0.007c1.678-0.086,41.486-2.348,66.327-13.496
c1.356-0.358,5.737-2.24,6.131-11.488c8.858-0.766,30.048-3.207,44.439-9.659c1.066-0.279,4.556-1.761,4.674-9.273
C200.527,149.587,199.142,123.776,190.985,111.644z M55.104,98.377l0.691-0.644l0.687,0.644c6.077,5.726,12.809,8.872,18.936,8.872
c6.438,0,13.084-2.792,19.218-8.081l0.519-0.437L96.5,99.39c1.145,1.041,3.196,2.537,4.116,2.988l1.267,0.619l-0.136,0.129
l0.487,0.293c1.16,0.684,2.394,1.353,3.804,2.054c1.428,0.633,2.652,1.109,3.951,1.539c0.254,0.086,6.317,2.044,13.227,5.243
l1.235,0.383c6.567,2.502,9.344,6.027,9.445,6.148c10.193,15.131,11.907,48.157,12.075,51.85c-0.079,5.161-1.55,6.499-1.933,6.757
c-22.844,10.225-57.355,12.884-64.033,13.31l-0.186,0.011l-0.19-0.057c-0.225-0.068-0.455-0.1-0.741-0.1h-0.007l-0.236,0.011
c-1.825,0.125-3.335,0.186-4.746,0.186h-1.106c-4.159-0.251-41.372-2.688-65.189-13.285c-0.48-0.2-1.886-1.825-1.99-6.571
c0.004-0.354,1.228-36.003,11.925-51.893c0.523-0.659,3.432-4.048,9.244-6.267c5.107-1.571,17.751-5.762,24.665-10.769
c0.29-0.175,0.576-0.469,0.884-0.784C52.838,100.639,53.89,99.508,55.104,98.377z M126.273,107.299l-0.945-0.276
c-1.553-0.716-3.182-1.424-4.867-2.115c2.38-1.113,4.327-2.205,5.773-3.26c0.233-0.136,0.465-0.372,0.684-0.601
c0.523-0.562,1.228-1.317,2.051-2.086l0.44-0.404l0.422,0.412c4.549,4.273,9.573,6.617,14.144,6.617
c4.817,0,9.781-2.083,14.351-6.027l0.326-0.276l0.923,0.447c0.841,0.784,2.373,1.886,3.056,2.226l0.798,0.379l-0.097,0.097
l0.501,0.293c0.87,0.519,1.8,1.013,2.842,1.528c1.07,0.472,1.979,0.83,2.942,1.152c0.186,0.061,4.656,1.496,9.824,3.89l0.909,0.279
c4.706,1.8,6.753,4.27,6.95,4.527c7.605,11.273,8.833,35.71,8.944,38.433c-0.054,3.779-1.102,4.746-1.364,4.917
c-14.308,6.403-34.851,8.808-43.49,9.566c-0.777-11.216-3.547-37.632-12.787-51.371l-0.39-0.469
C136.34,112.868,132.239,109.583,126.273,107.299z M120.922,66.479l0.161-0.19c0.723-0.53,1.077-1.349,0.941-2.197
c-1.718-10.318-0.601-14.648-0.218-15.74c2.996-9.187,12.419-13.474,14.272-14.233c0.372-0.143,1.092-0.358,1.854-0.487
l0.229-0.054l1.421-0.075l0.011,0.097l0.429-0.039c0.319-0.025,0.626-0.075,0.841-0.122l0.48-0.107
c0.304,0.007,4.026,0.49,9.42,2.144l3.804,1.306c6.907,2.04,10.107,5.851,10.697,6.621c5.551,6.299,4.062,15.776,2.677,20.868
c-0.157,0.626-0.061,1.27,0.297,1.797l0.308,0.397c0.39,0.523,0.744,2.602-0.458,7.083c-0.225,1.36-0.73,2.452-1.453,3.178
c-0.293,0.308-0.49,0.709-0.562,1.167c-1.872,10.998-11.721,23.291-22.096,23.291c-8.811,0-18.857-11.316-20.664-23.291
c-0.075-0.455-0.268-0.855-0.587-1.217c-0.737-0.762-1.213-1.875-1.507-3.554C120.35,70.008,120.253,67.492,120.922,66.479z
M44.249,54.626l0.24-0.276c0.931-0.669,1.381-1.721,1.21-2.809c-2.33-13.986-0.809-19.805-0.286-21.266
C49.46,17.853,62.215,12.045,64.72,11.014c0.523-0.2,1.496-0.494,2.527-0.662l0.276-0.064l2.101-0.115l0.007,0.132l0.451-0.043
c0.419-0.039,0.83-0.104,1.31-0.2l0.48-0.111c0.39,0.004,5.315,0.623,12.741,2.899l5.107,1.757
c9.334,2.759,13.682,7.924,14.48,8.958c7.508,8.521,5.504,21.344,3.643,28.234c-0.218,0.795-0.086,1.621,0.369,2.294l0.415,0.533
c0.684,0.916,0.941,3.983-0.587,9.663c-0.308,1.854-0.998,3.357-2.008,4.355c-0.369,0.394-0.608,0.909-0.712,1.492
c-2.541,14.87-15.869,31.497-29.905,31.497c-11.928,0-25.528-15.303-27.983-31.487c-0.082-0.583-0.322-1.109-0.744-1.568
c-1.024-1.056-1.671-2.577-2.069-4.839C43.437,59.479,43.315,56.054,44.249,54.626z" fill="url(#goldGradient)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.0 KiB

+16
View File
@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='iso-8859-1'?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" height="800px" width="800px" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 463.001 463.001" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 463.001 463.001">
<defs>
<linearGradient id="goldGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#FACC97;stop-opacity:1" />
<stop offset="100%" style="stop-color:#54330F;stop-opacity:1" />
</linearGradient>
</defs>
<g>
<g>
<path d="m441.044,308.903c-3.285-8.994-10.277-15.956-19.184-19.102-8.9-3.145-18.637-2.163-26.706,2.69l-78.169,46.902-10.752,4.607h-56.404c-0.691,0-1.077-0.386-1.278-0.71-0.202-0.324-0.379-0.841-0.073-1.46 0.174-0.354 0.474-0.622 0.845-0.754l42.802-15.295c16.563-5.566 26.054-22.511 21.614-38.615-2.33-8.452-7.861-15.368-15.573-19.475-7.594-4.044-16.624-4.798-24.766-2.071l-44.166,14.719-115.97,7.733c-7.614,0.508-14.778,3.759-20.173,9.154l-63.084,63.083c-12.102,12.102-13.223,31.298-2.553,43.701 2.82,3.279 14.975,14.926 33.195,32.322 10.618,10.137 20.646,19.711 25.407,24.472 1.458,1.458 3.378,2.197 5.306,2.197 1.698,0 3.403-0.575 4.8-1.738l34.649-28.875c7.263-6.053 16.471-9.387 25.927-9.387h118.622c4.294,0 8.473-0.857 12.42-2.549l55.987-23.995c0.156-0.067 0.31-0.139 0.46-0.216l2.842-1.453c0.151-0.077 0.3-0.159 0.444-0.247l79.285-47.571c13.38-8.028 19.371-24.037 14.246-38.067zm-21.962,25.204l-79.067,47.44-2.39,1.222-55.753,23.895c-2.069,0.887-4.261,1.336-6.512,1.336h-118.622c-12.958,0-25.576,4.568-35.53,12.864l-29.436,24.53c-5.38-5.224-12.912-12.415-20.765-19.912-13.202-12.604-29.632-28.289-32.183-31.255-5.488-6.379-4.686-16.837 1.789-23.312l63.084-63.084c2.824-2.825 6.576-4.527 10.563-4.793l116.93-7.797c0.638-0.042 1.267-0.166 1.872-0.368l45.088-15.027c1.724-0.577 3.49-0.863 5.247-0.863 2.656,0 5.289,0.654 7.716,1.946 4.04,2.152 6.939,5.782 8.163,10.223 2.288,8.298-3.086,17.461-11.979,20.425-0.051,0.017-0.102,0.035-0.151,0.053l-42.872,15.32c-4.063,1.452-7.35,4.384-9.256,8.256-2.534,5.152-2.236,11.137 0.798,16.011 3.034,4.874 8.272,7.783 14.013,7.783h57.943c1.016,0 2.021-0.206 2.954-0.606l12.635-5.414c0.312-0.133 0.614-0.288 0.904-0.462l78.612-47.168c4.224-2.542 9.32-3.052 13.986-1.405 4.737,1.674 8.321,5.262 10.09,10.105 2.62,7.17-0.764,15.793-7.871,20.057z" fill="url(#goldGradient)"/>
<path d="m283.86,222.171v17.329c0,4.142 3.357,7.5 7.5,7.5s7.5-3.358 7.5-7.5v-23.144c0-0.003 0-0.007 0-0.01v-35.026c72.319-10.024 129.001-68.702 135.967-141.961 0.211-2.227-0.582-4.432-2.163-6.013-1.582-1.583-3.791-2.378-6.014-2.163-56.453,5.368-104.245,40.259-127.79,89.077v-88.76c0-9.098 7.401-16.5 16.5-16.5 4.143,0 7.5-3.358 7.5-7.5s-3.357-7.5-7.5-7.5c-17.369,0-31.5,14.131-31.5,31.5v28.212c-15.596-24.116-41.665-40.814-71.79-43.678-2.224-0.212-4.433,0.581-6.014,2.163-1.581,1.582-2.374,3.787-2.163,6.013 4.147,43.615 37.298,78.706 79.967,85.844v51.058c-23.546-48.818-71.337-83.711-127.79-89.078-2.227-0.214-4.432,0.581-6.014,2.163-1.581,1.582-2.374,3.787-2.163,6.013 6.966,73.259 63.648,131.936 135.967,141.961zm-63.519-189.691c30.938,6.768 55.271,31.101 62.039,62.04-30.94-6.768-55.273-31.101-62.039-62.04zm198.349,14.839c-9.04,55.857-50.24,100.852-104.009,115.466l61.982-61.982c2.929-2.929 2.929-7.678 0-10.606-2.93-2.929-7.678-2.929-10.607,0l-63.451,63.451c13.935-54.904 59.426-97.159 116.085-106.329zm-138.575,147.179l-63.451-63.451c-2.93-2.929-7.678-2.929-10.607,0s-2.929,7.678 0,10.606l61.982,61.982c-53.77-14.615-94.969-59.61-104.009-115.466 56.658,9.17 102.15,51.426 116.085,106.329z" fill="url(#goldGradient)"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

+4
View File
@@ -2,6 +2,7 @@ import Navbar from "../Components/Navbar/Navbar";
import Hero from "../Components/Pages/Hero/Hero";
import Services from "../Components/Pages/Services/Services";
import ResultsPage from "../Components/Pages/Results/ResultsPage";
import Optimization from "../Components/Pages/Optimization/Optimization";
import ContactPage from "../Components/Pages/Contact/ContactPage";
import Footer from "../Components/Footer/Footer";
@@ -13,6 +14,9 @@ const Home = () => {
<div id="Services">
<Services />
</div>
<div id="Optimization">
<Optimization />
</div>
<div id="Advantages">
<ResultsPage />
</div>