auto-save 2026-05-15 15:54 (~4)

This commit is contained in:
2026-05-15 15:54:34 +08:00
parent beeed42834
commit eabec39bdc
4 changed files with 296 additions and 154 deletions

View File

@@ -17,8 +17,6 @@ import {
type LoginStatus = "idle" | "loading" | "success"
type LoginMood = "idle" | "typing" | "peek" | "error" | "success"
const CHARACTER_IDS = ["pilot", "lens", "spark", "keeper"] as const
export default function LoginPage() {
const [username, setUsername] = useState("")
const [password, setPassword] = useState("")
@@ -119,15 +117,39 @@ export default function LoginPage() {
<div className="login-character-stage" aria-hidden="true">
<div className="login-stage-grid" />
{CHARACTER_IDS.map((id, index) => (
<div className={`login-character login-character--${id}`} key={id} style={{ "--i": index } as CSSProperties}>
<span className="login-character__gloss" />
<span className="login-character__eye login-character__eye--left" />
<span className="login-character__eye login-character__eye--right" />
<span className="login-character__mouth" />
<span className="login-character__badge" />
<div className="login-characters-container">
<div className="login-figure login-figure--purple">
<span className="login-eyes login-eyes--purple">
<span className="login-eye" />
<span className="login-eye" />
</span>
<span className="login-mouth login-mouth--purple" />
</div>
))}
<div className="login-figure login-figure--black">
<span className="login-eyes login-eyes--black">
<span className="login-eye login-eye--small" />
<span className="login-eye login-eye--small" />
</span>
</div>
<div className="login-figure login-figure--orange">
<span className="login-eyes login-eyes--orange">
<span className="login-pupil" />
<span className="login-pupil" />
</span>
<span className="login-mouth login-mouth--orange" />
</div>
<div className="login-figure login-figure--yellow">
<span className="login-eyes login-eyes--yellow">
<span className="login-pupil" />
<span className="login-pupil" />
</span>
<span className="login-yellow-mouth">
<svg width="80" height="20" viewBox="0 0 80 20">
<path d="M0 10 Q10 10, 20 10 Q30 10, 40 10 Q50 10, 60 10 Q70 10, 80 10" />
</svg>
</span>
</div>
</div>
</div>
<div className="grid gap-3 sm:grid-cols-3">