The existing review console at /research/changes can use the checked v3 site
presentation policy for layout and copy changes. Its imports, template code and protected
authority readers remain fixed. Decisions still come from the current public API.
The API source and site candidate must retain the same checked shell role,
including its complete browser bootstrap. Changing that role requires the coupled lane.
Presentation changes must preserve exact proposal identities and distinguish
saved work, review decisions, publication and mathematical resolution. Follow the
deployment runbook for the exact source and receipt gates.
This document defines the language and visual rules for TheoremDB. It should be used for the design lab, the Problems directory, statement pages, and later page rewrites. Product UI should read like a mathematical index: precise, compact, and calm.
The system takes its typographic restraint and lapis accent from Worldfall. Directory pages take their density and filtering structure from OpenAlex. Permanent identifiers and record pages follow the habits of the Stacks Project and OEIS. Contribution summaries use the compact visibility of MathOverflow.
Simplicity
Show a sentence, control or fact only when it helps the reader understand the object, make a decision or complete the page’s task. Omit filler and repeated instructions. Keep essential labels, status and errors visible. Put useful secondary explanation in keyboard- and touch-accessible disclosures or tooltips. Review the first screen and complete task flow, and remove anything whose usefulness cannot be stated concretely.
Problems is the single general browse and search destination. Legacy Search and Explore links preserve their query and continue to Problems. Research filters belong with the research archive. Do not add another primary Search destination.
Product principles
- Put the mathematical object first. A statement, proof, counterexample, or attempt should occupy more visual space than its metadata.
- Report the system’s knowledge precisely. Every state label should name the decision that has actually occurred.
- Keep ordering factual. Name the recorded field used to sort and show the underlying date, count, evidence grade, bounty, or Reputation amount.
- Use compact lists for collections. Reserve panels and mathematical display blocks for content that benefits from separation.
- Keep contribution and attribution visible beside the work. Reputation supports the record and never replaces it.
- Use plain product language. Metaphor belongs in editorial writing, outside controls, status messages, headings, and navigation.
Product voice
The voice is factual and direct. Headings should usually name a page, object, or operation. Explanatory copy should answer a concrete question about scope, evidence, provenance, or the next action.
Preferred patterns:
ProblemsClaimed checked, not independently verified12 attemptsUpdated 2 hours agoThis result has two independent reviews.Submit a counterexampleSearch statements, problems, people, or identifiers
Avoid motivational slogans, game imagery, and language that personifies the database. These words and phrases are prohibited in product UI:
- prospect, prospecting, prospector
- frontier
- swarm
- gold rush
- strike gold
- treasure
- quest
- adventure
- mathematics worth working on
- interesting theorem, interesting conjecture, and other unqualified uses of
interesting - probably proven
- recorded for the swarm
Technical API names may remain stable for compatibility. The interface presents the labels defined below. Documentation may show an API token in code while using the approved label in prose.
Information vocabulary
Use these nouns consistently.
| Term | Meaning | Usage rule |
|---|---|---|
| Statement | A canonical mathematical assertion in the database. | Use as the broad record type. |
| Conjecture | A declarative statement whose resolution is open or partial. | Use when the unproved status is relevant. |
| Theorem | A statement with an accepted informal proof or a formally verified proof. | Do not call every statement a theorem. |
| Problem | A request to prove, refute, construct, compute, classify, or explain something. | Use for work-oriented directory entries. |
| Research packet | The versioned collection of research records for one problem. | Identify the current published revision or a separately labeled submitted preview. Saved public research may still await inclusion in the packet. |
| Result | A proof, counterexample, partial result, obstruction, or reproduction submitted against a statement or problem. | Use as the parent category for resolution work. Display its evidence and the problem’s resolution separately. |
| Attempt | A recorded line of work, including a failed or inconclusive route. | Use in human-facing lists and actions. |
| Trace | The detailed event sequence, computation log, or agent transcript attached to an attempt. | Use for the inspectable technical record. |
| Negative result | A reviewed obstruction, failed method, or bounded finding that rules out a useful route. | Use only after the contribution meets the published review policy. |
| Formalization | A statement or proof expressed in a named formal system and pinned environment. | Always show the system and environment. |
| Evidence | A source, artifact, computation, review, or formal check supporting one exact assertion. | Show its scope and grade together. |
| Review | A recorded assessment by a named reviewer or checking service. | Show the reviewer role and date. |
| Publication | Making a particular record or revision publicly available under its applicable policy. | Name the object and its publication state. Show mathematical resolution and formal verification separately. |
| Submission | A new problem, conjecture, result, formalization, or revision awaiting a decision. | Use for the review queue. |
| Attribution | The people and agents credited on a record. | Agents appear as a byline under their owning account. |
| Credit | A durable receipt tying an account or agent to a contribution. | Use on contribution history and event detail. |
| Reputation | The account’s lifetime total from eligible events. | Capitalize as a product term. |
| Quota-eligible Reputation | Final Reputation from reviewed mathematical work that can raise bounded free write capacity. | Show it separately from Lifetime and Available Reputation. |
| Bounty | Reputation placed in escrow against published acceptance conditions. | Display the amount and conditions together. |
| Activity | Dated follows, attempts, results, and updates attached to a record. | Show the exact count or event. Never convert activity into a quality claim. |
Use Preview for the author’s inspection before saving or submitting. Reserve Review
for a recorded assessment and Submit for review for requesting one. Save research
creates public research records. Inclusion in the current research packet follows its
separate review and publication process.
Account and agent credit
The account is the primary public identity and receives Reputation. An agent can receive a visible byline and role credit beneath that account.
Approved byline:
@noether, with algebra-search-2
Approved credit event:
@noether received 40 Reputation. Agent: algebra-search-2. Reason: reproduced obstruction.
Avoid agent-only leaderboard rows unless the viewer explicitly selects the agent view.
Navigation
Primary header
Use this order and these exact labels:
Problems→/problemsCommunity→/communityConnect→/connect
The September 10 user correction restores Community as a primary destination (U10/U103). Community has shared secondary links: People & collections, Activity, and Research. The research and activity URLs stay permanent. The September 10 consistency correction (U103) applies the same header to the homepage and all other routes. The TheoremDB wordmark links home. The Problems link provides access to search. Compact headers keep an expandable primary menu. Sign in or the current account control keeps the same position and behavior across routes.
Page changes may update the active-route indicator and current account state. They must preserve navigation labels and order, search availability, type sizes, spacing, and responsive breakpoints. Each UI change compares the homepage, problem directory and problem page at matching viewport and account state. Include direct entry, in-site navigation, back/forward and cold/warm loads. Keep the homepage content below the header within its existing approved presentation.
Research has a query-first record search and an explicitly limited recent-contribution view. Activity shows public contributions grouped by contributor and UTC day. Connect leads to ChatGPT, MCP setup and API access. Community opens the member and collection directory and links to Activity and Research. These pages use the existing compact bordered-list treatment, current public profile photos with the shared default avatar fallback, and the same page spacing. Connect gives ChatGPT, Codex, Claude and API clients useful setup controls, reusing the specialist Agents page components. Existing specialist setup, account callbacks and permanent record URLs remain available.
See the public route map for the actual routes, aliases,
account views and data contracts. Submissions remains available at /prospecting
and through the existing account and review tools.
Account menu
Use this order:
ProfileSubmissionsReviewsBountiesAgentsSettingsSign out
Footer
Use these labels:
AboutHow it worksEvidence policyReputation policyAPI documentationMCP setupSystem statusContact
Page names and actions
Page names
| Route or function | Page title |
|---|---|
/ |
TheoremDB |
| Universal results | Search |
| Problem directory | Problems |
| Statement directory | Statements |
| One statement | Use the statement’s short title. |
| Contribution event list | Activity |
| Submission queue | Submissions |
| Formal work queue | Formalization |
| Bounty list | Bounties |
| Reputation ranking | Leaderboard |
| Account contribution history | Profile |
| Developer reference | API documentation |
Primary actions
Use a specific verb and object:
Submit a problemSubmit a conjectureAdd a resultAdd a proofAdd a counterexampleRecord an attemptAttach a traceRequest formalizationSubmit formalizationAdd evidenceReview resultRevise submissionFund a bountyClaim bountyOpen disputeFollow problemCopy identifierCite this record
Use Save draft and Submit for review as separate actions in multi-step forms. Use
Publish only when the current actor has authority to make a record public.
Secondary actions
View detailsView evidenceView historyCompare revisionsDownload traceCopy linkReport issueWithdraw submission
Avoid vague buttons such as Go, Start, Continue, Learn more, and Apply when a more
specific label fits.
State terminology
State badges must use the display labels below. API values can appear in developer tools and record metadata.
Publication and qualification
| API value | Display label | Supporting text |
|---|---|---|
draft |
Draft |
Visible to its authors. |
submitted |
Submitted |
Received and awaiting initial checks. |
prospecting |
Challenge period |
Public and open for work. Show the one-day acceptance deadline. |
pending |
Under review |
A decision has not been recorded. |
administrator_review |
Staff review required |
A person must resolve a flagged issue or judge disagreement. |
qualified |
Accepted to index |
The submission met the published qualification policy. |
published |
Published |
The record is publicly indexed. |
merged |
Merged |
The canonical record is linked beside this label. |
archived |
Archived |
Retained for history and excluded from current results by default. |
withdrawn |
Withdrawn |
Withdrawn by an authorized contributor. |
tombstoned |
Removed |
Public metadata follows the moderation policy. |
The submission confirmation leads with the permanent problem number and ID. It gives one
public problem link and one Work on this link that opens the research agent with the exact
problem reference already in its prompt. It also shows the 1 Reputation stake and its
one-day settlement deadline. A first-time submitter receives a 20 Reputation starter
grant before the stake enters escrow. Every accepted intake earns 1 Lifetime Reputation;
review rejection reverses that award.
Mathematical resolution
| API value | Display label | Meaning |
|---|---|---|
open |
Open |
No accepted proof or reproduced counterexample is recorded. |
partial |
Partial result |
Reviewed progress resolves part of the problem. |
proved_informally |
Informal proof accepted |
An informal proof passed independent review. |
proved_formally |
Formally verified |
A proof passed the pinned formal checker. |
refuted |
Refuted |
A counterexample met the reproduction threshold. |
disputed |
Disputed |
A material challenge is awaiting resolution. |
superseded |
Superseded |
A newer or corrected statement replaced this one. |
Probably proven is never a state label. Use Claimed checked, not independently verified
after the claimed proof passes the configured evidence review. The accepted states above
identify the completed check.
The problem directory shows mathematical resolution first. Use Solved for an accepted
complete answer and Refuted for an accepted refutation. A submitted complete answer uses
Solution submitted or Solution under review until resolution review accepts it. Lean
verification appears separately and never replaces the mathematical state. An attached
formalization alone establishes no signed verification and does not imply a queued checker.
Directory status filters are disjoint: Open includes open and reopened problems,
Awaiting review includes submitted solutions and resolutions under review, and Solved
includes accepted resolutions and refutations. All includes every eligible record.
Result review
| API value | Display label |
|---|---|
accept |
Accepted |
reject |
Rejected |
needs_review |
Additional review required |
dispute |
Disputed |
Evidence grade
| API value | Display label |
|---|---|
self_reported |
Self-reported |
sourced |
Sourced |
executable |
Executable |
computational |
Computational evidence |
reproduced |
Reproduced |
independently_reviewed |
Independently reviewed |
formally_verified |
Formally verified |
independently_checked_formal |
Formal proof independently checked |
invalidated |
Invalidated |
Evidence badges need an accessible label with the category included, such as
Evidence: Reproduced. State and evidence are separate fields even when their visible
labels happen to match.
The public Records table uses Record, Kind, and Assessment. Short explanations belong
in keyboard-accessible help controls beside those headings. A selected proof awaiting
independent verification shows Claimed checked, not independently verified. Detail views
keep the current Lean verification tag beside that proof state. not Lean-verified uses the
warning color.
Attempt outcome
Use these labels for recorded work:
SucceededPartialFailedBlockedTimed outInconclusive
A failed attempt can later acquire the separate label Reviewed negative result. Preserve
both facts in its history.
Bounty state
Use these labels:
OpenClaim submittedUnder reviewAward approvedAwardedHeld for reviewDisputedRejectedExpiredRefundedReopened
Copy replacements
| Replace | With |
|---|---|
Prospecting |
Submissions |
Prospecting feed |
Submission queue |
New conjectures under review |
Conjecture submissions |
Open a prospect |
Submit a problem |
Top prospects |
Recently updated or Active bounties, according to context |
Live frontier |
Recent results |
Discovery frontier |
Problem directory or Recent activity, according to context |
Underexplored |
Low activity |
Advancing |
Recent progress |
Resistance ranking |
Name the recorded fact, such as 3 reproduced obstructions |
Find mathematics worth working on |
Problems |
Loading prospects |
Loading submissions |
Recorded for the swarm |
Result saved |
Put open problems in reach of the swarm |
Share problems, evidence, and results |
| Composite problem score | Remove it; order by Recently updated, Highest bounty, Reputation, or a named activity count |
Interesting theorem |
Name the recorded fact, such as widely cited, recently updated, or has an active bounty |
Probably proven |
Claimed checked, not independently verified, Informal proof accepted, or Formally verified |
Before and after examples
Before:
Find mathematics worth working on. Browse the live frontier and open a prospect for the swarm.
After:
Problems
Browse open problems by field, status, evidence, bounty, and recent activity.
Before:
This prospect is advancing quickly and may be the next big discovery.
After:
Three reviewed results were added this week. The latest is a reproduced partial result.
Before:
An interesting negative trace from an agent.
After:
Reviewed negative result. This computation rules out the proposed recurrence for
n <= 10,000.
Before:
Probably proven
After, while awaiting review:
Claimed checked, not independently verified
After, following independent acceptance:
Informal proof accepted
Visual foundation
The interface uses a white ground, near-black text, thin neutral rules, and one lapis accent. Mathematical notation and record content carry the visual attention. Decoration stays quiet.
Color tokens
Use semantic token names in components. Hex values are the light-theme starting point.
| Token | Value | Use |
|---|---|---|
--background |
#ffffff |
Page background |
--surface |
#fbfbf9 |
Raised controls, selected rows, and quiet panels |
--surface-muted |
#f4f4f1 |
Table headings, code gutters, and grouped metadata |
--text |
#111111 |
Primary text and mathematical statements |
--text-secondary |
#4f4f49 |
Explanations and secondary metadata |
--text-muted |
#6f6f66 |
Timestamps and low-priority labels |
--border |
#deded8 |
Rules, control borders, and row boundaries |
--border-strong |
#b9b9b0 |
Active separators and drag handles |
--accent |
#24406e |
Links, primary actions, active controls, and focus |
--accent-hover |
#182f55 |
Hover and pressed accent |
--accent-soft |
#f1f4f8 |
Selected facets and informational status fills |
--success |
#276244 |
Accepted, reproduced, and verified indicators |
--success-soft |
#edf6f0 |
Success badge fill |
--warning |
#805800 |
Review holds and unresolved warnings |
--warning-soft |
#fff6df |
Warning badge fill |
--danger |
#8e2f24 |
Rejected, invalidated, and destructive actions |
--danger-soft |
#faeeee |
Danger badge fill |
--code-background |
#151719 |
Formal code and trace viewer background |
--code-text |
#edf0f2 |
Formal code and trace viewer text |
Rules:
- Lapis is the only general-purpose accent.
- Green, amber, and red communicate defined states. They do not decorate headings or rankings.
- A status always includes text. Color cannot carry the distinction by itself.
- Numeric activity and Reputation values use neutral text. Large values do not receive success green.
- Avoid gradients, glass effects, grain, illustrations, and background textures in the application interface.
- Dark mode can follow after the light interface passes contrast and math-rendering review.
Typography
Use the same family pairing as Worldfall, adjusted for a denser database.
| Role | Family | Weight | Typical size |
|---|---|---|---|
| UI, navigation, controls | Inter Variable |
400, 500, 600 | 13 to 15px |
| Page and section headings | Inter Variable |
500, 600 | 18 to 32px |
| Theorem statements and mathematical prose | Source Serif 4 |
400, 600 | 17 to 22px |
| Identifiers, formal code, numeric columns | System monospace | 400, 500 | 11 to 13px |
| Rendered mathematics | KaTeX fonts | Default | Match surrounding serif size |
Typography rules:
- Set application body text at 14px with a 1.45 line height on desktop.
- Set long prose at 16px with a 1.65 line height and a maximum measure of 68 characters.
- Set theorem statements at 19px with a 1.55 line height.
- Use sentence case for headings, buttons, tabs, badges, and table columns.
- Use tabular numerals in Reputation, count, bounty, and date columns.
- Keep letter spacing near normal. Uppercase is reserved for short identifiers and may use
0.04emspacing. - Use monospace for permanent identifiers, hashes, formal environments, and source code. Dates and ordinary prose remain in the UI face.
- Page titles should usually fit on one line and stay below 36px on large screens.
Spacing
Use a 4px base unit with this scale:
2, 4, 8, 12, 16, 24, 32, 48, 64
Application defaults:
- Header height: 52px
- Control height: 32px compact, 36px standard
- Table header height: 36px
- Directory row vertical padding: 10px
- Inline gap: 8px
- Section gap: 24px
- Page gutter: 24px desktop, 16px tablet, 12px mobile
- Main content maximum width: 1440px
Large 48px and 64px gaps belong on the public home page and documentation. Directory and record pages should use the 8px to 32px range.
Radius and shadow
- Page sections and tables: 0px radius
- Inputs, buttons, badges, and small panels: 3px radius
- Dialogs and popovers: 4px radius
- Pills: only segmented controls, removable filters, and identity chips
- Cards: one border and no shadow
- Menus and popovers:
0 8px 24px rgb(17 17 17 / 0.12) - Dialogs:
0 16px 48px rgb(17 17 17 / 0.18)
Do not use shadows to separate ordinary rows, tables, page sections, or status badges.
Icons and motion
Use Lucide icons at 14px or 16px with a 1.75px stroke. Every unfamiliar icon needs a text label or tooltip. Reserve icon-only controls for standard actions such as search, close, copy, and overflow menus.
Transitions should last 100 to 160ms and affect color, border, or opacity. Keep layout
stable during loading. Honor prefers-reduced-motion and remove nonessential transitions.
Application layout
Global shell
The desktop shell contains:
- A 52px header with wordmark, search, primary navigation, and account control.
- A full-width content area capped at 1440px.
- An optional 224px to 248px facet column on directory pages.
- A main results or record column.
- An optional 272px to 320px detail rail on statement pages.
Use one continuous page surface. Borders and spacing define regions. Avoid stacking several rounded cards inside a larger rounded card.
Directory header
A directory begins with one compact row:
- Page title and result count
- Search field
- Primary submit action
The next row holds active filters, sort, density control, and view options. A short scope sentence may appear beneath the title when the page needs it. Keep that sentence under 120 characters.
Facets
Facet groups use text labels, counts, and checkboxes. Default groups:
- Field
- Status
- Evidence
- Result type
- Bounty
- Formal system
- Updated
Show the first six options in a long group. A field taxonomy with many topics uses a
searchable picker with bounded pages so every option remains reachable without expanding
hundreds of controls into the directory. Selected facets appear above results as removable
filters. Clear all appears once when at least two filters are active.
Problems data list
Use a bordered list or semantic table. Promotional card grids are unsuitable for the main directory.
Desktop columns
Problem, flexible with a 420px minimumField, 140pxStatus, 150pxLatest contribution, 320px minimum
The first line of the Problem cell contains the title or concise statement. A second line may contain up to two tags and one factual activity summary. Limit it to one line.
Latest contribution names the contribution type, account, optional agent, and recorded date. When a problem has no later contribution, show its original submission with the same account and date treatment.
Example:
Problem Field Status Latest contribution
Fibonacci-sum determinant Combinatorics Open Claim by @noether, with algebra-search-2 · 2h
Kirby problem 4.71 Topology Open Submitted by @admin · 1d
Ordering
Default ordering is Recently updated. When a text query exists, default ordering becomes
Relevance.
Approved sort labels:
RelevanceRecently updatedHighest bountyMost attemptedMost followedHighest ReputationEvidence grade
The sort control names the stored field. Rows show the corresponding count, amount, or evidence grade directly. Latest contribution includes the date of that work, or the original submission date when no later work is recorded.
Row interaction
- The title and identifier link to the record.
- The row receives a subtle
--accent-softbackground on hover and keyboard focus within. - Clicking blank row space may open the record if selection controls are absent.
- Counts link to their corresponding tab on the record page.
- The overflow menu contains secondary actions.
- Preserve the current filters and scroll position when the user returns to the directory.
Empty, loading, and error states
Loading:
Loading problems…
No matches:
No problems match these filters.
Suggested action:
Clear filters
Request error:
Problems could not be loaded. Try again.
Use skeleton rows with fixed column widths when loading takes longer than 300ms. Keep the table header and active filters visible.
Statement page anatomy
The statement page is the canonical mathematical record. Use this order.
Every public problem requires a self-contained textbook-style statement. State the objects, hypotheses, quantifiers, and target in full sentences. Put mathematical notation inside KaTeX-supported LaTeX delimiters. Titles, summaries, research directions, source snippets, and formal-language declarations cannot substitute for this statement. Records without a conforming statement remain in prospecting or quarantine and do not appear in public problem directories or statement pages.
Formal declarations remain attached as exact companion artifacts. Imported formal-only records enter prospecting. A source-backed editorial restatement may make one public when it passes the same statement rule and its stored formal-source hash still matches.
Record header
- Breadcrumb with field and collection
- Permanent public accession with
Copy identifier:P<number>for problems,R<number>for research records, andS<number>for statement families - Short title
- Resolution badge and evidence badge
- Attribution, source, license, and first publication date
- Actions:
Add a result,Record an attempt,Follow, and overflow menu
Research record pages accept their R accession, stable slug, or content hash. Show the
short accession first. Keep the slug and content hash in Provenance. A record with replay
material opens with a derived reproduction manifest that distinguishes complete, runnable,
partial, source-only, and unavailable records. The manifest names missing replay fields and
does not alter the immutable packet object. Provide a bounded copyable agent packet with the
record accession, evidence boundary, reproduction manifest, and relation pointers.
Statement block
Display the exact statement in Source Serif 4 with KaTeX for mathematics. Put assumptions, quantifiers, and scope in the same bordered block. Aliases and an informal explanation can follow in separate labeled sections.
Every statement block includes:
- Canonical text
- Revision number
- Last reviewed date
- Source or provenance
Cite this record
Problem sections
Problem pages, their print views, and their Markdown exports follow the section ownership in Problem display standard. Use this exact order:
The problemStatuswhile open or awaiting review, orResolutionwhen resolvedResearch packetLean verificationReferences
The problem contains the complete statement and neutral setup. Status or Resolution presents its selected supporting record and the separate Lean verification label. Research packet contains the complete research records, including attempts, partial results and dependencies, and links to their history. Lean verification owns formal source and verification evidence. References contains the union bibliography. Counts may accompany a section label.
Keep the Lean verification tab visible and disabled for an open problem with no formal work. Resolved and review-pending packets keep it enabled. Markdown omits that section only when the corresponding HTML tab is disabled. Preserve existing section anchors and permanent record links when updating the labels.
Right rail
The optional desktop rail contains compact definition lists:
- Resolution
- Evidence
- Active bounty
- Activity counts
- Recent verified progress
- Reputation earned
- Field and tags
- Formal systems
- Created and updated dates
- Policy versions
Every count or amount links to its underlying records or events. The rail becomes inline sections below the record header on small screens.
History
Render state changes as a chronological table with Date, Event, Actor, Evidence, and
Policy. Show the exact prior and new state in event detail. Do not turn routine events into
celebratory announcements.
Component inventory
Current pages use the installed Astro stack and existing components. A migration to React, shadcn/ui, Radix, TanStack Table, or React Flow requires its own approved implementation plan. KaTeX and the current icon system remain available where already installed.
The inventory below names the intended component boundaries for the design-system pass.
Foundation components
AppShellSiteHeaderPrimaryNavAccountMenuGlobalSearchPageHeaderSectionHeaderDividerStackInline
Data display
DataTableDirectoryRowDefinitionListIdentifierMathStatementMathInlineStatusBadgeEvidenceBadgeAttributionLineReputationValueBountyValueActivityValueTagEventTableTraceViewerFormalCodeBlockDependencyGraph
Filtering and navigation
SearchInputFacetPanelFacetGroupActiveFilterSortSelectDensityControlTabsBreadcrumbsPaginationCommandMenu
Actions and feedback
ButtonIconButtonDropdownMenuDialogDrawerTooltipToastInlineNoticeConfirmActionEmptyStateErrorStateSkeletonRow
Forms
FieldTextInputTextAreaSelectComboboxCheckboxRadioGroupDateInputMathEditorSourceFieldsetEvidenceFieldsetFormActions
Each component should have one documented compact density. Directory pages use compact density by default. Submission forms use standard density.
Accessibility
Target WCAG 2.2 AA.
- All operations must be available by keyboard.
- Use a visible 2px
--accentfocus ring with a 2px offset. - Keep focus order aligned with reading order.
- Desktop compact controls have a 32px visual height. Their pointer target is at least 32px. Touch layouts use a 44px minimum target.
- Text and essential icons meet 4.5:1 contrast. Large text and non-text controls meet the applicable AA threshold.
- Status, evidence, and ranking distinctions use text. Icons and color provide redundant cues.
- Render mathematics with KaTeX MathML output. Supply readable text or source for copied expressions.
- Use semantic tables for comparable records. Associate sortable column buttons with their header cells and announce sort direction.
- Facet counts are supplementary. The label remains understandable without the number.
- Announce changed result counts through a polite live region after filtering.
- Move focus to the dialog title when a dialog opens. A search picker focuses its labelled search input so typing filters immediately. Return focus to the trigger on close.
- Give validation errors a summary and an inline message tied to the field.
- Preserve zoom up to 200 percent without clipping record content.
- Avoid conveying proof validity through icons such as a checkmark alone.
- Honor reduced motion, increased contrast, and forced-colors settings.
- Use ISO-style full dates in accessible text. A visible relative date can read
2h, withContributed July 22, 2026 at 14:05 UTCavailable to assistive technology and on hover.
Responsive behavior
Wide desktop, 1200px and above
- Show the complete primary navigation and global search.
- Directory pages use facets plus the result table.
- Statement pages may use the right rail.
- Keep numeric columns visible.
Desktop and tablet, 768px to 1199px
- Collapse facets into a
Filtersdrawer with an active-filter count. - Keep title, status, and latest contribution columns.
- Move evidence and field into the second line of the Problem cell.
- Place the statement right rail below the statement block as a two-column definition list.
Mobile, below 768px
- Use a compact wordmark, search button, and menu button in the header.
- Show primary navigation in a drawer.
- Place search, filters, and sort in a sticky control row beneath the page title.
- Render each directory record as a bordered row with title, identifier, status, evidence, and one line of counts. Use one continuous list rather than floating cards.
- Show the primary record action first. Put secondary actions in an overflow menu.
- Allow formal code and comparison tables to scroll horizontally inside their own region.
- Keep mathematical prose within the viewport and allow long formulas to scroll.
- Keep approved statement-page figures near their reviewed 220px card size on phones, aligned with the prose. Retain complete captions and full-size viewing.
- Use 44px touch targets and 16px form text to avoid browser zoom on focus.
Very narrow screens, below 390px
- Hide nonessential counts before truncating the title.
- Wrap badges onto a second line.
- Show permanent identifiers in shortened form with the full value available through copy and accessible text.
Content and component rules
Badges
Badges report one state or category. Use a quiet fill, one-pixel border, and sentence-case text. Limit a directory row to two status badges. Put other attributes in metadata or tags.
Tables and cards
Tables and bordered lists are the default for collections of mathematical records. Use a card when an item needs its own action group, chart, or long preview. Avoid a page made from several unrelated card sizes.
Explanatory text
Place policy explanations in tooltips, disclosures, or dedicated policy pages. A directory header needs explanatory text only when its title and controls leave the scope unclear. Avoid repeating the same policy disclaimer beneath every control.
Reputation display
Show Reputation as a number with its reason and event link. Use formats such as:
1,240 Reputation+40 · reproduced resultBounty: 240 Reputation
Do not animate totals, use coins, add streaks, or use podium imagery. The leaderboard is a compact ranking table with contribution categories and a link to each account’s public event history.
When write capacity is shown, display the used amount, effective free limit, trust-tier base,
earned bonus, and absolute cap together. Label the Reputation input as quota-eligible.
Agent registration is uncapped. Problem submissions and reviewer authority are tier-only and
receive no Reputation bonus. A daily snapshot is a policy receipt, so the interface may
explain when it was recorded and must provide no edit control.
Ordering display
Keep the active sort visible in the directory control. Show its stored date, count, evidence grade, bounty, or Reputation amount in the row. Do not add a composite estimate of mathematical value or required effort.
System messages
Use past tense for completed operations and present tense for current states:
Submission received.Result saved.Review submitted.Bounty funded.This proof is awaiting independent review.The verification service is unavailable. Your draft is saved.
Avoid exclamation marks in routine system messages.
Copy checklist
Before merging interface copy, check every item:
- Does the page title name the object or operation?
- Does each button state its action and object?
- Does each status label correspond to a recorded state transition?
- Does proof language identify the completed level of review?
- Are evidence grade and mathematical resolution shown as separate facts?
- Does directory ordering use a named recorded field?
- Are activity counts kept separate from qualification and evidence?
- Does a Reputation amount include the event or reason that produced it?
- Is agent credit attached to its owning account?
- Are scope, assumptions, provenance, and formal environment visible where relevant?
- Have prospecting, frontier, swarm, gold-rush language, and motivational slogans been removed?
- Can any introductory sentence be replaced by a useful count, state, date, or action?
- Are empty, loading, success, and error messages literal and short?
- Does the copy remain accurate if the ranking or state changes tomorrow?
- Can a first-time reader distinguish a problem, conjecture, theorem, result, attempt, and trace?
- Are acronyms expanded on first use outside specialist pages?
- Is sentence case used throughout?
- Are exclamation marks absent from routine product messages?
- Does the page make sense without color, animation, or icons?
First implementation sequence
- Build
/design-labwith tokens and every state, evidence grade, action, form control, row density, mathematical block, and feedback state in this document. - Apply the system to
Problemsas the reference directory page. - Apply it to the statement record as the reference detail page.
- Review desktop widths of 1440px and 1024px, then mobile widths of 390px and 320px.
- Rewrite the header and navigation after the two reference pages establish the shared components.
- Apply approved components and vocabulary to Activity, Formalization, Leaderboard, Submissions, Account, and API documentation.
- Rewrite the home page after the application vocabulary and densities have settled.
The design lab is the visual acceptance surface. A component enters application pages once its default, hover, focus, disabled, loading, error, and narrow-screen states have been reviewed.