chore: 2 big design passes to harmonize and fix stuff
This commit is contained in:
1 parent
67b3ff03d0
commit
5e05b606a7
43 files changed
+2167
-4183
No files matched your search
@@ -1,76 +1,32 @@
|
||||
# Choose a new password
|
||||
# Reset password
|
||||
|
||||
- **Route:** `/register/reset/validate?c=CODE&email=EMAIL`
|
||||
- **API:** POST /v1/auth/password-reset/confirm
|
||||
- **Visual reference:** `source/RenewCMS Screens Auth.dc.html`, group "Reset password" (open it in a browser; each state is drawn at desktop and mobile, with a light/dark toggle).
|
||||
Route: `/register/reset/validate?c=CODE&email=EMAIL`. API: POST /v1/auth/password-reset/confirm.
|
||||
|
||||
Opened from the reset email. The email comes from the URL and is read-only. The confirm field is checked only in the browser.
|
||||
|
||||
## States
|
||||
Visual reference: `RenewCMS Screens Auth.dc.html`, groups "Reset password". Frames: `AppFrame.dc.html` (shell, sidebar, topbar, drawer) plus the screen frame where listed in components.md.
|
||||
|
||||
### Default
|
||||
## Copy per state (generated from the board source, pass 2)
|
||||
|
||||
**Trigger:** Both parameters are present.
|
||||
Every state below is drawn in light and dark (theme switch on the board), at 1440×900 and 390×844 (both frames sit side by side). Board: `RenewCMS Screens Auth.dc.html`. Copy is exact; where a cell is empty the state reuses the fixed copy.
|
||||
|
||||
- Heading: **Choose a new password**
|
||||
- Description: "Pick something you haven't used here before. You'll log in with it next."
|
||||
- Field `Email`: placeholder "you@example.com"; value "marta@renew.example"; read-only; help "From your reset link."
|
||||
- Field `New password`: password with show/hide; checklist "At least 8 characters" (unmet)
|
||||
- Field `Confirm new password`: password with show/hide; checklist "Passwords match" (unmet)
|
||||
- Submit button: "Change password"
|
||||
### Base copy
|
||||
- Choose a new password
|
||||
- Pick something you haven't used here before. You'll log in with it next.
|
||||
- Change password
|
||||
|
||||
### Too short
|
||||
### Choose a new password (group "Reset password", 7 states)
|
||||
|
||||
**Trigger:** On submit, with fewer than 8 characters.
|
||||
Route: `/register/reset/validate?c=CODE&email=EMAIL`. API: POST /v1/auth/password-reset/confirm.
|
||||
|
||||
- Heading: **Choose a new password**
|
||||
- Description: "Pick something you haven't used here before. You'll log in with it next."
|
||||
- Field `Email`: placeholder "you@example.com"; value "marta@renew.example"; read-only; help "From your reset link."
|
||||
- Field `New password`: value "lime"; password with show/hide; checklist "At least 8 characters" (err)
|
||||
- Field `Confirm new password`: value "lime"; password with show/hide; checklist "Passwords match" (met)
|
||||
- Submit button: "Change password"
|
||||
Opened from the reset email. The email comes from the URL and is read-only. The confirm field is checked only in the browser.
|
||||
|
||||
### Mismatch
|
||||
|
||||
**Trigger:** On blur of the confirm field, or on submit.
|
||||
|
||||
- Heading: **Choose a new password**
|
||||
- Description: "Pick something you haven't used here before. You'll log in with it next."
|
||||
- Field `Email`: placeholder "you@example.com"; value "marta@renew.example"; read-only; help "From your reset link."
|
||||
- Field `New password`: value "limewash2026"; password with show/hide; checklist "At least 8 characters" (met)
|
||||
- Field `Confirm new password`: value "limewash2025"; password with show/hide; **error "The passwords don't match."**; checklist "Passwords match" (err)
|
||||
- Submit button: "Change password"
|
||||
|
||||
### Submitting
|
||||
|
||||
**Trigger:** Request in flight.
|
||||
|
||||
- Heading: **Choose a new password**
|
||||
- Description: "Pick something you haven't used here before. You'll log in with it next."
|
||||
- Field `Email`: placeholder "you@example.com"; value "marta@renew.example"; read-only; help "From your reset link."
|
||||
- Field `New password`: value "limewash2026"; password with show/hide; checklist "At least 8 characters" (met)
|
||||
- Field `Confirm new password`: value "limewash2026"; password with show/hide; checklist "Passwords match" (met)
|
||||
- Submit button: "Changing password…", loading
|
||||
|
||||
### Success
|
||||
|
||||
**Trigger:** 200 → /login?reason=password-changed.
|
||||
|
||||
- Alert (success, circle-check): **Password changed** "Log in with your new password."
|
||||
- Heading: **Log in**
|
||||
- Description: "Welcome back. Log in to manage your articles."
|
||||
- Field `Username`: placeholder "Your username"
|
||||
- Field `Password`: password with show/hide; link "Forgot password?"
|
||||
- Submit button: "Log in"
|
||||
|
||||
### Invalid or expired (403)
|
||||
|
||||
**Trigger:** The code is wrong, used, or older than 1 hour.
|
||||
|
||||
- ResultPanel (error, link-2-off): **This reset link has expired**; text "Reset links work once, for 1 hour. Request a new one and use it within the hour."; actions "Request a new link" (primary), "Back to log in" (secondary)
|
||||
|
||||
### Missing parameters
|
||||
|
||||
**Trigger:** The link has no c or no email. No request is made.
|
||||
|
||||
- ResultPanel (error, link-2-off): **This link is incomplete**; text "Part of the reset link is missing. Open it from your email again, or request a new one."; actions "Request a new link" (primary)
|
||||
| # | State | Trigger | Copy |
|
||||
|---|---|---|---|
|
||||
| 1 | Default | Both parameters are present. | |
|
||||
| 2 | Too short | On submit, with fewer than 8 characters. | |
|
||||
| 3 | Mismatch | On blur of the confirm field, or on submit. | "The passwords don't match." |
|
||||
| 4 | Submitting | Request in flight. | "Changing password…" |
|
||||
| 5 | Success | 200 → /login?reason=password-changed. | "Password changed" / "Log in with your new password." |
|
||||
| 6 | Invalid or expired (403) | The code is wrong, used, or older than 1 hour. | |
|
||||
| 7 | Missing parameters | The link has no c or no email. No request is made. | "This link is incomplete" / "Part of the reset link is missing. Open it from your email again, or request a new one." / "Request a new link" |
|
||||
Reference in new issue
Block a user