# Nexus OpenClaw Core Integration — Design QA

**Stand:** 2026-07-28
**Reference:** existing Nexus Dashboard design language and approved Run Control
mockup.

## Visual contract

- Existing Galaxy background, glass panels, blue-violet accents, Manrope,
  Space Grotesk and JetBrains Mono remain the only design language.
- Sidebar categories, 248 px desktop rail and 62 px topbar stay consistent.
- Glows are limited to active navigation, primary actions and meaningful live
  state.
- Standard pages remain bounded while Run Control and Task Board keep the wider
  operational workspace.
- Iris chat stays hidden until requested, leaving maximum space for live
  orchestration.

## Same-input comparisons

The required side-by-side comparisons were generated from current-run
screenshots:

- [Dashboard reference vs current](dashboard-reference-vs-current.png)
- [Run Control mockup vs functional build](run-control-mock-vs-current.png)

The current Dashboard preserves the reference visual system while removing the
persistent chat column and secondary dashboard clutter. Run Control is denser
than the approved mockup because it includes real capability, approval and
recovery state; the hierarchy, spacing rhythm, color use and panel treatment
remain consistent.

## Core-page review

[Core pages contact sheet](core-pages-contact-sheet.png)

Observed result:

- all page families use the same sidebar, topbar, background, headings, panels,
  inputs, buttons, status chips and focus treatment;
- no route reintroduced the former flat gray legacy shell;
- empty views on Memory, Docs and Incidents are deliberate content states, not
  failed layouts;
- Settings correctly uses a narrower form/diagnostic measure;
- Task Board keeps an internal horizontal work-surface scroller without causing
  document-level overflow;
- no P0, P1 or P2 visual inconsistency remained after the final pass.

## Responsive and geometry QA

[Run Control responsive contact sheet](run-control-responsive-contact-sheet.png)

Every authenticated route was loaded at:

| Viewport | Routes | Document overflow | Visible alerts |
|---:|---:|---:|---:|
| 375 x 812 | 17 | 0 | 0 |
| 768 x 900 | 17 | 0 | 0 |
| 1024 x 900 | 17 | 0 | 0 |
| 1440 x 900 | 17 | 0 | 0 |
| 1920 x 1080 | 17 | 0 | 0 |

The mobile/sidebar drawer, responsive columns and wide orchestration workspace
all remained usable. The project does not ship a separate mobile product; these
checks only guarantee that the authenticated web UI does not break at the
required narrow viewport.

## Interaction and accessibility QA

Verified in the in-app browser:

- categorized desktop and narrow-viewport navigation;
- direct authenticated deep links after reload;
- Run Control node selection and inspector update;
- cancel, approval and cron confirmation dialogs;
- `Escape` closes detail/confirmation dialogs;
- Activity and Models search/filter/detail paths;
- Task Board card to Task Detail navigation;
- Iris modal open/send/response/close and focus restoration;
- agent session-model change;
- notification target routing, mark-read and mark-all-read;
- explicit labels for buttons, links, dialogs and status regions;
- final browser console: no warnings or errors.

## State QA

- Loading: Run Control and shared OpenClaw polling show explicit loading state.
- Empty: every collection keeps its section and explains the absence of data.
- Error/disconnected: the shared notice reports message, recovery and a working
  Run Control link; the store never substitutes simulated production data.
- Unsupported/forbidden: capability state distinguishes missing Gateway methods
  from missing operator scopes.

The QA fixture is intentionally visible as `QA SIMULATION`; screenshots are
design/interaction evidence only, not proof of a live OpenClaw deployment.

## Remaining visual debt

No P0–P2 design issue blocks this checkpoint. P3 polish remains:

- finish language consistency between German owner workflows and English
  runtime vocabulary;
- add a compact correlation/trace breadcrumb once durable run deep links exist;
- replace temporary loading copy with skeletons only if measured latency makes
  it useful;
- add screenshots for real degraded/version-mismatch states after live Gateway
  pairing.
