Compare commits
34
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a0236f9cdf | ||
|
|
21f7106021 | ||
|
|
9132bf971d | ||
|
|
e6bbf58937 | ||
|
|
4da4a8572e | ||
|
|
2dee4e7f8c | ||
|
|
efcd252a3f | ||
|
|
5f68c41d7c | ||
|
|
2d04f62d55 | ||
|
|
86f8ebf0de | ||
|
|
b928b85dad | ||
|
|
84b99a8921 | ||
|
|
b46d48bd32 | ||
|
|
557a429115 | ||
|
|
c63446831b | ||
|
|
57e0a2c324 | ||
|
|
426bf294d9 | ||
|
|
5973b3b921 | ||
|
|
c26891cd41 | ||
|
|
9c8d90174f | ||
|
|
554c614da9 | ||
|
|
e9cc231f48 | ||
|
|
131414c35b | ||
|
|
0b2cbf4d24 | ||
|
|
c6e59252b0 | ||
|
|
ad5c3ba552 | ||
|
|
58c74e3391 | ||
|
|
633171760a | ||
|
|
3b158d51b2 | ||
|
|
c88fe0a744 | ||
|
|
1ea0053142 | ||
|
|
aac9c8956e | ||
|
|
83bc553a45 | ||
|
|
873e60fc5f |
@@ -6,12 +6,12 @@
|
||||
{% block content %}
|
||||
<div id="main">
|
||||
<div class="login-container d-flex align-items-center justify-content-center">
|
||||
<div style="padding: 10px;min-width:330px;" class="ps-md-4 pe-md-4">
|
||||
<div class="login-panel px-4 py-4">
|
||||
<img src="/static/img/LoginLogo.png" alt="Nexium" class="login-logo" />
|
||||
<p class="login-subtitle">2016+ with freedom.</p>
|
||||
{% with messages = get_flashed_messages(with_categories=true) %}
|
||||
{% if messages %}
|
||||
<div>
|
||||
<div class="mb-2">
|
||||
{% for category, message in messages %}
|
||||
{% if category == 'error': %}
|
||||
<div class="alert border p-2 text-center alert-danger border-danger">
|
||||
@@ -34,10 +34,9 @@
|
||||
<button type="submit" class="btn btn-primary mb-3" {% if not loginEnabled: %}disabled{% endif %}>Login</button>
|
||||
</form>
|
||||
<div class="text-center mt-2">
|
||||
<p>Don't have an account? <a href="/signup">Signup</a>
|
||||
<p>Don't have an account? <a href="/signup">Signup</a></p>
|
||||
</div>
|
||||
</div>
|
||||
<img style="aspect-ratio: 7/4;min-height: 317px;max-height: 390px;" class="d-lg-block d-none" src="/static/img/LoginImage2.png" alt="Login Image">
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
{% block content %}
|
||||
<div id="main">
|
||||
<div class="signup-container d-flex align-items-center justify-content-center">
|
||||
<div style="padding: 10px;min-width:300px;" class="ps-md-4 pe-md-4">
|
||||
<h1>Nexium</h1>
|
||||
<p>2018+ with freedom.</p>
|
||||
<div class="signup-panel px-4 py-4">
|
||||
<img src="/static/img/LoginLogo.png" alt="NEXIUM" class="signup-logo" />
|
||||
<p class="signup-subtitle">2016+ with freedom.</p>
|
||||
{% with messages = get_flashed_messages() %}
|
||||
{% if messages %}
|
||||
<div>
|
||||
<div class="mb-2">
|
||||
{% for message in messages %}
|
||||
<div class="alert border border-danger p-2 text-center messagealerts">
|
||||
{{ message }}
|
||||
@@ -33,15 +33,14 @@
|
||||
<p>I agree to the <a href="/terms">Terms of Service</a> and <a href="/privacy">Privacy Policy</a></p>
|
||||
</label>
|
||||
</div>
|
||||
<div class="cf-turnstile d-table mb-2" style="margin: 0 auto;" data-theme="dark" data-sitekey="{{turnstilekey}}"></div>
|
||||
<div class="cf-turnstile d-table mb-2 mx-auto" data-theme="dark" data-sitekey="{{turnstilekey}}"></div>
|
||||
{% if SignupEnabled: %}<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>{%endif%}
|
||||
<button type="submit" class="btn btn-primary mb-3" {% if not SignupEnabled: %}disabled{% endif %}>Signup</button>
|
||||
</form>
|
||||
<div class="text-center mt-2">
|
||||
<p>Already have an account? <a href="/login">Login</a>
|
||||
<p>Already have an account? <a href="/login">Login</a></p>
|
||||
</div>
|
||||
</div>
|
||||
<img style="aspect-ratio: 7/4;min-height: 400px;max-height: 550px;" class="d-lg-block d-none" src="/static/img/LoginImage2.png" alt="Signup Image">
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
/* Custom UI tweaks for demos: reposition/resize header and navbar elements */
|
||||
:root{
|
||||
--navbar-height: 64px;
|
||||
}
|
||||
|
||||
/* Make navbar slightly taller and adjust brand positioning */
|
||||
.navbar {
|
||||
min-height: var(--navbar-height) !important;
|
||||
height: var(--navbar-height) !important;
|
||||
}
|
||||
|
||||
.navbar .navbar-brand .title-logo {
|
||||
font-size: 1.25rem;
|
||||
line-height: 1;
|
||||
margin: 0;
|
||||
transform: translateY(6px);
|
||||
}
|
||||
|
||||
/* Resize avatar in navbar */
|
||||
.d-flex #currencydiv img {
|
||||
width: 28px !important;
|
||||
height: 28px !important;
|
||||
}
|
||||
|
||||
/* Slightly increase spacing for nav links */
|
||||
.navbar-nav .nav-link {
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
/* Example utility: move nav to the right on larger screens */
|
||||
@media (min-width: 992px) {
|
||||
.navbar .container-fluid > .navbar-brand { margin-right: 24px; }
|
||||
}
|
||||
|
||||
/* Use this file to experiment: change --navbar-height or transforms to reposition/resize elements */
|
||||
|
||||
/* ------------------------
|
||||
Login page repositioning
|
||||
- Moves the decorative image to the left of the form on wide screens
|
||||
- Stacks the image above the form on small screens
|
||||
- Adjust gap and max-height to taste
|
||||
------------------------ */
|
||||
.login-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 32px;
|
||||
}
|
||||
|
||||
.login-container > div {
|
||||
order: 2; /* form column */
|
||||
flex: 1 1 0;
|
||||
}
|
||||
|
||||
.login-container img {
|
||||
order: 1; /* image column */
|
||||
max-height: 420px;
|
||||
width: auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Mobile / small screens: stack vertically with image on top */
|
||||
@media (max-width: 992px) {
|
||||
.login-container {
|
||||
flex-direction: column-reverse; /* keep form visible first on very small screens */
|
||||
min-width: 280px;
|
||||
gap: 16px;
|
||||
}
|
||||
.login-container img {
|
||||
width: 100%;
|
||||
max-height: 240px;
|
||||
object-fit: cover;
|
||||
}
|
||||
.login-container > div {
|
||||
order: 1;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* Utility: nudge the form horizontally if needed */
|
||||
.login-container .form-nudge { transform: translateX(10px); }
|
||||
|
||||
/* Login logo styling: replace h1 text with an image */
|
||||
.login-logo {
|
||||
display: block;
|
||||
margin: 0 auto 8px;
|
||||
max-width: 220px;
|
||||
height: auto;
|
||||
}
|
||||
.login-subtitle {
|
||||
text-align: center;
|
||||
margin-bottom: 12px;
|
||||
font-size: small;
|
||||
color: rgba(230,238,248,0.9);
|
||||
}
|
||||
|
||||
/* Navbar brand logo styling */
|
||||
.navbar .navbar-brand .brand-logo {
|
||||
display: block;
|
||||
max-height: 44px;
|
||||
width: auto;
|
||||
transform: translateY(6px);
|
||||
}
|
||||
|
||||
/* Left sidebar styles (replaces top navbar) */
|
||||
.has-left-sidebar .fixed-top.width-100 { display: none !important; }
|
||||
.left-sidebar {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 220px;
|
||||
background: #1f1f1f;
|
||||
color: #fff;
|
||||
padding-top: 18px;
|
||||
z-index: 1040;
|
||||
overflow: auto;
|
||||
}
|
||||
.left-sidebar .sidebar-brand { text-align: center; padding: 6px 8px 12px; border-bottom: 1px solid rgba(255,255,255,0.04); }
|
||||
.left-sidebar .sidebar-brand .brand-logo { max-height: 48px; }
|
||||
.left-sidebar .sidebar-nav ul { list-style:none; margin:0; padding:8px 0; }
|
||||
.left-sidebar .sidebar-nav li { margin:0; }
|
||||
.left-sidebar .sidebar-nav a { display:block; padding:10px 16px; color: #ddd; text-decoration:none; border-bottom:1px solid rgba(255,255,255,0.02); }
|
||||
.left-sidebar .sidebar-nav a:hover { background: rgba(255,255,255,0.03); color:#fff; }
|
||||
.left-sidebar .sidebar-nav .badge { background:#e53935; color:#fff; font-size:11px; padding:2px 6px; border-radius:10px; margin-left:6px; }
|
||||
|
||||
/* push page content to the right so the sidebar doesn't overlap */
|
||||
.has-left-sidebar body, .has-left-sidebar .width-100 { margin-left: 220px !important; }
|
||||
@media (max-width: 992px) {
|
||||
.left-sidebar { transform: translateX(-220px); transition: transform .2s ease; }
|
||||
.left-sidebar.open { transform: translateX(0); }
|
||||
.has-left-sidebar .width-100 { margin-left: 0 !important; }
|
||||
}
|
||||
|
||||
+52
-16
@@ -1,28 +1,46 @@
|
||||
body {
|
||||
background: radial-gradient(circle, var(--auth-dot) 10%, transparent 11%),radial-gradient(circle at bottom left, var(--auth-dot) 5%, transparent 6%),radial-gradient(circle at bottom right, var(--auth-dot) 5%, transparent 6%),radial-gradient(circle at top left, var(--auth-dot) 5%, transparent 6%),radial-gradient(circle at top right, var(--auth-dot) 5%, transparent 6%);
|
||||
background-size: 3em 3em;
|
||||
background-color: var(--auth-bg);
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
background-color: #050505;
|
||||
overflow-x: hidden;
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
body::before {
|
||||
content: "";
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
background-image: linear-gradient(rgba(0, 0, 0, 0.68), rgba(0, 0, 0, 0.68)), url("/static/img/LoginPage.png");
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
filter: blur(12px) brightness(0.7) saturate(0.85);
|
||||
transform: scale(1.08);
|
||||
z-index: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
#main {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.login-container {
|
||||
min-width: 330px;
|
||||
display: inline-block;
|
||||
background-color: var(--auth-card-bg);
|
||||
box-shadow: 0 0 15px var(--auth-card-shadow);
|
||||
width: 100%;
|
||||
padding: 24px 16px;
|
||||
}
|
||||
|
||||
.login-container h1 {
|
||||
text-align: center;
|
||||
margin-bottom: 0;
|
||||
font-size: 3.5rem;
|
||||
font-weight: 700;
|
||||
.login-panel {
|
||||
width: min(100%, 420px);
|
||||
background-color: var(--auth-card-bg);
|
||||
box-shadow: 0 0 15px var(--auth-card-shadow);
|
||||
border-radius: 2px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.login-container p {
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
@@ -52,10 +70,28 @@ body {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.login-container img {
|
||||
min-width: 500px;
|
||||
.login-logo {
|
||||
display: block;
|
||||
margin: 0 auto 8px;
|
||||
max-width: 320px;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.login-subtitle {
|
||||
text-align: center;
|
||||
margin-bottom: 12px;
|
||||
color: rgba(230, 238, 248, 0.9);
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
.login-container button {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.login-container .alert {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
|
||||
.form-text {
|
||||
/* wrap the text*/
|
||||
@@ -91,7 +127,7 @@ body {
|
||||
font-size: small;
|
||||
}
|
||||
@media (max-width: 480px) {
|
||||
.login-logo { max-width: 160px; }
|
||||
.login-logo { max-width: 240px; }
|
||||
}
|
||||
.navbar .navbar-brand .brand-logo {
|
||||
display: block;
|
||||
|
||||
+78
-22
@@ -1,7 +1,23 @@
|
||||
body {
|
||||
background: radial-gradient(circle, #333 10%, transparent 11%),radial-gradient(circle at bottom left, #333 5%, transparent 6%),radial-gradient(circle at bottom right, #333 5%, transparent 6%),radial-gradient(circle at top left, #333 5%, transparent 6%),radial-gradient(circle at top right, #333 5%, transparent 6%);
|
||||
background-size: 3em 3em;
|
||||
background-color: rgb(20,20,20);
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
background-color: #050505;
|
||||
overflow-x: hidden;
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
body::before {
|
||||
content: "";
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
background-image: linear-gradient(rgba(0, 0, 0, 0.68), rgba(0, 0, 0, 0.68)), url("/static/img/LoginPage.png");
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
filter: blur(12px) brightness(0.7) saturate(0.85);
|
||||
transform: scale(1.08);
|
||||
z-index: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
#main {
|
||||
@@ -9,27 +25,36 @@ body {
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.signup-container {
|
||||
min-width: 330px;
|
||||
display: inline-block;
|
||||
background-color: rgba(25,25,25, 1);
|
||||
box-shadow: 0 0 15px rgba(0, 0, 0, 0.7);
|
||||
width: 100%;
|
||||
padding: 24px 16px;
|
||||
}
|
||||
|
||||
/* only align h1 tags */
|
||||
.signup-container h1 {
|
||||
text-align: center;
|
||||
margin-bottom: 0;
|
||||
font-size: 3.5rem;
|
||||
font-weight: 700;
|
||||
.signup-panel {
|
||||
width: min(100%, 420px);
|
||||
background-color: var(--auth-card-bg);
|
||||
box-shadow: 0 0 15px var(--auth-card-shadow);
|
||||
border-radius: 2px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
.signup-container p {
|
||||
|
||||
.signup-logo {
|
||||
display: block;
|
||||
margin: 0 auto 8px;
|
||||
max-width: 320px;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.signup-subtitle {
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
margin-bottom: 15px;
|
||||
font-size: small;
|
||||
margin-bottom: 12px;
|
||||
color: rgba(230, 238, 248, 0.9);
|
||||
}
|
||||
|
||||
.signup-container button {
|
||||
@@ -51,14 +76,35 @@ body {
|
||||
}
|
||||
|
||||
#password {
|
||||
min-width: 300px;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#username,
|
||||
#invite-key {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
#checkboxTerms {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.5rem;
|
||||
margin: 8px 0 12px;
|
||||
}
|
||||
|
||||
#checkboxTerms p {
|
||||
margin: 0;
|
||||
text-align: left;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
.form-check-input {
|
||||
margin-top: 0.2rem;
|
||||
}
|
||||
|
||||
.messagealerts {
|
||||
background: rgba(255, 0, 0, 0.2);
|
||||
color: rgb(226, 226, 226);
|
||||
background: var(--alert-bg);
|
||||
color: var(--alert-text);
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
@@ -67,15 +113,25 @@ body {
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
a {
|
||||
.signup-container a {
|
||||
text-decoration: none !important;
|
||||
color: rgb(32, 147, 255) !important;
|
||||
font-weight: 500 !important;
|
||||
transition: 0.2s;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
.signup-container a:hover {
|
||||
text-decoration: none !important;
|
||||
color: rgb(3, 133, 255) !important;
|
||||
transition: 0.2s;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.signup-panel {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.signup-logo {
|
||||
max-width: 240px;
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 425 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 202 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 111 KiB |
Reference in New Issue
Block a user