3.9 KiB
States
Every state in the three boards is drawn in light and dark (theme switch) at 1440×900 and 390×844. Counts are in README.md.
Copy glossary
| Use | Not |
|---|---|
| Delete (removes a record: article, variant, image, invite, cache files) | Remove |
| Remove link, Remove from the article, Remove (detaches; the record stays) | Delete |
| Create, Add variant, Create draft | New (except the page and button name "New article") |
| Save (a form or the editor), Save changes (edit forms) | Update (Update is the software-update action only) |
| Cancel on the left, primary on the right | Close on a dialog that has an action |
| Close only when the dialog has no action | Done, OK |
| Explicit non-destructive label in place of Cancel when Cancel would be ambiguous: "Keep invite", "Keep key", "Restart later" | Cancel there |
| Sentence case everywhere | Title Case |
| Errors say what happened and what was kept, end with a full stop | Exclamation marks |
| Toast: title is a short result in the past tense ("Article deleted", "Download started"), body one sentence with a full stop | Titles with a full stop; future tense |
| In-flight verb ends in an ellipsis character: "Saving…", "Creating…", "Preparing download…" | Three dots |
Glossary pass 2, changes made: activity log lines "Removed N expired invites" and "Removed N generated files" became "Deleted …" (they delete records or files); Activity export footer "Close" next to "Download again" became a single "Close"; export title "Export ready" became "Download started"; export failure title "Couldn't prepare the export" became "Couldn't prepare the download"; "Cancel export" became "Cancel". Checked by search across all frames and boards for exclamation marks (none found), Remove and Delete, Update and Save, "New", and dialog footers. Not re-read line by line; see README "Not done".
HTTP status to copy
| Status | Copy |
|---|---|
| 400 | "That request wasn't valid. Check the fields and try again." |
| 401, 403 | Global redirect, no local copy |
| 404 | "That item no longer exists." |
| 409 | "This changed somewhere else. Reload and try again." |
| 413 | "That file is too large." |
| 429 | "Too many requests. Try again in a few minutes." |
| 500, network | "Something went wrong on our side. Nothing was changed. Try again in a moment." |
Public image 400 bodies
{ "status": 400, "error": "unknown_variant", "message": "Unknown variant", "detail": "hero" } and { "status": 400, "error": "unsupported_parameter", "message": "Unsupported parameter", "detail": "width" }. The original is not served as a fallback.
Articles and Media pagination
Same states and copy on Articles and Media (Media draws them under the grid or list). Loading next page keeps row height, controls disabled, summary "Loading page 7…". Error "Couldn't load page 7. Showing page 6." with Retry. Out of range "That page doesn't exist. Showing the last page." Page size menu offers 5, 25, 50, 100. Invalid page or size in the URL (size=30, page=abc, page=0) is replaced by the default without a notice; the API 400 never reaches the user.
Editor
Counter without limit ("1,204 words · 7,318 characters"; at 120,000 characters "19,845 words · 120,000 characters"), "Saving…", "Saved", "Couldn't save. Your text is kept. Retry". Link states and the toolbar overflow are drawn in the Editor group (11 states).
Activity export
Only CSV is offered. "Preparing download…", "Download started", "Couldn't prepare the download", "Nothing to export", "You can't export all activity". The CSV/JSON format control is drawn once, labelled proposed.
Media cleanup, Settings navigation, Activity toggles
As in screens/settings.md, screens/image-variants.md and screens/activity.md. Sync rule for filter cards: card pressed, chip present and the Outcome segment on Failed are one state; removing any removes all three.
Per-screen copy
screens/.md, section "Copy per state" (generated from the board source).