정의왕

Merge branch 'login' into 'master'

Login UI



See merge request !1
1 +App.js
...\ No newline at end of file ...\ No newline at end of file
1 <component name="InspectionProjectProfileManager"> 1 <component name="InspectionProjectProfileManager">
2 <profile version="1.0"> 2 <profile version="1.0">
3 <option name="myName" value="Project Default" /> 3 <option name="myName" value="Project Default" />
4 + <inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
4 <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" /> 5 <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5 </profile> 6 </profile>
6 </component> 7 </component>
...\ No newline at end of file ...\ No newline at end of file
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <project version="4"> 2 <project version="4">
3 <component name="VcsDirectoryMappings"> 3 <component name="VcsDirectoryMappings">
4 + <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
4 <mapping directory="$PROJECT_DIR$" vcs="Git" /> 5 <mapping directory="$PROJECT_DIR$" vcs="Git" />
5 </component> 6 </component>
6 </project> 7 </project>
...\ No newline at end of file ...\ No newline at end of file
......
This diff is collapsed. Click to expand it.
...@@ -6,9 +6,13 @@ ...@@ -6,9 +6,13 @@
6 "@testing-library/jest-dom": "^5.15.0", 6 "@testing-library/jest-dom": "^5.15.0",
7 "@testing-library/react": "^11.2.7", 7 "@testing-library/react": "^11.2.7",
8 "@testing-library/user-event": "^12.8.3", 8 "@testing-library/user-event": "^12.8.3",
9 + "node-sass": "^6.0.1",
9 "react": "^17.0.2", 10 "react": "^17.0.2",
10 "react-dom": "^17.0.2", 11 "react-dom": "^17.0.2",
12 + "react-router-dom": "^6.0.2",
11 "react-scripts": "4.0.3", 13 "react-scripts": "4.0.3",
14 + "semantic-ui-css": "^2.4.1",
15 + "semantic-ui-react": "^2.0.4",
12 "web-vitals": "^1.1.2" 16 "web-vitals": "^1.1.2"
13 }, 17 },
14 "scripts": { 18 "scripts": {
......
1 -.App {
2 - text-align: center;
3 -}
4 -
5 -.App-logo {
6 - height: 40vmin;
7 - pointer-events: none;
8 -}
9 -
10 -@media (prefers-reduced-motion: no-preference) {
11 - .App-logo {
12 - animation: App-logo-spin infinite 20s linear;
13 - }
14 -}
15 -
16 -.App-header {
17 - background-color: #282c34;
18 - min-height: 100vh;
19 - display: flex;
20 - flex-direction: column;
21 - align-items: center;
22 - justify-content: center;
23 - font-size: calc(10px + 2vmin);
24 - color: white;
25 -}
26 -
27 -.App-link {
28 - color: #61dafb;
29 -}
30 -
31 -@keyframes App-logo-spin {
32 - from {
33 - transform: rotate(0deg);
34 - }
35 - to {
36 - transform: rotate(360deg);
37 - }
38 -}
1 -import logo from './logo.svg'; 1 +//import React, {useState} from "react";
2 -import './App.css'; 2 +import {BrowserRouter as Router, Route, Routes, Link} from "react-router-dom";
3 - 3 +import LandingPage from "./component/views/LandingPage/LandingPage";
4 -function App() { 4 +import LoginPage from "./component/views/LoginPage/LoginPage";
5 +import RegisterPage from "./component/views/RegisterPage/RegisterPage";
6 +import "./static/fonts/font.css";
7 +function App () {
5 return ( 8 return (
6 - <div className="App"> 9 + <Router>
7 - <header className="App-header"> 10 + <div>
8 - <img src={logo} className="App-logo" alt="logo" /> 11 + {}
9 - <p> 12 + <Routes>
10 - Edit <code>src/App.js</code> and save to reload. 13 + <Route exact path = "/" element={<LandingPage/>}/>
11 - </p> 14 + <Route exact path = "/login" element={<LoginPage/>}/>
12 - <a 15 + <Route exact path = "/register" element={<RegisterPage/>}/>
13 - className="App-link" 16 + </Routes>
14 - href="https://reactjs.org" 17 + </div>
15 - target="_blank" 18 + </Router>
16 - rel="noopener noreferrer"
17 - >
18 - Learn React
19 - </a>
20 - </header>
21 - </div>
22 ); 19 );
23 } 20 }
24 21
......
1 +// React, {useEffect} from 'react';
2 +//import axios from 'axios';
3 +function LandingPage() {
4 + return (
5 + <div>
6 + <input type="password"/>
7 + </div>
8 + );
9 +}
10 +
11 +export default LandingPage;
1 +import React, { useState } from "react";
2 +import "../style/LoginPage.scss";
3 +import { Icon, Input } from "semantic-ui-react"
4 +
5 +function LoginPage() {
6 + const [Email, setEmail] = useState("");
7 + const [Password, setPassword] = useState("");
8 +
9 + const onIdHandler = (event) => {
10 + setEmail(event.currentTarget.value);
11 + };
12 + const onPasswordHandler = (event) => {
13 + setPassword(event.currentTarget.value);
14 + };
15 + const onSubmitHandler = (event) => {
16 + event.preventDefault();
17 + console.log("Email", Email);
18 + console.log("Password", Password);
19 + };
20 + return (
21 + <div id="body">
22 + <div className="login-form">
23 + <form onSubmit={onSubmitHandler}>
24 + <h1>Tunnel</h1>
25 + <div className="input-area">
26 + <Input
27 + icon={<Icon name='at'/>}
28 + iconPosition='left'
29 + placeholder="Email"
30 + type="text"
31 + value={Email}
32 + autoComplete="off"
33 + onChange={onIdHandler}/>
34 + </div>
35 + <div className="input-area">
36 + <Input
37 + icon={<Icon name='lock'/>}
38 + iconPosition='left'
39 + placeholder="Password"
40 + type="password"
41 + value={Password}
42 + autoComplete="off"
43 + onChange={onPasswordHandler}/>
44 + </div>
45 + <div className="btn-area">
46 + <button className="login-btn" >Login</button>
47 + <button className="register-btn" >Register</button>
48 + </div>
49 + </form>
50 + </div>
51 + </div>
52 + );
53 +}
54 +
55 +export default LoginPage;
1 +import React, { useState } from "react";
2 +import "../style/RegisterPage.scss";
3 +import { Icon, Input } from "semantic-ui-react"
4 +
5 +function RegisterPage() {
6 + const [Email, setEmail] = useState("");
7 + const [Password, setPassword] = useState("");
8 +
9 + const onIdHandler = (event) => {
10 + setEmail(event.currentTarget.value);
11 + };
12 + const onPasswordHandler = (event) => {
13 + setPassword(event.currentTarget.value);
14 + };
15 + const onSubmitHandler = (event) => {
16 + event.preventDefault();
17 + console.log("Email",Email);
18 + console.log("Password", Password);
19 + };
20 + return (
21 + <div id="body">
22 + <div className="register-form">
23 + <form onSubmit={onSubmitHandler}>
24 + <h1>Tunnel</h1>
25 + <div className="input-area">
26 + <Input
27 + icon={<Icon name='at'/>}
28 + iconPosition='left'
29 + placeholder="Email"
30 + type="text"
31 + value={Email}
32 + autoComplete="off"
33 + onChange={onIdHandler}/>
34 + </div>
35 + <div className="input-area">
36 + <Input
37 + icon={<Icon name='lock'/>}
38 + iconPosition='left'
39 + placeholder="Password"
40 + type="password"
41 + value={Password}
42 + autoComplete="off"
43 + onChange={onPasswordHandler}/>
44 + </div>
45 + <div className="btn-area">
46 + <button className="register-btn" >Register</button>
47 + </div>
48 + </form>
49 + </div>
50 + </div>
51 + );
52 +}
53 +
54 +export default RegisterPage;
1 +* {
2 + margin: 0;
3 + padding: 0;
4 + box-sizing: border-box;
5 +}
6 +#body{
7 + display: flex;
8 + justify-content: center;
9 + align-items: center;
10 + height: 100vh;
11 + background-image: url("../images/login_background.png");
12 + background-repeat: no-repeat;
13 + background-position: center;
14 + .login-form {
15 + display: flex;
16 + justify-content: space-around;
17 + align-items: center;
18 + flex-direction: row;
19 + width: 500px;
20 + height: 620px;
21 + box-shadow: 0px 0px 20px #000;
22 + }
23 + h1 {
24 + font-size: 40px;
25 + color: white;
26 + font-weight: bold;
27 + text-align: center;
28 + margin-bottom: 60px ;
29 + }
30 + .input-area {
31 + display: flex;
32 + justify-content: center;
33 + align-items: center;
34 + width: 400px;
35 + position: relative;
36 + margin-top: 20px;
37 + font-weight: bold;
38 + font-size: medium;
39 +
40 + input {
41 + width: 75%;
42 + padding: 15px .8em .8em;
43 + background-color: transparent;
44 + border: 2px solid white;
45 + border-radius: 30px;
46 + font-size: 18px;
47 + color: white;
48 + outline: none;
49 + }
50 +
51 + label {
52 + position: absolute;
53 + left: 10px;
54 + top: -2px;
55 + font-size: 14px;
56 + color: white;
57 + }
58 + }
59 + .btn-area {
60 + display: flex;
61 + justify-content: space-evenly;
62 + margin-top: 30px;
63 +
64 + .login-btn {
65 + width: 150px;
66 + height: 50px;
67 + background-color: transparent;
68 + font-size: 20px;
69 + color: white;
70 + border: 2px solid white;
71 + font-weight: bold;
72 + border-radius: 25px;
73 + cursor: pointer;
74 + }
75 + .register-btn {
76 + width: 150px;
77 + height: 50px;
78 + background-color: transparent;
79 + font-size: 20px;
80 + color: white;
81 + border: 2px solid white;
82 + font-weight: bold;
83 + border-radius: 25px;
84 + cursor: pointer;
85 + }
86 + }
87 +}
88 +
1 +* {
2 + margin: 0;
3 + padding: 0;
4 + box-sizing: border-box;
5 +}
6 +#body{
7 + display: flex;
8 + justify-content: center;
9 + align-items: center;
10 + height: 100vh;
11 + background-image: url("../images/login_background.png");
12 + background-repeat: no-repeat;
13 + background-position: center;
14 + .register-form {
15 + display: flex;
16 + justify-content: space-around;
17 + align-items: center;
18 + flex-direction: row;
19 + width: 500px;
20 + height: 620px;
21 + box-shadow: 0px 0px 20px #000;
22 + }
23 + h1 {
24 + font-size: 40px;
25 + color: white;
26 + font-weight: bold;
27 + text-align: center;
28 + margin-bottom: 60px ;
29 + }
30 + .input-area {
31 + display: flex;
32 + justify-content: center;
33 + align-items: center;
34 + width: 400px;
35 + position: relative;
36 + margin-top: 20px;
37 + font-weight: bold;
38 + font-size: medium;
39 +
40 + input {
41 + width: 75%;
42 + padding: 15px .8em .8em;
43 + background-color: transparent;
44 + border: 2px solid white;
45 + border-radius: 30px;
46 + font-size: 18px;
47 + color: white;
48 + outline: none;
49 + }
50 +
51 + label {
52 + position: absolute;
53 + left: 10px;
54 + top: -2px;
55 + font-size: 14px;
56 + color: white;
57 + }
58 + }
59 + .btn-area {
60 + display: flex;
61 + justify-content: space-evenly;
62 + margin-top: 30px;
63 +
64 + .register-btn {
65 + width: 150px;
66 + height: 50px;
67 + background-color: transparent;
68 + font-size: 20px;
69 + color: white;
70 + border: 2px solid white;
71 + font-weight: bold;
72 + border-radius: 25px;
73 + cursor: pointer;
74 + }
75 + }
76 +}
77 +
...@@ -2,7 +2,7 @@ import React from 'react'; ...@@ -2,7 +2,7 @@ import React from 'react';
2 import ReactDOM from 'react-dom'; 2 import ReactDOM from 'react-dom';
3 import './index.css'; 3 import './index.css';
4 import App from './App'; 4 import App from './App';
5 - 5 +import 'semantic-ui-css/semantic.min.css'
6 6
7 ReactDOM.render( 7 ReactDOM.render(
8 <React.StrictMode> 8 <React.StrictMode>
......
No preview for this file type
No preview for this file type
1 +@font-face {
2 + font-family: NotoSansKR-Black;
3 + src: url("./NotoSansKR-Black.eot");
4 +}
5 +
6 +@font-face {
7 + font-family: NotoSansKR-Bold;
8 + src: url("./NotoSansKR-Bold.eot");
9 +}
10 +
11 +@font-face {
12 + font-family: NotoSansKR-Light;
13 + src: url("./NotoSansKR-Light.eot");
14 +}
15 +
16 +@font-face {
17 + font-family: NotoSansKR-Medium;
18 + src: url("./NotoSansKR-Medium.eot");
19 +}
20 +
21 +@font-face {
22 + font-family: NotoSansKR-Regular;
23 + src: url("./NotoSansKR-Regular.eot");
24 +}
25 +
26 +@font-face {
27 + font-family: NotoSansKR-Thin;
28 + src: url("./NotoSansKR-Thin.eot");
29 +}
...\ No newline at end of file ...\ No newline at end of file