41 lines
3.9 KiB
Markdown
41 lines
3.9 KiB
Markdown
# RenewCMS design
|
||
|
||
Nuxt UI v4 back-office. Tokens only, no raw hex (the brand mark excepted). Light and dark, at 1440×900 and 390×844. Radius 0. Behaviour comes from `features/`; where the two disagree, stop and ask.
|
||
|
||
## Files
|
||
|
||
| File | Content |
|
||
| --- | --- |
|
||
| `routes.md` | Routes with their auth requirement. |
|
||
| `components.md` | Component inventory with its Nuxt UI mapping, then the full component specs. |
|
||
| `states.md` | Every state per screen, plus the HTTP-status-to-copy table. |
|
||
| `screens/<screen>.md` | Exact copy per state. `visual:check` takes the screen name from the file name. |
|
||
| `foundations.md` | Tokens, spacing, type and contrast. |
|
||
| `emails.md` | The mail templates. |
|
||
| `decisions.md` | Product and interface decisions that are not visible in the specs: search and sharing, sites and authors, roles, account self-service and the interface defaults. |
|
||
| `media-field.md` | Spec of the Media field type: control, states, copy, accessibility and API. |
|
||
| `source/` | The raw export. The `.dc.html` boards are the visual reference, to open in a browser. `tokens/` and `emails/` hold the ready-to-use token and template files. |
|
||
|
||
## Boards (in `source/`)
|
||
|
||
- `RenewCMS Screens Back-office.dc.html`: every back-office screen, with the frames `AppFrame` (shell), `DirectoryFrame` (Sites and Authors), `ActivityFrame`, `MediaFrame`, `VariantsFrame`, `IntegrationPage`, `IntegrationSearch`, `IntegrationImages`, `CodeSnippet` and `StatesMatrix`.
|
||
- `RenewCMS Screens Auth.dc.html`: log in, register, pending, verify, accept invite, forgot and reset password, verify new email, account deleted.
|
||
- `RenewCMS Screens API keys.dc.html`.
|
||
- `RenewCMS Screens Roles.dc.html`: the role editor, users and ownership (`RolesFrame`, data `roles-spec.js`).
|
||
- `RenewCMS Screens Schema.dc.html`: custom content types, entries, relations and the Media field (`SchemaFrame`).
|
||
- `RenewCMS Screens Account.dc.html`: change email, export your data and delete your account (`AccountCards`, copy in `account-copy.js`).
|
||
- `RenewCMS Emails.dc.html`, `RenewCMS Foundations.dc.html`, `RenewCMS Components Primitives.dc.html`, `RenewCMS Components Product.dc.html`, `RenewCMS Handoff.dc.html`, `RenewCMS Directions.dc.html` and `RenewCMS Prototype.dc.html`.
|
||
|
||
Every state has a desktop and a mobile frame, and the theme switch gives light and dark. States that render a relative time or a countdown are tagged clock-sensitive in `states.md` and skipped by `task visual:check`.
|
||
|
||
## Known gaps
|
||
|
||
- The Foundations, Components and Prototype boards do not show the account self-service pieces or every newer token.
|
||
- Duplicate implementations that look alike are not merged in code: toasts, badges, empty states and modal shells.
|
||
- The Back-office board still shows the owner, admin and user navigation. Writer frames use the restricted `user` navigation of `AppFrame`.
|
||
- The Schema board group 8 (Permissions) is superseded by the role editor, and `/settings/permissions` redirects to `/settings/roles`.
|
||
|
||
## Article localization baseline (refreshed 2026-11-03)
|
||
|
||
Start with [localization.md](localization.md) (authority, integration rules, open decisions, third-pass decisions), then [localization-tables.md](localization-tables.md) (generated from `source/locale-spec.js`), [localization-corrections.md](localization-corrections.md) (what the corrections pass rendered and left open) and [localization-changelog.md](localization-changelog.md) (state IDs and copy changed by the third pass). States are indexed in `states.md` and `screens/localization-*.md` (8 files, 184 states in 16 groups; L6 and L9 are release 2). The Articles list pixel gate is group L7s (single-language site) and L7 (several languages), not the Back-office Articles groups. References: `source/RenewCMS Screens Localization.dc.html`, `LocaleFrame.dc.html` (drawn inside the shared `AppFrame`), `locale-spec.js` and `locale-fixtures.js`. The LocaleLive prototype was not imported, and the Prototype board does not demonstrate localization.
|