Molecules

Level 2: a component that holds atoms, or its own named parts, and nothing else. Fourteen of them stand on the five anchor screens; the three that do not were walked on their own screens on 2026-08-08 and are here too. Each is the markup the screens ship, painted by components/index.css, in Vault and Daylight side by side, with what it holds, its rule and its anti-rule.

17 measured 0 unmeasured 17 pages 2 themes 0 generators

What a molecule is, and how the level was decided

A level is one plus the highest level of what a component contains, and that arithmetic has a blind spot: a component built entirely out of its own class names reads as containing nothing and answers 1. So each level below is declared with a reason, in docs/inventory.md, and this page shows the declaration next to the thing it is about. HOLDS names what is inside, poinwise, even where the arithmetic could not see it.

Two of the fourteen were filed as atoms and are not. The trust strip holds three items, each a mark and a line; the market block holds a question, a rule and a source. Both are made of their own names, which is exactly the case the declaration exists for.

Every specimen stands inside body.app-case, and it has to. A large part of this system is scoped to that class, and the consolidation found the cost: 28 amount chips sit in a dialog outside it and would render as raw User Agent buttons if that dialog opened. It is the dependency the system requires and never declares.

trustbar

Three claims, each a mark, a bold line and a quiet one. It is the block the whole product's second principle rests on: trust is stated, not implied, so every line here is a fact a person can go and check rather than a reassurance.

Vault, darkDaylight, light

Rule. Every claim is checkable and says how. Anti-rule. Never a borrowed authority: no "as seen in", no logo wall, no number without a way to verify it. A trust strip that has to be believed is an advert.

market

How the odds are set, opened rather than explained away. A disclosure, five stats and a depth table, and every figure in it is mono because mono is the promise that the number is exact.

Vault, darkDaylight, light
How the odds are set
Yes price38%
No price62%
24h+2 pts
Volume$84,200
What 38% meansA YES share costs 38 cents and pays $1 if the event happens. $5.00 buys 13.16 shares, so YES returns $13.16 and NO returns nothing. The price is locked when you confirm, so it cannot move against you between the panel and the bet. Your own bet moves the price, so the panel quotes the amount in the box and locks THAT number, not this one.
How the odds are set
Yes price38%
No price62%
24h+2 pts
Volume$84,200
What 38% meansA YES share costs 38 cents and pays $1 if the event happens. $5.00 buys 13.16 shares, so YES returns $13.16 and NO returns nothing. The price is locked when you confirm, so it cannot move against you between the panel and the bet. Your own bet moves the price, so the panel quotes the amount in the box and locks THAT number, not this one.

Rule. The bar widths are a datum, so they are on the element, which is one of the three things the system allows there. Anti-rule. The depth table never hides the worse price. A market that shows only the small bet's rate is telling half of what it knows.

catnav

The category band. It used to draw its own chips in a second file; now every chip in it is a .chip, which is why it loads after the chip in index.css. A band may restyle the chips standing in it; a chip may not quietly restyle every band.

Rule. Current is the ancestor's aria-current="page", never a class on the chip: the state belongs to the position in the list, not to the control. Anti-rule. The band never scrolls a category out of reach without a visible edge. A rail that hides its own overflow is a rail that loses a category.

bottomnav

Mobile only, four slots, and the fourth carries a number. The arithmetic put this at a cycle with navitem: 164 readings against 34, and the 34 are elements wearing both classes. The bar holds the slot.

Vault, darkDaylight, light

not rendered from 640px up, exactly as on a screen: this bar is mobile only

not rendered from 640px up, exactly as on a screen: this bar is mobile only

Rule. Four slots, never five: the fifth is what turns a bar into a menu. Anti-rule. The balance is never the first slot. Principle three of this product is that engagement is about events and not about money, and a bar that opens on a balance says the opposite before a word is read.

quick

Four amounts and one of them is chosen. The row exists so a person never has to type to place a small bet, which is the difference between a product for traders and a product for people.

Vault, darkDaylight, light

Rule. One amount is always preselected, and it is not the largest. Anti-rule. Never an amount a person has not got. A quick row that offers $100 to a $12 balance is an error message wearing a chip.

This is the component the consolidation found sitting outside its own scope. chip.css writes .app-case .chip-amount, and 28 of the 40 amount chips in the product are inside a dialog that is not in .app-case. All 28 are in closed dialogs so none renders today. The day one opens, they are raw User Agent buttons.

options

A multi-outcome market: one row per candidate, each with its own price and its own pair. None of these is a YES or a NO of the market, which is why the row's colour is neutral until a side is picked.

Vault, darkDaylight, light
JD Vance selected41%
Donald Trump22%
Nikki Haley8%
JD Vance selected41%
Donald Trump22%
Nikki Haley8%

Rule. Every option carries a full pair, because betting against a candidate is a position and not an absence of one. Anti-rule. The list never sorts itself while a person is reading it. A row that moves under a pointer takes a bet nobody placed.

position

One bet, as a row: the question, the side, four figures and a status. It is a row in a list and not a shell, which is why it left the organism group. The arithmetic cycled it with the detail screen at 54 readings to 2; the screen holds the row.

Vault, darkDaylight, light
Will the US government shut down before March 1, 2027?YES
Stake$5.00Avg price38%Price now38%Potential payout$13.16
Open · just placed
Will the US government shut down before March 1, 2027?YES
Stake$5.00Avg price38%Price now38%Potential payout$13.16
Open · just placed

Loading, the same row as a skeleton

Vault, darkDaylight, light

Rule. The price paid and the price now are always both shown, and the payout beside them. One without the other is either a boast or a threat. Anti-rule. Never a green or a red on an open position. Those two colours mean the market resolved, and a position that is merely up is not a position that won.

notice

Everything the product says to a person in place, rather than in a toast or a dialog. Six shapes and one file, and they are one component because they answer one question: what is true right now that you did not ask about.

.inline-errora failure attached to the thing that failed
Vault, darkDaylight, light
.push-bannera permission the product has not got, and it holds two buttons
Vault, darkDaylight, light
Enable notifications to get live updates on the events you follow.
Enable notifications to get live updates on the events you follow.
.reconcile-boxthe price moved between deciding and confirming
Vault, darkDaylight, light
The price moved while you signed inWas 38%  ->  Now 41%. Payout $13.16  ->  $12.20 for $5.
The price moved while you signed inWas 38%  ->  Now 41%. Payout $13.16  ->  $12.20 for $5.
.protecta standing fact, quiet on purpose .quiet-boxwaiting, with a duration .widget-boxa third party has not loaded
Vault, darkDaylight, light

Your USDC is held 1:1 - we do not lend or invest your funds.

Payment under review
This usually takes under 5 minutes. We will notify you when your funds are ready.
The payment widget loads here (card to USDC)

Your USDC is held 1:1 - we do not lend or invest your funds.

Payment under review
This usually takes under 5 minutes. We will notify you when your funds are ready.
The payment widget loads here (card to USDC)

Rule. A notice says what happened, what it cost and what to do next, in that order, and "no funds were taken" comes before the advice. Anti-rule. Never red on an inline error. Red is the NO outcome in this product, and an error that borrows it says the market resolved against you.

state-block

The empty and the error, which are two situations and one block. A mark, a title, a sentence that explains rather than apologises, and one or two ways out.

Vault, darkDaylight, light

No events match your filters

There are no events for this category and filters right now. Clear the filters, or get notified when a new event shows up here.

No events match your filters

There are no events for this category and filters right now. Clear the filters, or get notified when a new event shows up here.

Rule. An empty always offers a way out of the emptiness, and the first button undoes whatever caused it. Anti-rule. Never an empty with no action. A screen that says "nothing here" and stops has handed the problem back.

The backlog holds an open item against this component: the error state and the empty state are not visually differentiated, so two different situations read as one block. It is carried, not fixed, because deciding how loud an error should be is a voice question as much as a visual one.

filters

A disclosure, a panel and a list of options. The option is the census's sharpest finding: 304 readings of a bare <label> at 33px with a 10px radius and 8px of padding, which is a chip by every value the browser reports and is not in chip.css.

Vault, darkDaylight, light

Rule. A filter shows how many results it will leave before it is applied, or it is a guess. Anti-rule. Never a filter that clears itself on navigation. A person who set three filters and came back to none will set none again.

Open, and named rather than taken: adopting .chip on the option moves the padding from 8/8 to 8/12 and the height from 33 to 38 on 304 readings. That is a consolidation decision with a measured cost, and the cost is why it is written down instead of swept.

comments

The count, the sort and the compose row. The sort is three .chip-rail chips, which is the same control the chart's range uses, because sorting a list and ranging a chart are the same job.

Vault, darkDaylight, light
128 comments
128 comments

Rule. "Bettors" is a sort and not a badge: whether someone has a position is a fact about the comment, and it belongs where a person can sort by it. Anti-rule. Never a comment count that includes deleted ones. A number beside a list has to be the length of the list.

seo-plate

The reading column at the foot of a category feed: what the category is, and the questions a person new to it actually asks. It is the one place in the product with a measure, because it is the one place a person reads rather than scans.

Vault, darkDaylight, light

About Crypto events

Follow crypto events and back your opinion with a real stake. These events cover token prices, launches, network upgrades, and protocol milestones. You see the odds in plain language and how each event resolves before you bet, from one dollar, with no wallet to start.

Common questions

Do I need crypto to start?
No. You can browse events and build a bet with no wallet. You add funds by card or crypto only when you confirm.

About Crypto events

Follow crypto events and back your opinion with a real stake. These events cover token prices, launches, network upgrades, and protocol milestones. You see the odds in plain language and how each event resolves before you bet, from one dollar, with no wallet to start.

Common questions

Do I need crypto to start?
No. You can browse events and build a bet with no wallet. You add funds by card or crypto only when you confirm.

Rule. Every sentence here is true for a person who has never bet, and the questions are the ones support actually receives. Anti-rule. Never keyword prose. A plate written for a crawler is read by a person first and costs the trust the strip above it just bought.

loadmore

What is left of the component is the centred row at the foot of a feed. Its control used to be a category chip drawn in a second file; now the control is a .chip and this file places it. One use, and it is kept because a feed without an end is a feed a person cannot leave.

Vault, darkDaylight, light

Rule. A button, never an infinite scroll: a person has to be able to reach the footer. Anti-rule. Never a page number. The feed has no stable order, so page two is not the same page two a minute later.

The three that were not here, walked on 2026-08-08, and one of them did not survive the walk

account, cookie-consent and toc stand on no screen in the five anchor families, so this shelf carried them as unmeasured rather than guessing a level: nobody had read them on a rendered page. They were walked on the six screens that do carry them, and each one's containment was read from the DOM rather than from the class names. All three held something, and all three were level 2.

account was deleted later the same day, and the walk is what deleted it. Its whole stylesheet was two rules and both were one thing: the action bar's stone, and the three declarations .flat took the stone away with. Reading it on the screens is what showed that the stone stood once of three placements, and that the shape of it, a top border and two top corners, is a surface for a bar that FLOATS over content scrolling under it. Nothing in the product docks. So the face went, the file emptied, and the bar is one thing again: the action-bar pattern, with its page at action bar. A component with no face left is not a component with a small stylesheet, it is a name. Backlog 63.

The two that stayed follow. The level 3 organisms are on their own page: header, footer, dialog, hiw, betpanel, tabs, bets-table, card, hero, chart, feed, event-detail and profile.

toc

A document's own contents, beside it. Same geometry as the category rail and the opposite job: that one navigates BETWEEN pages with buttons, this one navigates INSIDE one page and its rows must be anchors, because a contents built out of buttons is not crawlable.

Rule. A rail declares its own width and its own sticky, and the shell declares only that there are two columns, so a third rail can arrive without either file learning about it. Anti-rule. Never pin a rail without capping it to the window: at 601px tall and pinned, three of its fourteen rows were off the bottom of a 768px laptop and stayed there.