Honest good working local company. The amount they quoted me on the phone was the price I paid after the service was completed.
Royal Chimney Bloomfield NJ — design kit
Design system
Soot & Ember
Two hue buckets and nothing else. Every neutral carries a tint of the logo's own hue, so there is no pure grey anywhere on this site.
Ember — the logo hue, sampled pixel by pixel from the logo file
Soot — neutrals, tinted 8–12% with that same hue
Zinc — the split-complement, and what galvanised sheet metal actually looks like
Typography
Bricolage Grotesque + Figtree
A display face with genuine irregularity against a body face that is honestly good at 15px on a phone. 54px over 17px, weight 800 over 400.
Creosote will not wait
Chimney sweeping in Bloomfield, NJ
What the camera actually finds
Level 1 and Level 2 inspection
Serving 20 towns · 8 counties
The subheadline explains the mechanism of delivery. It is never a second benefit.
Running text sets at 17px on 1.65, capped at a 62-character line so no paragraph outruns what an eye tracks in a single pass. Proper quotation marks and apostrophes everywhere: “that is the liner talking.”
Fifteen pixels for captions, metadata and review dates. The floor across the whole site is fourteen.
Components
Button — five states, not four
Default, hover, active, focus-visible and disabled. Plus busy, which is the state that stops a thumb on a phone creating two enquiries.
The QA set photographs hover, active and focus-visible one at a time, since no screenshot produces a hover state by itself.
Components
Card — the border is a mortar joint
Separation ladder: space first, then a ground shift, then a token shadow. A visible border is the last resort, and here it is drawn as the 1px joint between two bricks.
Chimney sweeping
Camera up before the brush goes in, coverings down before the damper is touched, photographs before we leave.
Chimney inspection
A camera down the whole liner and a written report, rather than a verbal “looks alright to me”.
Dryer vent cleaning
The lint that turns one cycle into three is in the run behind the wall, not in the trap you empty.
Components
One icon set, one stroke weight
1.75px, square caps, drawn here rather than pulled from a library — the entire client JS budget is 50KB. Emoji are banned as icons and everywhere else.
Components
Form field
Errors say what went wrong and what to do about it. They never apologise and they never blame the visitor.
Add your town and we can tell you which slots are open near you.
Signature moment
The running bond
The brick coursing out of the logo, rebuilt as a layout surface: every other row offset by half a brick. Hero and one section only — used anywhere else it turns into wallpaper.

Text over a photo, the one treatment
An opaque veil beneath the entire text block, with a shadow on the headings as a second line of defence. The same treatment on every opener, every band and every call to action.
Genuine work photographs off this business's own Google listing. Taken on a phone, a little unpolished, and far more persuasive than anything a stock library sells.
Motion
One entrance vocabulary, reused everywhere
opacity 0→1 with translateY 18px, 560ms, 80ms between siblings. Above the fold never animates in. Feedback stays at 180ms — a different scale, and the two are never mixed.
01
Delay 0ms
02
Delay 80ms
03
Delay 160ms
Scroll this page: every row arrives on entry, on a timer. None of it is bound to scroll position — bind it that way and a quick flick resolves the whole thing before anybody perceives it.
Components
Google reviews — the same block on every page
Rating and count exactly as Google publishes them, with the date they were read. The bars carry counts recounted from the saved raw review set, never percentages worked back from an average.
5.0
38 reviews on Google
Read on
Expert setup, high-powered vacuums, and absolutely no dust residue. Excellent work.
Water had been leaking around the chimney flashing, but the repair solved it completely. The crew sealed and reinforced the affected area with precision. Rain is no longer a concern. The workmanship looks strong and durable.
FAQ accordion
How often does a chimney need sweeping?
It is decided by how you burn rather than by the date. A wood fireplace used through a full New Jersey winter usually wants a sweep once a season; a gas insert wants an inspection instead, because that flue corrodes rather than filling up.
Do I need to be home for the appointment?
For a first appointment, yes. Somebody has to open up the hearth and the roof, and the findings land far better when they can be talked through while the footage is still up.
Will you make a mess in my living room?
No. Coverings go down before anything is opened, the vacuum runs from that moment until we leave, and we photograph the hearth on the way out so the state you are getting back is on record.
Grounds
Ember is a block, never a lone accent
A single orange dot on a near-black page is one of the banned default clusters. Here the ember gets a floor of its own instead.
Elevation
Five steps, two layers each, tinted with the ember hue
Never plain black. Small under buttons, medium under dropdowns, large under modals.
Radius — the complete set
Credibility
Above the fold, never below it
5.0from 59 reviews on Google
