mirror of
https://github.com/hansjone/netx.git
synced 2026-10-11 09:10:50 +08:00
Modernize the NETX login page with brand-first atmosphere.
Refresh typography, soft topology grid backdrop, and motion while keeping the force-change flow on the same shell. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
4c74d34d91
commit
4c256c521a
6 changed files with 252 additions and 33 deletions
|
|
@ -43,8 +43,15 @@ export function ForceChangePasswordPage() {
|
|||
|
||||
return (
|
||||
<div className="login-page">
|
||||
<div className="login-page__atmosphere" aria-hidden="true">
|
||||
<span className="login-page__orb login-page__orb--a" />
|
||||
<span className="login-page__orb login-page__orb--b" />
|
||||
<span className="login-page__grid" />
|
||||
</div>
|
||||
<form className="login-card" onSubmit={(e) => void onSubmit(e)}>
|
||||
<div className="login-card__brand">NETX</div>
|
||||
<div className="login-card__brand" aria-label="NETX">
|
||||
NETX
|
||||
</div>
|
||||
<h1 className="login-card__title">{t("auth.forceChangeTitle")}</h1>
|
||||
<p className="login-card__hint">
|
||||
{t("auth.forceChangeHint", { user: user?.username || "admin" })}
|
||||
|
|
|
|||
|
|
@ -32,8 +32,15 @@ export function LoginPage() {
|
|||
|
||||
return (
|
||||
<div className="login-page">
|
||||
<div className="login-page__atmosphere" aria-hidden="true">
|
||||
<span className="login-page__orb login-page__orb--a" />
|
||||
<span className="login-page__orb login-page__orb--b" />
|
||||
<span className="login-page__grid" />
|
||||
</div>
|
||||
<form className="login-card" onSubmit={(e) => void onSubmit(e)}>
|
||||
<div className="login-card__brand">NETX</div>
|
||||
<div className="login-card__brand" aria-label="NETX">
|
||||
NETX
|
||||
</div>
|
||||
<h1 className="login-card__title">{t("auth.loginTitle")}</h1>
|
||||
<label className="login-card__label">
|
||||
{t("auth.username")}
|
||||
|
|
@ -55,7 +62,11 @@ export function LoginPage() {
|
|||
disabled={busy || !ready}
|
||||
/>
|
||||
</label>
|
||||
{error ? <div className="login-card__error">{error}</div> : null}
|
||||
{error ? (
|
||||
<div className="login-card__error" role="alert">
|
||||
{error}
|
||||
</div>
|
||||
) : null}
|
||||
<button type="submit" className="login-card__submit" disabled={busy || !ready || !password}>
|
||||
{busy ? t("auth.loggingIn") : t("auth.login")}
|
||||
</button>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue