React form

This commit is contained in:
Tóth Ádám
2025-02-11 10:53:50 +01:00
parent d3ba52281d
commit b351fd9208
69 changed files with 46319 additions and 8118 deletions

View File

@@ -0,0 +1,8 @@
function About() {
return (
<p>Körtefa</p>
)
}
export default About

View File

@@ -0,0 +1,18 @@
import { Routes, Route } from 'react-router-dom';
import Home from './Home';
import Footer from './Footer';
import Random from './Random';
function AllRoutes() {
return (
<Routes>
<Route path="/" element={ <Home/> }></Route>
<Route path="footer" element={ <Footer/> }></Route>
<Route path='random-img' element={ <Random/> }></Route>
</Routes>
)
}
export default AllRoutes

View File

@@ -0,0 +1,38 @@
.App {
text-align: center;
}
.App-logo {
height: 40vmin;
pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
.App-logo {
animation: App-logo-spin infinite 20s linear;
}
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #61dafb;
}
@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}

View File

@@ -0,0 +1,17 @@
import './App.css';
import { Routes, Route } from 'react-router-dom';
import Home from './Home';
function App() {
return (
<>
<Routes>
<Route path='/' element={ <Home/> }></Route>
<Route path='random-img' element={ <About/> }></Route>
</Routes>
</>
)
}
export default App;

View File

@@ -0,0 +1,8 @@
import { render, screen } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});

View File

@@ -0,0 +1,33 @@
function Body() {
return (
<main>
<section id="introduction">
<h1>Introduction</h1>
<p>
Dying Light 2 Stay Human is a 2022 action role-playing game developed and published by Techland. The game is a sequel to Dying Light, and was released for PlayStation 4, PlayStation 5, Windows, Xbox One, and Xbox Series X/S on 4 February 2022. A cloud version for the Nintendo Switch is in development. It received generally favorable reviews, with praise directed at the combat, parkour system, and open world, but criticism for the story. It sold 5 million units in its first month of release.
</p>
</section>
<section id="gameplay">
<h1>Gameplay</h1>
<p>
Dying Light 2 is an action role-playing survival horror video game featuring a zombie apocalyptic-themed open world. Set 22 years after Dying Light, it stars a new protagonist named Aiden Caldwell (voiced by Jonah Scott), who has various parkour skills. Players can perform actions such as climbing ledges, sliding, leaping off from edges, and wall running to quickly navigate the city. It was confirmed that there are over 3000 parkour animations to give a more fluid free-running experience. Tools such as a grappling hook and a paraglider also aid traversal in the city. Aiden can also use the undead to break his fall. The game is mostly melee-based with the majority of fighting using melee weapons. The melee weapons have a limited lifespan and will degrade as the player uses them in combat. Long-range weapons such as crossbows, shotguns, and spears can be used as well. Weapons can be upgraded with different blueprints and components which can be found by breaking down weapons for craft parts.
</p>
</section>
<section id="story">
<h1>Story</h1>
<p>
The game takes place after the events of Dying Light; the 2015 rabies-like outbreak in the fictional country of Harran (the setting of Dying Light) ended with the death of all of the people in Harran. The international organization called the Global Relief Effort (GRE) was eventually able to develop a vaccine for the Harran Virus, ending the threat of a global pandemic, but the GRE continued experimenting on the virus in secret, intending to use it as a biological weapon.
In 2021, a mutated variant of the virus, named the Tachytransmissive Harran Virus (THV), escaped a GRE lab and started a second, more deadly pandemic that spread faster than the first, sweeping across the world and causing millions to transform into monsters. In an event called "The Fall", the GREs vaccine and "Antizin" (antidote that delays the symptoms) became ineffective against the new strain of THV, but if an individual were to be infected their symptoms could be suppressed with ultraviolet light, which could also be used to ward off and harm the infected.
By 2036, fifteen years after the Fall, much of the world's population has been wiped out, human civilization has been reduced to a handful of scattered settlements, with the fictional walled European city of Villedor being one of the largest. Originally quarantined by the GRE, Villedor was spared the worst of the pandemic thanks to its quarantine walls keeping the hordes of infected out of the city. Control of the city is split between several factions, including the militaristic Peacekeepers, the independent Survivors, and the violent Renegades.
The main protagonist Aiden Caldwell is a Pilgrim: an individual brave enough to make the dangerous trek between human settlements. He decides to travel to Villedor in order to search for his lost sister, Mia.
</p>
</section>
</main>
)
}
export default Body

View File

@@ -0,0 +1,14 @@
import React from "react";
function Footer() {
return (
<footer>
<span><i class="fa-solid fa-copyright"></i>2024, All right reserved</span>
<a href="https://dyinglightgame.com/dying-light-2"><span>Dying Light 2: Stay Human</span></a>
<a href="/"><img src="../dl-logo.png" alt=""></img></a>
</footer>
)
}
export default Footer

View File

@@ -0,0 +1,16 @@
import Nav from "./Nav"
import Body from "./Body"
import "./css/Home.css"
function Home() {
return (
<>
<Nav/>
<Body/>
</>
)
}
export default Home

View File

@@ -0,0 +1,17 @@
import { Link } from "react-router-dom"
function Nav() {
return (
<nav>
<a href="/"><img src="logo.png" alt=""/></a>
<div className="menu">
<a href="https://en.wikipedia.org/wiki/Dying_Light_2">About the game</a><br />
<Link to="random-img">Generate random image of a weapon</Link>
</div>
</nav>
)
}
export default Nav

View File

@@ -0,0 +1,25 @@
import Nav from "./Nav"
import "./css/Random.css"
function Random() {
return (
<>
<Nav/>
<main className="container">
<h1>Image generator</h1>
<button onClick={() => RandomGenerate()}>Generate</button>
<img src="" alt="" className="random-img"/>
</main>
</>
)
}
function RandomGenerate() {
const images = ["../character.jpg", "../towerraid.jpg", "../gameplay.jpg", "../wallpaper300.png"]
document.querySelector(".random-img").src = images[Math.floor(Math.random() * images.length)]
}
export default Random

View File

@@ -0,0 +1,43 @@
a {
text-decoration: none;
color: black;
}
body {
display: flex;
justify-content: center;
min-height: 100vh;
}
nav {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
background-color: white;
margin-bottom: 100px;
padding: 10px 0;
}
nav img {
margin-left: 10px;
cursor: pointer;
}
nav .menu {
display: flex;
align-items: center;
justify-content: space-evenly;
width: 600px;
}
main {
display: flex;
align-self: center;
flex-direction: column;
align-self: center;
width: 60%;
padding: 20px;
background-color: white;
border-radius: 20px;
}

View File

@@ -0,0 +1,24 @@
.container {
width: 20%;
}
h1 {
text-align: center;
}
button {
padding: 12px;
margin-bottom: 30px;
border-radius: 20px;
cursor: pointer;
transition: 400ms ease-in-out;
font-size: 1.1rem;
}
button:hover {
background-color: rgb(200, 200, 200);
}
.random-img {
border: 2px solid black;
}

View File

@@ -0,0 +1,15 @@
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
background-image: url("../public/wallpaper.png");
backdrop-filter: blur(3px);
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
}

View File

@@ -0,0 +1,19 @@
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import AllRoutes from './AllRoutes';
import reportWebVitals from './reportWebVitals';
import { BrowserRouter } from 'react-router-dom';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<BrowserRouter>
<AllRoutes />
</BrowserRouter>
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3"><g fill="#61DAFB"><path d="M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z"/><circle cx="420.9" cy="296.5" r="45.7"/><path d="M520.5 78.1z"/></g></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1,13 @@
const reportWebVitals = onPerfEntry => {
if (onPerfEntry && onPerfEntry instanceof Function) {
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
getCLS(onPerfEntry);
getFID(onPerfEntry);
getFCP(onPerfEntry);
getLCP(onPerfEntry);
getTTFB(onPerfEntry);
});
}
};
export default reportWebVitals;

View File

@@ -0,0 +1,5 @@
// jest-dom adds custom jest matchers for asserting on DOM nodes.
// allows you to do things like:
// expect(element).toHaveTextContent(/react/i)
// learn more: https://github.com/testing-library/jest-dom
import '@testing-library/jest-dom';