2.0 KiB
2.0 KiB
Shared workspace layout
- Use
app/ui/PageHeading.tsxfor page titles. Keep the heading flat, with a short description and optional actions. Only record IDs belong in the optional eyebrow. - Admin pages use
AdminShell, which supplies the same heading and settings navigation. - Authentication screens use
AuthLayout; they do not render the signed-in navigation. app/workspace.cssowns page width, gutters, title sizes and shared spacing. Feature styles own the content inside those pages. Do not add new page-specific hero panels or outer width overrides.- Keep primary actions, secondary controls and destructive actions visually distinct. Do not fade or uppercase every span inside a button: cards also use buttons, often with nested text.
- Keep technical IDs and pipeline labels monospace. Use sentence case for ordinary labels and descriptions.
- Preserve the six-stage request pipeline: three columns on desktop, two on tablet, one on narrow screens. Issue reports remain a right-hand column on desktop and stack on smaller screens.
- Desktop navigation stays at the top; mobile navigation stays at the bottom. Dialogs must remain clear of both.
Browser checks
Build the frontend before reviewing. The scripts in scripts/ run using Node and Playwright:
review_layout_ui.cjs: page alignment, consistent headings, overflow, redirects, pipeline layout, invite tabs, and fixture-only recovery forms.review_account_ui.cjs: fixture-only login and profile interaction checks.review_settings_ui.cjs: settings state, region-only saves, secret preservation, responsive controls and issue dialog placement.
The layout/settings reviews accept REVIEW_BASE, REVIEW_LIVE_BASE, REVIEW_PLAYWRIGHT, and REVIEW_DIR. Provide an authorised short-lived session through REVIEW_SESSION as { "name": "cookie-name", "token": "..." } in the process environment, never in a committed file. Live writes are blocked; submission checks use fixtures. Screenshots may contain account information and must stay outside the repository.