Compare commits

..

16 Commits

Author SHA1 Message Date
345a5b5d1a Merge pull request 'fix: codigo não salvo não tinha ido para as rotas' (#4) from feature/body into main
Reviewed-on: #4
2023-01-23 13:48:41 +00:00
9fea32c435 fix: codigo não salvo não tinha ido para as rotas 2023-01-23 10:48:07 -03:00
76de20c9b2 Merge pull request 'feature/body' (#3) from feature/body into main
Reviewed-on: #3
2023-01-21 02:52:21 +00:00
87d13d5e91 feat: adiciona rotas do menu e conserta caminhos e disposição de pastas 2023-01-20 23:50:42 -03:00
0a47ff7f25 fix: ajusta margin do footer para o galaxy fold 2023-01-20 23:13:00 -03:00
d45a5c9e52 feat: adiciona o formulário, estilização, responsividade e schema 2023-01-20 19:47:39 -03:00
f54602f929 feat: adiciona o body e sua estilização 2023-01-20 19:19:30 -03:00
935047244e Merge pull request 'feature/footer' (#2) from feature/footer into main
Reviewed-on: #2
2023-01-20 21:37:26 +00:00
2b24ab7297 feat: adiciona função do botão de ir para o topo 2023-01-20 18:36:44 -03:00
7e8e4d89d8 feat: adiciona estilização do footer bottom 2023-01-20 18:33:49 -03:00
40dc142c6c feat: adiciona estrutura do footer bottom 2023-01-20 18:29:46 -03:00
95c1334239 feat: adiciona accordion mobile e organiza pasta do menu hamburguer 2023-01-20 18:19:59 -03:00
6789e7c39c feat: adiciona estilização do footer top desktop e 4k 2023-01-20 18:11:53 -03:00
daca532c2e feat: adiciona estrutura do footer top 2023-01-20 18:08:40 -03:00
d563bc2481 feat: adiciona a newsletter, sua estilização e responsividade 2023-01-20 18:02:00 -03:00
4a8aef7f49 Merge pull request 'feature/header' (#1) from feature/header into main
Reviewed-on: #1
2023-01-20 20:43:39 +00:00
46 changed files with 2073 additions and 11 deletions

View File

@ -10,12 +10,15 @@
"@types/node": "^16.18.11",
"@types/react": "^18.0.27",
"@types/react-dom": "^18.0.10",
"formik": "^2.2.9",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.7.0",
"react-scripts": "5.0.1",
"sass": "^1.57.1",
"typescript": "^4.9.4",
"web-vitals": "^2.1.4"
"web-vitals": "^2.1.4",
"yup": "^0.32.11"
},
"scripts": {
"start": "react-scripts start",

View File

@ -0,0 +1,3 @@
<svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94167 7.03685L2.22531 0.320703C1.79807 -0.106746 1.10537 -0.106746 0.678334 0.320703C0.251265 0.747771 0.251265 1.44043 0.678334 1.86747L6.62128 7.81023L0.678507 13.7528C0.251438 14.18 0.251438 14.8726 0.678507 15.2997C1.10558 15.7269 1.79824 15.7269 2.22548 15.2997L8.94185 8.58344C9.15538 8.3698 9.26203 8.0901 9.26203 7.81026C9.26203 7.53029 9.15517 7.25038 8.94167 7.03685Z" fill="#C4C4C4"/>
</svg>

After

Width:  |  Height:  |  Size: 511 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.9231 14.8352L28.692 12.6041L16.4147 0.326808C15.9789 -0.108936 15.2723 -0.108936 14.8365 0.326808L2.55915 12.6041L0.326936 14.8364C-0.101287 15.2798 -0.089058 15.9863 0.354338 16.4146C0.786878 16.8323 1.47257 16.8323 1.90511 16.4146L2.23099 16.0864V30.1339C2.23099 30.7503 2.73069 31.25 3.34713 31.25H27.9018C28.5182 31.25 29.0179 30.7503 29.0179 30.1339V16.0864L29.3449 16.4134C29.7883 16.8417 30.4949 16.8294 30.9231 16.386C31.3408 15.9535 31.3408 15.2677 30.9231 14.8352ZM18.9728 29.0178H12.2761V20.0888H18.9728V29.0178ZM26.7856 29.0178H21.2051V18.9727C21.2051 18.3563 20.7054 17.8566 20.0889 17.8566H11.16C10.5436 17.8566 10.0438 18.3563 10.0438 18.9727V29.0178H4.46327V13.8542L15.6244 2.69296L26.7856 13.8542V29.0178Z" fill="#C4C4C4"/>
</svg>

After

Width:  |  Height:  |  Size: 857 B

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

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_7342_910)">
<g clip-path="url(#clip1_7342_910)">
<path d="M19.1778 27.4911V18.544H22.1734L22.6228 15.0561H19.1778V12.8296C19.1778 11.8201 19.4564 11.1321 20.9026 11.1321L22.7441 11.1314V8.01166C22.4256 7.97019 21.3325 7.87511 20.0602 7.87511C17.4034 7.87511 15.5845 9.50026 15.5845 12.4842V15.0561H12.5799V18.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_7342_910">
<rect width="35" height="35" fill="white"/>
</clipPath>
<clipPath id="clip1_7342_910">
<rect width="19.574" height="19.616" fill="white" transform="translate(7.87497 7.87509)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 803 B

View File

@ -0,0 +1,4 @@
<svg width="66" height="66" viewBox="0 0 66 66" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M66 33C66 51.2254 51.2254 66 33 66C14.7746 66 0 51.2254 0 33C0 14.7746 14.7746 0 33 0C51.2254 0 66 14.7746 66 33Z" fill="#C4C4C4"/>
<path d="M44.7428 36.3959C44.741 36.6959 44.6177 36.9953 44.373 37.226L44.3728 37.2261C43.8668 37.7035 43.037 37.7035 42.5311 37.2261L42.5232 37.2345L42.5311 37.2261L33.3457 28.5599L33.0712 28.3009L32.7967 28.5599L23.6118 37.2258C23.1055 37.7033 22.2757 37.7032 21.7698 37.2259L21.7697 37.2258C21.5257 36.9957 21.4025 36.6972 21.4 36.398C21.4019 36.0981 21.5251 35.7986 21.7698 35.5678L21.7698 35.5678L32.1506 25.7738C32.4013 25.5373 32.7333 25.4158 33.0712 25.4158C33.4093 25.4158 33.7415 25.5376 33.9922 25.774L44.3728 35.568L44.3729 35.5681C44.6171 35.7983 44.7403 36.0968 44.7428 36.3959Z" fill="white" stroke="white" stroke-width="0.8"/>
</svg>

After

Width:  |  Height:  |  Size: 887 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 24 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_7342_915)">
<g clip-path="url(#clip1_7342_915)">
<path d="M22.0996 7.87509H13.2966C10.3071 7.87509 7.87497 10.3036 7.87497 13.2884V22.0777C7.87497 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.6181 24.103 9.6181 22.0777V13.2884C9.6181 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.6982 12.6288C14.9067 12.6288 12.6358 14.8962 12.6358 17.6833C12.6358 20.4703 14.9067 22.7376 17.6982 22.7376C20.4896 22.7376 22.7606 20.4703 22.7606 17.6833C22.7606 14.8962 20.4896 12.6288 17.6982 12.6288ZM17.6982 20.9971C15.868 20.9971 14.3789 19.5105 14.3789 17.6832C14.3789 15.8558 15.8679 14.3691 17.6982 14.3691C19.5285 14.3691 21.0175 15.8558 21.0175 17.6832C21.0175 19.5105 19.5284 20.9971 17.6982 20.9971Z" fill="#303030"/>
<path d="M22.9729 11.1531C22.6371 11.1531 22.3072 11.2889 22.07 11.5267C21.8317 11.7634 21.6946 12.0929 21.6946 12.4294C21.6946 12.7648 21.8318 13.0942 22.07 13.3321C22.3071 13.5688 22.6371 13.7057 22.9729 13.7057C23.3099 13.7057 23.6388 13.5688 23.877 13.3321C24.1153 13.0942 24.2512 12.7647 24.2512 12.4294C24.2512 12.0929 24.1153 11.7634 23.877 11.5267C23.64 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_7342_915">
<rect width="35" height="35" fill="white"/>
</clipPath>
<clipPath id="clip1_7342_915">
<rect width="19.6465" height="19.616" fill="white" transform="translate(7.87497 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_7342_930)">
<circle cx="17.5" cy="17.5" r="16.5" stroke="#303030" stroke-width="2"/>
<g clip-path="url(#clip1_7342_930)">
<path d="M13.4447 13.8592H10.2981C10.1584 13.8592 10.0453 13.9724 10.0453 14.112V24.2205C10.0453 24.3602 10.1584 24.4733 10.2981 24.4733H13.4447C13.5843 24.4733 13.6975 24.3602 13.6975 24.2205V14.112C13.6975 13.9724 13.5843 13.8592 13.4447 13.8592Z" fill="#303030"/>
<path d="M11.8725 8.83394C10.7276 8.83394 9.7962 9.76436 9.7962 10.908C9.7962 12.0521 10.7276 12.9829 11.8725 12.9829C13.0165 12.9829 13.9472 12.0521 13.9472 10.908C13.9473 9.76436 13.0165 8.83394 11.8725 8.83394Z" 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.2205C15.1646 24.3602 15.2777 24.4733 15.4174 24.4733H18.557C18.6967 24.4733 18.8098 24.3602 18.8098 24.2205V19.2191C18.8098 17.5338 19.2676 16.8772 20.4425 16.8772C21.722 16.8772 21.8236 17.9298 21.8236 19.3058V24.2206C21.8236 24.3602 21.9368 24.4734 22.0764 24.4734H25.2173C25.3569 24.4734 25.4701 24.3602 25.4701 24.2206V18.6759C25.4701 16.1698 24.9922 13.6079 21.4482 13.6079Z" fill="#303030"/>
</g>
</g>
<defs>
<clipPath id="clip0_7342_930">
<rect width="35" height="35" fill="white"/>
</clipPath>
<clipPath id="clip1_7342_930">
<rect width="15.6739" height="15.6739" fill="white" transform="translate(9.7962 8.8167)"/>
</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.0307 5.52928C16.5833 4.93587 16.0213 4.44237 15.3795 4.0793C14.7376 3.71622 14.0296 3.49127 13.2992 3.41835C12.5688 3.34544 11.8315 3.42611 11.1328 3.65537C10.4342 3.88464 9.78905 4.25763 9.23731 4.7513L8.76065 4.38176C5.48598 2.02835 0.900479 4.0268 0.471483 8.05773C0.34098 9.99969 0.307571 11.9472 0.371384 13.8926C0.360856 14.1423 0.400742 14.3914 0.488564 14.6247C0.576387 14.858 0.710272 15.0703 0.88191 15.2486C1.05355 15.4269 1.25928 15.5673 1.48632 15.6611C1.71337 15.7549 1.95689 15.8 2.20177 15.7938C2.44143 15.7927 2.6784 15.7423 2.89845 15.6454C3.11851 15.5486 3.31709 15.4073 3.48227 15.2302C3.64746 15.0531 3.77583 14.8437 3.85968 14.6147C3.94352 14.3856 3.98111 14.1417 3.97019 13.8975C3.97019 12.4971 3.97019 11.0967 3.97019 9.69149C3.96633 9.2749 3.99502 8.85866 4.05599 8.44672C4.13287 8.0251 4.3634 7.64881 4.70121 7.39352C5.03901 7.13823 5.45905 7.02288 5.87684 7.07066C6.28524 7.10207 6.66838 7.28435 6.95445 7.58333C7.24052 7.88231 7.40987 8.27746 7.43076 8.6947C7.45459 9.21012 7.43076 9.72553 7.43076 10.2409C7.43076 11.4954 7.43076 12.7499 7.43076 14.0044C7.42587 14.3683 7.53195 14.7247 7.73434 15.0244C7.93673 15.3241 8.22541 15.5521 8.56045 15.6771C9.77594 16.1925 11.0153 15.2881 11.0391 13.8634C11.0391 12.2054 11.0391 10.5473 11.0868 8.8892C11.1028 8.48838 11.2229 8.0991 11.4347 7.76112C11.6364 7.4631 11.9287 7.24114 12.2665 7.12952C12.6042 7.01791 12.9685 7.02285 13.3032 7.1436C13.6808 7.25154 14.0109 7.48776 14.2388 7.81317C14.4668 8.13857 14.579 8.53364 14.5569 8.93296C14.5569 10.6105 14.5569 12.288 14.5569 13.9655C14.5569 14.2063 14.6033 14.4446 14.6937 14.6671C14.784 14.8895 14.9163 15.0915 15.0832 15.2618C15.2501 15.432 15.4482 15.567 15.6662 15.6591C15.8842 15.7513 16.1179 15.7987 16.3539 15.7987C16.5899 15.7987 16.8236 15.7513 17.0416 15.6591C17.2596 15.567 17.4577 15.432 17.6246 15.2618C17.7914 15.0915 17.9238 14.8895 18.0141 14.6671C18.1044 14.4446 18.1509 14.2063 18.1509 13.9655C18.1509 12.2491 18.1509 10.5619 18.1509 8.82113C18.1542 7.62603 17.7592 6.46529 17.0307 5.52928Z" fill="white"/>
<path d="M26.035 6.5015L25.4678 6.26325C26.0302 5.8159 26.5641 5.43177 27.0407 4.99416C27.4642 4.65403 27.8298 4.24496 28.1228 3.78342C28.9808 2.14966 27.77 0.248458 25.8491 0.204696C24.0759 0.180384 22.3075 0.180384 20.5343 0.180384C20.3171 0.165073 20.0992 0.19678 19.8949 0.273425C19.6905 0.350069 19.5044 0.46992 19.3486 0.625113C19.1929 0.780306 19.0711 0.967335 18.9912 1.17393C18.9113 1.38052 18.8751 1.60202 18.8851 1.82387C18.8638 2.04985 18.891 2.27783 18.9648 2.49201C19.0385 2.7062 19.157 2.90146 19.3121 3.06428C19.4671 3.22709 19.6551 3.35356 19.8628 3.43492C20.0706 3.51627 20.2932 3.55057 20.5152 3.53544C21.3828 3.53544 22.2503 3.53544 23.1178 3.53544C23.2656 3.58406 23.4181 3.58406 23.7041 3.58406C22.5268 4.55654 21.44 5.4804 20.3675 6.39453C19.6763 6.97802 19.4666 7.61499 19.7097 8.33949C19.8388 8.6971 20.0794 9.00161 20.3946 9.20627C20.7097 9.41093 21.082 9.50443 21.4543 9.47243C22.3742 9.47243 23.2989 9.47243 24.2189 9.47243C24.4252 9.43352 24.6374 9.44139 24.8404 9.4955C25.0434 9.54961 25.2322 9.64862 25.3935 9.78551C25.5548 9.92241 25.6846 10.0938 25.7736 10.2876C25.8627 10.4814 25.9089 10.6928 25.9089 10.9068C25.9089 11.1209 25.8627 11.3323 25.7736 11.5261C25.6846 11.7198 25.5548 11.8913 25.3935 12.0282C25.2322 12.1651 25.0434 12.2641 24.8404 12.3182C24.6374 12.3723 24.4252 12.3802 24.2189 12.3412C23.0273 12.3412 21.8356 12.3412 20.6439 12.3412C20.2262 12.3643 19.833 12.5498 19.5453 12.8596C19.2576 13.1694 19.0972 13.5799 19.0972 14.0066C19.0972 14.4334 19.2576 14.8439 19.5453 15.1537C19.833 15.4635 20.2262 15.649 20.6439 15.672C21.888 15.672 23.1369 15.672 24.381 15.672C25.4738 15.6437 26.5239 15.2331 27.3553 14.5089C28.1867 13.7848 28.7488 12.7912 28.9474 11.6945C29.1057 10.6209 28.9043 9.52417 28.3758 8.58176C27.8473 7.63936 27.0225 6.90642 26.035 6.5015Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.9 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

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_7342_922)">
<circle cx="17.5" cy="17.5" r="16.5" stroke="#303030" stroke-width="2"/>
<path d="M29.9915 10.1563C29.0947 10.5497 28.1392 10.8104 27.143 10.937C28.1679 10.3251 28.95 9.36358 29.3178 8.20462C28.3623 8.7743 27.3073 9.1767 26.183 9.40126C25.2757 8.43521 23.9826 7.83688 22.572 7.83688C19.8351 7.83688 17.6317 10.0584 17.6317 12.7817C17.6317 13.1735 17.6648 13.5503 17.7462 13.909C13.6363 13.7086 9.99968 11.7388 7.55666 8.73813C7.13015 9.47812 6.87997 10.3251 6.87997 11.2369C6.87997 12.949 7.76163 14.4666 9.07583 15.3453C8.28158 15.3302 7.50241 15.0996 6.8423 14.7364C6.8423 14.7515 6.8423 14.7711 6.8423 14.7907C6.8423 17.193 8.55588 19.1884 10.803 19.6481C10.4006 19.7581 9.96201 19.8108 9.50686 19.8108C9.19037 19.8108 8.87086 19.7928 8.57095 19.7264C9.21147 21.6842 11.029 23.1235 13.1902 23.1702C11.5083 24.4859 9.37273 25.2786 7.06083 25.2786C6.65541 25.2786 6.26658 25.2605 5.87775 25.2108C8.06757 26.623 10.6628 27.4293 13.4615 27.4293C22.5584 27.4293 27.5319 19.8937 27.5319 13.3619C27.5319 13.1434 27.5243 12.9324 27.5138 12.7229C28.4949 12.0266 29.3193 11.157 29.9915 10.1563Z" fill="#303030"/>
</g>
<defs>
<clipPath id="clip0_7342_922">
<rect width="35" height="35" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 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_7519_949" transform="translate(0 -0.00590909) scale(0.005 0.0080303)"/>
</pattern>
<image id="image0_7519_949" width="200" height="126" xlink:href="data:image/png;base64,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"/>
</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.8807 5.99083H31.2736V11.4557C31.2736 11.558 31.1851 11.6456 31.0819 11.6456H29.8433C29.7401 11.6456 29.6517 11.558 29.6517 11.4557V5.99083H28.0298C27.9855 5.99083 27.9265 5.97622 27.8971 5.94699C27.8676 5.91777 27.8381 5.87394 27.8381 5.81549V4.8511C27.8381 4.80727 27.8528 4.74882 27.8971 4.7196C27.9265 4.69037 27.9855 4.66115 28.0298 4.67576H32.8807C32.9839 4.67576 33.0724 4.74882 33.0724 4.8511V5.81549C33.0724 5.91777 32.9839 5.99083 32.8807 5.99083Z" fill="white"/>
<path d="M38.0559 11.6017C37.4219 11.6894 36.7732 11.7332 36.1391 11.7186C34.9153 11.7186 33.839 11.4118 33.839 9.70216V6.58983C33.839 4.88024 34.9301 4.588 36.1539 4.588C36.7879 4.57339 37.4219 4.61723 38.0559 4.7049C38.1886 4.71951 38.2476 4.77796 38.2476 4.89485V5.77157C38.2476 5.87385 38.1592 5.96152 38.0559 5.96152H36.0654C35.6231 5.96152 35.4609 6.10764 35.4609 6.60444V7.45193H37.9822C38.0854 7.45193 38.1739 7.53961 38.1739 7.64189V8.53321C38.1739 8.6355 38.0854 8.72317 37.9822 8.72317H35.4609V9.71678C35.4609 10.199 35.6231 10.3597 36.0654 10.3597H38.0559C38.1592 10.3597 38.2476 10.4474 38.2476 10.5497V11.4264C38.2476 11.5286 38.1886 11.5871 38.0559 11.6017Z" fill="white"/>
<path d="M45.1925 11.6455H43.6885C43.5853 11.6601 43.4821 11.6016 43.4379 11.4993L42.1256 9.45367L40.946 11.4555C40.8871 11.5724 40.8133 11.6455 40.7101 11.6455H39.3094C39.2799 11.6455 39.2357 11.6455 39.2062 11.6162C39.1767 11.587 39.1619 11.5578 39.1619 11.5139C39.1619 11.4847 39.1767 11.4701 39.1767 11.4555L41.2262 8.06555L39.1472 4.85094C39.1324 4.83632 39.1324 4.8071 39.1324 4.79249C39.1324 4.71943 39.2062 4.66098 39.2799 4.67559H40.8281C40.9313 4.67559 41.005 4.76327 41.064 4.85094L42.273 6.75048L43.4526 4.85094C43.4969 4.74865 43.5853 4.69021 43.6885 4.67559H45.0893C45.163 4.67559 45.2367 4.71943 45.2367 4.79249C45.2367 4.8071 45.222 4.83632 45.222 4.85094L43.1577 8.09477L45.3104 11.4555C45.3252 11.4847 45.3399 11.5139 45.3399 11.5432C45.3252 11.6016 45.2662 11.6455 45.1925 11.6455Z" fill="white"/>
<path d="M25.5821 4.69058C25.5084 4.69058 25.4494 4.73442 25.4347 4.80748L24.0634 9.84857C24.0487 9.95085 24.0192 9.99469 23.9307 9.99469C23.8423 9.99469 23.8128 9.95085 23.798 9.84857L22.4268 4.80748C22.412 4.73442 22.353 4.69058 22.2793 4.69058H20.9228C20.8786 4.69058 20.8344 4.70519 20.8049 4.74903C20.7754 4.77825 20.7606 4.82209 20.7754 4.86592C20.7754 4.86592 22.4563 10.6522 22.471 10.7107C22.6922 11.3974 23.2377 11.7335 23.9307 11.7335C24.5942 11.7627 25.1988 11.339 25.3904 10.7107C25.4199 10.6376 27.0566 4.86592 27.0566 4.86592C27.0713 4.82209 27.0566 4.77825 27.0271 4.74903C26.9976 4.71981 26.9534 4.69058 26.9091 4.69058H25.5821Z" fill="white"/>
<path d="M17.9149 0H3.80434C3.28828 0 2.81645 0.277625 2.56579 0.70137C2.30039 1.13973 2.28565 1.68037 2.52156 2.11872L3.93704 4.77808H1.37148C1.0471 4.77808 0.737464 4.93881 0.560528 5.21644C0.383593 5.49406 0.383593 5.84475 0.531039 6.13699L5.07237 14.6411C5.23457 14.9479 5.55895 15.1379 5.89807 15.1379C6.2372 15.1379 6.56158 14.9479 6.72377 14.6411L7.96232 12.3324L9.5105 15.2402C9.76116 15.7078 10.2625 16 10.7933 16C11.3241 16 11.8254 15.7078 12.0761 15.2402L19.1535 2.04566C19.3894 1.60731 19.3746 1.08128 19.1092 0.672146C18.8733 0.248402 18.4015 0 17.9149 0ZM11.6042 5.56712L8.50787 11.3242C8.40465 11.5288 8.19823 11.6457 7.96232 11.6457C7.7264 11.6457 7.51998 11.5142 7.41677 11.3242L4.36463 5.62557C4.27617 5.45023 4.27617 5.24566 4.37938 5.07032C4.48259 4.89498 4.67427 4.79269 4.86595 4.79269H11.1177C11.3093 4.79269 11.4863 4.88036 11.5747 5.0411C11.6927 5.20183 11.6927 5.40639 11.6042 5.56712Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -0,0 +1,11 @@
<svg width="66" height="66" viewBox="0 0 66 66" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_3751_658)">
<path d="M33.0083 0H32.9917C14.7964 0 0 14.8005 0 33C0 40.2188 2.3265 46.9095 6.28237 52.3421L2.16975 64.6016L14.8541 60.5468C20.0723 64.0035 26.2969 66 33.0083 66C51.2036 66 66 51.1954 66 33C66 14.8046 51.2036 0 33.0083 0Z" fill="#4CAF50"/>
<path d="M52.21 46.6001C51.4139 48.8483 48.2542 50.7128 45.7338 51.2573C44.0095 51.6244 41.7573 51.9173 34.1755 48.774C24.4777 44.7563 18.2324 34.9016 17.7457 34.2623C17.2795 33.6229 13.8269 29.0441 13.8269 24.3086C13.8269 19.5731 16.2318 17.2673 17.2012 16.2773C17.9973 15.4646 19.3132 15.0934 20.5754 15.0934C20.9838 15.0934 21.3509 15.114 21.6809 15.1305C22.6503 15.1718 23.137 15.2295 23.7764 16.7599C24.5725 18.678 26.5113 23.4135 26.7423 23.9003C26.9774 24.387 27.2125 25.047 26.8825 25.6864C26.5732 26.3464 26.3009 26.6393 25.8142 27.2003C25.3274 27.7613 24.8654 28.1903 24.3787 28.7925C23.9332 29.3164 23.4299 29.8774 23.9909 30.8468C24.5519 31.7955 26.4907 34.9594 29.3452 37.5004C33.0288 40.7798 36.0153 41.8275 37.0837 42.273C37.8798 42.603 38.8285 42.5246 39.4102 41.9059C40.1485 41.1098 41.0602 39.7898 41.9883 38.4904C42.6483 37.5581 43.4815 37.4426 44.356 37.7726C45.247 38.082 49.9619 40.4126 50.9313 40.8953C51.9007 41.382 52.54 41.613 52.7752 42.0214C53.0062 42.4298 53.0062 44.3479 52.21 46.6001Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_3751_658">
<rect width="66" height="66" 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_7342_927)">
<circle cx="17.5" cy="17.5" r="16.5" stroke="#303030" stroke-width="2"/>
<path d="M27.8027 12.2486C27.5447 11.2896 26.7886 10.5336 25.8297 10.2754C24.0779 9.79604 17.0706 9.79604 17.0706 9.79604C17.0706 9.79604 10.0636 9.79604 8.31176 10.2572C7.3713 10.5152 6.59672 11.2897 6.33875 12.2486C5.87775 14.0003 5.87775 17.633 5.87775 17.633C5.87775 17.633 5.87775 21.284 6.33875 23.0174C6.59699 23.9763 7.35285 24.7323 8.31189 24.9905C10.082 25.47 17.0709 25.47 17.0709 25.47C17.0709 25.47 24.0779 25.47 25.8297 25.0088C26.7887 24.7507 27.5447 23.9947 27.803 23.0358C28.2638 21.284 28.2638 17.6514 28.2638 17.6514C28.2638 17.6514 28.2823 14.0003 27.8027 12.2486ZM14.8396 20.989V14.277L20.6665 17.633L14.8396 20.989Z" fill="#303030"/>
</g>
<defs>
<clipPath id="clip0_7342_927">
<rect width="35" height="35" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 976 B

View File

@ -0,0 +1,283 @@
.body-container {
margin: 30px 100px 70px 100px;
@media screen and (min-width: 2500px) {
margin: 30px 100px 84px 100px;
height: 826px;
}
@media screen and (max-width: 1024px) {
margin: 30px 16px 80px 16px;
}
h1 {
font-family: "Roboto", sans-serif;
font-style: normal;
font-weight: 400;
font-size: 24px;
line-height: 28px;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #292929;
text-align: center;
margin: 0 0 80px 0;
@media screen and (min-width: 2500px) {
font-size: 48px;
line-height: 56px;
}
@media screen and (max-width: 1024px) {
margin: 0 0 40px 0;
}
}
.menu-list-container {
display: flex;
@media screen and (max-width: 1024px) {
display: block;
}
.menu-list {
width: 100%;
max-width: 302px;
height: 285px;
list-style-type: none;
border-right: 1px solid black;
padding: unset;
@media screen and (min-width: 2500px) {
max-width: 590px;
height: 465px;
}
@media screen and (max-width: 1024px) {
max-width: unset;
border: none;
height: 224px;
}
a {
text-decoration: none;
li {
width: 100%;
max-width: 302px;
height: 39px;
padding: 10px 16px;
font-family: "Roboto", sans-serif;
font-weight: 400;
font-size: 16px;
line-height: 19px;
color: #7d7d7d;
cursor: pointer;
@media screen and (min-width: 2500px) {
max-width: 590px;
height: 58px;
font-size: 32px;
line-height: 38px;
margin-bottom: 10px;
}
@media screen and (max-width: 1024px) {
width: 100%;
}
}
li.active {
color: white;
background-color: black;
max-width: unset;
}
}
.menu-list-sobre {
color: white !important;
background-color: black;
}
}
.form-wrapper {
max-height: 100vh;
margin-left: 30px;
@media screen and (max-width: 1024px) {
margin: unset;
}
h2 {
margin-bottom: 12px;
@media screen and (max-width: 1024px) {
margin-top: 30px;
text-align: center;
}
}
form {
width: 100%;
}
.form-col {
position: relative;
display: flex;
flex-direction: column;
margin-bottom: 12px;
label {
font-family: "Roboto", sans-serif;
font-size: 14px;
line-height: 16px;
color: #100d0e;
margin: 0 0 12px 15px;
}
input {
height: 46px;
border: 1px solid black;
border-radius: 25px;
padding: 15px 0px 15px 20px;
&::placeholder {
font-family: "Roboto", sans-serif;
font-size: 14px;
line-height: 16px;
color: #b9b7b7;
}
}
.form-invalid-feedback {
position: absolute;
right: 0;
margin-right: 20px;
font-weight: 400;
font-size: 12px;
line-height: 14px;
text-align: right;
color: #ff0000;
}
}
.form-terms {
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 12px;
label {
display: flex;
align-items: center;
margin-right: 4px;
span {
color: red;
margin-right: 3.5px;
}
a {
text-decoration: none;
color: #100d0e;
h3 {
font-family: "Roboto", sans-serif;
font-size: 14px;
font-weight: 400;
line-height: 16px;
text-decoration: underline;
}
}
input {
width: 18px;
height: 18px;
}
}
}
button {
width: 100%;
height: 52px;
border: 1px solid black;
border-radius: 25px;
background-color: black;
color: white;
font-family: "Roboto", sans-serif;
font-size: 16px;
line-height: 19px;
letter-spacing: 0.05em;
text-transform: uppercase;
cursor: pointer;
&:hover {
filter: brightness(80%);
}
}
}
.form-success {
font-family: "Roboto", sans-serif;
font-size: 12px;
line-height: 14px;
color: #008000;
}
}
.menu-list-container > div {
width: 100%;
}
.description-container {
padding-top: 10px;
margin: 0px 0px 0px 30px;
@media screen and (max-width: 1024px) {
padding: unset;
margin: unset;
}
h2 {
font-family: "Roboto", sans-serif;
font-weight: 700;
font-size: 24px;
line-height: 28px;
color: #292929;
margin-bottom: 12px;
@media screen and (min-width: 2500px) {
font-size: 48px;
line-height: 56px;
margin: unset;
margin-bottom: 12px;
}
@media screen and (max-width: 1024px) {
text-align: center;
margin-top: 30px;
margin-bottom: 12px;
}
}
p {
font-family: "Roboto", sans-serif;
font-size: 13px;
line-height: 15px;
color: #7d7d7d;
margin-bottom: 20px;
@media screen and (min-width: 2500px) {
font-size: 26px;
line-height: 30px;
}
@media screen and (max-width: 1024px) {
font-size: 12px;
line-height: 18px;
}
}
.description-parag {
@media screen and (max-width: 1024px) {
display: none;
}
}
}
}

View File

@ -0,0 +1,66 @@
import React from "react";
import { Route, Routes } from "react-router-dom";
import styles from "./Body.module.scss";
import { BreadCrumb } from "./BreadCrumb/BreadCrumb";
import { TabDisposition } from "./Tabs/TabDisposition";
import { Sobre } from "../Body/Tabs/Sobre";
import { Contato } from "./Tabs/Contato";
import { Seguranca } from "./Tabs/SegurancaEPrivacidade";
import { Troca } from "./Tabs/TrocaEDevolucao";
import { Entrega } from "./Tabs/Entrega";
import { Pagamento } from "./Tabs/FormaDePagamento";
const Body = () => {
const TabsContents = [
{
title: "Sobre",
path: "sobre",
},
{
title: "Forma de Pagamento",
path: "pagamento",
},
{
title: "Entrega",
path: "entrega",
},
{
title: "Troca e Devolução",
path: "troca",
},
{
title: "Segurança e Privacidade",
path: "seguranca",
},
{
title: "Contato",
path: "contato",
},
];
return (
<div className={styles["body-container"]}>
<BreadCrumb />
<h1>Institucional</h1>
<div className={styles["menu-list-container"]}>
<TabDisposition tabs={TabsContents} />
<div className={styles["wrapper-text"]}>
<Routes>
<Route path="sobre" element={<Sobre />} />
<Route path="pagamento" element={<Pagamento />} />
<Route path="entrega" element={<Entrega />} />
<Route path="troca" element={<Troca />} />
<Route path="seguranca" element={<Seguranca />} />
<Route path="contato" element={<Contato />} />
</Routes>
</div>
<section className={styles["description-container"]}>
<div className={styles["description"]}></div>
</section>
</div>
</div>
);
};
export { Body };

View File

@ -0,0 +1,50 @@
.breadcrumb-container {
display: flex;
align-items: center;
margin-bottom: 80px;
button {
display: inherit;
background-color: transparent;
align-items: center;
.breadcrumb-home {
width: 100%;
max-width: 16px;
height: 16px;
margin-right: 10px;
cursor: pointer;
@media screen and (min-width: 2500px) {
max-width: 31px;
height: 31px;
}
}
.arrow {
width: 100%;
max-width: 4px;
height: 8px;
margin-right: 10px;
@media screen and (min-width: 2500px) {
max-width: 9px;
height: 15px;
}
}
a {
font-family: "Roboto", sans-serif;
font-weight: 400;
font-size: 12px;
line-height: 14px;
color: #c4c4c4;
text-decoration: none;
text-transform: uppercase;
@media screen and (min-width: 2500px) {
font-size: 24px;
line-height: 28px;
}
}
}
}

View File

@ -0,0 +1,26 @@
import React from "react";
import breadcrumb from "../../../assets/images/breadcrumbicon.svg";
import arrow from "../../../assets/images/arrowicon.svg";
import styles from "./BreadCrumb.module.scss";
const BreadCrumb = () => {
return (
<>
<div className={styles["breadcrumb-container"]}>
<button className={styles["breadcrumb"]}>
<img
src={breadcrumb}
alt="breadcrumb-home"
className={styles["breadcrumb-home"]}
/>
<img src={arrow} alt="breadcrumb-arrow" className={styles["arrow"]} />
<a href="/">Institucional</a>
</button>
</div>
</>
);
};
export { BreadCrumb };

View File

@ -0,0 +1,129 @@
import React, { useState } from "react";
import styles from "../Body.module.scss";
import { Formik, Form, Field, ErrorMessage } from "formik";
import FormSchema from "../../../schema/FormSchema";
interface IFormikValues {
name: string;
email: string;
cpf: string;
nascimento: string;
telefone: string;
instagram: string;
terms: string;
}
const initialValues = {
name: "",
email: "",
cpf: "",
nascimento: "",
telefone: "",
instagram: "",
terms: "",
};
const Contato = () => {
const handleFormikSubmit = (values: IFormikValues) => {};
const [success, isSuccess] = useState(false);
return (
<div className={styles["form-wrapper"]}>
<Formik
onSubmit={(values, { resetForm }) => {
handleFormikSubmit(values);
resetForm();
isSuccess(true);
}}
initialValues={initialValues}
validationSchema={FormSchema}
>
{
<Form>
<h2 className="">Preencha o Formulário</h2>
<div className={styles["form-col"]}>
<label htmlFor="name">Nome</label>
<ErrorMessage
component="span"
name="name"
className={styles["form-invalid-feedback"]}
/>
<Field id="name" name="name" placeholder="Seu nome completo" />
</div>
<div className={styles["form-col"]}>
<label htmlFor="email">E-mail</label>
<Field id="email" name="email" placeholder="Seu e-mail" />
<ErrorMessage
component="span"
name="email"
className={styles["form-invalid-feedback"]}
/>
</div>
<div className={styles["form-col"]}>
<label htmlFor="cpf">CPF</label>
<Field id="cpf" name="cpf" placeholder="000.000.000-00" />
<ErrorMessage
component="span"
name="cpf"
className={styles["form-invalid-feedback"]}
/>
</div>
<div className={styles["form-col"]}>
<label htmlFor="nascimento">Data de Nascimento:</label>
<Field
id="nascimento"
name="nascimento"
placeholder="00.00.0000"
/>
<ErrorMessage
component="span"
name="nascimento"
className={styles["form-invalid-feedback"]}
/>
</div>
<div className={styles["form-col"]}>
<label htmlFor="telefone">Telefone:</label>
<Field
id="telefone"
name="telefone"
placeholder="(00) 00000-0000"
/>
<ErrorMessage
component="span"
name="telefone"
className={styles["form-invalid-feedback"]}
/>
</div>
<div className={styles["form-col"]}>
<label htmlFor="instagram">Instagram</label>
<Field id="instagram" name="instagram" placeholder="@seuuser" />
<ErrorMessage
component="span"
name="instagram"
className={styles["form-invalid-feedback"]}
/>
</div>
<div className={styles["form-terms"]}>
<label htmlFor="terms">
<span className={styles["asterisk"]}>*</span>
<a href="/">
<h3>Declaro que li e aceito</h3>
</a>
</label>
<Field type="checkbox" id="terms" name="terms" required />
</div>
<button type="submit">Cadastre-se</button>
{success && (
<span className={styles["form-success"]}>
*Formulário enviado com sucesso!
</span>
)}
</Form>
}
</Formik>
</div>
);
};
export { Contato };

View File

@ -0,0 +1,42 @@
import React from "react";
import styles from "../Body.module.scss";
const Entrega = () => {
return (
<section className={styles["description-container"]}>
<div className={styles["description"]}>
<h2>Entrega</h2>
<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 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.
</p>
<p className={styles["description-parag"]}>
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>
</section>
);
};
export { Entrega };

View File

@ -0,0 +1,42 @@
import React from "react";
import styles from "../Body.module.scss";
const Pagamento = () => {
return (
<section className={styles["description-container"]}>
<div className={styles["description"]}>
<h2>Forma de Pagamento</h2>
<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 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.
</p>
<p className={styles["description-parag"]}>
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>
</section>
);
};
export { Pagamento };

View File

@ -0,0 +1,42 @@
import React from "react";
import styles from "../Body.module.scss";
const Seguranca = () => {
return (
<section className={styles["description-container"]}>
<div className={styles["description"]}>
<h2>Segurança e Privacidade</h2>
<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 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.
</p>
<p className={styles["description-parag"]}>
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>
</section>
);
};
export { Seguranca };

View File

@ -0,0 +1,43 @@
import React from "react";
import styles from "../Body.module.scss";
const Sobre = () => {
return (
<section className={styles["description-container"]}>
<div className={styles["description"]}>
<h2>Sobre</h2>
<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 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.
</p>
<p className={styles["description-parag"]}>
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>
</section>
);
};
export { Sobre };

View File

@ -0,0 +1,48 @@
import React, { useEffect, useState } from "react";
import { Link } from "react-router-dom";
import styles from "../Body.module.scss";
interface MenuValue {
title: string;
path: string;
}
export interface TabDispositionProps {
tabs: MenuValue[];
}
const TabDisposition: React.FC<TabDispositionProps> = ({ tabs }) => {
const [selectecTab, setselectedTab] = useState<MenuValue>();
useEffect(() => {
setselectedTab(tabs[0]);
}, [tabs]);
const handleClick = (tab: MenuValue) => {
setselectedTab(tab);
};
return (
<>
<ul className={styles["menu-list"]}>
{tabs.map((tab, index) => {
return (
<Link to={tab.path}>
<li
key={tab.title}
onClick={() => {
handleClick(tab);
}}
className={
tabs.indexOf(selectecTab!) === index ? styles["active"] : ""
}
>
{tab.title}
</li>
</Link>
);
})}
</ul>
</>
);
};
export { TabDisposition };

View File

@ -0,0 +1,42 @@
import React from "react";
import styles from "../Body.module.scss";
const Troca = () => {
return (
<section className={styles["description-container"]}>
<div className={styles["description"]}>
<h2>Troca e Devolução</h2>
<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 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.
</p>
<p className={styles["description-parag"]}>
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>
</section>
);
};
export { Troca };

View File

@ -0,0 +1,107 @@
.wrapper-container {
border-top: 1px solid black;
padding: 24px 16px;
min-height: 198px;
@media screen and (min-width: 1025px) {
display: none;
}
.wrapper {
display: flex;
align-items: center;
height: auto;
.accordion {
width: 100%;
.item {
margin-bottom: 12px;
.title {
color: #303030;
display: flex;
justify-content: space-between;
align-items: center;
font-family: "Roboto", sans-serif;
font-weight: 500;
font-style: normal;
font-size: 14px;
h3 {
margin: 0;
}
span {
font-size: 14px;
}
}
}
.content {
max-height: 0;
overflow: hidden;
transition: all 0.2s cubic-bezier(0, 1, 0, 1);
ul {
padding: unset;
list-style-type: none;
li {
margin: 12px 0px;
a {
font-family: "Roboto", sans-serif;
font-size: 12px;
line-height: 14px;
text-transform: capitalize;
color: #303030;
text-decoration: none;
}
}
}
.institucional-content {
margin: 0;
}
.revendedor-content,
.duvidasfreq-content,
.num2-content {
text-decoration: underline;
}
.atendimento-content,
.atendimento2-content {
font-weight: 500;
}
}
.content.show {
height: auto;
max-height: 9999px;
transition: all 0.5s cubic-bezier(1, 0, 1, 0);
}
}
}
.footer-socials-container {
button {
margin-right: 10px;
background-color: transparent;
}
h4 {
font-family: "Roboto", sans-serif;
font-weight: 400;
font-size: 14px;
line-height: 16px;
text-transform: lowercase;
margin-top: 12px;
}
@media screen and (min-width: 1025px) {
display: none;
}
}
}

View File

@ -0,0 +1,103 @@
import React, { useState } from "react";
import facebook from "../../../assets/images/facebookicon.svg";
import instagram from "../../../assets/images/instagramicon.svg";
import twitter from "../../../assets/images/twittericon.svg";
import youtube from "../../../assets/images/youtubeicon.svg";
import linkedin from "../../../assets/images/linkedinicon.svg";
import "./Accordion.scss";
import { data } from "./AccordionData";
const Accordion = () => {
const [selected, setSelected] = useState(false);
const toggle = (i: any) => {
if (selected === i) {
return setSelected(false);
}
setSelected(i);
};
return (
<div className="wrapper-container">
<div className="wrapper">
<div className="accordion">
{data.map((item: any, i: any) => (
<div className="item" key={item.id}>
<div className="title" onClick={() => toggle(i)}>
<h3>{item.title}</h3>
<span>{selected === i ? "-" : "+"}</span>
</div>
<div className={selected === i ? "content show" : "content"}>
<ul className="institucional-content">
<li className="quem-somos-content">
<a href="/">{item.subtitle}</a>
</li>
<li className="politica-content">
<a href="/">{item.subtitle2}</a>
</li>
<li className="segurança-content">
<a href="/">{item.subtitle3}</a>
</li>
<li className="revendedor-content">
<a href="/">{item.subtitle4}</a>
</li>
</ul>
<ul className="duvidas-content">
<li className="">
<a href="/">{item.subtitle12}</a>
</li>
<li className="">
<a href="/">{item.subtitle22}</a>
</li>
<li className="">
<a href="/">{item.subtitle32}</a>
</li>
<li className="duvidasfreq-content">
<a href="/">{item.subtitle42}</a>
</li>
</ul>
<ul className="fale-conosco-content">
<li className="atendimento-content">
<a href="/">{item.subtitle13}</a>
</li>
<li className="num1-content">
<a href="/">{item.subtitle23}</a>
</li>
<li className="atendimento2-content">
<a href="/">{item.subtitle33}</a>
</li>
<li className="num2-content">
<a href="/">{item.subtitle43}</a>
</li>
</ul>
</div>
</div>
))}
</div>
</div>
<div className="footer-socials-container">
<button className="button-icon">
<img src={facebook} alt="facebookicon" className="facebook-icon" />
</button>
<button className="button-icon">
<img src={instagram} alt="instagramicon" className="instagram-icon" />
</button>
<button className="button-icon">
<img src={twitter} alt="twittericon" className="twitter-icon" />
</button>
<button className="button-icon">
<img src={youtube} alt="youtubeicon" className="youtube-icon" />
</button>
<button className="button-icon">
<img src={linkedin} alt="linkedinicon" className="linkedin-icon" />
</button>
<h4 className="footer-socials-site">www.loremipsum.com</h4>
</div>
</div>
);
};
export { Accordion };

View File

@ -0,0 +1,25 @@
const data = [
{
title: "Institucional",
subtitle: ["Quem somos"],
subtitle2: ["Política de Privacidade"],
subtitle3: ["Segurança"],
subtitle4: ["Seja um Revendedor"],
},
{
title: "Dúvidas",
subtitle12: ["Entrega"],
subtitle22: ["Pagamento"],
subtitle32: ["Trocas e Devoluções"],
subtitle42: ["Dúvidas Frequentes"],
},
{
title: "Fale Conosco",
subtitle13: ["Atendimento Ao Consumidor"],
subtitle23: ["(11) 4159-9504"],
subtitle33: ["Atendimento Online"],
subtitle43: ["(11) 99433-8825"],
},
];
export { data };

View File

@ -0,0 +1,331 @@
.footer-container-top {
width: 100%;
height: 240px;
border-top: 1px solid black;
display: flex;
justify-content: center;
padding: 50px 16px 50px 16px;
@media screen and (min-width: 2500px) {
height: 297px;
}
@media screen and (max-width: 1024px) {
display: none;
}
.footer-container-institucional,
.footer-container-duvidas,
.footer-container-fale-conosco {
width: 100%;
max-width: 155px;
height: 125px;
margin-right: 122px;
a {
text-decoration: none;
}
@media screen and (min-width: 2500px) {
max-width: 315px;
height: 197px;
margin-right: 293px;
}
h4 {
font-family: "Roboto", sans-serif;
font-weight: 400;
font-size: 12px;
line-height: 14px;
text-transform: capitalize;
color: #303030;
margin: 12px 0px;
@media screen and (min-width: 2500px) {
font-size: 24px;
line-height: 28px;
}
}
.footer-fale-conosco-atendimento,
.footer-fale-conosco-atendimento-on {
font-weight: 500;
}
}
h3 {
font-family: "Roboto", sans-serif;
font-weight: 500;
font-size: 14px;
line-height: 16px;
text-transform: uppercase;
color: #303030;
margin: 0px 0px 12px 0px;
@media screen and (min-width: 2500px) {
font-size: 28px;
line-height: 33px;
}
}
.footer-institucional-revendedor,
.footer-duvidas-duvidasfreq,
.footer-fale-conosco-num1,
.footer-fale-conosco-num2 {
text-decoration: underline;
}
.footer-socials-container {
width: 100%;
max-width: 215px;
height: 63px;
margin-right: 50px;
@media screen and (min-width: 2500px) {
max-width: 390px;
height: 116px;
}
button {
width: 35px;
height: 35px;
background-color: transparent;
border: none;
padding: unset;
margin-right: 10px;
cursor: pointer;
@media screen and (min-width: 2500px) {
width: 70px;
height: 70px;
}
img {
@media screen and (min-width: 2500px) {
width: 70px;
height: 70px;
}
}
@media screen and (max-width: 1024px) {
border: none;
}
}
button:last-of-type {
margin: unset;
}
a {
text-decoration: none;
h4 {
font-family: "Roboto", sans-serif;
font-weight: 400;
font-size: 14px;
line-height: 16px;
color: #303030;
text-transform: lowercase;
margin-bottom: 0;
@media screen and (min-width: 2500px) {
font-size: 28px;
line-height: 33px;
}
}
}
}
.whatsapp-container {
display: flex;
flex-direction: column;
position: fixed;
height: 73px;
padding-top: 40px;
top: 85%;
right: 1%;
@media screen and (min-width: 2500px) {
height: 137px;
}
button {
background: transparent;
border: none;
}
img {
width: 100%;
max-width: 34px;
height: 34px;
@media screen and (min-width: 2500px) {
max-width: 66px;
height: 66px;
}
}
}
}
.footer-bottom {
background: #000000;
display: flex;
align-items: center;
justify-content: space-between;
padding: 20px 100px;
height: 64px;
@media screen and (min-width: 2500px) {
height: 96px;
}
@media screen and (max-width: 1024px) {
flex-direction: column;
align-items: flex-start;
padding: 15px 16px;
height: 134px;
}
p {
font-family: "Roboto", sans-serif;
font-size: 10px;
line-height: 12px;
text-transform: capitalize;
color: #ffffff;
margin: 0;
@media screen and (min-width: 2500px) {
font-size: 20px;
line-height: 23px;
}
}
.first-text {
width: 22%;
min-width: 234px;
@media screen and (max-width: 1024px) {
display: flex;
order: 1;
margin: 15px 0;
width: 22%;
min-width: 234px;
}
@media screen and (max-width: 375px) {
margin: unset;
}
}
.cards {
display: flex;
align-items: center;
@media screen and (max-width: 375px) {
display: block;
}
.icons {
width: 36px;
height: 20px;
margin-right: 12px;
@media screen and (min-width: 2500px) {
width: 70px;
height: 40px;
}
@media screen and (max-width: 428px) {
width: 30px;
height: 17px;
}
}
.divisor {
border: 1px solid #c4c4c4;
height: 24px;
width: 1px;
}
.icon-vtex {
width: 55px;
height: 34px;
margin-left: 12px;
@media screen and (min-width: 2500px) {
width: 106px;
height: 66px;
}
@media screen and (max-width: 428px) {
max-width: 45px;
height: 28px;
}
}
}
.powered {
display: flex;
align-items: center;
@media screen and (min-width: 2500px) {
width: 100%;
max-width: 404px;
}
@media screen and (max-width: 1024px) {
order: 2;
}
.vtexP {
width: 45px;
height: 16px;
margin: 0 13px;
@media screen and (min-width: 2500px) {
width: 84px;
height: 30px;
}
}
.m3 {
width: 28.66px;
height: 15.65px;
margin-left: 13px;
@media screen and (min-width: 2500px) {
width: 54.95px;
height: 30px;
}
}
}
.wrapper {
display: flex;
flex-direction: column;
}
.whatsapp-container {
display: flex;
flex-direction: column;
position: fixed;
height: 73px;
padding-top: 40px;
top: 85%;
right: 1%;
@media screen and (min-width: 2500px) {
display: none;
}
button {
background: transparent;
border: none;
}
img {
width: 100%;
max-width: 34px;
height: 34px;
}
}
}

View File

@ -0,0 +1,228 @@
import React, { useState, useEffect } from "react";
import { Newsletter } from "../Newsletter/Newsletter";
import { Accordion } from "./Accordion/Accordion";
import facebook from "../../assets/images/facebookicon.svg";
import instagram from "../../assets/images/instagramicon.svg";
import twitter from "../../assets/images/twittericon.svg";
import youtube from "../../assets/images/youtubeicon.svg";
import linkedin from "../../assets/images/linkedinicon.svg";
import mastercard from "../../assets/images/mastericon.svg";
import visa from "../../assets/images/visaicon.svg";
import diners from "../../assets/images/dinersicon.svg";
import elo from "../../assets/images/eloicon.svg";
import hiper from "../../assets/images/hipericon.svg";
import pagseguro from "../../assets/images/pagseguroicon.svg";
import boleto from "../../assets/images/boletoicon.svg";
import vtex from "../../assets/images/vtexicon.svg";
import whatsapp from "../../assets/images/whatsappicon.svg";
import vtexpowered from "../../assets/images/vtexpowered.svg";
import m3developed from "../../assets/images/m3developed.svg";
import gototop from "../../assets/images/gotopicon.svg";
import styles from "./Footer.module.scss";
const Footer = () => {
const [visible, setVisible] = useState(false);
useEffect(() => {
const handleResize = () => {
if (window.pageYOffset > 100) {
setVisible(true);
} else {
setVisible(false);
}
};
window.addEventListener("scroll", handleResize);
return () => {
window.removeEventListener("scroll", handleResize);
};
}, []);
return (
<div>
<Newsletter />
<Accordion />
<div className={styles["footer-container-top"]}>
<div className={styles["footer-container-institucional"]}>
<h3 className={styles["footer-institucional"]}>Institucional</h3>
<a href="/">
<h4 className={styles["footer-institucional-quem-somos"]}>
Quem Somos
</h4>
</a>
<a href="/">
<h4 className={styles["footer-institucional-politica"]}>
Política de Privacidade
</h4>
</a>
<a href="/">
<h4 className={styles["footer-institucional-seguranca"]}>
Segurança
</h4>
</a>
<a href="/">
<h4 className={styles["footer-institucional-revendedor"]}>
Seja um Revendedor
</h4>
</a>
</div>
<div className={styles["footer-container-duvidas"]}>
<h3 className={styles["footer-duvidas"]}>Dúvidas</h3>
<a href="/">
<h4 className={styles["footer-duvidas-entrega"]}>Entrega</h4>
</a>
<a href="/">
<h4 className={styles["footer-duvidas-pagamento"]}>Pagamento</h4>
</a>
<a href="/">
<h4 className={styles["footer-duvidas-trocas"]}>
Trocas e Devoluções
</h4>
</a>
<a href="/">
<h4 className={styles["footer-duvidas-duvidasfreq"]}>
Dúvidas Frequentes
</h4>
</a>
</div>
<div className={styles["footer-container-fale-conosco"]}>
<h3 className={styles["footer-fale-conosco"]}>Fale Conosco</h3>
<a href="/">
<h4 className={styles["footer-fale-conosco-atendimento"]}>
Atendimento Ao Consumidor
</h4>
</a>
<a href="/">
<h4 className={styles["footer-fale-conosco-num1"]}>
(11) 4159-9504
</h4>
</a>
<a href="/">
<h4 className={styles["footer-fale-conosco-atendimento-on"]}>
Atendimento Online
</h4>
</a>
<a href="/">
<h4 className={styles["footer-fale-conosco-num2"]}>
(11) 99433-8825
</h4>
</a>
</div>
<div className={styles["footer-socials-container"]}>
<button className={styles["button-icon"]}>
<img
src={facebook}
alt="facebookicon"
className={styles["facebook-icon"]}
/>
</button>
<button className={styles["button-icon"]}>
<img
src={instagram}
alt="instagramicon"
className={styles["instagram-icon"]}
/>
</button>
<button className={styles["button-icon"]}>
<img
src={twitter}
alt="twittericon"
className={styles["twitter-icon"]}
/>
</button>
<button className={styles["button-icon"]}>
<img
src={youtube}
alt="youtubeicon"
className={styles["youtube-icon"]}
/>
</button>
<button className={styles["button-icon"]}>
<img
src={linkedin}
alt="linkedinicon"
className={styles["linkedin-icon"]}
/>
</button>
<a href="/">
<h4 className={styles["footer-socials-site"]}>
www.loremipsum.com
</h4>
</a>
</div>
<div className={styles["whatsapp-container"]}>
<button className={styles["button-icon"]}>
<a href="https://wa.me/">
<img
src={whatsapp}
alt="whatsappicon"
className={styles["whatsapp-icon"]}
/>
</a>
</button>
<button className={styles["button-icon"]}>
{visible && (
<a href="#header">
<img src={gototop} alt="" className={styles["go-top-icon"]} />
</a>
)}
</button>
</div>
</div>
<div className={styles["footer-bottom"]}>
<div className={styles["first-text"]}>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor
</p>
</div>
<div className={styles["cards"]}>
<img className={styles["icons"]} src={mastercard} alt="Mastercard" />
<img className={styles["icons"]} src={visa} alt="Visa" />
<img
className={styles["icons"]}
src={diners}
alt="American Express"
/>
<img className={styles["icons"]} src={elo} alt="Elo" />
<img className={styles["icons"]} src={hiper} alt="Hipercard" />
<img className={styles["icons"]} src={pagseguro} alt="Pay Pal" />
<img className={styles["icons"]} src={boleto} alt="Boleto" />
<span className={styles["divisor"]}></span>
<img className={styles["icon-vtex"]} src={vtex} alt="Vtex" />
</div>
<div className={styles["powered"]}>
<p>Powered by</p>
<img className={styles["vtexP"]} src={vtexpowered} alt="Vtex" />
<p>Developed by</p>
<img className={styles["m3"]} src={m3developed} alt="logo M3" />
</div>
<div className={styles["whatsapp-container"]}>
<button className={styles["button-icon"]}>
<a href="https://wa.me/+55022997351776">
<img
src={whatsapp}
alt="whatsappicon"
className={styles["whatsapp-icon"]}
/>
</a>
</button>
<button className={styles["button-icon"]}>
{visible && (
<a href="#header">
<img src={gototop} alt="" className={styles["go-top-icon"]} />
</a>
)}
</button>
</div>
</div>
</div>
);
};
export { Footer };

View File

@ -2,7 +2,7 @@ import React from "react";
import logo from "../../assets/images/Logo-M3Academy 1.svg";
import cart from "../../assets/images/carticon.svg";
import { MenuHamb } from "../MenuHamburguer/MenuHamb";
import { MenuHamb } from "./MenuHamburguer/MenuHamb";
import styles from "./Header.module.scss";

View File

@ -65,7 +65,7 @@
height: 18px;
right: 16px;
background-color: transparent;
background-image: url(../../assets/images/searchicon.svg);
background-image: url(../../../assets/images/searchicon.svg);
background-repeat: no-repeat;
margin: 9px 16px 9px 16px;
cursor: pointer;

View File

@ -1,8 +1,8 @@
import React, { useState } from "react";
import menuhambicon from "../../assets/images/menuhambicon.svg";
import logo from "../../assets/images/Logo-M3Academy 1.svg";
import cart from "../../assets/images/carticon.svg";
import close from "../../assets/images/closeicon.svg";
import menuhambicon from "../../../assets/images/menuhambicon.svg";
import logo from "../../../assets/images/Logo-M3Academy 1.svg";
import cart from "../../../assets/images/carticon.svg";
import close from "../../../assets/images/closeicon.svg";
import styles from "./MenuHamb.module.scss";

View File

@ -0,0 +1,118 @@
.newsletter-container {
width: 100%;
height: 104px;
display: flex;
flex-direction: column;
align-items: center;
border-top: 1px solid black;
padding: 16px 0px;
@media screen and (min-width: 2500px) {
height: 141px;
}
@media screen and (max-width: 1024px) {
padding: 16px 16px;
height: 182px;
}
.newsletter-wrapper {
width: 100%;
max-width: 475px;
@media screen and (min-width: 2500px) {
max-width: 922px;
}
@media screen and (max-width: 1024px) {
max-width: unset;
}
h3 {
font-family: "Roboto", sans-serif;
font-weight: 500;
font-size: 18px;
line-height: 21px;
letter-spacing: 0.05em;
font-variant: small-caps;
color: #303030;
margin: unset;
margin-bottom: 8px;
text-transform: lowercase;
@media screen and (min-width: 2500px) {
font-size: 36px;
line-height: 42px;
}
@media screen and (max-width: 1024px) {
font-size: 14px;
line-height: 16px;
}
}
.newsletter-container-input {
@media screen and (min-width: 2500px) {
display: flex;
}
input {
width: 100%;
max-width: 340px;
height: 42px;
margin-right: 8px;
padding: 13px 16px;
border: 1px solid #e5e5e5;
border-radius: 4px;
font-family: "Roboto", sans-serif;
font-size: 14px;
line-height: 16px;
@media screen and (min-width: 2500px) {
max-width: 668px;
height: 59px;
font-size: 28px;
line-height: 33px;
}
@media screen and (max-width: 1024px) {
display: flex;
flex-direction: column;
gap: 16px;
height: 50px;
max-width: unset;
}
}
button {
width: 100%;
max-width: 126px;
height: 42px;
background: #000000;
box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
border: none;
border-radius: 4px;
font-family: "Roboto", sans-serif;
font-weight: 700;
font-size: 12px;
line-height: 14px;
text-align: center;
letter-spacing: 0.05em;
text-transform: uppercase;
color: #ffffff;
cursor: pointer;
@media screen and (min-width: 2500px) {
max-width: 246px;
height: 59px;
font-size: 24px;
line-height: 28px;
}
@media screen and (max-width: 1024px) {
height: 50px;
max-width: unset;
margin-top: 16px;
}
}
}
}
}

View File

@ -0,0 +1,23 @@
import React from "react";
import styles from "./Newsletter.module.scss";
const Newsletter = () => {
return (
<div className={styles["newsletter-container"]}>
<div className={styles["newsletter-wrapper"]}>
<h3 className={styles["newsletter-title"]}>Assine Nossa Newsletter</h3>
<div className={styles["newsletter-container-input"]}>
<input
type="text"
placeholder="E-mail"
className={styles["newsletter-input"]}
/>
<button className={styles["newsletter-button"]}>Enviar</button>
</div>
</div>
</div>
);
};
export { Newsletter };

View File

@ -1,3 +1,4 @@
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap");
* {
box-sizing: border-box;
padding: 0;

View File

@ -1,5 +1,6 @@
import React from "react";
import ReactDOM from "react-dom/client";
import { BrowserRouter } from "react-router-dom";
import "./global.css";
import { Home } from "./pages/Home";
@ -7,7 +8,11 @@ import { Home } from "./pages/Home";
const root = ReactDOM.createRoot(
document.getElementById("root") as HTMLElement
);
root.render(<Home />);
root.render(
<BrowserRouter>
<Home />
</BrowserRouter>
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))

View File

@ -1,11 +1,15 @@
import React from "react";
import { Header } from "../components/Header/Header";
import { Body } from "../components/Body/Body";
import { Footer } from "../components/Footer/Footer";
const Home = () => {
return (
<div>
<Header />
<Body />
<Footer />
</div>
);
};

View File

@ -0,0 +1,30 @@
import * as Yup from "yup";
export default Yup.object().shape({
name: Yup.string()
.required("*Campo Obrigatório")
.min(3, "Insira um nome válido"),
email: Yup.string()
.matches(
/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/,
"E-mail Inválido"
)
.required("*Campo Obrigatório"),
cpf: Yup.string()
.matches(/^(?:\d{3}\.){2}\d{3}-?\d{2}$/, "CPF inválido")
.required("*Campo obrigatório"),
nascimento: Yup.string()
.matches(
/^(?:0[1-9]|[12]\d|3[01])([/.-])(?:0[1-9]|1[012])\1(?:19|20)\d\d$/,
"Data de Nascimento inválida"
)
.required("*Campo Obrigatório"),
telefone: Yup.string()
.matches(/^(\d{2})\D*(\d{5}|\d{4})\D*(\d{4})$/, "Número Inválido")
.required("*Campo Obrigatório"),
instagram: Yup.string().matches(
/(?:@)(\w(?:(?:\w|(?:\.(?!\.))){0,28}(?:\w))?)/,
"Nome de usuário não é valido"
),
terms: Yup.boolean().oneOf([true], "você deve aceitar os termos").required(),
});

View File

@ -1029,7 +1029,7 @@
"@babel/helper-validator-option" "^7.18.6"
"@babel/plugin-transform-typescript" "^7.18.6"
"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
version "7.20.7"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd"
integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==
@ -1568,6 +1568,11 @@
schema-utils "^3.0.0"
source-map "^0.7.3"
"@remix-run/router@1.3.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.3.0.tgz#b6ee542c7f087b73b3d8215b9bf799f648be71cb"
integrity sha512-nwQoYb3m4DDpHTeOwpJEuDt8lWVcujhYYSFGLluC+9es2PyLjm+jjq3IeRBQbwBtPLJE/lkuHuGHr8uQLgmJRA==
"@rollup/plugin-babel@^5.2.0":
version "5.3.1"
resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283"
@ -1979,6 +1984,11 @@
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
"@types/lodash@^4.14.175":
version "4.14.191"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa"
integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==
"@types/mime@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10"
@ -3545,6 +3555,11 @@ deep-is@^0.1.3, deep-is@~0.1.3:
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
deepmerge@^2.1.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170"
integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==
deepmerge@^4.2.2:
version "4.2.2"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
@ -4504,6 +4519,19 @@ form-data@^3.0.0:
combined-stream "^1.0.8"
mime-types "^2.1.12"
formik@^2.2.9:
version "2.2.9"
resolved "https://registry.yarnpkg.com/formik/-/formik-2.2.9.tgz#8594ba9c5e2e5cf1f42c5704128e119fc46232d0"
integrity sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==
dependencies:
deepmerge "^2.1.1"
hoist-non-react-statics "^3.3.0"
lodash "^4.17.21"
lodash-es "^4.17.21"
react-fast-compare "^2.0.1"
tiny-warning "^1.0.2"
tslib "^1.10.0"
forwarded@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
@ -4778,6 +4806,13 @@ he@^1.2.0:
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
hoist-non-react-statics@^3.3.0:
version "3.3.2"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
dependencies:
react-is "^16.7.0"
hoopy@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d"
@ -6087,6 +6122,11 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
lodash-es@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
@ -6309,6 +6349,11 @@ multicast-dns@^7.2.5:
dns-packet "^5.2.2"
thunky "^1.0.2"
nanoclone@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/nanoclone/-/nanoclone-0.2.1.tgz#dd4090f8f1a110d26bb32c49ed2f5b9235209ed4"
integrity sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==
nanoid@^3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
@ -7347,6 +7392,11 @@ prop-types@^15.8.1:
object-assign "^4.1.1"
react-is "^16.13.1"
property-expr@^2.0.4:
version "2.0.5"
resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.5.tgz#278bdb15308ae16af3e3b9640024524f4dc02cb4"
integrity sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==
proxy-addr@~2.0.7:
version "2.0.7"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
@ -7476,7 +7526,12 @@ 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-is@^16.13.1:
react-fast-compare@^2.0.1:
version "2.0.4"
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9"
integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==
react-is@^16.13.1, react-is@^16.7.0:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@ -7496,6 +7551,21 @@ react-refresh@^0.11.0:
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046"
integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==
react-router-dom@^6.7.0:
version "6.7.0"
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.7.0.tgz#0249f4ca4eb704562b8b0ff29caeb928c3a6ed38"
integrity sha512-jQtXUJyhso3kFw430+0SPCbmCmY1/kJv8iRffGHwHy3CkoomGxeYzMkmeSPYo6Egzh3FKJZRAL22yg5p2tXtfg==
dependencies:
"@remix-run/router" "1.3.0"
react-router "6.7.0"
react-router@6.7.0:
version "6.7.0"
resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.7.0.tgz#db262684c13b5c2970694084ae9e8531718a0681"
integrity sha512-KNWlG622ddq29MAM159uUsNMdbX8USruoKnwMMQcs/QWZgFUayICSn2oB7reHce1zPj6CG18kfkZIunSSRyGHg==
dependencies:
"@remix-run/router" "1.3.0"
react-scripts@5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-5.0.1.tgz#6285dbd65a8ba6e49ca8d651ce30645a6d980003"
@ -8484,6 +8554,11 @@ thunky@^1.0.2:
resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
tiny-warning@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
tmpl@1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
@ -8506,6 +8581,11 @@ toidentifier@1.0.1:
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
toposort@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330"
integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==
tough-cookie@^4.0.0:
version "4.1.2"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874"
@ -8545,7 +8625,7 @@ tsconfig-paths@^3.14.1:
minimist "^1.2.6"
strip-bom "^3.0.0"
tslib@^1.8.1:
tslib@^1.10.0, tslib@^1.8.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
@ -9279,3 +9359,16 @@ yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
yup@^0.32.11:
version "0.32.11"
resolved "https://registry.yarnpkg.com/yup/-/yup-0.32.11.tgz#d67fb83eefa4698607982e63f7ca4c5ed3cf18c5"
integrity sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==
dependencies:
"@babel/runtime" "^7.15.4"
"@types/lodash" "^4.14.175"
lodash "^4.17.21"
lodash-es "^4.17.21"
nanoclone "^0.2.1"
property-expr "^2.0.4"
toposort "^2.0.2"