avonlake.city
Applied UI kit · public-record design system
Not affiliated with the City of Avon Lake
Applied interface kit · avonlake.city

The home page's system, extended to the surfaces the rest of the site needs.

Four working surfaces and a component reference, built only from tokens read out of index.html. Everything here loads the same three stylesheets a production page would.

colors_and_type.css · tokens.css · app.css · app.js · fonts/ — no build step, no dependencies, no third-party request
Coverage
System → remaining pages
In progress
Components extracted from source0
Applied surfaces in this kit0
Color primitives · semantic roles0
Extensions beyond source0
Component provenance17 total
14 read from index.html3 derived extensions
Extensions are labelled everywhere they appear — never presented as source evidence.
Working rules

Four rules that keep an applied page inside this system.

They are not style preferences. Each one is a behaviour the home page already commits to, and breaking it changes what the project claims about its own evidence.

Volt figures allowed per data block1
Hue families in the palette1 + amber
Headline figures set in sans0
Claims shipped without a source line0
How to apply it

Copy four files, then keep the load order.

01

Link the three stylesheets, in order

colors_and_type.csstokens.cssapp.css. Later files depend on earlier variables.

02

Add app.js with defer

Behaviour is opt-in by markup attribute. A page with no .rv and no [data-count] simply runs nothing.

03

Open with topline, skip link, masthead

Then <main id="main">. The disclaimer tag is part of the masthead, not decoration.

04

Wrap every band in .wrap

1180px, 28px gutter. Sections alternate section.band, .field (white) and .feat (dark) — at most one dark band before the footer.

05

Give every claim a .src line

Register, retrieval date, or the limitation. A figure without a receipt does not ship.

06

Close with the ink footer

Wordmark, disclaimer, file links, and the three-part mono colophon.

If you need something this kit does not have: build it from the tokens, put it in app.css under the EXTENSIONS banner, and label it in components.html. Never let an extension pass as source evidence.
Optional React binding

The same five components, as React modules.

For porting the system into a React codebase. They emit this system's class names and nothing else — no inlined token values, so a change in colors_and_type.css still reaches them.

components/Stamp.jsx · components/Panel.jsx · components/FilingCard.jsx · components/Ledger.jsx · components/RecordField.jsx — each assigns its browser global, so they load as plain scripts with no bundler.

Power-plant redevelopment

The deeds, votes, and declared recusals behind the lakefront land deal.

Prototype · 197 matchesCase file →
Lead investigation
ALERG / power-plant site
Open
Prototype matches197
Source groups14
Static fallback — React replaces this block when it loads.
Sale price recorded on the 2021 deeds$0
Planned city purchase, financed by TIF$15M
RecordField

Static export shown until React mounts. Once live, hover, focus or click a chip to isolate a register; Escape clears.

197 prototype ALERG keyword matches by source group

The CSS layer stays dependency-free — React here is the one optional exception, loaded only by this demo. If it fails to load, the static markup above is what you see, and every other page in the kit is unaffected.