Emergency fund
$9,400 of $12,000. At $350 a month you reach it in July.
Every seenry-ui component and every contract class, in Paper’s character, in each state it can be in. Hover, focus and pressed states are drawn so you can compare them side by side; the live controls work too. Copy the markup from the source; the rules and the reasons are in SYSTEM.md.
Warm page, white cards, one deep green. Every value on this page is a token in tokens.css; switch the theme to see the warm charcoal dark set.
Surfaces separate by tone, never by shadow. Green means “do this” or “you are here”.
--bg--surface--surface-2--hover--line--line-strong--text--text-2--text-3--accent--accent-subtle--ok--warn--bad--info--chart-2--chart-3--chart-4Serif for the page title, figures and dialog titles only. Inter for everything you read or click.
--type-figure$128.40--type-titleOctober--type-stat$4,716--type-headingSpending by category--type-body$1,284 left to spend with 4 days to go.--type-labelAdd transaction--type-smallOct 27 · Suggested: GroceriesOne filled green button per view. Secondary is a white button with a warm line; ghost is for toolbars; danger is outlined until it is the only choice.
ui-buttondata-size · data-iconIcon-only buttons always carry an aria-label.
A visible label above every field, help or error text below it. Fields are 40px tall, 44px on phones.
ui-field · ui-inputui-select · ui-textarea · ui-comboboxui-sliderA range input with its value beside it. The filled part of the track follows --fill.
Checkboxes for independent choices, radios for one of several, switches for settings that apply immediately.
ui-choiceui-radio-groupui-switchSegmented controls switch a view, tabs switch panels at the same level, chips filter a list.
ui-segmentedui-tabsui-chiparia-pressed carries the state; a count can sit in small.
Menus, tooltips, dialogs, sheets, toasts and the command menu are the only things that float, so they are the only things with a shadow. Open them live, or read the open states drawn in place below.
$128.40 to PG&E from SchoolsFirst checking.
Status always has a word. Alerts say one sentence and offer at most one action. Progress is for work; a meter is usage against a limit.
ui-alertStatements from PG&E usually arrive on the 30th.
All caught up. Every October transaction has a category.
Your Visa ending 2291 expires before the January renewal.
SchoolsFirst stopped syncing on Oct 26. Sign in again to reconnect.
ui-status · ui-badgeui-progress · ui-meterui-skeleton · ui-emptyHearth finds them in your transactions after the first month, or add one now.
Big numbers in the serif, everything else in Inter with tabular figures. Money is signed: −$142.38 out, +$3,412.50 in.
ui-stat-stripui-table-wrap · ui-tableSort by a header, search, filter and page; the table hook in seenry-ui.js does the work.
| Date | Merchant | Category | Amount |
|---|---|---|---|
| Oct 28 | Whole Foods Market | Groceries | −$142.38 |
| Oct 28 | Blue Bottle Coffee | Dining out | −$11.50 |
| Oct 27 | Lumen Health payroll | Income | +$3,412.50 |
| Oct 27 | Trader Joe’s | Groceries | −$64.18 |
| Oct 25 | Tartine Bakery | Dining out | −$36.75 |
| Oct 21 | Whole Foods Market | Groceries | −$118.90 |
ui-list · ui-list-item · ui-list-metaA ui-list-meta placed directly in the list is a day heading.
ui-data-listui-detail · ui-detail-head · ui-detail-rowui-timeline · ui-timeline-itemWho, what, when. The mark carries the status; the sentence says it.
Hearth estimated November at $128.40
From last November’s bill and the June rate changeMaya paid $117.16 from SchoolsFirst checking
Daniel paid $115.02, one day late
No late fee was chargedMaya turned off autopay
Always the conventional form: a line for a trend, bars for amounts per period, meters for spending against a budget, one stacked bar for parts of a whole. No donuts, no gauges.
ui-chart · ui-chart-axisui-chart · ui-chart-legendui-chart-legendFive slices at most; fold the rest into “everything else”.
Cards, people, disclosure and code. Cards are white with a faint line and no shadow.
ui-cardThe second card is a link: the whole surface is one target.
$9,400 of $12,000. At $350 a month you reach it in July.
Four need a category, one needs splitting.
ui-avatar · ui-avatar-groupui-accordionui-code · ui-kbdA code block carries a copy button marked data-copy.
Set data-status="warn" on a meter to mark a budget that is close. Press ⌘ K to search, Esc to close.
<link rel="stylesheet" href="seenry-ui.css">
<link rel="stylesheet" href="systems/paper/tokens.css">
<link rel="stylesheet" href="systems/paper/system.css">Larger pieces the blocks are built from: the page header, a filter bar, settings rows, the danger zone and the sign-in frame.
ui-page-header · ui-page-title · ui-page-sub · ui-page-actions$1,284 left to spend with 4 days to go.
ui-filter-bar · ui-section · ui-section-headui-settings-group · ui-settings-row · ui-dangerRules Hearth uses each month.
Match it to payday.
These can’t be undone.
Removes budgets, notes and history.
ui-authThe full flow, with create account and the error state, is in blocks/sign-in.html.
Sign in to see where the household stands.
or with email