Design system
SheriffSaleData turns published tax sale notices into one register of sales. The interface is shared with its sibling TrusteeSaleData: a quiet research interface where structure comes from type, whitespace and rules — flat panels, one sans face, and tabular figures rather than generic dashboard chrome.
There is exactly one signal color, and it means act now. A sheriff sale is an event with a hard date, and the only question a page has to answer at a glance is which of these is about to happen. The same signal marks the single decisive action in a view, and nothing routine competes with it.
Everything else uses warm paper and teal-black ink. Volume is shown with weight and bar length, state is shown with a small chip, hierarchy is shown with weight, size and rules. An earlier version of this site gave every row a red or green date pill; the result was a traffic light in which nothing stood out, because everything did.
The practical test: squint at any page. The only color you should see is the thing that happens soonest.
Accent budget, per page
Not: buttons, headings, borders, backgrounds, icons, link text, or anything that appears on every row. Links are ink with a hairline underline that turns accent on hover — the color marks the interaction, not the link.
The mark is a bidder’s paddle with a # for its number. A sheriff sale is an auction, and the paddle a bidder raises is the same shape as the sign staked in front of a lot for sale. The # is a bid number and also a plat of nine lots; the lot it encloses is in the signal color because it is the one going to sale, and the handle is exactly as wide as that lot. No roof, courthouse or gavel.
The wordmark is set in IBM Plex Sans, with the signal color on the word that names the event. Headings share the interface face, so hierarchy comes from weight and size rather than from a second typeface.
Exports



Every file above, the mark as SVG and PNG at several sizes, a hinted 16px favicon, and the fonts live in brand/ in the repository, with a README on clear space and which lockup goes on which ground. The drawing is one TypeScript module; npm run brand regenerates the exports, the favicon and the home-screen icons from it, and the share cards are rendered from the same source at request time.
Ground and structure
Ink
Signal
Three theme states are supported, not two: explicit light, explicit dark, and the unstamped default where only the operating system preference applies. The complete light palette is defined on bare :root, so every token has a value before any media query is consulted.
IBM Plex Sans · display
Headlines, section headings and hero figures. Semibold with tight tracking, always large.
Putnam County
Upcoming sales by week
IBM Plex Sans
Interface. Tables, controls, navigation, prose. Everything that is information rather than voice.
A sheriff’s sale is advertised for weeks before the day, and moved as often as the lender asks, so the date is the field to watch.
Label · 10.5px · 0.09em
IBM Plex Mono
Identifiers and money — anything a reader compares character by character. Tabular figures are on everywhere digits stack.
Buttons
Chips
A chip labels an exception, never a value that appears on every row.
Controls
Parcel, owner, holder
Enter a valid date
Figures
Volume strip
Schedule table
| Property | County | Status |
|---|---|---|
| Today2 sales | ||
| Parcel 36-09-26-0000-0120-0000 | Putnam County, FL | Scheduled |
| Parcel 004512-0000 | Duval County, FL | Rescheduled |
| 1 sale | ||
| 1215 E Cypress St | Lee County, FL | Scheduled |
Rows group under their sale date, so a date is printed once per day rather than once per row. The day header carries the urgency for everything beneath it. Locked values render as •••• — deliberately withheld, not a failed load.
Plain table
| Stage | When | Cap |
|---|---|---|
| Collect | Daily, 00:00 ET | 3 days |
| Load | Daily, 09:20 UTC | — |
| Merge and count | After each load | — |
Key answer
Bergen County, New Jersey has 102 upcoming sheriff sales, of which 41 are in the next 30 days.
One per page, written as a self-contained sentence that restates its subject, so a line lifted out by an answer engine still reads as a fact.
FAQ
Because the answers have to be in the HTML whether the disclosure is open or shut. A JavaScript accordion keeps them out of the initial response, which means neither a crawler nor an answer engine ever reads them — and the answers are the point of the section.
Empty state
Nothing scheduled in Baker County right now
Three sales recorded here have passed their date. A county's sales arrive in batches — it can be quiet for weeks and then list fifty properties.
Always the count and a route onward. Never a shrug.
“Bergen County has 102 upcoming sheriff sales” — not “comprehensive coverage of Bergen County”. Every claim on this site is checkable against the database, and most of them are checkable against the sheriff’s own list.
A blank field means the sheriff’s list was silent. Merged listings are counted and linked on the sale they were merged into. The methodology lists what we will never see. A data product that only describes its strengths is asking not to be believed.
Never “powerful platform”, “seamless”, or “AI-powered”. Nothing here is inferred, scored or estimated, and the methodology says exactly how a notice becomes a record.
Owners redeem and sales vanish. We are not the clerk, the tax collector, or a brokerage. Both facts appear on every page, in the footer, because someone acting on a stale date loses real money.