forked from M3-Academy/desafio-react-e-typescript
feat: cria componente das midias sociais do footer #5
@ -13,6 +13,7 @@
|
||||
"node-sass": "^8.0.0",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-headless-accordion": "^1.0.2",
|
||||
"react-scripts": "5.0.1",
|
||||
"typescript": "^4.4.2",
|
||||
"web-vitals": "^2.1.0"
|
||||
|
@ -1,9 +0,0 @@
|
||||
import React from "react";
|
||||
import { AccordionSection } from "./AccordionSection";
|
||||
|
||||
// trocar para "menu fotter"
|
||||
export const Accordion = () => {
|
||||
return (
|
||||
<div></div>
|
||||
);
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
import React from "react";
|
||||
|
||||
export const AccordionSection = () => {
|
||||
|
||||
return (
|
||||
<div >
|
||||
|
||||
</div>
|
||||
);
|
||||
|
||||
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
import React from "react";
|
||||
|
||||
export const MenuFotter = () => {
|
||||
|
||||
}
|
29
src/components/Footer/SocialMedia/SocialMedia.module.scss
Normal file
29
src/components/Footer/SocialMedia/SocialMedia.module.scss
Normal file
@ -0,0 +1,29 @@
|
||||
.wrapper {
|
||||
&__social__media {
|
||||
display: flex;
|
||||
column-gap: 10px;
|
||||
width: 100%;
|
||||
max-width: 215px;
|
||||
|
||||
@media (min-width: 2500px) {
|
||||
max-width: 390px;
|
||||
|
||||
}
|
||||
|
||||
li {
|
||||
a {
|
||||
img {
|
||||
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
|
||||
@media (min-width: 2500px) {
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
46
src/components/Footer/SocialMedia/SocialMedia.tsx
Normal file
46
src/components/Footer/SocialMedia/SocialMedia.tsx
Normal file
@ -0,0 +1,46 @@
|
||||
import React from "react";
|
||||
import { IconLink } from "../../utils/IconLink";
|
||||
|
||||
import facebook from "./assets/svgs/facebook.svg";
|
||||
import instagram from "./assets/svgs/instagram.svg";
|
||||
import twitter from "./assets/svgs/twitter.svg";
|
||||
import youtube from "./assets/svgs/youtube.svg";
|
||||
import linkedin from "./assets/svgs/linkedin.svg";
|
||||
|
||||
import styleSocialMedia from "./SocialMedia.module.scss";
|
||||
|
||||
export const SocialMedia = () => {
|
||||
|
||||
return (
|
||||
|
||||
<div className={styleSocialMedia["wrapper"]}>
|
||||
<div className={styleSocialMedia["wrapper__social__media"]}>
|
||||
<IconLink link={""}
|
||||
sourceImg={facebook}
|
||||
altText="Logo da rede social "
|
||||
/>
|
||||
<IconLink link={""}
|
||||
sourceImg={instagram}
|
||||
altText="Logo da rede social "
|
||||
/>
|
||||
<IconLink link={""}
|
||||
sourceImg={twitter}
|
||||
altText="Logo da rede social "
|
||||
/>
|
||||
<IconLink link={""}
|
||||
sourceImg={youtube}
|
||||
altText="Logo da rede social "
|
||||
/>
|
||||
<IconLink link={""}
|
||||
sourceImg={linkedin}
|
||||
altText="Logo da rede social "
|
||||
/>
|
||||
</div >
|
||||
<div>
|
||||
<a href="www.loremipsum.com">
|
||||
www.loremipsum.com
|
||||
</a>
|
||||
</div>
|
||||
</div >
|
||||
)
|
||||
}
|
11
src/components/Footer/SocialMedia/assets/svgs/facebook.svg
Normal file
11
src/components/Footer/SocialMedia/assets/svgs/facebook.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<svg width="70" height="71" viewBox="0 0 70 71" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_6470_313)">
|
||||
<path d="M38.3557 55.2232V37.329H44.3468L45.2457 30.3532H38.3557V25.9002C38.3557 23.8812 38.9129 22.5052 41.8052 22.5052L45.4882 22.5037V16.2643C44.8513 16.1814 42.665 15.9912 40.1204 15.9912C34.8068 15.9912 31.1691 19.2415 31.1691 25.2093V30.3532H25.1598V37.329H31.1691V55.2232H38.3557Z" fill="#303030"/>
|
||||
</g>
|
||||
<circle cx="35" cy="35.2412" r="34" stroke="#303030" stroke-width="2"/>
|
||||
<defs>
|
||||
<clipPath id="clip0_6470_313">
|
||||
<rect width="39.148" height="39.232" fill="white" transform="translate(15.75 15.9912)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 670 B |
13
src/components/Footer/SocialMedia/assets/svgs/instagram.svg
Normal file
13
src/components/Footer/SocialMedia/assets/svgs/instagram.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<svg width="70" height="71" viewBox="0 0 70 71" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_6470_318)">
|
||||
<path d="M44.1992 15.9912H26.5932C20.6143 15.9912 15.75 20.8481 15.75 26.8178V44.3965C15.75 50.3663 20.6143 55.223 26.5932 55.223H44.1992C50.1786 55.223 55.0429 50.3661 55.0429 44.3965V26.8178C55.0431 20.8481 50.1786 15.9912 44.1992 15.9912ZM51.5568 44.3965C51.5568 48.447 48.2563 51.7422 44.1994 51.7422H26.5932C22.5366 51.7424 19.2363 48.447 19.2363 44.3965V26.8178C19.2363 22.7675 22.5366 19.472 26.5932 19.472H44.1992C48.2561 19.472 51.5566 22.7675 51.5566 26.8178V44.3965H51.5568Z" fill="#303030"/>
|
||||
<path d="M35.3965 25.4987C29.8136 25.4987 25.2717 30.0335 25.2717 35.6077C25.2717 41.1817 29.8136 45.7163 35.3965 45.7163C40.9794 45.7163 45.5213 41.1817 45.5213 35.6077C45.5213 30.0335 40.9794 25.4987 35.3965 25.4987ZM35.3965 42.2352C31.7362 42.2352 28.758 39.2621 28.758 35.6075C28.758 31.9526 31.7359 28.9793 35.3965 28.9793C39.0571 28.9793 42.035 31.9526 42.035 35.6075C42.035 39.2621 39.0568 42.2352 35.3965 42.2352Z" fill="#303030"/>
|
||||
<path d="M45.9459 22.5472C45.2742 22.5472 44.6144 22.8187 44.14 23.2945C43.6633 23.7679 43.3893 24.4269 43.3893 25.0999C43.3893 25.7707 43.6635 26.4295 44.14 26.9052C44.6141 27.3786 45.2742 27.6525 45.9459 27.6525C46.6199 27.6525 47.2776 27.3786 47.7541 26.9052C48.2305 26.4295 48.5024 25.7705 48.5024 25.0999C48.5024 24.4269 48.2305 23.7679 47.7541 23.2945C47.2799 22.8187 46.6199 22.5472 45.9459 22.5472Z" fill="#303030"/>
|
||||
</g>
|
||||
<circle cx="35" cy="35.2412" r="34" stroke="#303030" stroke-width="2"/>
|
||||
<defs>
|
||||
<clipPath id="clip0_6470_318">
|
||||
<rect width="39.2931" height="39.232" fill="white" transform="translate(15.75 15.9912)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
13
src/components/Footer/SocialMedia/assets/svgs/linkedin.svg
Normal file
13
src/components/Footer/SocialMedia/assets/svgs/linkedin.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<svg width="70" height="71" viewBox="0 0 70 71" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="35" cy="35.2412" r="34" stroke="#303030" stroke-width="2"/>
|
||||
<g clip-path="url(#clip0_6470_333)">
|
||||
<path d="M26.8893 27.9594H20.5962C20.3169 27.9594 20.0906 28.1858 20.0906 28.465V48.6821C20.0906 48.9614 20.3169 49.1877 20.5962 49.1877H26.8893C27.1686 49.1877 27.3949 48.9614 27.3949 48.6821V28.465C27.3949 28.1858 27.1686 27.9594 26.8893 27.9594Z" fill="#303030"/>
|
||||
<path d="M23.7451 17.9089C21.4553 17.9089 19.5924 19.7698 19.5924 22.0571C19.5924 24.3454 21.4553 26.2069 23.7451 26.2069C26.0331 26.2069 27.8944 24.3453 27.8944 22.0571C27.8945 19.7698 26.0331 17.9089 23.7451 17.9089Z" fill="#303030"/>
|
||||
<path d="M42.8963 27.4569C40.3688 27.4569 38.5004 28.5435 37.3671 29.7781V28.465C37.3671 28.1858 37.1408 27.9594 36.8615 27.9594H30.8347C30.5554 27.9594 30.3291 28.1858 30.3291 28.465V48.6821C30.3291 48.9614 30.5554 49.1877 30.8347 49.1877H37.1141C37.3934 49.1877 37.6197 48.9614 37.6197 48.6821V38.6793C37.6197 35.3086 38.5353 33.9955 40.8849 33.9955C43.4439 33.9955 43.6473 36.1006 43.6473 38.8528V48.6822C43.6473 48.9615 43.8736 49.1878 44.1529 49.1878H50.4346C50.7139 49.1878 50.9402 48.9615 50.9402 48.6822V37.5928C50.9402 32.5807 49.9845 27.4569 42.8963 27.4569Z" fill="#303030"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_6470_333">
|
||||
<rect width="31.3478" height="31.3478" fill="white" transform="translate(19.5924 17.8744)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
@ -0,0 +1,4 @@
|
||||
<svg width="70" height="71" viewBox="0 0 70 71" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="35" cy="35.2412" r="34" stroke="#303030" stroke-width="2"/>
|
||||
<path d="M59.9828 20.554C58.1893 21.3407 56.2783 21.8622 54.2859 22.1154C56.3356 20.8916 57.9 18.9686 58.6354 16.6506C56.7244 17.79 54.6145 18.5948 52.3659 19.0439C50.5513 17.1118 47.9651 15.9152 45.1438 15.9152C39.67 15.9152 35.2632 20.3581 35.2632 25.8048C35.2632 26.5885 35.3295 27.342 35.4923 28.0594C27.2725 27.6585 19.9992 23.719 15.1132 17.7177C14.2602 19.1976 13.7598 20.8916 13.7598 22.7152C13.7598 26.1394 15.5231 29.1747 18.1515 30.932C16.563 30.9018 15.0047 30.4407 13.6845 29.7142C13.6845 29.7444 13.6845 29.7836 13.6845 29.8227C13.6845 34.6274 17.1116 38.6182 21.6058 39.5376C20.801 39.7576 19.9239 39.8631 19.0136 39.8631C18.3806 39.8631 17.7416 39.8269 17.1418 39.6943C18.4228 43.6098 22.058 46.4883 26.3803 46.5818C23.0165 49.2132 18.7453 50.7987 14.1215 50.7987C13.3107 50.7987 12.533 50.7625 11.7554 50.663C16.135 53.4873 21.3255 55.0999 26.9229 55.0999C45.1167 55.0999 55.0636 40.0289 55.0636 26.9653C55.0636 26.5282 55.0485 26.1062 55.0274 25.6872C56.9897 24.2947 58.6385 22.5555 59.9828 20.554Z" fill="#303030"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
@ -0,0 +1,4 @@
|
||||
<svg width="70" height="71" viewBox="0 0 70 71" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="35" cy="35.2412" r="34" stroke="#303030" stroke-width="2"/>
|
||||
<path d="M55.6054 24.7388C55.0895 22.8207 53.5772 21.3087 51.6594 20.7922C48.1558 19.8336 34.1412 19.8336 34.1412 19.8336C34.1412 19.8336 20.1271 19.8336 16.6235 20.7559C14.7426 21.2718 13.1934 22.821 12.6775 24.7388C11.7555 28.2421 11.7555 35.5075 11.7555 35.5075C11.7555 35.5075 11.7555 42.8096 12.6775 46.2763C13.194 48.1941 14.7057 49.7061 16.6238 50.2225C20.164 51.1814 34.1417 51.1814 34.1417 51.1814C34.1417 51.1814 48.1558 51.1814 51.6594 50.2592C53.5775 49.743 55.0895 48.231 55.6059 46.3132C56.5277 42.8096 56.5277 35.5444 56.5277 35.5444C56.5277 35.5444 56.5646 28.2421 55.6054 24.7388ZM29.6792 42.2196V28.7955L41.3331 35.5075L29.6792 42.2196Z" fill="#303030"/>
|
||||
</svg>
|
After Width: | Height: | Size: 848 B |
@ -16,9 +16,7 @@ export const HeaderMobile = () => {
|
||||
<div className={styleHeader["header__mobile"]}>
|
||||
<div className={styleHeader["mobile__wrapper"]} >
|
||||
<div className={styleHeader["wrapper__icon-burger"]}>
|
||||
|
||||
<img src={burguerIcon} alt="Menu Hamburguer" onClick={() => setisOpenMenu(true)} />
|
||||
|
||||
</div>
|
||||
<div className={styleHeader["container__logo"]}>
|
||||
< img src={logo} alt="Logo M3" className={styleHeader["container__logo__img"]} />
|
||||
|
19
src/components/utils/IconLink.tsx
Normal file
19
src/components/utils/IconLink.tsx
Normal file
@ -0,0 +1,19 @@
|
||||
import React from 'react';
|
||||
|
||||
|
||||
interface IconLink {
|
||||
link: string;
|
||||
sourceImg: string;
|
||||
altText: string;
|
||||
}
|
||||
export const IconLink = ({ link, sourceImg, altText }: IconLink) => {
|
||||
return (
|
||||
<li>
|
||||
<a href={link}>
|
||||
<img src={sourceImg} alt={altText} />
|
||||
</a>
|
||||
</li>
|
||||
)
|
||||
|
||||
}
|
||||
|
19
src/components/utils/ListItem.tsx
Normal file
19
src/components/utils/ListItem.tsx
Normal file
@ -0,0 +1,19 @@
|
||||
import React from 'react';
|
||||
|
||||
|
||||
|
||||
interface ListItemProps {
|
||||
link?: string;
|
||||
title: string;
|
||||
}
|
||||
export const ListItem = ({ link, title }: ListItemProps) => {
|
||||
return (
|
||||
<li>
|
||||
<a href={link}>
|
||||
{title}
|
||||
</a>
|
||||
</li>
|
||||
)
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
import React from "react";
|
||||
import { Rodape } from "../components/Footer/Rodape/Rodape";
|
||||
import { SocialMedia } from "../components/Footer/SocialMedia/SocialMedia";
|
||||
import { Header } from "../components/Header/Header";
|
||||
import { NewsLetter } from "../components/NewsLetter/NewsLetter";
|
||||
|
||||
@ -8,7 +9,7 @@ export const Home = () => {
|
||||
return (
|
||||
<>
|
||||
<Header />
|
||||
|
||||
<SocialMedia />
|
||||
<NewsLetter />
|
||||
<Rodape />
|
||||
</>
|
||||
|
@ -8061,6 +8061,11 @@ react-error-overlay@^6.0.11:
|
||||
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb"
|
||||
integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==
|
||||
|
||||
react-headless-accordion@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/react-headless-accordion/-/react-headless-accordion-1.0.2.tgz#df45168fc379a9014bd7becc2f4be100af456b6e"
|
||||
integrity sha512-wKBTB/+aAr9MGX5RYi3sdmKOSzevKdmbGRw9JTe7XONiHlTo+pC1OiggL9NUxp5QeQcTnX0rryhuySeGsqBfBg==
|
||||
|
||||
react-is@^16.13.1:
|
||||
version "16.13.1"
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
|
||||
|
Loading…
Reference in New Issue
Block a user