Plumb: on site, a wall is “plumb” when it's perfectly true. In everyday British speech, “plumb” means exactly or squarely. It's a builder's word that promises straight dealing and work done properly, which is exactly the promise of a service that keeps your presence accurate.
Short, ownable as a lowercase wordmark, and easy to say on the phone.
WordmarkSchibsted Grotesk 800, −0.055em. The bob is the app icon and favicon.
ColourWhite does most of the work and near-black carries the type. All colour lives inside windows, one gradient family per benefit.
#FFFFFFPage ground
#F4F5F8Quiet surfaces
#0C0E12Type, primary button
#3A3F4ABody copy
#5D6370Meta, captions
#2F5BFFFocus, active state
Found
Sky → cobalt → violet. Google profile, discovery.
Trusted
Amber → coral → rose. Reviews.
Contact
Lime → jade → teal. Calls and enquiries.
Looked after
Peach → pink → lilac. Website, care, price.
Planned
Fog greys. Anything not yet available.
TypeOne family, Schibsted Grotesk. A newsroom grotesk with real weight at the top end; tracking tightens as the size grows.
Display 96 / 800Easier to find.H2 64 / 800What we take care of.H3 24 / 700Your Google Business Profile, set up properly.Body 17 / 400The listing that shows your business on Google Search and Maps. We set up the right services, area, hours and photos, and keep them accurate every month.Meta 13 / 500Illustrative example · Hartley Roofing is fictionalComponentsInk pills for actions. Glass only for interface pieces laid over a window, never as decoration on white.
Chips
A dashed edge always means “not included” or “not yet”.
Input
Glass card over a window
“A few slipped tiles after the storm. Could you take a look?”
“Turned up when he said he would.”
Rules
- Radius: 28 windows · 18 cards · pill actions
- Shadow: 22px offset, 44px blur, −18 spread
- Glass: 74% white, 20px blur, 170% saturation
- Grain: SVG noise at 32% overlay on every window
PhotographyGenerated for ideation, to be replaced by customers' real job photos with permission. Never presented as customers or staff.

Crop tighter than comfortable
Hands, faces and tools fill the frame. Leave the sky out.

Real work, safely done
Believable workwear, footed ladders, mortar on the knuckles. Overcast British light.

Cut-outs break the window
One person per window, cropped at the window's bottom edge, with glass UI around them.
Blurred sources (2–4 KB each) are graded into each window's gradient family, so the colour carries a trace of real streets and roofs.
MotionOne authored moment, the story. Everything else is quiet.
- Explicit states, scroll-drivenEach story beat has defined on and off states. Scrolling back simply reverses them. There's no video scrubbing and no scroll-jacking.
- Blur to sharpEntrances run 700 ms from 6 px blur, 18 px lower and 97% scale, eased with cubic-bezier(.16, 1, .3, 1).
- Hue shifts by beatThe stage's three registered @property colours glide over 1.1 s as the story moves between benefit families.
- Drift, barelyHero cards rise and fall 7 px over 9 s. That is the only ambient motion besides the one video loop.
- Loops are earnedOne seamless loop (start frame = end frame), paused offscreen and shown as a poster under reduced motion.
- Reduced motionStates change instantly, captions stay readable and nothing drifts.
VoiceStraight-talking and specific. Speak as "we" and promise the work, never the results.
Good at your trade. Easier to find.Hero: the brief's line, kept
Done properly. Kept true.Alternative hero, the most on-name
Customers check before they call.Section line: states the problem, not a stat
We say
- “Register your interest. Nothing to pay, no account.”
- “The timing of Google's verification is up to Google.”
- “Nobody can move your yard closer or promise a position.”
- “‘Not sure’ is a perfectly good answer.”
We don't say
- “Get to #1 on Google” or “3× more calls”
- “Start now”, “Sign up”, “Log in”
- “AI-powered growth engine”
- Anything that sounds like a guarantee of income