Merge pull request 'feature/pagina-institucional' (#1) from feature/pagina-institucional into main

Reviewed-on: #1
This commit is contained in:
Leonardo Pereira Rocha 2023-01-21 01:45:44 +00:00
commit 68c3a2eaf9
65 changed files with 31865 additions and 0 deletions

23
pagina-institucional/.gitignore vendored Normal file
View File

@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

View File

@ -0,0 +1,46 @@
# Getting Started with Create React App
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
## Available Scripts
In the project directory, you can run:
### `npm start`
Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
The page will reload if you make edits.\
You will also see any lint errors in the console.
### `npm test`
Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
### `npm run build`
Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
### `npm run eject`
**Note: this is a one-way operation. Once you `eject`, you cant go back!**
If you arent satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point youre on your own.
You dont have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldnt feel obligated to use this feature. However we understand that this tool wouldnt be useful if you couldnt customize it when you are ready for it.
## Learn More
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
To learn React, check out the [React documentation](https://reactjs.org/).

29182
pagina-institucional/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,49 @@
{
"name": "pagina-institucional",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.2",
"@types/node": "^16.18.11",
"@types/react": "^18.0.26",
"@types/react-dom": "^18.0.10",
"formik": "^2.2.9",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.6.1",
"react-scripts": "5.0.1",
"sass": "^1.57.1",
"scss": "^0.2.4",
"typescript": "^4.9.4",
"web-vitals": "^2.1.4",
"yarn": "^1.22.19",
"yup": "^0.32.11"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

View File

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap"
rel="stylesheet"
/>
<title>Pagina Institucional</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
</body>
</html>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 92 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 25 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -0,0 +1,3 @@
<svg width="1" height="285" viewBox="0 0 1 285" fill="none" xmlns="http://www.w3.org/2000/svg">
<line x1="0.5" x2="0.5" y2="285" stroke="black"/>
</svg>

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 729 B

View File

@ -0,0 +1,4 @@
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.2284 1.28215L1.22996 10.9942C0.550673 11.6541 0.568968 12.7044 1.27083 13.3401C1.97268 13.9759 3.09232 13.9564 3.77161 13.2966L13.77 3.58449C14.4493 2.92466 14.431 1.87436 13.7292 1.23858C13.0273 0.602806 11.9077 0.622311 11.2284 1.28215Z" fill="white"/>
<path d="M1.65213 3.40819L10.8751 13.7186C11.5082 14.4263 12.6262 14.5239 13.3724 13.9366C14.1185 13.3493 14.2102 12.2995 13.5771 11.5918L4.35414 1.28143C3.72107 0.573715 2.603 0.476092 1.85686 1.06338C1.11072 1.65067 1.01906 2.70048 1.65213 3.40819Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 638 B

View File

@ -0,0 +1,3 @@
<svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M34 17C34 26.3888 26.3888 34 17 34C7.61116 34 0 26.3888 0 17C0 7.61116 7.61116 0 17 0C26.3888 0 34 7.61116 34 17Z" fill="#C4C4C4"/>
</svg>

After

Width:  |  Height:  |  Size: 244 B

View File

@ -0,0 +1,16 @@
<svg width="35" height="35" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_7363_746)">
<g clip-path="url(#clip1_7363_746)">
<path d="M19.1778 27.4911V18.544H22.1734L22.6228 15.0561H19.1778V12.8296C19.1778 11.8201 19.4564 11.1321 20.9026 11.1321L22.744 11.1314V8.01168C22.4256 7.97021 21.3324 7.87512 20.0601 7.87512C17.4033 7.87512 15.5845 9.50028 15.5845 12.4842V15.0561H12.5798V18.544H15.5845V27.4911H19.1778Z" fill="#303030"/>
</g>
<circle cx="17.5" cy="17.5" r="16.5" stroke="#303030" stroke-width="2"/>
</g>
<defs>
<clipPath id="clip0_7363_746">
<rect width="35" height="35" fill="white"/>
</clipPath>
<clipPath id="clip1_7363_746">
<rect width="19.574" height="19.616" fill="white" transform="translate(7.875 7.87509)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 800 B

View File

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15.8327 7.59562L14.6904 6.4533L8.40443 0.167326C8.1813 -0.0557753 7.81954 -0.0557753 7.59641 0.167326L1.3104 6.4533L0.167503 7.59623C-0.0517478 7.82324 -0.0454864 8.185 0.181532 8.40425C0.402993 8.61814 0.754068 8.61814 0.975529 8.40425L1.14238 8.23623V15.4285C1.14238 15.7442 1.39823 16 1.71384 16H14.2858C14.6014 16 14.8573 15.7442 14.8573 15.4285V8.23623L15.0247 8.40368C15.2517 8.62293 15.6135 8.61664 15.8327 8.38965C16.0466 8.16819 16.0466 7.81708 15.8327 7.59562ZM9.71421 14.8571H6.28549V10.2855H9.71421V14.8571ZM13.7144 14.8571H10.8571V9.71403C10.8571 9.39841 10.6013 9.14256 10.2856 9.14256H5.71403C5.39841 9.14256 5.14256 9.39841 5.14256 9.71403V14.8571H2.28531V7.09334L7.99982 1.3788L13.7144 7.09334V14.8571Z" fill="#C4C4C4"/>
</svg>

After

Width:  |  Height:  |  Size: 851 B

View File

@ -0,0 +1,18 @@
<svg width="35" height="35" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_7363_751)">
<g clip-path="url(#clip1_7363_751)">
<path d="M22.0996 7.87509H13.2966C10.3071 7.87509 7.875 10.3036 7.875 13.2884V22.0777C7.875 25.0626 10.3071 27.491 13.2966 27.491H22.0996C25.0893 27.491 27.5214 25.0625 27.5214 22.0777V13.2884C27.5215 10.3036 25.0893 7.87509 22.0996 7.87509ZM25.7784 22.0777C25.7784 24.103 24.1281 25.7506 22.0997 25.7506H13.2966C11.2683 25.7507 9.61813 24.103 9.61813 22.0777V13.2884C9.61813 11.2632 11.2683 9.61551 13.2966 9.61551H22.0996C24.128 9.61551 25.7783 11.2632 25.7783 13.2884V22.0777H25.7784Z" fill="#303030"/>
<path d="M17.6981 12.6288C14.9067 12.6288 12.6357 14.8962 12.6357 17.6833C12.6357 20.4703 14.9067 22.7376 17.6981 22.7376C20.4896 22.7376 22.7605 20.4703 22.7605 17.6833C22.7605 14.8962 20.4896 12.6288 17.6981 12.6288ZM17.6981 20.9971C15.868 20.9971 14.3789 19.5105 14.3789 17.6832C14.3789 15.8558 15.8678 14.3691 17.6981 14.3691C19.5284 14.3691 21.0174 15.8558 21.0174 17.6832C21.0174 19.5105 19.5283 20.9971 17.6981 20.9971Z" fill="#303030"/>
<path d="M22.9729 11.1531C22.637 11.1531 22.3071 11.2889 22.0699 11.5267C21.8316 11.7634 21.6946 12.0929 21.6946 12.4294C21.6946 12.7648 21.8317 13.0943 22.0699 13.3321C22.307 13.5688 22.637 13.7057 22.9729 13.7057C23.3099 13.7057 23.6387 13.5688 23.877 13.3321C24.1152 13.0943 24.2512 12.7647 24.2512 12.4294C24.2512 12.0929 24.1152 11.7634 23.877 11.5267C23.6399 11.2889 23.3099 11.1531 22.9729 11.1531Z" fill="#303030"/>
</g>
<circle cx="17.5" cy="17.5" r="16.5" stroke="#303030" stroke-width="2"/>
</g>
<defs>
<clipPath id="clip0_7363_751">
<rect width="35" height="35" fill="white"/>
</clipPath>
<clipPath id="clip1_7363_751">
<rect width="19.6465" height="19.616" fill="white" transform="translate(7.875 7.87509)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,18 @@
<svg width="35" height="35" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_7363_766)">
<circle cx="17.5" cy="17.5" r="16.5" stroke="#303030" stroke-width="2"/>
<g clip-path="url(#clip1_7363_766)">
<path d="M13.4445 13.8592H10.298C10.1583 13.8592 10.0452 13.9724 10.0452 14.112V24.2205C10.0452 24.3602 10.1583 24.4733 10.298 24.4733H13.4445C13.5842 24.4733 13.6973 24.3602 13.6973 24.2205V14.112C13.6973 13.9724 13.5842 13.8592 13.4445 13.8592Z" fill="#303030"/>
<path d="M11.8725 8.83395C10.7276 8.83395 9.79614 9.76438 9.79614 10.908C9.79614 12.0522 10.7276 12.9829 11.8725 12.9829C13.0165 12.9829 13.9472 12.0521 13.9472 10.908C13.9472 9.76438 13.0165 8.83395 11.8725 8.83395Z" fill="#303030"/>
<path d="M21.4482 13.6079C20.1844 13.6079 19.2502 14.1512 18.6835 14.7685V14.112C18.6835 13.9724 18.5704 13.8592 18.4307 13.8592H15.4174C15.2777 13.8592 15.1646 13.9724 15.1646 14.112V24.2206C15.1646 24.3602 15.2777 24.4734 15.4174 24.4734H18.557C18.6967 24.4734 18.8098 24.3602 18.8098 24.2206V19.2192C18.8098 17.5338 19.2676 16.8772 20.4425 16.8772C21.722 16.8772 21.8236 17.9298 21.8236 19.3059V24.2206C21.8236 24.3603 21.9368 24.4734 22.0764 24.4734H25.2173C25.3569 24.4734 25.4701 24.3603 25.4701 24.2206V18.6759C25.4701 16.1698 24.9922 13.6079 21.4482 13.6079Z" fill="#303030"/>
</g>
</g>
<defs>
<clipPath id="clip0_7363_766">
<rect width="35" height="35" fill="white"/>
</clipPath>
<clipPath id="clip1_7363_766">
<rect width="15.6739" height="15.6739" fill="white" transform="translate(9.79614 8.81671)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,4 @@
<svg width="29" height="16" viewBox="0 0 29 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.0306 5.52931C16.5832 4.9359 16.0212 4.44241 15.3793 4.07933C14.7375 3.71625 14.0295 3.4913 13.2991 3.41838C12.5687 3.34547 11.8314 3.42614 11.1327 3.6554C10.4341 3.88467 9.78893 4.25766 9.23719 4.75133L8.76053 4.38179C5.48585 2.02839 0.900357 4.02683 0.471361 8.05776C0.340858 9.99972 0.307448 11.9472 0.371262 13.8926C0.360734 14.1423 0.40062 14.3915 0.488442 14.6247C0.576265 14.858 0.71015 15.0704 0.881788 15.2486C1.05343 15.4269 1.25915 15.5673 1.4862 15.6611C1.71325 15.7549 1.95677 15.8001 2.20165 15.7938C2.44131 15.7928 2.67828 15.7423 2.89833 15.6455C3.11838 15.5486 3.31697 15.4074 3.48215 15.2302C3.64733 15.0531 3.77571 14.8437 3.85955 14.6147C3.9434 14.3857 3.98099 14.1417 3.97007 13.8975C3.97007 12.4971 3.97007 11.0968 3.97007 9.69153C3.96621 9.27493 3.9949 8.85869 4.05587 8.44675C4.13275 8.02513 4.36328 7.64884 4.70108 7.39355C5.03889 7.13826 5.45893 7.02291 5.87672 7.07069C6.28512 7.1021 6.66826 7.28439 6.95433 7.58336C7.2404 7.88234 7.40975 8.27749 7.43064 8.69473C7.45447 9.21015 7.43064 9.72556 7.43064 10.241C7.43064 11.4955 7.43064 12.75 7.43064 14.0045C7.42574 14.3683 7.53183 14.7248 7.73422 15.0244C7.93661 15.3241 8.22529 15.5522 8.56033 15.6771C9.77582 16.1926 11.0151 15.2881 11.039 13.8635C11.039 12.2054 11.039 10.5473 11.0866 8.88923C11.1027 8.48841 11.2228 8.09913 11.4346 7.76115C11.6363 7.46313 11.9286 7.24117 12.2663 7.12955C12.6041 7.01794 12.9684 7.02288 13.3031 7.14363C13.6807 7.25157 14.0107 7.48779 14.2387 7.8132C14.4667 8.1386 14.5789 8.53367 14.5567 8.93299C14.5567 10.6105 14.5567 12.288 14.5567 13.9656C14.5567 14.2063 14.6032 14.4447 14.6935 14.6671C14.7838 14.8895 14.9162 15.0916 15.0831 15.2618C15.2499 15.432 15.4481 15.567 15.6661 15.6592C15.8841 15.7513 16.1178 15.7987 16.3538 15.7987C16.5898 15.7987 16.8234 15.7513 17.0415 15.6592C17.2595 15.567 17.4576 15.432 17.6244 15.2618C17.7913 15.0916 17.9237 14.8895 18.014 14.6671C18.1043 14.4447 18.1508 14.2063 18.1508 13.9656C18.1508 12.2491 18.1508 10.5619 18.1508 8.82116C18.154 7.62606 17.7591 6.46532 17.0306 5.52931Z" fill="white"/>
<path d="M26.0349 6.5015L25.4676 6.26325C26.0301 5.8159 26.564 5.43177 27.0406 4.99416C27.4641 4.65403 27.8297 4.24496 28.1227 3.78342C28.9806 2.14966 27.7699 0.248458 25.849 0.204696C24.0758 0.180384 22.3074 0.180384 20.5342 0.180384C20.317 0.165073 20.0991 0.19678 19.8947 0.273425C19.6904 0.350069 19.5042 0.46992 19.3485 0.625113C19.1928 0.780306 19.071 0.967335 18.9911 1.17393C18.9112 1.38052 18.875 1.60202 18.8849 1.82387C18.8637 2.04985 18.8909 2.27783 18.9646 2.49201C19.0384 2.7062 19.1569 2.90146 19.312 3.06428C19.467 3.22709 19.655 3.35356 19.8627 3.43492C20.0705 3.51627 20.2931 3.55057 20.5151 3.53544C21.3826 3.53544 22.2502 3.53544 23.1177 3.53544C23.2655 3.58406 23.418 3.58406 23.704 3.58406C22.5266 4.55654 21.4398 5.4804 20.3673 6.39453C19.6762 6.97802 19.4665 7.61499 19.7096 8.33949C19.8387 8.6971 20.0793 9.00161 20.3944 9.20627C20.7096 9.41093 21.0819 9.50443 21.4541 9.47243C22.3741 9.47243 23.2988 9.47243 24.2188 9.47243C24.4251 9.43352 24.6373 9.44139 24.8403 9.4955C25.0433 9.54961 25.2321 9.64862 25.3934 9.78551C25.5547 9.92241 25.6845 10.0938 25.7735 10.2876C25.8626 10.4814 25.9088 10.6928 25.9088 10.9068C25.9088 11.1209 25.8626 11.3323 25.7735 11.5261C25.6845 11.7198 25.5547 11.8913 25.3934 12.0282C25.2321 12.1651 25.0433 12.2641 24.8403 12.3182C24.6373 12.3723 24.4251 12.3802 24.2188 12.3412C23.0271 12.3412 21.8355 12.3412 20.6438 12.3412C20.2261 12.3643 19.8329 12.5498 19.5452 12.8596C19.2575 13.1694 19.0971 13.5799 19.0971 14.0066C19.0971 14.4334 19.2575 14.8439 19.5452 15.1537C19.8329 15.4635 20.2261 15.649 20.6438 15.672C21.8879 15.672 23.1368 15.672 24.3808 15.672C25.4737 15.6437 26.5238 15.2331 27.3552 14.5089C28.1866 13.7848 28.7487 12.7912 28.9473 11.6945C29.1056 10.6209 28.9042 9.52417 28.3757 8.58176C27.8472 7.63936 27.0224 6.90642 26.0349 6.5015Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 935 B

View File

@ -0,0 +1,3 @@
<svg width="13" height="7" viewBox="0 0 13 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.6 6.13647C12.5989 6.24898 12.5519 6.36118 12.4588 6.44888L12.4587 6.44902C12.2574 6.63896 11.9216 6.63894 11.7204 6.44903L11.7204 6.44902L6.7744 1.78259L6.4999 1.5236L6.2254 1.78259L1.27968 6.44882C1.27966 6.44884 1.27964 6.44886 1.27962 6.44888C1.07811 6.63886 0.742449 6.63877 0.541181 6.44888L0.541122 6.44882C0.448342 6.36133 0.401297 6.24944 0.400026 6.13719C0.401078 6.02468 0.448119 5.91242 0.541189 5.82462L0.541192 5.82461L6.13082 0.550956C6.13085 0.550933 6.13087 0.55091 6.13089 0.550887C6.22923 0.458193 6.36162 0.408533 6.49988 0.408533C6.63821 0.408533 6.77079 0.458327 6.86907 0.55102C6.86908 0.551029 6.86909 0.551037 6.8691 0.551047L12.4587 5.82475L12.4588 5.82482C12.5516 5.9124 12.5987 6.02428 12.6 6.13647Z" fill="white" stroke="white" stroke-width="0.8"/>
</svg>

After

Width:  |  Height:  |  Size: 891 B

View File

@ -0,0 +1,11 @@
<svg width="35" height="35" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_7363_758)">
<circle cx="17.5" cy="17.5" r="16.5" stroke="#303030" stroke-width="2"/>
<path d="M29.9914 10.1563C29.0947 10.5497 28.1392 10.8104 27.143 10.937C28.1678 10.3251 28.95 9.36358 29.3177 8.20462C28.3622 8.7743 27.3072 9.1767 26.1829 9.40126C25.2757 8.43521 23.9826 7.83688 22.5719 7.83688C19.835 7.83688 17.6316 10.0584 17.6316 12.7817C17.6316 13.1735 17.6648 13.5503 17.7462 13.909C13.6363 13.7086 9.99962 11.7388 7.5566 8.73813C7.13009 9.47812 6.87991 10.3251 6.87991 11.2369C6.87991 12.949 7.76157 14.4666 9.07577 15.3453C8.28152 15.3302 7.50235 15.0996 6.84223 14.7364C6.84223 14.7515 6.84223 14.7711 6.84223 14.7907C6.84223 17.193 8.55581 19.1884 10.8029 19.6481C10.4005 19.7581 9.96195 19.8108 9.5068 19.8108C9.19031 19.8108 8.8708 19.7928 8.57089 19.7264C9.21141 21.6842 11.029 23.1235 13.1902 23.1702C11.5082 24.4859 9.37267 25.2786 7.06076 25.2786C6.65535 25.2786 6.26652 25.2605 5.87769 25.2108C8.06751 26.623 10.6628 27.4293 13.4614 27.4293C22.5583 27.4293 27.5318 19.8937 27.5318 13.3619C27.5318 13.1434 27.5243 12.9324 27.5137 12.7229C28.4948 12.0266 29.3192 11.157 29.9914 10.1563Z" fill="#303030"/>
</g>
<defs>
<clipPath id="clip0_7363_758">
<rect width="35" height="35" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,9 @@
<svg width="56" height="34" viewBox="0 0 56 34" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect x="0.408936" width="54.6061" height="34" fill="url(#pattern0)"/>
<defs>
<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0_7363_785" transform="translate(0 -0.00590909) scale(0.005 0.0080303)"/>
</pattern>
<image id="image0_7363_785" width="200" height="126" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAB+CAMAAABWFa7EAAACr1BMVEUAAAAiP3MiP3MiP3MiP3MiP3MiP3MiP3MiP3MiP3MiP3MiP3MiP3P///8iP3P2GWMNa3F6jKvi5ezEzNry9Pd9jq34Q4AObHL+4usAYWj9xdhdcpgAY2n2HmYddXr3NXYJaW8FZmwbrz/T2eP4UooOaHEHZ273J2z5b50xTHwLanAAYGb//v7w8/fX5uj2HGU/WYYgQ3MhQXP2I2r/+fv/8fb+2eURYnECZWv2IGinssf5Z5hOZY8eR3P3LHAYrT3+5O390uD9w9agxcd3rLD4TIYTX3IXVnIaUHIPZXH//P3/9vn+7fP+6PD+3+mawcNUlpr5ZJb5YJT5WY4Ub3UUXHIcSnIAV14mskkjsUbz/PP91OL9zd38sMmZpr/7l7l/sbSJmbR8r7L6jLH6ha36fadsf6JHX4sfsEP7/v34+/rx9vfn8PHc6evg9uP9ydrH7NC1v9Cpy82kyMr7krVtpqn6gKn5cJ5keZ2G1ZlQlJj3OXgnRHf3MHMVWXIbTXIeRXISUW8wtlEps0v0+fjp7fL+7PLj7e/m9+n+3OfS4+X8qMT7nr36daJbm59LkZVGjJP5XJH4RoL4QH1hyHobcnkYU3IQY3FTw24stU7u9fbq8vPf6+zW8ty61te30tX8u9GvztCvucyUvsCPur2h3rCa3Ktzhac9iI34VYsygob4SYP4SIMlen9Kv2YAXWP+5u7a8uDI1N/9z9+/x9b8vtP8vdL8t86ewMj8qsW15cGSorqDtLdxp6xkoaX6eKOM1p75aZo5goc1T4AuW333PHohUXZYxHIKXG0FW2REvWI8u1sOqjXc4enE29zC2tux0NG86MahrsSy5byr5LV/kK59kK36eqRkl6KN2Z1YdZdWbJRUa5N70JFRaJF0zooxb4M8VoMfY3gXX3QMY285bkN9AAAADXRSTlMAZvBppEc7YBbPzIqHXR2KhAAACBxJREFUeNrs2M9r2mAcx/H97hj77MtgE+kIOUyIB8GDURBBVPBStaAeVTy0nnuR9iBeBdEe2v4DZZdR2kOhtKOnUkb/hh0G+1v2jabJYxKMh5E+jrygJQQPz5vHPM8Tn4VCodW83Xi+jt44O97//P5xHf1+tZiy8ecT1tO3Vwsh775iXX15LYa8WNcJAT6/DEPkEobIJgyRTRhiydwfR5Y5vxvBg3QhUY38POhwky5kn/x14CZdSIP8deEmXcgO+duDm3QhtSz5KcODdCHokZ8SPMgXUkvRcjF4kS8EuxI8If8kpLp8SprwJFdIem+T1SkfESkkamMFtVarVdt6spCSuWKd6xBlSNDA3A1R8hIskSfqIy+uaaUIGZIlNIiUKwBFhT8UXEiT5nKOeUqSrSjcvAUrztYx+2ATwfbjFP5Ahi+Pt5AoE6mVYELEXV0pQNQn5mrkscXBukRZHWVVNSZlqKq52WpxEmNXmF1Pccv/TxFcyB6ZDiFIa2TLiEeAoTmNRzBsElEUrC6sCBWVKDXmxgaCChG/W8o2vA8tcVjaRDQG9BRRdzEkJn7ulO9qHFMINKRtDdh7NU4KgVs8vOl8FjOukHqUFWDOD+sGvI8ciSN2748HEOR4vOY3zBkifg8LKeOR0QMOKdoPtXhi8VwEJkRaAmUrzx3SAktc8FUv8J294Xyqe2S7g+jSWIwrClHHHTKIs4MRWIeYMg46JOOYkkKWLNkaFpwQda/5fhUeD7u4bLGzoEOQW9z5DsnWc78VN/nvGI6QMzFkh6fDePI6QYdkkuJZJKqQJTXCohKPUSPadYbkiCI65qI8o71qnmiYDjgEcXFK4mTbhYOeJcOmM6TPF0mNlWZRWhoTvvMr6JDtxylpCtdMq8LpgNhgyxkyyltnLePeFLOzVrIYcAgPz3SqH5FtBy7peyUZs3aclqoO5rHjumZ8FR/aiKtqzAhtDVT1MOiQgmLtG2TLp+EhocNbJZ148jdEe6XKkq2P5eR6Q1zcO9SOMCEVLCdjyONuPklcrP7jopQhtay5HF2Taeg7IVKGYJ/MvbhMc1P4kTPEeAc5Scw27xlVhx85Q3BzcZaBfSSfwJekIZa2QrPfQXzJHoJ2/Xw/DX/Sh6woDAlD1kUYIpswRDb/a8iH9RWG/G3nTF7aiMIA3kILLeV9jBOKDA4ymZCBxKYkuSSIIYeGLCdziFk8lJqDRlvFBUGluEVRPKgHrdqVLloRVFp6KN0obem+b7Slpesf0vdmxsYkkiIzDLGd32VeHh/k+8173/ceBFJs6CLFhi5SbOgixYYuUmzoIsXGfy7iJDj6PdFoXzB4LNBbU+N3uUIuB2iDchGSvEdOvrfG73fNzIRCZrOZwlg5rg80QKFIgLz0mZAZQ22I0U0JD0EDFIqEqMIYyy+c7piMgkI0WBFzQQ+OOo0QOv4NNECZiMdVyKOUXRpCGF8/aIAiEWegoIh7+QTCdA6AxFGLBdRAfRHwmMWM16Bk8MhqpUop96HDCJ2e/uUBTEPJOZPpvSoq6ouAn7RYpkKEcVvl2mArWDfLMBxVcWd8QjCWHsORF+lT81Pzw12gBuqLBHHakc4bhzC+8SWBxSocE+m5caC94/z4tLvH13mzM8LNOGHv4dtzT1dOnWsAEXulDdEleIAkyoBGGFubXZyS5xANeF6kHg/ywk11qok4QrjHnkQijUNnFllKEG7tb0SEoXCsHT8OlwvC/a6mL96nD0ZfH5U9sIbBhg6SzAyEKqDJgEY2C+CnDZE5SUQKIKlDTjgOM1lUEoFeLLIfp9t0HGFOLDLWakTYtw+h8dgBPDpSzlVMDt/mvQ9GD4IMjfBqWAzyS5enAFOJ5TAG8YMssi4gP9yglkifLHL2TucR/GiPJRHm5KFwOHkmLIswy81vUvzj0cqjIFGPKgFjKcvLzI5MmxEBEypTScThkkTOx2JkKV6IH0YWV3HtRyKMKBJhz7QM8nOtV7CHRFvm63MzQ/SmRErQQZVEICCJVD8qf05WZLKJWFUIuJkJnCgyItxsnPXyC/R3gHVZbCxShQybErEjg1oiUUmkuaMZYSZ6EMbHSI1YFGmetHXz3qnaLsjLPlO9FikzuwnV5YpkyjsnXA5RSwQeYhGZE77VnkayPAyXETmyvzXBD566DhuLSNjX2mwb5IpkGm5WuPoiA6LI8bGxl8klllk+STruBDkR3cIqEUG1Kzz/cfgewF+2lsGAyHpov7Vk+qeJSDtHCaybszIXEDG5EJ641XF1WmzF3d7Ek9rko36AvxV7HWrbpEi9asWO+UFEOhiB1EWpMXIWyewbHSF10xqP828v/xxwAiar/VbVWXIyo1EVaN1+M9wfIecIi8tCNCn1jUkHffdgdy3eWLMpfrbpE4hkH4im3AMRGxpA6wMxg+ODz5fswQsimzDl4WR19VhLwuudvYQW+ETq2hVYo8AVRX7DBUSUX1EKM8CyrJH6g9XIsu5YuHaKT3tXrj1OeaeGPkMOG10aAVNW8GTPvzRaQE2RqJnKgzNebXnCpxPxeCLeiu8mGqBcxOnK8zD7B+5dfpVOpONp/utwA2iBchEI5FjUBD1OgAZ6gU/FU4Mt10EblIt41u2tUE3QARJdTd2Dc3Pzz+6CNigXAb+8FK7ePgdkKKFbWi/RXaAVykWCFMYfiDogm4b6dxc1LBDlIo6Q65jHAUXHf/6zQhGiixQbukixoYsUG/+myG7YuuxcL7Idtiw7tmWxB7Yo+G9ys9m1fUuyc5uOjo6Ojo4K/AbFAa9esd0XkgAAAABJRU5ErkJggg=="/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -0,0 +1,7 @@
<svg width="46" height="16" viewBox="0 0 46 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M32.8808 5.99083H31.2736V11.4557C31.2736 11.558 31.1852 11.6456 31.0819 11.6456H29.8434C29.7402 11.6456 29.6517 11.558 29.6517 11.4557V5.99083H28.0298C27.9856 5.99083 27.9266 5.97622 27.8971 5.94699C27.8676 5.91777 27.8381 5.87394 27.8381 5.81549V4.8511C27.8381 4.80727 27.8529 4.74882 27.8971 4.7196C27.9266 4.69037 27.9856 4.66115 28.0298 4.67576H32.8808C32.984 4.67576 33.0725 4.74882 33.0725 4.8511V5.81549C33.0725 5.91777 32.984 5.99083 32.8808 5.99083Z" fill="white"/>
<path d="M38.0558 11.6017C37.4218 11.6893 36.773 11.7332 36.139 11.7186C34.9152 11.7186 33.8389 11.4117 33.8389 9.70213V6.5898C33.8389 4.88021 34.93 4.58797 36.1538 4.58797C36.7878 4.57336 37.4218 4.6172 38.0558 4.70487C38.1885 4.71948 38.2475 4.77793 38.2475 4.89482V5.77154C38.2475 5.87382 38.159 5.96149 38.0558 5.96149H36.0653C35.623 5.96149 35.4608 6.10761 35.4608 6.60441V7.4519H37.9821C38.0853 7.4519 38.1738 7.53957 38.1738 7.64186V8.53318C38.1738 8.63547 38.0853 8.72314 37.9821 8.72314H35.4608V9.71674C35.4608 10.1989 35.623 10.3597 36.0653 10.3597H38.0558C38.159 10.3597 38.2475 10.4473 38.2475 10.5496V11.4263C38.2475 11.5286 38.1885 11.5871 38.0558 11.6017Z" fill="white"/>
<path d="M45.1924 11.6455H43.6884C43.5852 11.6601 43.482 11.6016 43.4378 11.4993L42.1255 9.45367L40.9459 11.4555C40.8869 11.5724 40.8132 11.6455 40.71 11.6455H39.3093C39.2798 11.6455 39.2355 11.6455 39.206 11.6162C39.1766 11.587 39.1618 11.5578 39.1618 11.5139C39.1618 11.4847 39.1766 11.4701 39.1766 11.4555L41.2261 8.06555L39.1471 4.85094C39.1323 4.83632 39.1323 4.8071 39.1323 4.79249C39.1323 4.71943 39.206 4.66098 39.2798 4.67559H40.828C40.9312 4.67559 41.0049 4.76327 41.0639 4.85094L42.2729 6.75048L43.4525 4.85094C43.4967 4.74865 43.5852 4.69021 43.6884 4.67559H45.0891C45.1629 4.67559 45.2366 4.71943 45.2366 4.79249C45.2366 4.8071 45.2218 4.83632 45.2218 4.85094L43.1576 8.09477L45.3103 11.4555C45.3251 11.4847 45.3398 11.5139 45.3398 11.5432C45.3251 11.6016 45.2661 11.6455 45.1924 11.6455Z" fill="white"/>
<path d="M25.5821 4.69055C25.5083 4.69055 25.4494 4.73439 25.4346 4.80745L24.0634 9.84854C24.0486 9.95082 24.0191 9.99466 23.9307 9.99466C23.8422 9.99466 23.8127 9.95082 23.798 9.84854L22.4267 4.80745C22.412 4.73439 22.353 4.69055 22.2793 4.69055H20.9228C20.8785 4.69055 20.8343 4.70516 20.8048 4.749C20.7753 4.77822 20.7606 4.82206 20.7753 4.86589C20.7753 4.86589 22.4562 10.6522 22.4709 10.7106C22.6921 11.3974 23.2377 11.7335 23.9307 11.7335C24.5942 11.7627 25.1987 11.3389 25.3904 10.7106C25.4199 10.6376 27.0565 4.86589 27.0565 4.86589C27.0713 4.82206 27.0565 4.77822 27.027 4.749C26.9975 4.71978 26.9533 4.69055 26.9091 4.69055H25.5821Z" fill="white"/>
<path d="M17.9149 0H3.80428C3.28822 0 2.81639 0.277625 2.56573 0.70137C2.30033 1.13973 2.28559 1.68037 2.5215 2.11872L3.93698 4.77808H1.37142C1.04704 4.77808 0.737403 4.93881 0.560467 5.21644C0.383532 5.49406 0.383532 5.84475 0.530978 6.13699L5.07231 14.6411C5.2345 14.9479 5.55889 15.1379 5.89801 15.1379C6.23714 15.1379 6.56152 14.9479 6.72371 14.6411L7.96225 12.3324L9.51044 15.2402C9.7611 15.7078 10.2624 16 10.7932 16C11.324 16 11.8253 15.7078 12.076 15.2402L19.1534 2.04566C19.3893 1.60731 19.3746 1.08128 19.1092 0.672146C18.8733 0.248402 18.4014 0 17.9149 0ZM11.6042 5.56712L8.5078 11.3242C8.40459 11.5288 8.19817 11.6457 7.96225 11.6457C7.72634 11.6457 7.51992 11.5142 7.4167 11.3242L4.36457 5.62557C4.27611 5.45023 4.27611 5.24566 4.37932 5.07032C4.48253 4.89498 4.67421 4.79269 4.86589 4.79269H11.1176C11.3093 4.79269 11.4862 4.88036 11.5747 5.0411C11.6926 5.20183 11.6926 5.40639 11.6042 5.56712Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -0,0 +1,11 @@
<svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_3715_5593)">
<path d="M17.0042 0H16.9958C7.62238 0 0 7.6245 0 17C0 20.7188 1.1985 24.1655 3.23638 26.9641L1.11775 33.2796L7.65213 31.1908C10.3403 32.9715 13.5469 34 17.0042 34C26.3776 34 34 26.3734 34 17C34 7.62663 26.3776 0 17.0042 0Z" fill="#4CAF50"/>
<path d="M26.8962 24.0061C26.486 25.1642 24.8583 26.1247 23.5599 26.4052C22.6717 26.5944 21.5114 26.7452 17.6057 25.126C12.6098 23.0562 9.39255 17.9796 9.1418 17.6502C8.90167 17.3209 7.12305 14.9621 7.12305 12.5226C7.12305 10.0831 8.36192 8.89524 8.8613 8.38524C9.27142 7.96661 9.9493 7.77536 10.5995 7.77536C10.8099 7.77536 10.999 7.78599 11.169 7.79449C11.6684 7.81574 11.9192 7.84549 12.2485 8.63386C12.6587 9.62199 13.6574 12.0615 13.7764 12.3122C13.8975 12.563 14.0187 12.903 13.8487 13.2324C13.6893 13.5724 13.549 13.7232 13.2983 14.0122C13.0475 14.3012 12.8095 14.5222 12.5588 14.8325C12.3293 15.1024 12.07 15.3914 12.359 15.8907C12.648 16.3795 13.6468 18.0094 15.1173 19.3184C17.0149 21.0077 18.5534 21.5475 19.1038 21.777C19.5139 21.947 20.0027 21.9066 20.3023 21.5879C20.6827 21.1777 21.1523 20.4977 21.6304 19.8284C21.9704 19.3481 22.3997 19.2886 22.8502 19.4586C23.3092 19.618 25.738 20.8186 26.2374 21.0672C26.7368 21.318 27.0662 21.437 27.1873 21.6474C27.3063 21.8577 27.3063 22.8459 26.8962 24.0061Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_3715_5593">
<rect width="34" height="34" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,11 @@
<svg width="35" height="35" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_7363_763)">
<circle cx="17.5" cy="17.5" r="16.5" stroke="#303030" stroke-width="2"/>
<path d="M27.8026 12.2486C27.5447 11.2896 26.7885 10.5336 25.8296 10.2754C24.0778 9.79605 17.0705 9.79605 17.0705 9.79605C17.0705 9.79605 10.0635 9.79605 8.3117 10.2572C7.37124 10.5152 6.59666 11.2897 6.33869 12.2486C5.87769 14.0003 5.87769 17.633 5.87769 17.633C5.87769 17.633 5.87769 21.284 6.33869 23.0174C6.59693 23.9763 7.35279 24.7323 8.31183 24.9905C10.0819 25.47 17.0708 25.47 17.0708 25.47C17.0708 25.47 24.0778 25.47 25.8296 25.0088C26.7887 24.7507 27.5447 23.9947 27.8029 23.0358C28.2638 21.284 28.2638 17.6515 28.2638 17.6515C28.2638 17.6515 28.2822 14.0003 27.8026 12.2486ZM14.8396 20.989V14.277L20.6665 17.633L14.8396 20.989Z" fill="#303030"/>
</g>
<defs>
<clipPath id="clip0_7363_763">
<rect width="35" height="35" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 978 B

View File

@ -0,0 +1,72 @@
import React from "react";
import master from "../../../src/assets/Master.svg";
import visa from "../../../src/assets/Visa.svg";
import diners from "../../../src/assets/Diners.svg";
import elo from "../../../src/assets/Elo.svg";
import hiper from "../../../src/assets/Hiper.svg";
import pagseguro from "../../../src/assets/Pagseguro.svg";
import boleto from "../../../src/assets/Boleto.svg";
import vtexpci from "../../../src/assets/vtex-pci-200.svg";
import vtex from "../../../src/assets/vtex.svg";
import m3 from "../../../src/assets/m3footer.svg";
import styles from "../../style/FooterBottom.module.scss";
const FooterBottom = () => {
return (
<div className={styles.footer_wrapper}>
<div className={styles.footerBox}>
<div className={styles.footerText}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor
</div>
<div className={styles.footerLogos}>
<figure>
<img
className={styles.footerLogosimg}
src={master}
alt="logo mastercard"
/>
<img className={styles.footerLogosimg} src={visa} alt="logo visa" />
<img
className={styles.footerLogosimg}
src={diners}
alt="logo mastercard"
/>
<img
className={styles.footerLogosimg}
src={elo}
alt="logo mastercard"
/>
<img
className={styles.footerLogosimg}
src={hiper}
alt="logo mastercard"
/>
<img
className={styles.footerLogosimg}
src={pagseguro}
alt="logo mastercard"
/>
<img
className={styles.footerLogosimg}
src={boleto}
alt="logo mastercard"
/>
<p className={styles.footerRisco}>____</p>
<img src={vtexpci} alt="logo vtexpci" />
</figure>
</div>
<div className={styles.FooterName}>
<p className={styles.footerDevLogo}>Powered by</p>
<img className={styles.footerdeveloped} src={vtex} alt="logo vtex" />
<p className={styles.footerDevLogom3}>Developed by</p>
<img className={styles.footerdevelopedm3} src={m3} alt="logo m3" />
</div>
</div>
</div>
);
};
export { FooterBottom };

View File

@ -0,0 +1,71 @@
import React from "react";
import master from "../../../src/assets/Master.svg";
import visa from "../../../src/assets/Visa.svg";
import diners from "../../../src/assets/Diners.svg";
import elo from "../../../src/assets/Elo.svg";
import hiper from "../../../src/assets/Hiper.svg";
import pagseguro from "../../../src/assets/Pagseguro.svg";
import boleto from "../../../src/assets/Boleto.svg";
import vtexpci from "../../../src/assets/vtex-pci-200.svg";
import vtex from "../../../src/assets/vtex.svg";
import m3 from "../../../src/assets/m3footer.svg";
import styles from "../../style/FooterBottomMobile.module.scss";
const FooterBottomMobile = () => {
return (
<div className={styles.footer_wrapper}>
<div className={styles.footerBox}>
<div className={styles.footerLogos}>
<img
className={styles.footerLogosimg}
src={master}
alt="logo mastercard"
/>
<img className={styles.footerLogosimg} src={visa} alt="logo visa" />
<img
className={styles.footerLogosimg}
src={diners}
alt="logo mastercard"
/>
<img
className={styles.footerLogosimg}
src={elo}
alt="logo mastercard"
/>
<img
className={styles.footerLogosimg}
src={hiper}
alt="logo mastercard"
/>
<img
className={styles.footerLogosimg}
src={pagseguro}
alt="logo mastercard"
/>
<img
className={styles.footerLogosimg}
src={boleto}
alt="logo mastercard"
/>
<p className={styles.footerRisco}>____</p>
<img src={vtexpci} alt="logo vtexpci" />
</div>
<div className={styles.footerText}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor
</div>
<div className={styles.FooterName}>
<p className={styles.footerDevLogo}>Powered by</p>
<img className={styles.footerdeveloped} src={vtex} alt="logo vtex" />
<p className={styles.footerDevLogom3}>Developed by</p>
<img className={styles.footerdevelopedm3} src={m3} alt="logo m3" />
</div>
</div>
</div>
);
};
export { FooterBottomMobile };

View File

@ -0,0 +1,152 @@
import React from "react";
import styles from "../../style/FooterMenu.module.scss";
import face from "../../../src/assets/face.svg";
import insta from "../../../src/assets/insta.svg";
import twitter from "../../../src/assets/twitter.svg";
import youtube from "../../../src/assets/youtube.svg";
import linkedin from "../../../src/assets/linkedin.svg";
import whatsapp from "../../../src/assets/whatsapp.svg";
import elipse from "../../../src/assets/elipse.svg";
import seta from "../../../src/assets/seta.svg";
const FooterMenu = () => {
return (
<div className={styles.border}>
<div className={styles.links_wrapper}>
<div>
<h3 className={styles.linkTitle}>Institucional</h3>
<ul className={styles.linkBox}>
<li>
<a className={styles.linkText} href="/">
Quem Somos
</a>
</li>
<li>
<a className={styles.linkText} href="/">
Política de Privacidade
</a>
</li>
<li>
<a className={styles.linkText} href="/">
Segurança
</a>
</li>
<li>
<a className={styles.linkText} href="/">
Seja um Revendedor
</a>
</li>
</ul>
</div>
<div>
<h3 className={styles.linkTitle}>Dúvidas</h3>
<ul className={styles.linkBox}>
<li>
<a className={styles.linkText} href="/">
Entrega
</a>
</li>
<li>
<a className={styles.linkText} href="/">
Pagamento
</a>
</li>
<li>
<a className={styles.linkText} href="/">
Perguntas frequentes
</a>
</li>
<li>
<a className={styles.linkText} href="/">
Seja um Revendedor
</a>
</li>
</ul>
</div>
<div>
<h3 className={styles.linkTitle}>Fale Conosco</h3>
<ul className={styles.linkBox}>
<li>
<p className={styles.textCont}>Atendimento ao consumidor</p>
</li>
<li>
<p className={styles.telCont}>(11) 4159-9504</p>
</li>
<li>
<p className={styles.textCont}>Atendimento Online</p>
</li>
<li>
<p className={styles.telCont}>(11) 99433-8825</p>
</li>
</ul>
</div>
<div>
<div className={styles.logos}>
<a href="https://www.facebook.com" target="_blank" rel="noreferrer">
<img className={styles.logosimg} src={face} alt="logo facebook" />
</a>
<a
href="https://www.instagram.com"
target="_blank"
rel="noreferrer"
>
<img
className={styles.logosimg}
src={insta}
alt="logo instagram"
/>
</a>
<a href="https://www.twitter.com" target="_blank" rel="noreferrer">
<img
className={styles.logosimg}
src={twitter}
alt="logo twitter"
/>
</a>
<a href="https://www.youtube.com" target="_blank" rel="noreferrer">
<img
className={styles.logosimg}
src={youtube}
alt="logo youtube"
/>
</a>
<a href="https://www.linkedin.com" target="_blank" rel="noreferrer">
<img
className={styles.logosimg}
src={linkedin}
alt="logo linkedin"
/>
</a>
</div>
<p className={styles.textSite}>www.loremipsum.com</p>
</div>
<div className={styles.linkZap}>
<a
href="https://wa.me/5521991111111"
target="_blank"
rel="noreferrer"
>
<img src={whatsapp} alt="logo whatsapp" />
</a>
<a href="/" target="_blank" rel="noreferrer">
<img className={styles.imgZap} src={elipse} alt="logo whatsapp" />
<img className={styles.imgSeta} src={seta} alt="seta" />
</a>
</div>
</div>
</div>
);
};
export { FooterMenu };

View File

@ -0,0 +1,55 @@
import React from "react";
import { MenuFooterMobile } from "./MenuFooterMobile";
import { MenuFooterMobile2 } from "./MenuFooterMobile2";
import { MenuFooterMobile3 } from "./MenuFooterMobile3";
import styles from "../../style/FooterTopMobile.module.scss";
import face from "../../../src/assets/face.svg";
import insta from "../../../src/assets/insta.svg";
import twitter from "../../../src/assets/twitter.svg";
import youtube from "../../../src/assets/youtube.svg";
import linkedin from "../../../src/assets/linkedin.svg";
import whatsapp from "../../../src/assets/whatsapp.svg";
import elipse from "../../../src/assets/elipse.svg";
import seta from "../../../src/assets/seta.svg";
const FooterTopMobile = () => {
return (
<div className={styles.Footer_Wrapper}>
<MenuFooterMobile />
<MenuFooterMobile2 />
<MenuFooterMobile3 />
<div>
<div className={styles.logos}>
<a href="https://www.facebook.com" target="_blank" rel="noreferrer">
<img src={face} alt="logo facebook" />
</a>
<a href="https://www.instagram.com" target="_blank" rel="noreferrer">
<img src={insta} alt="logo instagram" />
</a>
<a href="https://www.twitter.com" target="_blank" rel="noreferrer">
<img src={twitter} alt="logo twitter" />
</a>
<a href="https://www.youtube.com" target="_blank" rel="noreferrer">
<img src={youtube} alt="logo youtube" />
</a>
<a href="https://www.linkedin.com" target="_blank" rel="noreferrer">
<img src={linkedin} alt="logo linkedin" />
</a>
</div>
<div className={styles.link}>
<p>www.loremipsum.com</p>
</div>
</div>
<div className={styles.linkZap}>
<a href="https://wa.me/5521991111111" target="_blank" rel="noreferrer">
<img src={whatsapp} alt="logo whatsapp" />
</a>
<img className={styles.imgZap} src={elipse} alt="logo whatsapp" />
<img className={styles.imgSeta} src={seta} alt="seta" />
</div>
</div>
);
};
export { FooterTopMobile };

View File

@ -0,0 +1,35 @@
import React, { useState } from "react";
import styles from "../../style/MenuFooterMobile.module.scss";
const MenuFooterMobile = () => {
const [isOpen, setIsOpen] = useState(false);
return (
<div className={styles.container}>
<button className={styles.button} onClick={() => setIsOpen(!isOpen)}>
<div className={styles.buttonName}>Institucional</div>{" "}
<div className={styles.butttonOption}>{isOpen ? "-" : "+"}</div>
</button>
{isOpen && (
<ul className={styles.list}>
<a href="/">
<li className={styles.listItem}>Quem Somos</li>
</a>
<a href="/">
<li className={styles.listItem}>Política De Privacidade</li>
</a>
<a href="/">
<li className={styles.listItem}>Segurança</li>
</a>
<a href="/">
<li className={styles.listItem}>Seja Um Revendedor</li>
</a>
</ul>
)}
</div>
);
};
export { MenuFooterMobile };

View File

@ -0,0 +1,35 @@
import React, { useState } from "react";
import styles from "../../style/MenuFooterMobile.module.scss";
const MenuFooterMobile2 = () => {
const [isOpen, setIsOpen] = useState(false);
return (
<div className={styles.container}>
<button className={styles.button} onClick={() => setIsOpen(!isOpen)}>
<div className={styles.buttonName}>Dúvidas</div>{" "}
<div className={styles.butttonOption}>{isOpen ? "-" : "+"}</div>
</button>
{isOpen && (
<ul className={styles.list}>
<a href="/">
<li className={styles.listItem}>Entrega</li>
</a>
<a href="/">
<li className={styles.listItem}>Pagamento</li>
</a>
<a href="/">
<li className={styles.listItem}>Trocas e Devoluções</li>
</a>
<a href="/">
<li className={styles.listItem}>Dúvidas Frequentes</li>
</a>
</ul>
)}
</div>
);
};
export { MenuFooterMobile2 };

View File

@ -0,0 +1,27 @@
import React, { useState } from "react";
import styles from "../../style/MenuFooterMobile.module.scss";
const MenuFooterMobile3 = () => {
const [isOpen, setIsOpen] = useState(false);
return (
<div className={styles.container}>
<button className={styles.button} onClick={() => setIsOpen(!isOpen)}>
<div className={styles.buttonName}>Fale Conosco</div>{" "}
<div className={styles.butttonOption}>{isOpen ? "-" : "+"}</div>
</button>
{isOpen && (
<ul className={styles.list}>
<li className={styles.listItem}>Atendimento ao Consumidor</li>
<li className={styles.listItem}>(11) 4159-9504</li>
<li className={styles.listItem}>Atendimento Online</li>
<li className={styles.listItem}>(11) 99433-8825</li>
</ul>
)}
</div>
);
};
export { MenuFooterMobile3 };

View File

@ -0,0 +1,59 @@
import React, { useState, useEffect } from "react";
import close from "../../assets/close.svg";
import styles from "../../style/HamburguerHeader.module.scss";
const MenuContext = React.createContext<{
isOpen: boolean;
setIsOpen: (isOpen: boolean) => void;
}>({ isOpen: false, setIsOpen: () => {} });
const HamburguerHeader: React.FC = () => {
const [isOpen, setIsOpen] = useState(false);
useEffect(() => {
if (isOpen) {
document.body.classList.add(styles["menuOpen"]);
} else {
document.body.classList.remove(styles["menuOpen"]);
}
}, [isOpen]);
return (
<MenuContext.Provider value={{ isOpen, setIsOpen }}>
<div className={`${styles.hamburgerMenu} ${isOpen ? styles.open : ""}`}>
<button
className={styles.buttonOpen}
onClick={() => setIsOpen(!isOpen)}
>
<div className={styles.hamburgerLine}></div>
<div className={styles.hamburgerLine}></div>
<div className={styles.hamburgerLine}></div>
<i className="fas fa-hamburger"></i>
</button>
<div className={`${styles.background} ${isOpen ? styles.open : ""}`}>
<button onClick={() => setIsOpen(false)}>
<img className={styles.close} src={close} alt="fechar" />
</button>
<div className={styles.enter}>
<a className={styles.linkEnter} href="/">
<p>Entrar</p>
</a>
</div>
<ul>
<a href="/">
<li>CURSOS</li>
</a>
<a href="/">
<li>SAIBA MAIS</li>
</a>
<a href="/">
<li>INSTITUCIONAL</li>
</a>
</ul>
</div>
</div>
</MenuContext.Provider>
);
};
export { HamburguerHeader };

View File

@ -0,0 +1,43 @@
import React from "react";
import logo from "../../assets/Logo-M3Academy.png";
import searchImage from "../../assets/search-img.png";
import cart from "../../assets/cart.png";
import styles from "../../style/Header.module.scss";
const Header = () => {
return (
<div className={styles.header___wrapper}>
<div className={styles.headerBox}>
<div className={styles.logo}>
<a href="/">
<img src={logo} className={styles.logoimg} alt="Logo M3 Academy" />
</a>
</div>
<div className={styles.searchbox}>
<input
className={styles.searchtext}
type="text"
placeholder="Buscar..."
/>
<a href="/">
<img src={searchImage} className={styles.searchlupa} alt="Lupa" />
</a>
</div>
<div className={styles.headerlinks}>
<a className={styles.textlink} href="/">
Entrar
</a>
<a href="/">
<img
className={styles.cartimg}
src={cart}
alt="carrinho de compras"
/>
</a>
</div>
</div>
</div>
);
};
export { Header };

View File

@ -0,0 +1,28 @@
import React from "react";
import styles from "../../style/HeaderBottom.module.scss";
const HeaderBottom = () => {
return (
<div className={styles.header___wrapper}>
<div className={styles.headerContainer}>
<div className={styles.textcontainer}>
<a className={styles.textlinks1} href="/">
Cursos
</a>
</div>
<div className={styles.textcontainer}>
<a className={styles.textlinks2} href="/">
Saiba Mais
</a>
</div>
<div className={styles.textcontainer}>
<a className={styles.textlinks3} href="/">
Institucionais
</a>
</div>
</div>
</div>
);
};
export { HeaderBottom };

View File

@ -0,0 +1,52 @@
import React from "react";
import { HamburguerHeader } from "./HamburguerHeader";
import logom3 from "../../assets/Logo-M3Academy.png";
import cart from "../../assets/cart.png";
import searchImage from "../../assets/search-img.png";
import styles from "../../style/HeaderMobile.module.scss";
const HeaderMobile = () => {
return (
<div className={styles.Header_Wrapper}>
<div className={styles.HeaderBox}>
<div className={styles.BoxMenu}>
<HamburguerHeader />
</div>
<div className={styles.BoxLogo}>
<a href="/">
<img
className={styles.HeaderLogo}
src={logom3}
alt="logo m3 academy"
/>
</a>
</div>
<div className={styles.BoxCart}>
<a href="/">
<img
className={styles.HeaderCart}
src={cart}
alt="imagem de um carrinho"
/>
</a>
</div>
</div>
<div className={styles.searchbox}>
<input
className={styles.searchtext}
type="text"
placeholder="Buscar..."
/>
<div className={styles.Boxsearch}>
<a href="/">
<img src={searchImage} className={styles.searchlupa} alt="Lupa" />
</a>
</div>
</div>
</div>
);
};
export { HeaderMobile };

View File

@ -0,0 +1,41 @@
import React from "react";
import styles from "../../style/AccordionMenu.module.scss";
type AccordionMenuProps = {
items: {
title: string;
content: any;
}[];
};
const AccordionMenu: React.FC<AccordionMenuProps> = ({ items }) => {
const [activeIndex, setActiveIndex] = React.useState<number | null>(null);
const onTitleClick = (index: number) => {
setActiveIndex(index === activeIndex ? null : index);
};
return (
<div className={styles.accordionMenu}>
{items.map((item, index) => {
const active = index === activeIndex;
return (
<div key={item.title} className={styles.accordionItem}>
<div
className={`${styles.accordionTitle} ${
active ? styles.active : ""
}`}
onClick={() => onTitleClick(index)}
>
{item.title}
</div>
{active && (
<div className={styles.accordionContent}>{item.content}</div>
)}
</div>
);
})}
</div>
);
};
export default AccordionMenu;

View File

@ -0,0 +1,106 @@
import React from "react";
import { Formik, Form, Field, ErrorMessage, FormikHelpers } from "formik";
import FormSchema from "../schema/FormSchema";
import styles from "../../style/FormCustom.module.scss";
interface IFormikValues {
name: string;
email: string;
cpf: string;
telefone: string;
insta: string;
termo: string;
}
const initialValues = {
name: "",
email: "",
cpf: "",
telefone: "",
insta: "",
termo: "",
};
const FormCustom = () => {
const handleFormikSubmit = (
values: IFormikValues,
actions: FormikHelpers<IFormikValues>
) => {
};
return (
<div className={styles.Form_Wrapper}>
<Formik
onSubmit={handleFormikSubmit}
initialValues={initialValues}
validationSchema={FormSchema}
>
<Form>
<div className={styles.formCal}>
<label htmlFor="name">Nome</label>
<Field id="name" name="name" placeholder="Seu nome completo" />
<ErrorMessage
component="span"
name="name"
className={styles.FormInvalid}
/>
</div>
<div className={styles.formCal}>
<label htmlFor="email">Email</label>
<Field id="email" name="email" placeholder="Seu email" />
<ErrorMessage
component="span"
name="email"
className={styles.FormInvalid}
/>
</div>
<div className={styles.formCal}>
<label htmlFor="cpf">CPF</label>
<Field id="cpf" name="cpf" placeholder="000.000.000-00" />
<ErrorMessage
component="span"
name="cpf"
className={styles.FormInvalid}
/>
</div>
<div className={styles.formCal}>
<label htmlFor="telefone">Telefone</label>
<Field
id="telefone"
name="telefone"
placeholder="(00) 00000-0000"
/>
<ErrorMessage
component="span"
name="telefone"
className={styles.FormInvalid}
/>
</div>
<div className={styles.formCal}>
<label htmlFor="insta">Instagram</label>
<Field id="insta" name="insta" placeholder="@seuuser" />
</div>
<div className={styles.formCalTermo}>
<label htmlFor="termo">
<span>*</span>Declaro que li e aceito
<Field id="termo" name="termo" type="checkbox" />
<ErrorMessage
component="span"
name="termo"
className={styles.FormInvalid}
/>
</label>
</div>
<button type="submit">CADASTRE-SE</button>
</Form>
</Formik>
</div>
);
};
export { FormCustom };

View File

@ -0,0 +1,82 @@
import React from "react";
import AccordionMenu from "./AccordionMenu";
import styles from "../../style/Main.module.scss";
import { MenuInfo } from "./MenuInfo";
import { FormCustom } from "./FormCustom";
import home from "../../assets/home.svg";
import seta from "../../assets/seta.svg";
const items = [
{
title: "Sobre",
content: (
<div className={styles.boxSobre}>
<h2>Sobre</h2>
<MenuInfo />
</div>
),
},
{
title: "Formas de Pagamento",
content: (
<div className={styles.boxPagamento}>
<h2>Formas de Pagamento</h2>
<MenuInfo />
</div>
),
},
{
title: "Entrega",
content: (
<div className={styles.boxEntrega}>
<h2>Entrega</h2>
<MenuInfo />
</div>
),
},
{
title: "Troca e Devolução",
content: (
<div className={styles.boxTroca}>
<h2>Troca e Devolução</h2>
<MenuInfo />
</div>
),
},
{
title: "Segurança e Privacidade",
content: (
<div className={styles.boxSegurança}>
<h2>Segurança e Privacidade</h2>
<MenuInfo />
</div>
),
},
{
title: "Contato",
content: (
<div className={styles.boxContato}>
<h2>Preencha o formulário</h2>
<FormCustom />
</div>
),
},
];
const Main = () => {
return (
<div className={styles.app}>
<div className={styles.mainIcon}>
<img className={styles.IconHouse} src={home} alt="imagem de uma casa" />
<img className={styles.IconSeta} src={seta} alt="imagem de uma seta" />
<p className={styles.IconText}>INSTITUCIONAL</p>
</div>
<h1 className={styles.mainTitle}>Institucional</h1>
<div className={styles.itemBox}>
<AccordionMenu items={items} />
</div>
</div>
);
};
export { Main };

View File

@ -0,0 +1,38 @@
import React from "react";
import styles from "../../style/MenuInfo.module.scss";
const MenuInfo = () => {
return (
<div className={styles.text}>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia deserunt
mollit anim id est laborum.{" "}
</p>
<p>
Sed ut perspiciatis unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab
illo inventore veritatis et quasi architecto beatae vitae dicta sunt
explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut
odit aut fugit, sed quia consequuntur magni dolores eos qui ratione
voluptatem
</p>
<p>
sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor
sit amet, consectetur, adipisci velit, sed quia non numquam eius modi
tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis
suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis
autem vel eum iure reprehenderit qui in ea voluptate velit esse quam
nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo
voluptas nulla pariatur?
</p>
</div>
);
};
export { MenuInfo };

View File

@ -0,0 +1,24 @@
import React from "react";
import styles from "../../style/Newsletter.module.scss";
const Newsletter = () => {
return (
<div>
<div className={styles.box}>
<h3 className={styles.title}>Assine nossa Newsletter</h3>
<div className={styles.boxNews}>
<input
className={styles.emailInput}
type="email"
placeholder="Email"
/>
<button className={styles.btn} type="submit">
Enviar
</button>
</div>
</div>
</div>
);
};
export { Newsletter };

View File

@ -0,0 +1,9 @@
import * as Yup from "yup";
export default Yup.object().shape({
name: Yup.string().required("*Campo Obrigatório").min(3, "*Nome Inválido"),
email: Yup.string().required("*Campo Obrigatório").email("*Email Inválido"),
cpf: Yup.string().required("*Campo Obrigatório"),
telefone: Yup.string().required("*Campo Obrigatório"),
termo: Yup.string().required(""),
});

View File

@ -0,0 +1,13 @@
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
}

View File

@ -0,0 +1,9 @@
import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import { Home } from "./pages/Home";
const root = ReactDOM.createRoot(
document.getElementById("root") as HTMLElement
);
root.render(<Home />);

View File

@ -0,0 +1,30 @@
import React from "react";
import { Route } from "react-router";
import { BrowserRouter } from "react-router-dom";
import { Header } from "../components/Header/Header";
import { HeaderBottom } from "../components/Header/HeaderBottom";
import { Main } from "../components/Main/Main";
import { HeaderMobile } from "../components/Header/HeaderMobile";
import { Newsletter } from "../components/Newsletter/Newsletter";
import { FooterMenu } from "../components/Footer/FooterMenu";
import { FooterBottom } from "../components/Footer/FooterBottom";
import { FooterBottomMobile } from "../components/Footer/FooterBottomMobile";
import { FooterTopMobile } from "../components/Footer/FooterTopMobile";
const Home = () => {
return (
<BrowserRouter>
<HeaderMobile />
<Header />
<HeaderBottom />
<Main />
<Newsletter />
<FooterMenu />
<FooterTopMobile />
<FooterBottomMobile />
<FooterBottom />
</BrowserRouter>
);
};
export { Home };

View File

@ -0,0 +1 @@
/// <reference types="react-scripts" />

View File

@ -0,0 +1,78 @@
.accordionMenu {
display: flex;
flex-direction: column;
justify-content: space-around;
font-family: 'Roboto', sans-serif;
}
.accordionItem {
display: flex;
flex-direction: row;
max-height: 500px;
@media (max-width: 1024px) {
flex-direction: column;
}
}
.accordionTitle {
cursor: pointer;
width: 100%;
font-style: normal;
font-weight: 700;
font-size: 16px;
line-height: 19px;
margin-bottom: 10px;
max-height: 50px;
height: 39px;
display: flex;
align-items: center;
margin-left: 100px;
color: #7d7d7d;
@media (max-width: 1024px) {
margin-left: 16px;
}
@media (min-width: 2500px) {
font-weight: 400;
font-size: 32px;
line-height: 38px;
max-width: 351px;
color: #7d7d7d;
margin-bottom: 20px;
}
}
.accordionTitle.active {
background-color: black;
color: white;
max-width: 302px;
@media (max-width: 1024px) {
width: 96.88%;
max-width: none;
margin-right: auto;
}
@media (min-width: 2500px) {
}
width: 590px;
height: 58px;
}
.accordionContent {
margin-left: 50px;
max-height: 50px;
width: 100%;
@media (max-width: 1024px) {
margin-left: 16px;
max-height: 0;
width: 96.78%;
}
@media (min-width: 2500px) {
margin-left: 150px;
}
}

View File

@ -0,0 +1,129 @@
.footer_wrapper {
background: #000;
color: white;
margin-top: 64px;
font-family: "Roboto", sans-serif;
@media (max-width: 1024px) {
display: none;
}
@media (min-width: 2500px) {
min-height: 96px;
}
.footerBox {
display: flex;
justify-content: space-between;
margin: 0 0 0 100px;
max-width: 100%;
}
.footerText {
width: 234px;
display: flex;
align-self: center;
font-style: normal;
font-weight: 400;
font-size: 10px;
line-height: 12px;
text-transform: capitalize;
color: #ffffff;
@media (min-width: 2500px) {
font-weight: 400;
font-size: 20px;
line-height: 23px;
width: 467px;
}
}
.footerLogos,
figure {
display: flex;
gap: 12px;
}
.footerLogosimg {
width: 35px;
@media (min-width: 2500px) {
width: 70px;
height: 40px;
}
}
.footerRisco {
transform: rotate(90deg);
margin: 0;
width: 24px;
}
.FooterName {
margin-right: 100px;
display: flex;
gap: 13px;
}
.footerdeveloped {
display: flex;
align-self: center;
width: 44.92px;
@media (min-width: 2500px) {
width: 84.22px;
height: 30px;
}
}
.footerdevelopedm3 {
width: 28.66px;
display: flex;
align-self: center;
justify-content: center;
@media (min-width: 2500px) {
width: 54.95px;
height: 30px;
}
}
.footerDevLogo {
width: 53px;
height: 12px;
font-style: normal;
font-weight: 400;
font-size: 10px;
line-height: 12px;
text-transform: capitalize;
display: flex;
align-self: center;
@media (min-width: 2500px) {
font-weight: 400;
font-size: 20px;
line-height: 23px;
width: 110px;
}
}
.footerDevLogom3 {
width: 61px;
height: 12px;
font-style: normal;
font-weight: 400;
font-size: 10px;
line-height: 12px;
text-transform: capitalize;
color: #ffffff;
display: flex;
align-self: center;
@media (min-width: 2500px) {
width: 125px;
font-style: normal;
font-weight: 400;
font-size: 20px;
line-height: 23px;
}
}
}

View File

@ -0,0 +1,113 @@
.footer_wrapper {
background: #000;
color: white;
margin-top: 64px;
font-family: 'Roboto', sans-serif;
@media (min-width: 1025px) {
display: none;
}
@media (min-width: 2500px) {
min-height: 96px;
}
.footerBox {
display: flex;
justify-content: space-between;
margin: 0 0 0 100px;
max-width: 100%;
@media (max-width: 1024px) {
justify-content: none;
flex-direction: column;
margin-left: 16px;
}
}
.footerText {
width: 234px;
height: 24px;
font-style: normal;
font-weight: 400;
font-size: 10px;
line-height: 12px;
text-transform: capitalize;
color: #ffffff;
@media (max-width: 1024px) {
margin-top: 15px;
margin-bottom: 15px;
}
@media (min-width: 2500px) {
font-weight: 400;
font-size: 20px;
line-height: 23px;
width: 467px;
}
}
.footerLogos {
display: flex;
gap: 12px;
@media (max-width: 1024px) {
margin-top: 15px;
flex-wrap: wrap;
}
}
.footerLogosimg {
@media (min-width: 2500px) {
width: 70px;
height: 40px;
}
}
.footerRisco {
transform: rotate(90deg);
margin: 0;
width: 24px;
}
.FooterName {
margin-bottom: 15px;
display: flex;
gap: 13px;
}
.footerdeveloped {
display: flex;
align-self: center;
width: 44.92px;
}
.footerdevelopedm3 {
width: 28.66px;
}
.footerDevLogo {
width: 53px;
height: 12px;
font-style: normal;
font-weight: 400;
font-size: 10px;
line-height: 12px;
text-transform: capitalize;
display: flex;
align-self: center;
}
.footerDevLogom3 {
width: 61px;
height: 12px;
font-style: normal;
font-weight: 400;
font-size: 10px;
line-height: 12px;
text-transform: capitalize;
color: #ffffff;
display: flex;
align-self: center;
}
}

View File

@ -0,0 +1,149 @@
.border {
border-top: 1px solid black;
@media (max-width: 1024px) {
margin-bottom: 25px;
}
}
.links_wrapper {
@media (max-width: 1024px) {
display: none;
}
font-family: "Roboto", sans-serif;
display: flex;
justify-content: space-between;
margin: 50px 0 0 100px;
max-width: 80%;
.linkBox {
list-style-type: none;
padding: 0;
}
.linkTitle {
font-style: normal;
font-weight: 500;
font-size: 14px;
line-height: 16px;
text-transform: uppercase;
color: #303030;
@media (min-width: 2500px) {
font-weight: 500;
font-size: 28px;
line-height: 33px;
}
}
li,
h3 {
margin-bottom: 12px;
margin-top: 0;
}
.linkText {
text-decoration: none;
font-style: normal;
font-weight: 400;
font-size: 12px;
line-height: 24px;
text-transform: capitalize;
color: #303030;
width: 155px;
height: 15px;
margin-bottom: 15px;
@media (min-width: 2500px) {
font-style: normal;
font-weight: 400;
font-size: 24px;
line-height: 28px;
}
}
.textCont {
width: 155px;
height: 29px;
font-style: normal;
font-weight: 500;
font-size: 12px;
line-height: 14px;
text-transform: capitalize;
color: #303030;
@media (min-width: 2500px) {
font-weight: 500;
font-size: 24px;
line-height: 28px;
text-transform: capitalize;
width: 100%;
color: #303030;
}
}
.telCont {
width: 155px;
height: 15px;
font-style: normal;
font-weight: 400;
font-size: 12px;
line-height: 14px;
text-transform: capitalize;
color: #303030;
@media (min-width: 2500px) {
width: 100%;
font-weight: 400;
font-size: 24px;
line-height: 28px;
text-transform: capitalize;
color: #303030;
}
}
.logos {
display: flex;
gap: 10px;
}
.logosimg {
@media (min-width: 2500px) {
width: 70px;
height: 70px;
}
}
.textSite {
font-weight: 400;
font-size: 14px;
line-height: 16px;
color: #303030;
@media (min-width: 2500px) {
font-size: 28px;
line-height: 33px;
}
}
.linkZap {
position: fixed;
bottom: 0;
right: 16px;
display: flex;
flex-direction: column;
@media (min-width: 2500px) {
width: 66px;
height: 66px;
}
}
.imgZap {
position: relative;
}
.imgSeta {
position: absolute;
right: 10px;
bottom: 18px;
}
}

View File

@ -0,0 +1,46 @@
.Footer_Wrapper {
font-family: "Roboto", sans-serif;
@media (min-width: 1025px) {
display: none;
}
.logos {
display: flex;
gap: 10px;
margin-left: 16px;
margin-top: 12px;
margin-bottom: 12px;
}
p {
margin: 0;
}
.link {
margin-left: 16px;
}
.linkZap {
position: fixed;
bottom: 0;
right: 16px;
display: flex;
flex-direction: column;
@media (min-width: 2500px) {
width: 66px;
height: 66px;
}
}
.imgZap {
position: relative;
}
.imgSeta {
position: absolute;
right: 10px;
bottom: 18px;
}
}

View File

@ -0,0 +1,120 @@
.Form_Wrapper {
width: 95%;
display: flex;
flex-direction: column;
font-family: "Roboto", sans-serif;
span {
color: #ff0000;
}
.formCalTermo {
text-align: center;
margin-bottom: 13px;
@media (min-width: 2500px) {
font-style: normal;
font-weight: 400;
font-size: 28px;
line-height: 33px;
}
input {
@media (min-width: 2500px) {
position: relative;
width: 36.4px;
height: 35.15px;
top: 9px;
}
cursor: pointer;
}
}
.formCal {
position: relative;
display: flex;
flex-direction: column;
label {
margin-bottom: 12px;
margin-left: 12px;
@media (min-width: 2500px) {
font-weight: 400;
font-size: 28px;
line-height: 33px;
}
}
input {
width: 89.755%;
background: #ffffff;
border: 1px solid #100d0e;
border-radius: 25px;
height: 46px;
padding: 0 20px;
margin-bottom: 12px;
color: #b9b7b7;
@media (min-width: 2500px) {
font-weight: 400;
font-size: 28px;
line-height: 33px;
width: 1638px;
height: 63px;
color: #b9b7b7;
}
@media (max-width: 1024px) {
margin-left: auto;
margin-right: auto;
}
}
}
button {
width: 95.095%;
height: 52.44px;
background: #000000;
border-radius: 25px;
margin-bottom: 25px;
color: white;
cursor: pointer;
@media (min-width: 2500px) {
color: white;
font-weight: 400;
font-size: 32px;
line-height: 38px;
letter-spacing: 0.05em;
width: 1680px;
height: 63px;
}
@media (max-width: 1024px) {
align-content: center;
display: flex;
margin-left: auto;
margin-right: auto;
justify-content: center;
align-self: center;
flex-wrap: wrap;
}
}
}
.Form_Wrapper form {
width: 100%;
}
.FormInvalid {
position: absolute;
font-style: normal;
font-weight: 400;
font-size: 12px;
line-height: 14px;
text-align: right;
color: #ff0000;
margin: 0;
top: 15px;
right: 55px;
}

View File

@ -0,0 +1,120 @@
.hamburgerMenu {
display: flex;
flex-direction: column;
justify-content: space-between;
width: 30px;
height: 22px;
padding: 5px 0;
background: transparent;
border: none;
font-family: "Roboto", sans-serif;
}
.buttonOpen {
color: transparent;
background: transparent;
border: none;
/*width: 0;
padding: 0;
margin: 0;
border-width: 0;*/
}
.hamburgerLine {
width: 30px;
height: 2px;
background: white;
margin: 4px 0;
cursor: pointer;
}
.hamburgerMenu.open .hamburgerLine:nth-child(1) {
transform: rotate(45deg) translate(5px, 5px);
}
.hamburgerMenu.open .hamburgerLine:nth-child(2) {
opacity: 0;
}
.hamburgerMenu.open .hamburgerLine:nth-child(3) {
transform: rotate(-45deg) translate(5px, -5px);
}
.menuOpen {
background-color: rgba(69, 69, 69, 0.7);
}
.hamburgerIcon {
font-size: 24px;
padding: 8px;
}
.background {
background-color: white;
position: absolute;
top: 0;
left: 0;
width: 96.48%;
height: 585px;
display: none;
}
.open {
display: block;
}
.background button {
position: absolute;
top: 10px;
right: 16px;
font-size: 32px;
padding: 8px;
color: black;
cursor: pointer;
background-color: transparent;
border: none;
}
.enter {
background: black;
margin: 0;
height: 78px;
display: flex;
align-self: center;
}
.linkEnter {
margin: 0 0 0 8px;
font-style: normal;
font-weight: 400;
font-size: 14px;
line-height: 16px;
text-transform: uppercase;
color: #ffffff;
text-decoration: none;
display: flex;
align-self: center;
text-align: center;
}
.background ul {
list-style: none;
margin-top: 31px;
margin-left: 16px;
padding: 0;
color: black;
}
a {
text-decoration: none;
}
li {
margin-bottom: 12px;
text-decoration: none;
font-style: normal;
font-weight: 500;
font-size: 14px;
line-height: 16px;
text-transform: uppercase;
color: #c4c4c4;
}

View File

@ -0,0 +1,117 @@
.header___wrapper {
background: #000;
height: 76px;
border-bottom: 1px solid #c4c4c4;
display: grid;
font-family: "Roboto", sans-serif;
@media (min-width: 2500px) {
height: 101px;
}
@media (max-width: 1024px) {
display: none;
}
.headerBox {
margin-left: 100px;
margin-right: 100px;
display: flex;
justify-content: space-between;
}
.logo {
display: flex;
align-self: center;
.logoimg {
width: 136px;
height: 25.86px;
display: block;
@media (min-width: 2500px) {
width: 265.62px;
height: 50.5px;
}
}
}
.searchbox {
display: flex;
align-self: center;
background: #ffffff;
border: 2px solid #f0f0f0;
border-radius: 5px;
height: 32px;
width: 264px;
@media (min-width: 2500px) {
width: 512.62px;
height: 57px;
}
.searchtext {
border: none;
padding: 8px 16px;
outline: 0;
width: 100%;
font-style: normal;
font-weight: 400;
font-size: 14px;
line-height: 16px;
color: #c6c6c6;
@media (min-width: 2500px) {
font-style: normal;
font-weight: 400;
font-size: 28px;
line-height: 33px;
color: #c4c4c4;
}
}
.searchlupa {
width: 18px;
height: 18px;
position: relative;
margin-right: 16px;
margin-top: 7px;
margin-bottom: 7px;
@media (min-width: 2500px) {
width: 35.15px;
height: 35.15px;
margin-top: 11px;
}
}
}
.headerlinks {
display: flex;
align-self: center;
gap: 55px;
.cartimg {
width: 28px;
height: 28px;
@media (min-width: 2500px) {
width: 54.68px;
height: 54.68px;
}
}
.textlink {
display: flex;
align-self: center;
text-transform: uppercase;
color: #ffffff;
text-align: center;
text-decoration: none;
@media (min-width: 2500px) {
font-style: normal;
font-weight: 400;
font-size: 28px;
line-height: 33px;
color: #ffffff;
}
}
}
}

View File

@ -0,0 +1,41 @@
.header___wrapper {
background: #000;
font-family: "Roboto", sans-serif;
.headerContainer {
display: flex;
gap: 55px;
height: 44px;
margin-left: 100px;
@media (max-width: 1024px) {
display: none;
}
@media (min-width: 1024px) {
height: 61px;
}
}
.textlinks1,
.textlinks2,
.textlinks3 {
display: flex;
align-self: center;
text-transform: uppercase;
color: white;
text-align: center;
text-decoration: none;
@media (min-width: 2500px) {
font-style: normal;
font-weight: 500;
font-size: 28px;
line-height: 33px;
}
}
.textcontainer {
display: flex;
align-items: center;
justify-content: space-between;
}
}

View File

@ -0,0 +1,73 @@
.Header_Wrapper {
@media (min-width: 1025px) {
display: none;
}
display: grid;
background: black;
height: 139px;
font-family: "Roboto", sans-serif;
.HeaderBox {
margin: 0 16px;
display: flex;
justify-content: space-between;
.BoxMenu {
display: flex;
align-self: center;
}
.BoxLogo {
display: flex;
align-self: center;
.HeaderLogo {
width: 136px;
display: block;
}
}
.BoxCart {
display: flex;
align-self: center;
.HeaderCart {
width: 28px;
height: 28px;
display: block;
}
}
}
.Boxsearch {
left: 35px;
}
.searchbox {
display: flex;
align-self: center;
background: #ffffff;
border: 2px solid #f0f0f0;
border-radius: 5px;
height: 32px;
width: 96.485%;
margin-left: auto;
margin-right: auto;
@media (max-width: 375px) {
width: 91.47%;
}
.searchtext {
border: none;
padding: 8px 16px;
outline: 0;
width: 100%;
}
.searchlupa {
width: 18px;
height: 18px;
margin-right: 16px;
margin-top: 7px;
margin-bottom: 7px;
}
}
}

View File

@ -0,0 +1,168 @@
.mainTitle {
margin-top: 81px;
text-align: center;
font-style: normal;
font-weight: 400;
font-size: 24px;
line-height: 28px;
letter-spacing: 0.1em;
text-transform: uppercase;
margin-bottom: 80px;
font-family: "Roboto", sans-serif;
@media (min-width: 2500px) {
font-style: normal;
font-weight: 400;
font-size: 48px;
line-height: 56px;
letter-spacing: 0.1em;
text-transform: uppercase;
}
}
h2 {
height: 28px;
font-style: normal;
font-weight: 700;
font-size: 24px;
line-height: 28px;
display: flex;
align-items: center;
color: #292929;
font-family: "Roboto", sans-serif;
@media (max-width: 1024px) {
justify-content: center;
display: flex;
width: 100%;
}
@media (min-width: 2500px) {
font-size: 48px;
line-height: 56px;
color: #292929;
}
}
.boxPagamento {
margin-top: -50px;
height: 500px;
font-family: "Roboto", sans-serif;
@media (max-width: 1024px) {
position: relative;
top: 235px;
}
@media (min-width: 2500px) {
margin-top: -90px;
}
}
.boxEntrega {
margin-top: -100px;
font-family: "Roboto", sans-serif;
@media (max-width: 1024px) {
position: relative;
top: 235px;
}
@media (min-width: 2500px) {
margin-top: -140px;
}
}
.boxTroca {
margin-top: -150px;
font-family: "Roboto", sans-serif;
@media (max-width: 1024px) {
position: relative;
top: 235px;
}
@media (min-width: 2500px) {
margin-top: -190px;
}
}
.boxSobre {
font-family: "Roboto", sans-serif;
@media (max-width: 1024px) {
position: relative;
top: 235px;
}
}
.boxSegurança {
font-family: "Roboto", sans-serif;
margin-top: -200px;
@media (max-width: 1024px) {
position: relative;
top: 235px;
}
@media (min-width: 2500px) {
margin-top: -240px;
}
}
.boxContato {
font-family: "Roboto", sans-serif;
@media (max-width: 1024px) {
position: relative;
top: 235px;
}
margin-top: -250px;
@media (min-width: 2500px) {
margin-top: -290px;
}
}
.itemBox {
font-family: "Roboto", sans-serif;
height: 585px;
}
.mainIcon {
font-family: "Roboto", sans-serif;
margin-top: 30px;
margin-left: 100px;
display: flex;
gap: 10px;
@media (max-width: 1024px) {
margin-left: 16px;
}
.IconHouse {
@media (min-width: 2500px) {
width: 31.22px;
height: 31.25px;
}
}
.IconSeta {
@media (min-width: 2500px) {
width: 8.9px;
margin-top: 10px;
height: 15.62px;
}
}
p {
font-family: "Roboto", sans-serif;
font-style: normal;
font-weight: 400;
font-size: 12px;
line-height: 14px;
color: #c4c4c4;
@media (min-width: 2500px) {
font-size: 24px;
line-height: 28px;
margin: 0;
}
}
}

View File

@ -0,0 +1,54 @@
.container {
margin-bottom: 12px;
font-family: 'Roboto', sans-serif;
}
.button {
padding: 0;
width: 100%;
display: flex;
justify-content: space-between;
border: none;
background: transparent;
.buttonName {
margin-left: 16px;
cursor: pointer;
font-weight: 500;
font-size: 14px;
line-height: 16px;
color: #303030;
}
.butttonOption {
color: #303030;
width: 7.8px;
height: 8.28px;
cursor: pointer;
margin-right: 16px;
}
}
.list {
list-style-type: none;
padding: 0;
margin-left: 16px;
font-style: normal;
font-weight: 400;
font-size: 12px;
line-height: 14px;
text-transform: capitalize;
color: #303030;
}
.listItem {
font-style: normal;
font-weight: 400;
font-size: 12px;
line-height: 14px;
text-transform: capitalize;
color: #303030;
}

View File

@ -0,0 +1,25 @@
.text {
width: 748px;
height: 223px;
font-style: normal;
font-weight: 400;
font-size: 13px;
line-height: 15px;
color: #7d7d7d;
font-family: 'Roboto', sans-serif;
@media (max-width: 1024px) {
width: 96.875%;
height: 142px;
}
@media (min-width: 2500px) {
font-style: normal;
font-weight: 400;
font-size: 26px;
line-height: 30px;
color: #7d7d7d;
width: 1680px;
height: 376px;
}
}

View File

@ -0,0 +1,117 @@
.box {
margin-top: 131px;
border-top: 1px solid #000000;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
font-family: "Roboto", sans-serif;
@media (min-width: 2500px) {
margin-top: 325px;
}
@media (max-width: 1024px) {
margin-top: 340px;
}
.title {
font-family: "Roboto", sans-serif;
font-style: normal;
font-weight: 500;
font-size: 18px;
line-height: 21px;
letter-spacing: 0.05em;
font-variant: small-caps;
margin-top: 16;
margin-bottom: 8px;
color: #303030;
@media (min-width: 2500px) {
font-weight: 500;
font-size: 36px;
line-height: 42px;
letter-spacing: 0.05em;
font-variant: small-caps;
}
}
.emailInput {
font-family: "Roboto", sans-serif;
width: 306px;
height: 14px;
padding: 13px 16px;
background: #ffffff;
border: 1px solid #e5e5e5;
border-radius: 4px;
color: #c4c4c4;
@media (max-width: 1024px) {
width: 87.555%;
margin-left: auto;
margin-right: auto;
}
@media (min-width: 2500px) {
width: 668px;
height: 59px;
font-style: normal;
font-weight: 400;
font-size: 28px;
line-height: 33px;
color: #c4c4c4;
}
}
.boxNews {
font-family: "Roboto", sans-serif;
@media (max-width: 1024px) {
display: flex;
flex-direction: column;
width: 100%;
}
@media (min-width: 2500px) {
display: flex;
gap: 8px;
}
}
.btn {
width: 126px;
height: 42px;
background: #000000;
box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
border-radius: 4px;
color: #ffffff;
font-weight: 700;
font-size: 12px;
line-height: 14px;
text-align: center;
letter-spacing: 0.05em;
cursor: pointer;
margin-left: 8px;
margin-bottom: 25px;
@media (max-width: 1024px) {
margin-top: 16px;
width: 96.875%;
margin-left: auto;
margin-right: auto;
}
@media (min-width: 2500px) {
display: flex;
width: 246px;
height: 59px;
font-weight: 700;
font-size: 24px;
line-height: 28px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
letter-spacing: 0.05em;
}
}
}

View File

@ -0,0 +1,26 @@
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx"
},
"include": [
"src"
]
}