diff --git a/package.json b/package.json index 27625fc..93a3a80 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ifsp-eventos-web", - "version": "0.1.0", + "version": "0.2.0", "private": true, "scripts": { "dev": "next dev", diff --git a/src/app/auth/log-in/login.css b/src/app/auth/log-in/login.css new file mode 100644 index 0000000..848f755 --- /dev/null +++ b/src/app/auth/log-in/login.css @@ -0,0 +1,75 @@ +.full-page-wrapper { + background-color: var(--black); + background-image: radial-gradient(circle farthest-corner at 100% 100%, var(--gradient-blue), transparent 44%), radial-gradient(circle farthest-corner at 0% 100%, var(--gradient-red), transparent 32%); + width: 100%; + max-width: none; + padding: 24px 12px; + height: 100vh; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.text-field { + border: 1px solid var(--silver); + background-color: var(--back-grey); + border-radius: 9px; + min-width: 120px; + height: 44px; + margin-bottom: 16px; + padding: 19px 12px; + font-size: 15px; + line-height: 1.4em; + transition: border-color .2s; + display: block; + width: 100%; + color: #333; + vertical-align: middle; +} + +.button { + background-color: var(--black); + color: var(--white); + text-align: center; + border-radius: 9px; + flex: none; + margin-bottom: 8px; + padding: 8px 28px; + font-size: 18px; + font-weight: 500; + line-height: 1.5; + transition: box-shadow .2s, transform .2s, border-color .2s, color .2s, background-color .2s; + box-shadow: 0 2px #2020200d; + cursor: pointer; + border: 0; + text-decoration: none; + display: inline-block; + width: 100%; +} + +.button:hover { + background-color: var(--dark-grey); +} + +.form-card-footer { + grid-column-gap: 8px; + flex-wrap: wrap; + justify-content: center; + font-size: 14px; + margin-top: 12px; + display: flex; +} + +.below-card-link { + color: var(--light-grey); + margin-top: 24px; + font-size: 14px; + display: inline-block; + text-decoration: none; + transition: color .2s; +} + +.below-card-link:hover { + color: var(--soft-grey); +} \ No newline at end of file diff --git a/src/app/auth/log-in/page.tsx b/src/app/auth/log-in/page.tsx new file mode 100644 index 0000000..7e2910a --- /dev/null +++ b/src/app/auth/log-in/page.tsx @@ -0,0 +1,42 @@ +import Link from "next/link"; +import Image from "next/image"; + +import "./login.css"; +import {Button} from "@nextui-org/react"; + +export default function Login() { + return ( +
+ + {"logo + + +
+
+
+ Entrar +

Preencha seus dados de login abaixo.

+
+ + + +
+ Não tem uma conta? + Registre-se +
+
+
+ +
+ {/*show error*/} +
+ + Esqueceu sua senha? +
+ ) +} \ No newline at end of file diff --git a/src/app/auth/sign-up/page.tsx b/src/app/auth/sign-up/page.tsx new file mode 100644 index 0000000..2e6c97e --- /dev/null +++ b/src/app/auth/sign-up/page.tsx @@ -0,0 +1,81 @@ +"use client" + +import Link from "next/link"; +import Image from "next/image"; + +import "./signup.css"; +import {Button} from "@nextui-org/react"; +import {useMask} from "@react-input/mask"; +import React from "react"; + +export default function Register() { + const [email, setEmail] = React.useState(""); + const [password, setPassword] = React.useState(""); + const [confirmPassword, setConfirmPassword] = React.useState(""); + const phoneRef = useMask({ + mask: "(__) _____-____", + replacement: {_: /\d/}, + }); + const cpfRef = useMask({ + mask: "nnn.nnn.nnn-nn", + replacement: {n: /\d/}, + }); + const validateEmail = (value: string) => + value.match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i); + const validatePassword = (value: string) => value.length >= 6; + + const isEmailInvalid = React.useMemo(() => { + if (email === "") return false; + return validateEmail(email.trim()) ? false : true; + }, [email]); + const isPasswordInvalid = React.useMemo(() => { + if (password === "") return false; + return validatePassword(password) ? false : true; + }, [password]); + const isConfirmPasswordInvalid = React.useMemo(() => { + if (confirmPassword === "") return false; + return password === confirmPassword ? false : true; + }, [password, confirmPassword]); + + + return ( +
+ + {"logo"} + + +
+
+
+ Registre-se +
+ + + + + + + + +
+ Já tem uma conta? + Entre +
+
+
+ +
+ {/*show error*/} +
+
+ ) +} \ No newline at end of file diff --git a/src/app/auth/sign-up/signup.css b/src/app/auth/sign-up/signup.css new file mode 100644 index 0000000..848f755 --- /dev/null +++ b/src/app/auth/sign-up/signup.css @@ -0,0 +1,75 @@ +.full-page-wrapper { + background-color: var(--black); + background-image: radial-gradient(circle farthest-corner at 100% 100%, var(--gradient-blue), transparent 44%), radial-gradient(circle farthest-corner at 0% 100%, var(--gradient-red), transparent 32%); + width: 100%; + max-width: none; + padding: 24px 12px; + height: 100vh; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.text-field { + border: 1px solid var(--silver); + background-color: var(--back-grey); + border-radius: 9px; + min-width: 120px; + height: 44px; + margin-bottom: 16px; + padding: 19px 12px; + font-size: 15px; + line-height: 1.4em; + transition: border-color .2s; + display: block; + width: 100%; + color: #333; + vertical-align: middle; +} + +.button { + background-color: var(--black); + color: var(--white); + text-align: center; + border-radius: 9px; + flex: none; + margin-bottom: 8px; + padding: 8px 28px; + font-size: 18px; + font-weight: 500; + line-height: 1.5; + transition: box-shadow .2s, transform .2s, border-color .2s, color .2s, background-color .2s; + box-shadow: 0 2px #2020200d; + cursor: pointer; + border: 0; + text-decoration: none; + display: inline-block; + width: 100%; +} + +.button:hover { + background-color: var(--dark-grey); +} + +.form-card-footer { + grid-column-gap: 8px; + flex-wrap: wrap; + justify-content: center; + font-size: 14px; + margin-top: 12px; + display: flex; +} + +.below-card-link { + color: var(--light-grey); + margin-top: 24px; + font-size: 14px; + display: inline-block; + text-decoration: none; + transition: color .2s; +} + +.below-card-link:hover { + color: var(--soft-grey); +} \ No newline at end of file diff --git a/src/app/globals.css b/src/app/globals.css index 6c4caef..2da143b 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -65,10 +65,4 @@ h3 { ::-webkit-scrollbar-thumb { background: #f0ffd9; border-radius: 4px; -} - -#__next { - display: flex; - flex-direction: column; - min-height: 100vh; } \ No newline at end of file diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index bb639b2..efb369e 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -60,7 +60,7 @@ const Footer = () => {
gerenciamento
Entrar diff --git a/src/components/Header.tsx b/src/components/Header.tsx index eaaef64..5554843 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -37,9 +37,9 @@ export default function Header({search=""} : {search?: string}) { Eventos
- Entrar + Entrar
- +
Registre-se diff --git a/src/components/home/Hero.tsx b/src/components/home/Hero.tsx index 72064ca..0ba5b64 100644 --- a/src/components/home/Hero.tsx +++ b/src/components/home/Hero.tsx @@ -16,7 +16,7 @@ const Hero = () => { Não deixe para depois: explore nosso catálogo de eventos que ocorrem anualmente no IFSP Cubatão

- Visualizar + Visualizar
diff --git a/src/components/home/hero.css b/src/components/home/hero.css index 75c53b3..9dde33f 100644 --- a/src/components/home/hero.css +++ b/src/components/home/hero.css @@ -22,11 +22,11 @@ position: relative; } -.button:hover { +.hero-button:hover { background-color: var(--dark-grey); } -.button { +.hero-button { background-color: var(--black); color: var(--white); text-align: center;