use tailwind and create login and signup

This commit is contained in:
Guillaume Dorce 2022-09-02 16:58:59 +02:00
parent 293a1b0659
commit 30076c8d3e
14 changed files with 574 additions and 65 deletions

View File

@ -1,12 +1,12 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr" class="h-full">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Groupomania</title> <title>Groupomania</title>
</head> </head>
<body> <body class="h-full">
<div id="root"></div> <div id="root" class="h-full"></div>
<script type="module" src="/src/main.tsx"></script> <script type="module" src="/src/main.tsx"></script>
</body> </body>
</html> </html>

View File

@ -17,7 +17,10 @@
"@types/react": "^18.0.17", "@types/react": "^18.0.17",
"@types/react-dom": "^18.0.6", "@types/react-dom": "^18.0.6",
"@vitejs/plugin-react": "^2.0.1", "@vitejs/plugin-react": "^2.0.1",
"autoprefixer": "^10.4.8",
"postcss": "^8.4.16",
"sass": "^1.54.8", "sass": "^1.54.8",
"tailwindcss": "^3.1.8",
"typescript": "^4.6.4", "typescript": "^4.6.4",
"vite": "^3.0.7" "vite": "^3.0.7"
} }

View File

@ -4,11 +4,13 @@ specifiers:
'@types/react': ^18.0.17 '@types/react': ^18.0.17
'@types/react-dom': ^18.0.6 '@types/react-dom': ^18.0.6
'@vitejs/plugin-react': ^2.0.1 '@vitejs/plugin-react': ^2.0.1
autoprefixer: ^10.4.8
postcss: ^8.4.16
react: ^18.2.0 react: ^18.2.0
react-dom: ^18.2.0 react-dom: ^18.2.0
react-router-dom: ^6.3.0 react-router-dom: ^6.3.0
sass: ^1.54.8 sass: ^1.54.8
tsconfig-paths: ^4.1.0 tailwindcss: ^3.1.8
typescript: ^4.6.4 typescript: ^4.6.4
vite: ^3.0.7 vite: ^3.0.7
@ -21,8 +23,10 @@ devDependencies:
'@types/react': 18.0.17 '@types/react': 18.0.17
'@types/react-dom': 18.0.6 '@types/react-dom': 18.0.6
'@vitejs/plugin-react': 2.0.1_vite@3.0.7 '@vitejs/plugin-react': 2.0.1_vite@3.0.7
autoprefixer: 10.4.8_postcss@8.4.16
postcss: 8.4.16
sass: 1.54.8 sass: 1.54.8
tsconfig-paths: 4.1.0 tailwindcss: 3.1.8
typescript: 4.7.4 typescript: 4.7.4
vite: 3.0.7_sass@1.54.8 vite: 3.0.7_sass@1.54.8
@ -349,6 +353,27 @@ packages:
'@jridgewell/sourcemap-codec': 1.4.14 '@jridgewell/sourcemap-codec': 1.4.14
dev: true dev: true
/@nodelib/fs.scandir/2.1.5:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
dependencies:
'@nodelib/fs.stat': 2.0.5
run-parallel: 1.2.0
dev: true
/@nodelib/fs.stat/2.0.5:
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
engines: {node: '>= 8'}
dev: true
/@nodelib/fs.walk/1.2.8:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
dependencies:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.13.0
dev: true
/@types/prop-types/15.7.5: /@types/prop-types/15.7.5:
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
dev: true dev: true
@ -389,6 +414,25 @@ packages:
- supports-color - supports-color
dev: true dev: true
/acorn-node/1.8.2:
resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==}
dependencies:
acorn: 7.4.1
acorn-walk: 7.2.0
xtend: 4.0.2
dev: true
/acorn-walk/7.2.0:
resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==}
engines: {node: '>=0.4.0'}
dev: true
/acorn/7.4.1:
resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
engines: {node: '>=0.4.0'}
hasBin: true
dev: true
/ansi-styles/3.2.1: /ansi-styles/3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
engines: {node: '>=4'} engines: {node: '>=4'}
@ -404,6 +448,26 @@ packages:
picomatch: 2.3.1 picomatch: 2.3.1
dev: true dev: true
/arg/5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
dev: true
/autoprefixer/10.4.8_postcss@8.4.16:
resolution: {integrity: sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==}
engines: {node: ^10 || ^12 || >=14}
hasBin: true
peerDependencies:
postcss: ^8.1.0
dependencies:
browserslist: 4.21.3
caniuse-lite: 1.0.30001376
fraction.js: 4.2.0
normalize-range: 0.1.2
picocolors: 1.0.0
postcss: 8.4.16
postcss-value-parser: 4.2.0
dev: true
/binary-extensions/2.2.0: /binary-extensions/2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'} engines: {node: '>=8'}
@ -427,6 +491,11 @@ packages:
update-browserslist-db: 1.0.5_browserslist@4.21.3 update-browserslist-db: 1.0.5_browserslist@4.21.3
dev: true dev: true
/camelcase-css/2.0.1:
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
engines: {node: '>= 6'}
dev: true
/caniuse-lite/1.0.30001376: /caniuse-lite/1.0.30001376:
resolution: {integrity: sha512-I27WhtOQ3X3v3it9gNs/oTpoE5KpwmqKR5oKPA8M0G7uMXh9Ty81Q904HpKUrM30ei7zfcL5jE7AXefgbOfMig==} resolution: {integrity: sha512-I27WhtOQ3X3v3it9gNs/oTpoE5KpwmqKR5oKPA8M0G7uMXh9Ty81Q904HpKUrM30ei7zfcL5jE7AXefgbOfMig==}
dev: true dev: true
@ -465,12 +534,22 @@ packages:
resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
dev: true dev: true
/color-name/1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: true
/convert-source-map/1.8.0: /convert-source-map/1.8.0:
resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==}
dependencies: dependencies:
safe-buffer: 5.1.2 safe-buffer: 5.1.2
dev: true dev: true
/cssesc/3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
hasBin: true
dev: true
/csstype/3.1.0: /csstype/3.1.0:
resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==} resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==}
dev: true dev: true
@ -487,6 +566,28 @@ packages:
ms: 2.1.2 ms: 2.1.2
dev: true dev: true
/defined/1.0.0:
resolution: {integrity: sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==}
dev: true
/detective/5.2.1:
resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==}
engines: {node: '>=0.8.0'}
hasBin: true
dependencies:
acorn-node: 1.8.2
defined: 1.0.0
minimist: 1.2.6
dev: true
/didyoumean/1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
dev: true
/dlv/1.1.3:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
dev: true
/electron-to-chromium/1.4.219: /electron-to-chromium/1.4.219:
resolution: {integrity: sha512-zoQJsXOUw0ZA0YxbjkmzBumAJRtr6je5JySuL/bAoFs0DuLiLJ+5FzRF7/ZayihxR2QcewlRZVm5QZdUhwjOgA==} resolution: {integrity: sha512-zoQJsXOUw0ZA0YxbjkmzBumAJRtr6je5JySuL/bAoFs0DuLiLJ+5FzRF7/ZayihxR2QcewlRZVm5QZdUhwjOgA==}
dev: true dev: true
@ -710,6 +811,23 @@ packages:
engines: {node: '>=0.8.0'} engines: {node: '>=0.8.0'}
dev: true dev: true
/fast-glob/3.2.11:
resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==}
engines: {node: '>=8.6.0'}
dependencies:
'@nodelib/fs.stat': 2.0.5
'@nodelib/fs.walk': 1.2.8
glob-parent: 5.1.2
merge2: 1.4.1
micromatch: 4.0.5
dev: true
/fastq/1.13.0:
resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
dependencies:
reusify: 1.0.4
dev: true
/fill-range/7.0.1: /fill-range/7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'} engines: {node: '>=8'}
@ -717,6 +835,10 @@ packages:
to-regex-range: 5.0.1 to-regex-range: 5.0.1
dev: true dev: true
/fraction.js/4.2.0:
resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
dev: true
/fsevents/2.3.2: /fsevents/2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@ -741,6 +863,13 @@ packages:
is-glob: 4.0.3 is-glob: 4.0.3
dev: true dev: true
/glob-parent/6.0.2:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
dependencies:
is-glob: 4.0.3
dev: true
/globals/11.12.0: /globals/11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'} engines: {node: '>=4'}
@ -813,6 +942,11 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/lilconfig/2.0.6:
resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==}
engines: {node: '>=10'}
dev: true
/loose-envify/1.4.0: /loose-envify/1.4.0:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true hasBin: true
@ -827,6 +961,19 @@ packages:
sourcemap-codec: 1.4.8 sourcemap-codec: 1.4.8
dev: true dev: true
/merge2/1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
dev: true
/micromatch/4.0.5:
resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
engines: {node: '>=8.6'}
dependencies:
braces: 3.0.2
picomatch: 2.3.1
dev: true
/minimist/1.2.6: /minimist/1.2.6:
resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
dev: true dev: true
@ -850,6 +997,16 @@ packages:
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dev: true dev: true
/normalize-range/0.1.2:
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
engines: {node: '>=0.10.0'}
dev: true
/object-hash/3.0.0:
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
engines: {node: '>= 6'}
dev: true
/path-parse/1.0.7: /path-parse/1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
dev: true dev: true
@ -863,6 +1020,72 @@ packages:
engines: {node: '>=8.6'} engines: {node: '>=8.6'}
dev: true dev: true
/pify/2.3.0:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'}
dev: true
/postcss-import/14.1.0_postcss@8.4.16:
resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==}
engines: {node: '>=10.0.0'}
peerDependencies:
postcss: ^8.0.0
dependencies:
postcss: 8.4.16
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.1
dev: true
/postcss-js/4.0.0_postcss@8.4.16:
resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==}
engines: {node: ^12 || ^14 || >= 16}
peerDependencies:
postcss: ^8.3.3
dependencies:
camelcase-css: 2.0.1
postcss: 8.4.16
dev: true
/postcss-load-config/3.1.4_postcss@8.4.16:
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
engines: {node: '>= 10'}
peerDependencies:
postcss: '>=8.0.9'
ts-node: '>=9.0.0'
peerDependenciesMeta:
postcss:
optional: true
ts-node:
optional: true
dependencies:
lilconfig: 2.0.6
postcss: 8.4.16
yaml: 1.10.2
dev: true
/postcss-nested/5.0.6_postcss@8.4.16:
resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.2.14
dependencies:
postcss: 8.4.16
postcss-selector-parser: 6.0.10
dev: true
/postcss-selector-parser/6.0.10:
resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
engines: {node: '>=4'}
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
dev: true
/postcss-value-parser/4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
dev: true
/postcss/8.4.16: /postcss/8.4.16:
resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
@ -872,6 +1095,15 @@ packages:
source-map-js: 1.0.2 source-map-js: 1.0.2
dev: true dev: true
/queue-microtask/1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
dev: true
/quick-lru/5.1.1:
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
engines: {node: '>=10'}
dev: true
/react-dom/18.2.0_react@18.2.0: /react-dom/18.2.0_react@18.2.0:
resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
peerDependencies: peerDependencies:
@ -915,6 +1147,12 @@ packages:
loose-envify: 1.4.0 loose-envify: 1.4.0
dev: false dev: false
/read-cache/1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
dependencies:
pify: 2.3.0
dev: true
/readdirp/3.6.0: /readdirp/3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'} engines: {node: '>=8.10.0'}
@ -935,6 +1173,11 @@ packages:
supports-preserve-symlinks-flag: 1.0.0 supports-preserve-symlinks-flag: 1.0.0
dev: true dev: true
/reusify/1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
dev: true
/rollup/2.77.3: /rollup/2.77.3:
resolution: {integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==} resolution: {integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
@ -943,6 +1186,12 @@ packages:
fsevents: 2.3.2 fsevents: 2.3.2
dev: true dev: true
/run-parallel/1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
dependencies:
queue-microtask: 1.2.3
dev: true
/safe-buffer/5.1.2: /safe-buffer/5.1.2:
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
dev: true dev: true
@ -977,11 +1226,6 @@ packages:
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
dev: true dev: true
/strip-bom/3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
dev: true
/supports-color/5.5.0: /supports-color/5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'} engines: {node: '>=4'}
@ -994,6 +1238,37 @@ packages:
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dev: true dev: true
/tailwindcss/3.1.8:
resolution: {integrity: sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==}
engines: {node: '>=12.13.0'}
hasBin: true
dependencies:
arg: 5.0.2
chokidar: 3.5.3
color-name: 1.1.4
detective: 5.2.1
didyoumean: 1.2.2
dlv: 1.1.3
fast-glob: 3.2.11
glob-parent: 6.0.2
is-glob: 4.0.3
lilconfig: 2.0.6
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.0.0
postcss: 8.4.16
postcss-import: 14.1.0_postcss@8.4.16
postcss-js: 4.0.0_postcss@8.4.16
postcss-load-config: 3.1.4_postcss@8.4.16
postcss-nested: 5.0.6_postcss@8.4.16
postcss-selector-parser: 6.0.10
postcss-value-parser: 4.2.0
quick-lru: 5.1.1
resolve: 1.22.1
transitivePeerDependencies:
- ts-node
dev: true
/to-fast-properties/2.0.0: /to-fast-properties/2.0.0:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
engines: {node: '>=4'} engines: {node: '>=4'}
@ -1006,15 +1281,6 @@ packages:
is-number: 7.0.0 is-number: 7.0.0
dev: true dev: true
/tsconfig-paths/4.1.0:
resolution: {integrity: sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow==}
engines: {node: '>=6'}
dependencies:
json5: 2.2.1
minimist: 1.2.6
strip-bom: 3.0.0
dev: true
/typescript/4.7.4: /typescript/4.7.4:
resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==}
engines: {node: '>=4.2.0'} engines: {node: '>=4.2.0'}
@ -1032,6 +1298,10 @@ packages:
picocolors: 1.0.0 picocolors: 1.0.0
dev: true dev: true
/util-deprecate/1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
/vite/3.0.7_sass@1.54.8: /vite/3.0.7_sass@1.54.8:
resolution: {integrity: sha512-dILhvKba1mbP1wCezVQx/qhEK7/+jVn9ciadEcyKMMhZpsuAi/eWZfJRMkmYlkSFG7Qq9NvJbgFq4XOBxugJsA==} resolution: {integrity: sha512-dILhvKba1mbP1wCezVQx/qhEK7/+jVn9ciadEcyKMMhZpsuAi/eWZfJRMkmYlkSFG7Qq9NvJbgFq4XOBxugJsA==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^14.18.0 || >=16.0.0}
@ -1059,3 +1329,13 @@ packages:
optionalDependencies: optionalDependencies:
fsevents: 2.3.2 fsevents: 2.3.2
dev: true dev: true
/xtend/4.0.2:
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
engines: {node: '>=0.4'}
dev: true
/yaml/1.10.2:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}
dev: true

View File

@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

View File

@ -1,11 +1,8 @@
import '@styles/App.scss';
import Header from './components/Header';
import { Outlet } from "react-router-dom"; import { Outlet } from "react-router-dom";
export default () => { export default () => {
return ( return (
<> <>
<Header />
<Outlet /> <Outlet />
</> </>
); );

View File

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
data-v-1084b650=""
viewBox="0 0 237.8235 43.328991"
version="1.1"
id="svg16"
sodipodi:docname="icon-left-font.svg"
inkscape:version="1.2-beta (1b65182ce9, 2022-04-05)"
width="237.8235"
height="43.328991"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs20" />
<sodipodi:namedview
id="namedview18"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
showgrid="false"
inkscape:zoom="0.98641396"
inkscape:cx="161.69682"
inkscape:cy="88.198265"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<!---->
<!---->
<!---->
<g
data-v-1084b650=""
id="b5a93e15-ef7c-9d7a-680b-cdb17474f15f"
fill="#fd2d01"
transform="matrix(2.2,0,0,2.2,50.867498,1.8974828)">
<path
d="m 5.41,12.67 v 0 q -2.18,0 -3.65,-1.47 v 0 0 Q 0.29,9.73 0.29,7.53 v 0 0 q 0,-2.16 1.47,-3.64 v 0 0 Q 3.23,2.42 5.41,2.42 v 0 0 q 2.19,0 3.76,1.37 v 0 L 7.81,5.28 v 0 Q 6.76,4.46 5.41,4.46 v 0 0 Q 4.03,4.47 3.18,5.33 v 0 0 Q 2.34,6.18 2.34,7.51 v 0 0 q 0,1.43 0.85,2.27 v 0 0 q 0.85,0.84 2.23,0.84 v 0 0 q 1.11,0 1.7,-0.43 v 0 -1.76 L 5.76,8.44 V 6.52 h 3.41 v 4.79 0 q -1.56,1.36 -3.76,1.36 z m 7.43,-6.84 v 0.76 0 q 0.74,-0.75 1.79,-0.75 v 0 0 q 0.33,0 0.63,0.05 v 0 l -0.3,1.89 v 0 Q 14.63,7.48 14.01,7.46 v 0 0 q -0.7,0.05 -1.17,1.01 v 0 4.2 H 10.93 V 6.04 Z m 6.77,6.91 v 0 q -1.49,0 -2.49,-1 v 0 0 q -0.99,-1 -0.99,-2.48 v 0 0 q 0,-1.49 0.99,-2.49 v 0 0 q 1,-1 2.49,-1 v 0 0 q 1.49,0 2.49,1 v 0 0 q 1,1 1,2.49 v 0 0 q 0,1.49 -1,2.48 v 0 0 q -1,1 -2.49,1 z m 0,-1.65 v 0 0 q 0.77,0 1.26,-0.53 v 0 0 q 0.49,-0.52 0.49,-1.3 v 0 0 q 0,-0.78 -0.49,-1.3 v 0 0 Q 20.38,7.43 19.6,7.43 v 0 0 q -0.77,0 -1.26,0.53 v 0 0 q -0.48,0.52 -0.48,1.3 v 0 0 q 0,0.78 0.48,1.3 v 0 0 q 0.49,0.53 1.27,0.53 z m 8.91,-0.84 v 0 -4.42 h 1.91 v 6.84 h -1.91 v -0.62 0 q -0.69,0.62 -1.64,0.62 v 0 0 q -1.3,0 -1.98,-0.79 v 0 0 q -0.69,-0.79 -0.69,-1.81 v 0 -4.24 h 1.92 v 3.76 0 q 0,0.68 0.34,1.06 v 0 0 q 0.34,0.38 1.03,0.4 v 0 0 q 0.6,-0.04 1.02,-0.8 z m 5.45,5.3 -1.91,-0.01 v -9.5 l 1.91,-0.21 v 0.55 0 q 0.77,-0.55 1.51,-0.55 v 0 0 q 1.57,0 2.49,1.03 v 0 0 q 0.93,1.02 0.93,2.39 v 0 0 q 0,1.37 -0.93,2.39 v 0 0 q -0.92,1.03 -2.49,1.03 v 0 0 Q 34.45,12.6 33.97,12.11 v 0 z m 0,-6.92 v 0 1.11 0 q 0.14,1.15 1.44,1.35 v 0 0 q 1.64,-0.13 1.85,-1.7 v 0 0 Q 37.19,7.47 35.41,7.4 v 0 0 q -1.3,0.21 -1.44,1.23 z m 9.38,4.11 v 0 q -1.49,0 -2.48,-1 v 0 0 q -1,-1 -1,-2.48 v 0 0 q 0,-1.49 1,-2.49 v 0 0 q 0.99,-1 2.48,-1 v 0 0 q 1.49,0 2.49,1 v 0 0 q 1,1 1,2.49 v 0 0 q 0,1.49 -1,2.48 v 0 0 q -1,1 -2.49,1 z m 0,-1.65 v 0 0 q 0.78,0 1.26,-0.53 v 0 0 q 0.49,-0.52 0.49,-1.3 v 0 0 q 0,-0.78 -0.49,-1.3 v 0 0 Q 44.13,7.43 43.34,7.43 v 0 0 q -0.77,0 -1.26,0.53 v 0 0 Q 41.6,8.48 41.6,9.26 v 0 0 q 0,0.78 0.48,1.3 v 0 0 q 0.49,0.53 1.27,0.53 z M 50.03,8.3 v 0 4.37 H 48.11 V 6.04 l 1.92,-0.21 v 0.61 0 q 0.64,-0.6 1.64,-0.6 v 0 0 q 1.29,0 1.98,0.78 v 0 0 Q 54.4,5.84 55.9,5.84 v 0 0 q 1.3,0 1.99,0.78 v 0 0 q 0.68,0.79 0.68,1.82 v 0 4.23 h -1.91 v -3.76 0 q 0,-0.68 -0.31,-1.06 v 0 0 q -0.31,-0.37 -1,-0.39 v 0 0 Q 54.78,7.5 54.37,8.21 v 0 0 q -0.04,0.21 -0.04,0.43 v 0 4.03 h -1.91 v -3.76 0 q 0,-0.68 -0.31,-1.06 v 0 0 q -0.31,-0.37 -1,-0.39 v 0 0 Q 50.48,7.5 50.03,8.3 Z M 61.14,7.82 60.39,6.66 v 0 q 1.3,-0.82 3.01,-0.82 v 0 0 q 1.23,0 1.94,0.68 v 0 0 q 0.72,0.69 0.72,2.05 v 0 4.1 h -1.91 v -0.54 0 q -0.84,0.54 -1.51,0.54 v 0 0 q -1.36,0 -2.05,-0.58 v 0 0 q -0.68,-0.58 -0.68,-1.6 v 0 0 q 0,-0.96 0.65,-1.71 v 0 0 Q 61.2,8.03 62.64,8.03 v 0 0 q 0.67,0 1.51,0.41 v 0 -0.21 0 Q 64.13,7.48 63.05,7.41 v 0 0 q -1.23,0 -1.91,0.41 z m 3.01,2.8 v 0 -0.77 0 Q 63.88,9.32 62.85,9.32 v 0 0 q -1.23,0.14 -1.3,0.96 v 0 0 q 0.07,0.81 1.3,0.88 v 0 0 q 1.03,0 1.3,-0.54 z m 5.54,-2.29 v 0 4.34 H 67.77 V 6.04 l 1.92,-0.21 v 0.62 0 q 0.69,-0.61 1.64,-0.61 v 0 0 q 1.3,0 1.98,0.78 v 0 0 q 0.68,0.79 0.68,1.82 v 0 4.23 h -1.91 v -3.76 0 q 0,-0.68 -0.34,-1.06 v 0 0 Q 71.39,7.48 70.7,7.46 v 0 0 Q 70.11,7.5 69.69,8.33 Z m 7.82,4.34 H 75.6 V 5.83 h 1.91 z M 75.53,4.2 v 0 0 q 0,0.41 0.27,0.68 v 0 0 q 0.28,0.27 0.76,0.27 v 0 0 q 0.47,0 0.75,-0.27 v 0 0 Q 77.58,4.61 77.58,4.2 v 0 0 q 0,-0.41 -0.27,-0.69 v 0 0 Q 77.03,3.23 76.54,3.23 v 0 0 q -0.46,0 -0.74,0.28 v 0 0 Q 75.53,3.79 75.53,4.2 Z m 4.53,3.62 -0.75,-1.16 v 0 q 1.3,-0.82 3.01,-0.82 v 0 0 q 1.23,0 1.95,0.68 v 0 0 q 0.71,0.69 0.71,2.05 v 0 4.1 h -1.91 v -0.54 0 q -0.83,0.54 -1.5,0.54 v 0 0 q -1.37,0 -2.05,-0.58 v 0 0 q -0.69,-0.58 -0.69,-1.6 v 0 0 q 0,-0.96 0.65,-1.71 v 0 0 q 0.64,-0.75 2.09,-0.75 v 0 0 q 0.66,0 1.5,0.41 v 0 -0.21 0 Q 83.06,7.48 81.98,7.41 v 0 0 q -1.23,0 -1.92,0.41 z m 3.01,2.8 v 0 -0.77 0 Q 82.8,9.32 81.77,9.32 v 0 0 q -1.23,0.14 -1.3,0.96 v 0 0 q 0.07,0.81 1.3,0.88 v 0 0 q 1.03,0 1.3,-0.54 z"
id="path4" />
</g>
<!---->
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
transform="translate(-7.349848,1.2672165)">
<svg
viewBox="-205 207 100 100"
version="1.1"
id="svg13"
width="100%"
height="100%"
style="fill:#ffd7d7;fill-opacity:1">
<switch
id="switch11"
transform="translate(-148.43207,86.186396)"
style="fill:#ffd7d7;fill-opacity:1">
<g
id="g9"
transform="translate(5.5670598e-6)"
style="fill:#ffd7d7;fill-opacity:1">
<path
d="m -220.0697,211.30346 c 11.2,0 21.7,-4.3 29.6,-12.2 7.9,-7.9 12.2,-18.4 12.2,-29.6 0,-11.2 -4.3,-21.7 -12.2,-29.6 -7.9,-7.9 -18.4,-12.2 -29.6,-12.2 -11.2,0 -21.7,4.3 -29.6,12.2 -7.9,7.9 -12.2,18.4 -12.2,29.6 0,11.2 4.3,21.7 12.2,29.6 7.9,7.9 18.4,12.2 29.6,12.2 z m 2.4,-7.1 c -0.8,0.1 -1.6,0.1 -2.4,0.1 -1.1,0 -2.2,-0.1 -3.3,-0.2 -3.6,-5.6 -6.3,-11.6 -7.9,-17.9 h 17.7 c 0.6,1.5 1.7,2.9 3,3.8 -1.7,5 -4.1,9.7 -7.1,14.2 z m 9.5,-2 c 1.9,-3.5 3.4,-7 4.6,-10.7 2.9,-0.6 5.2,-2.6 6.3,-5.3 h 7.7 c -4,7.3 -10.7,13 -18.6,16 z m 22.8,-32.7 c 0,3.3 -0.5,6.5 -1.3,9.6 h -10.8 c -0.6,-1.3 -1.6,-2.5 -2.8,-3.4 0.2,-2.2 0.3,-4.4 0.3,-6.6 0,-3.1 -0.2,-6.2 -0.6,-9.2 h 13.8 c 1,3 1.4,6.3 1.4,9.6 z m -4.2,-16.7 h -12.2 c -1.3,-5.5 -3.2,-10.7 -5.8,-15.7 7.6,2.9 14,8.6 18,15.7 z m -17.4,16.3 c 0,1.7 -0.1,3.4 -0.2,5.1 -2.8,0.6 -5.1,2.4 -6.2,4.9 h -19.3 c -0.4,-3 -0.7,-6.1 -0.7,-9.1 0,-1.9 0.1,-3.8 0.3,-5.7 2.6,-0.5 4.7,-2.2 6,-4.4 h 19.5 c 0.4,3 0.6,6.1 0.6,9.2 z m -15.7,-34.2 c 0.9,-0.1 1.8,-0.1 2.6,-0.1 1,0 2,0 3,0.1 3.6,5.6 6.3,11.6 7.9,17.9 h -17.4 c -0.6,-1.7 -1.7,-3.2 -3.1,-4.3 1.8,-4.8 4.1,-9.3 7,-13.6 z m -9.5,2 c -1.7,3.2 -3.2,6.6 -4.4,10 -3.1,0.6 -5.6,2.9 -6.6,5.8 h -7.3 c 3.9,-7.1 10.4,-12.8 18.3,-15.8 z m -22.6,32.6 c 0,-3.3 0.5,-6.6 1.4,-9.6 h 10.9 c 0.6,1.1 1.5,2.1 2.5,2.9 -0.2,2.4 -0.4,4.8 -0.4,7.2 0,3.1 0.2,6.1 0.6,9.1 h -13.6 c -1,-3.1 -1.4,-6.3 -1.4,-9.6 z m 16.2,16.6 c 1.3,5.4 3.2,10.7 5.8,15.7 -7.6,-3 -13.9,-8.6 -17.8,-15.7 z"
id="path7"
style="fill:#ffd7d7;fill-opacity:1" />
</g>
</switch>
</svg>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -1,21 +0,0 @@
import {Link} from 'react-router-dom';
export default () => {
return (
<header>
<nav>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/login">Login</Link>
</li>
<li>
<Link to="/signup">Signup</Link>
</li>
</ul>
</nav>
</header>
);
}

View File

@ -1,10 +1,29 @@
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@100;300;400;700;900&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Lato:wght@100;300;400;700;900&display=swap');
@tailwind base;
@tailwind components;
@tailwind utilities;
:root { :root {
font-family: 'Lato', sans-serif; font-family: 'Lato', sans-serif;
font-size: 16px; font-size: 16px;
/* height: 100%; */
}
/*
body {
margin: 0;
padding: 0;
box-sizing: border-box;
overflow: hidden;
min-height: 100%;
height: 100%;
} }
#root {
height: 100%;
width: 100%;
background-color: #f5f5f5;
} */
/*
@media (prefers-color-scheme: light) { @media (prefers-color-scheme: light) {
:root { :root {
color: #213547; color: #213547;
@ -16,4 +35,4 @@
button { button {
background-color: #f9f9f9; background-color: #f9f9f9;
} }
} } */

View File

@ -1,7 +1,7 @@
import ReactDOM from 'react-dom/client'; import ReactDOM from 'react-dom/client';
import { BrowserRouter, Routes, Route } from 'react-router-dom'; import { BrowserRouter, Routes, Route } from 'react-router-dom';
import App from './App'; import App from './App';
import '@styles/index.scss'; import './index.css';
import Login from './routes/login'; import Login from './routes/login';
import Signup from './routes/signup'; import Signup from './routes/signup';

View File

@ -1,15 +1,62 @@
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
export default function Login() { import logo from '@assets/images/logo.svg';
export default () => {
return ( return (
<div className="login"> <>
<h1>Login</h1> <div className="flex flex-col min-h-full items-center justify-center py-12 px-4 bg-grey-dark sm:px-6 lg:px-8">
<form action="post"> <div>
<input type="email" name="email" id="email" placeholder="Adresse e-mail" /> <img className="mx-auto h-20 pb-2 w-auto" src={logo} alt="Groupomania" />
<input type="password" name="password" id="password" placeholder="Mot de passe" /> </div>
<button type="submit">Connexion</button> <div className="w-full max-w-md bg-grey rounded-lg p-5">
</form> <form className="m-6 mb-3" action="#" method="POST">
<Link to="/signup">Enregistrer un nouveau compte</Link> <div className="-space-y-px rounded-md shadow-sm">
</div> <div>
<label htmlFor="email-address" className="sr-only">
Adresse e-mail
</label>
<input
id="email-address"
name="email"
type="email"
autoComplete="email"
required
className="relative block w-full appearance-none rounded-lg border px-3 py-2 my-2 placeholder-grey-light focus:z-10 focus:border-red focus:outline-none focus:ring-red sm:text-sm"
placeholder="Adresse e-mail"
/>
</div>
<div>
<label htmlFor="password" className="sr-only">
Mot de passe
</label>
<input
id="password"
name="password"
type="password"
autoComplete="current-password"
required
className="relative block w-full appearance-none rounded-lg border px-3 py-2 my-2 placeholder-grey-light focus:z-10 focus:border-red focus:outline-none focus:ring-red sm:text-sm"
placeholder="Mot de passe"
/>
</div>
</div>
<div>
<button
type="submit"
className="group relative flex w-full justify-center rounded-md border border-red bg-red py-2 px-4 text-sm font-medium text-white hover:bg-white hover:text-red focus:outline-none focus:ring-2 focus:ring-red focus:ring-offset-2"
>
Connexion
</button>
</div>
</form>
<p className="mt-2 text-center text-sm text-grey-dark">
<Link to="/signup" className="font-medium text-red-light hover:text-red">
Enregistrez un nouveau compte
</Link>
</p>
</div>
</div>
</>
); );
} };

View File

@ -1,15 +1,97 @@
import logo from '@assets/images/logo.svg';
export default () => { export default () => {
return ( return (
<> <>
<h1>Créer un compte</h1> <div className="flex flex-col min-h-full items-center justify-center py-12 px-4 bg-grey-dark sm:px-6 lg:px-8">
<form action="post"> <div>
<input type="text" name="lastname" id="lastname" placeholder="Nom" /> <img className="mx-auto h-20 pb-2 w-auto" src={logo} alt="Groupomania" />
<input type="text" name="firstname" id="firstname" placeholder="Prénom" /> </div>
<input type="email" name="email" id="email" placeholder="Email" /> <div className="w-full max-w-md space-y-8 bg-grey rounded-lg p-5">
<input type="password" name="password" id="password" placeholder="Mot de passe" /> <form className="m-6 " action="#" method="POST">
<input type="password" name="password2" id="password2" placeholder="Confirmez votre mot de passe" /> <div className="-space-y-px rounded-md shadow-sm">
<button type="submit">Créer un compte</button> <div>
</form> <label htmlFor="lastname" className="sr-only">
Nom
</label>
<input
id="lastname"
name="lastname"
type="text"
autoComplete="lastname"
required
className="relative block w-full appearance-none rounded-lg border px-3 py-2 my-2 placeholder-grey-light focus:z-10 focus:border-red focus:outline-none focus:ring-red sm:text-sm"
placeholder="Nom"
/>
</div>
<div>
<label htmlFor="firstname" className="sr-only">
Prénom
</label>
<input
id="firstname"
name="firstname"
type="text"
autoComplete="firstname"
required
className="relative block w-full appearance-none rounded-lg border px-3 py-2 my-2 placeholder-grey-light focus:z-10 focus:border-red focus:outline-none focus:ring-red sm:text-sm"
placeholder="Prénom"
/>
</div>
<div>
<label htmlFor="email-address" className="sr-only">
Adresse e-mail
</label>
<input
id="email-address"
name="email"
type="email"
autoComplete="email"
required
className="relative block w-full appearance-none rounded-lg border px-3 py-2 my-2 placeholder-grey-light focus:z-10 focus:border-red focus:outline-none focus:ring-red sm:text-sm"
placeholder="Adresse e-mail"
/>
</div>
<div>
<label htmlFor="password" className="sr-only">
Mot de passe
</label>
<input
id="password"
name="password"
type="password"
autoComplete="current-password"
required
className="relative block w-full appearance-none rounded-lg border px-3 py-2 my-2 placeholder-grey-light focus:z-10 focus:border-red focus:outline-none focus:ring-red sm:text-sm"
placeholder="Mot de passe"
/>
</div>
<div>
<label htmlFor="password-confirm" className="sr-only">
Confirmez votre mot de passe
</label>
<input
id="password-confirm"
name="password-confirm"
type="password"
autoComplete="current-password"
required
className="relative block w-full appearance-none rounded-lg border px-3 py-2 my-2 placeholder-grey-light focus:z-10 focus:border-red focus:outline-none focus:ring-red sm:text-sm"
placeholder="Confirmez votre mot de passe"
/>
</div>
</div>
<div>
<button
type="submit"
className="group relative flex w-full justify-center rounded-md border border-red bg-red py-2 px-4 text-sm font-medium text-white hover:bg-white hover:text-red focus:outline-none focus:ring-2 focus:ring-red focus:ring-offset-2"
>
Enregistrer un nouveau compte
</button>
</div>
</form>
</div>
</div>
</> </>
); );
}; };

View File

@ -0,0 +1,18 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ['./index.html', './src/**/*.tsx'],
theme: {
extend: {
colors: {
transparent: 'transparent',
current: 'currentColor',
red: '#fd2d01',
'red-light': '#ffd7d7',
'grey': '#4E5166',
'grey-light': '#8F8F8F',
'grey-dark': '#2E3144',
},
},
},
plugins: [],
};

View File

@ -19,6 +19,7 @@ export default defineConfig({
'@assets': path.resolve(__dirname, './src/assets'), '@assets': path.resolve(__dirname, './src/assets'),
'@components': path.resolve(__dirname, './src/components'), '@components': path.resolve(__dirname, './src/components'),
'@styles': path.resolve(__dirname, './src/assets/styles'), '@styles': path.resolve(__dirname, './src/assets/styles'),
'@layouts': path.resolve(__dirname, './src/layouts'),
} }
}, },
}); });