CSS verbessert für Login&Register. javscsript code für magnetic button effect noch in entwicklung.

This commit is contained in:
2026-03-16 12:53:57 +01:00
parent 986629f0a5
commit 723bc835ec
4 changed files with 189 additions and 42 deletions
+141
View File
@@ -0,0 +1,141 @@
:root {
--primary-bg-color: #f4f6f8;
--secondary-bg-color: white;
--nav-bg-color: #333;
}
@font-face {
font-family: "Geist Sans";
src: url("https://assets.codepen.io/605876/GeistVF.ttf") format("truetype");
}
*,
*::before,
*::after {
box-sizing: border-box;
}
body {
margin: 0;
min-height: 100vh;
display: grid;
place-items: center;
font-family: "Geist Sans", system-ui, sans-serif;
}
/* MAGNET EFFECT */
.magnetic {
padding: 10px 20px;
border: none;
background: #4facfe;
color: white;
border-radius: 6px;
cursor: pointer;
font-size: 16px;
transition: transform 0.2s ease;
}
.magnetic:hover {
background: #2d8cf0;
}
/* Reset */
* {
box-sizing: border-box;
margin: 0;
padding: 0;
font-family: Arial, Helvetica, sans-serif;
}
/* Page setup */
body {
min-height: 100vh;
background: var(--primary-bg-color);
}
/* Navbar */
nav {
width: 100%;
background: var(--nav-bg-color);
padding: 15px 30px;
}
nav ul {
list-style: none;
display: flex;
justify-content: flex-end;
gap: 20px;
}
nav a {
color: white;
text-decoration: none;
font-size: 16px;
}
nav a:hover {
color: #4facfe;
}
/* Center login section */
main {
min-height: calc(100vh - 60px);
/* full screen minus navbar */
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
/* Title */
main h1 {
margin-bottom: 20px;
}
/* Form box */
form {
background: var(--secondary-bg-color);
padding: 30px;
border-radius: 8px;
width: 300px;
display: flex;
flex-direction: column;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}
/* Labels */
label {
margin-top: 10px;
margin-bottom: 5px;
font-size: 14px;
}
/* Inputs */
input {
padding: 10px;
border: 1px solid #ccc;
border-radius: 6px;
}
/* Button */
.button {
margin-top: 20px;
padding: 10px;
border: none;
background: #4facfe;
color: white;
border-radius: 6px;
cursor: pointer;
font-size: 16px;
}
button:hover {
background: #2d8cf0;
}
/* Error message */
.error {
color: red;
margin-bottom: 15px;
}
+14
View File
@@ -0,0 +1,14 @@
const button = document.querySelector(".magnetic")
button.addEventListener("mousemove", (e) => {
const rect = button.getBoundingClientRect()
const x = e.clientX - rect.left - rect.width / 2
const y = e.clientY - rect.top - rect.height / 2
button.style.transform = `translate(${x * 0.3}px, ${y * 0.3}px)`
})
button.addEventListener("mouseleave", () => {
button.style.transform = "translate(0,0)"
})
+10 -12
View File
@@ -5,24 +5,20 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login</title>
<style>
h1 {
color: green;
}
.error {
color: red;
}
</style>
<link rel="stylesheet" href="../static/css/login.css">
<link rel="stylesheet" href="../static/css/login.css">
</link>
</head>
<body>
<nav>
<ul>
<li><a href="{{ url_for('login.login') }}">Login</a></li>
<li><a href="{{ url_for('login.register') }}">Create account</a></li>
<li><a href="{{ url_for('login.login') }}"><span>Login</span></a></li>
<li><a href="{{ url_for('login.register') }}"><span></span>Create account</span></a></li>
</ul>
</nav>
<main>
<h1>Login to your account</h1>
{% if error %}
@@ -34,8 +30,10 @@
<input type="text" name="username" required />
<label for="password">Password:</label>
<input type="password" name="password" required />
<button type="submit">Login</button>
<button class="magnetic" type="submit">Login</button>
</form>
</main>
<script src="../static/js/login.js" defer></script>
</body>
</html>
+3 -9
View File
@@ -5,15 +5,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sign Up</title>
<style>
h1 {
color: green;
}
.error {
color: red;
}
</style>
<link rel="stylesheet" href="../static/css/login.css">
</head>
<body>
@@ -23,6 +15,7 @@
<li><a href="{{ url_for('login.register') }}">Create account</a></li>
</ul>
</nav>
<main>
<h1>Create an account</h1>
{% if error %}
@@ -36,6 +29,7 @@
<input type="password" name="password" required />
<button type="submit">Sign Up</button>
</form>
</main>
</body>
</html>