Rams MCP · The full engine, now in your coding agent
jgpt-automated on GitHub

jgpt-automated/bnr-power-washing

Reviewed against Rams quality heuristics: accessibility, color, typography, spacing, components, motion, UX, and craft.

10 files reviewed·July 25, 2026

View on GitHub

Low

Design risk in this codebase.

8issues
Serious · top 2 shown below

Top fix

Add focus-trap, Escape handling, and a loading state to the booking modal

See the fix

Verdict

A numbered-steps aesthetic is slapped onto sections that aren't actually sequential, and the booking modal looks polished but skips real interaction handling. The biggest risk is the Cal.com embed: no focus trap, no Escape key, no loading feedback while it initializes.

Files Rams reviewed

gallery.html

index.html

proposals/phase2/index.html

services/commercial.html

services/driveway-concrete.html

services/house-washing.html

services/patio-deck-fence.html

services/roof-cleaning.html

services/window-cleaning.html

styles.css

98/100

UX

1 serious
UXSerious

services/commercial.html:1

The Cal.com embed opens as a modal with no visible focus-trap or Escape handling controlled by this page, and no loading state on the trigger button while the widget script initializes.

"Book a Walk-Through" button opening a Cal.com embed: The Cal.com embed opens as a modal with no visible focus-trap or Escape handling controlled by this page, and no loading state on the trigger button while the widget script initializes. Code: `<button type="button" class="btn btn-ghost" data-cal-link="agent-jess/30min" data-cal-namespace="bnr-30min" data-cal-config='{"layout":"month_view","theme":"light"}'>Book a Walk-Through</button>`

Why it matters

Real user-facing friction the team can remove with a small, reversible change.

98/100

Craft

1 serious
CraftSerious

index.html:1

Numbering unrelated, non-sequential sections (pricing, services, FAQ) as steps 01-09 fakes a flow the user never actually steps through.

Section tag numbers "01" through "09" across Pricing, Services, Methods, Coverage, FAQ, About sections: Numbering unrelated, non-sequential sections (pricing, services, FAQ) as steps 01-09 fakes a flow the user never actually steps through. Code: `<div class="section-tag"><span class="num">01</span><span class="label">Typical Houston ranges</span></div> ... <span class="num">09</span><span class="label">Frequently asked</span>`

Why it matters

Real user-facing friction the team can remove with a small, reversible change.

Accessibility

No issues found

Typography

No issues found

Color

No issues found

Spacing

No issues found

Components

No issues found

Motion

No issues found

Working well

  • The focus-visible system is genuinely well built: a global reset (`:focus{outline:none}` paired with `:focus-visible{outline:2px solid var(--blue)}`) plus per-component offset tuning (buttons get 4px, inputs get 0 with a matching border-radius) shows real care for keyboard users rather than a blanket removal.
  • The reduced-motion query correctly keeps `.reveal` content visible (`opacity:1;transform:none`) instead of just killing durations, which is exactly the right way to degrade motion without hiding information.
  • The filter state syncs to the URL query string via history.replaceState, so a filtered view is shareable and survives a refresh: this is exactly the pattern UX-045 asks for and most galleries skip it.

Scored July 25, 2026 with Rams Engine v0.0.3 · Engine changelog
First scored July 21, 2026: 58/100. This rescore on v0.0.3: 84/100.

This page is an automated design review of jgpt-automated/bnr-power-washing’s UI code: 10 files read against 291 versioned rules covering accessibility, color, typography, spacing, components, UX, motion, and craft. The score is out of 100; confirmed criticals cap it — one at 59, two at 49, three or more at 39.

More design scores

Score your own repo.

Free on public repos, no account. The same engine that scored this page reads your UI code and mints a score page like this one.

Public repos only. The full engine reviews the UI code and mints a public score page — we email you the link too. Already-scored repos open instantly.

Or get a design review on every pull requestInstall Rams