feat(ui): use same Oxicloud theme for magic-link page
This commit is contained in:
@@ -2,22 +2,46 @@
|
||||
<html lang="{{ locale_code }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="color-scheme" content="light dark">
|
||||
<title>OxiCloud</title>
|
||||
<link rel="icon" type="image/svg+xml" href="/logo/logo-plain.svg">
|
||||
<script src="/js/core/theme-init.js"></script>
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/views/auth.css">
|
||||
<style>
|
||||
body { font-family: system-ui, sans-serif; max-width: 520px; margin: 6em auto;
|
||||
padding: 0 1em; color: #333; line-height: 1.5; }
|
||||
h1 { font-size: 1.4em; }
|
||||
.btn { display: inline-block; padding: .7em 1.4em; background: #2563eb; color: #fff;
|
||||
border-radius: 6px; text-decoration: none; font-weight: 600; margin-top: 1em; }
|
||||
.btn:hover { background: #1d4ed8; }
|
||||
.note { background: #fef3c7; border-left: 3px solid #f59e0b;
|
||||
padding: .75em 1em; margin: 1.5em 0; border-radius: 4px; font-size: .95em; }
|
||||
/* Cross-browser prompt is the one magic-link page that needs a
|
||||
"warning" callout that auth.css doesn't ship. Inline because the
|
||||
shape is unique to this surface — keep the styling local rather
|
||||
than adding tokens that no other page reuses. */
|
||||
.magic-note {
|
||||
background: var(--color-warning-bg-light);
|
||||
border-left: 3px solid var(--color-warning-text-amber);
|
||||
color: var(--color-text);
|
||||
padding: 0.75em 1em;
|
||||
margin: 1.5em 0;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95em;
|
||||
text-align: left;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>{{ title }}</h1>
|
||||
<p>{{ body }}</p>
|
||||
<p class="note">{{ warning }}</p>
|
||||
<p><a class="btn" href="{{ confirm_url }}">{{ continue_label }}</a></p>
|
||||
<div class="auth-container">
|
||||
<div class="auth-panel">
|
||||
<div class="auth-logo">
|
||||
<div class="auth-logo-icon">
|
||||
<svg viewBox="0 0 500 500">
|
||||
<path d="M345 310c32 0 58-26 58-58s-26-58-58-58c-6.2 0-12 0.9-17.5 2.7C318 166 289 143 255 143c-34.3 0-63.1 22.6-73 53.7C176.9 195.7 171 195 165 195c-32 0-58 26-58 58s26 58 58 58h180z" fill="#fff"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="auth-logo-text">OxiCloud</div>
|
||||
</div>
|
||||
<h2 class="auth-title">{{ title }}</h2>
|
||||
<p class="auth-subtitle">{{ body }}</p>
|
||||
<p class="magic-note">{{ warning }}</p>
|
||||
<a class="auth-button" href="{{ confirm_url }}" role="button">{{ continue_label }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -2,28 +2,34 @@
|
||||
<html lang="{{ locale_code }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="color-scheme" content="light dark">
|
||||
<title>OxiCloud</title>
|
||||
<style>
|
||||
body { font-family: system-ui, sans-serif; max-width: 560px; margin: 6em auto;
|
||||
padding: 0 1em; color: #333; line-height: 1.5; }
|
||||
h1 { font-size: 1.4em; }
|
||||
.btn { display: inline-block; padding: .7em 1.4em; background: #2563eb; color: #fff;
|
||||
border-radius: 6px; text-decoration: none; font-weight: 600; margin-top: .4em;
|
||||
border: 0; cursor: pointer; font-size: 1em; }
|
||||
.btn:hover { background: #1d4ed8; }
|
||||
.muted { color: #666; font-size: .9em; margin-top: 2em; }
|
||||
</style>
|
||||
<link rel="icon" type="image/svg+xml" href="/logo/logo-plain.svg">
|
||||
<script src="/js/core/theme-init.js"></script>
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/views/auth.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>{{ title }}</h1>
|
||||
{%- if let Some(offer) = resend %}
|
||||
<p>{{ body }}</p>
|
||||
<form method="post" action="{{ offer.action_url }}">
|
||||
<button type="submit" class="btn">{{ offer.button_label }}</button>
|
||||
</form>
|
||||
{%- else %}
|
||||
<p>{{ body }}</p>
|
||||
{%- endif %}
|
||||
<p class="muted"><a href="/">{{ return_link }}</a></p>
|
||||
<div class="auth-container">
|
||||
<div class="auth-panel">
|
||||
<div class="auth-logo">
|
||||
<div class="auth-logo-icon">
|
||||
<svg viewBox="0 0 500 500">
|
||||
<path d="M345 310c32 0 58-26 58-58s-26-58-58-58c-6.2 0-12 0.9-17.5 2.7C318 166 289 143 255 143c-34.3 0-63.1 22.6-73 53.7C176.9 195.7 171 195 165 195c-32 0-58 26-58 58s26 58 58 58h180z" fill="#fff"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="auth-logo-text">OxiCloud</div>
|
||||
</div>
|
||||
<h2 class="auth-title">{{ title }}</h2>
|
||||
<p class="auth-subtitle">{{ body }}</p>
|
||||
{%- if let Some(offer) = resend %}
|
||||
<form method="post" action="{{ offer.action_url }}" class="auth-form">
|
||||
<button type="submit" class="auth-button">{{ offer.button_label }}</button>
|
||||
</form>
|
||||
{%- endif %}
|
||||
<p class="auth-subtitle"><a href="/">{{ return_link }}</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -2,17 +2,29 @@
|
||||
<html lang="{{ locale_code }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="color-scheme" content="light dark">
|
||||
<title>OxiCloud</title>
|
||||
<style>
|
||||
body { font-family: system-ui, sans-serif; max-width: 640px; margin: 6em auto;
|
||||
padding: 0 1em; color: #333; }
|
||||
h1 { font-size: 1.4em; }
|
||||
p { line-height: 1.5; }
|
||||
</style>
|
||||
<link rel="icon" type="image/svg+xml" href="/logo/logo-plain.svg">
|
||||
<script src="/js/core/theme-init.js"></script>
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/views/auth.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>{{ title }}</h1>
|
||||
<p>{{ body }}</p>
|
||||
<p><a href="/">{{ return_link }}</a></p>
|
||||
<div class="auth-container">
|
||||
<div class="auth-panel">
|
||||
<div class="auth-logo">
|
||||
<div class="auth-logo-icon">
|
||||
<svg viewBox="0 0 500 500">
|
||||
<path d="M345 310c32 0 58-26 58-58s-26-58-58-58c-6.2 0-12 0.9-17.5 2.7C318 166 289 143 255 143c-34.3 0-63.1 22.6-73 53.7C176.9 195.7 171 195 165 195c-32 0-58 26-58 58s26 58 58 58h180z" fill="#fff"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="auth-logo-text">OxiCloud</div>
|
||||
</div>
|
||||
<h2 class="auth-title">{{ title }}</h2>
|
||||
<p class="auth-subtitle">{{ body }}</p>
|
||||
<p class="auth-subtitle"><a href="/">{{ return_link }}</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -2,17 +2,29 @@
|
||||
<html lang="{{ locale_code }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="color-scheme" content="light dark">
|
||||
<title>OxiCloud</title>
|
||||
<style>
|
||||
body { font-family: system-ui, sans-serif; max-width: 560px; margin: 6em auto;
|
||||
padding: 0 1em; color: #333; line-height: 1.5; }
|
||||
h1 { font-size: 1.4em; }
|
||||
.muted { color: #666; font-size: .9em; margin-top: 2em; }
|
||||
</style>
|
||||
<link rel="icon" type="image/svg+xml" href="/logo/logo-plain.svg">
|
||||
<script src="/js/core/theme-init.js"></script>
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/views/auth.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>{{ title }}</h1>
|
||||
<p>{{ body }}</p>
|
||||
<p class="muted"><a href="/">{{ return_link }}</a></p>
|
||||
<div class="auth-container">
|
||||
<div class="auth-panel">
|
||||
<div class="auth-logo">
|
||||
<div class="auth-logo-icon">
|
||||
<svg viewBox="0 0 500 500">
|
||||
<path d="M345 310c32 0 58-26 58-58s-26-58-58-58c-6.2 0-12 0.9-17.5 2.7C318 166 289 143 255 143c-34.3 0-63.1 22.6-73 53.7C176.9 195.7 171 195 165 195c-32 0-58 26-58 58s26 58 58 58h180z" fill="#fff"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="auth-logo-text">OxiCloud</div>
|
||||
</div>
|
||||
<h2 class="auth-title">{{ title }}</h2>
|
||||
<p class="auth-subtitle">{{ body }}</p>
|
||||
<p class="auth-subtitle"><a href="/">{{ return_link }}</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user