2 active filters · runtime:HBC · status:stable
Shared library · Behaviour over time
Interaction patterns define transitions between interface states.
This reference records how shared Hara interfaces move through search, mutation, loading, permission, failure, recovery, and responsive collapse. Application repositories retain their domain rules and authoritative state.
- 5
- end-to-end workflows
- 12
- data and degraded states
- 8
- identity / permission states
- 320px+
- responsive contract

02 · Forms and mutation
Never trade recoverability for speed.
Drafts distinguish editable, derived, and identity-controlled fields. Validation is both inline and summarized. Optimistic updates always expose rollback, destructive actions explain scope, and preview precedes publication.
The local state updates immediately while the durable request is pending.
The previous server state is restored. The reason and retry action stay adjacent.
Destructive confirmation · revoke release
Revoke std.work 0.8.4? Existing receipts remain in history. New installs will be blocked.
03 · Data and content states
Degraded truth is labelled, not polished away.
Every state names what is known, what is missing, whether the user can act, and how old the evidence is. Colour is supplementary; labels, icons, text, and action affordances carry the meaning.
Loading
Fetching package index
Keep the previous frame stable while new data resolves.Empty · first use
No saved views yet
Explain the first meaningful action instead of showing a blank panel.Empty · filtered
No results for runtime:hbc
Preserve the active query and offer a clear reset.Partial data
3 of 5 sources available
Name the missing sources and keep verified rows usable.Stale data
Index is 18 minutes old
Show age and provenance before offering a refresh.Success receipt
Published · receipt gw_8421
Return exact revision, actor, and durable result.Warning
Compatibility not verified
Pair colour with a label and a concrete consequence.Recoverable failure
Checker timed out
Keep inputs intact and make retry explicit.Fatal error
Registry unavailable
Explain what is unavailable without manufacturing fallback data.Degraded · read only
Writes paused
Allow inspection while clearly disabling mutation.Offline
Working from local snapshot
Differentiate cached evidence from current server truth.Reconnecting
Attempt 2 · preserving edits
Never discard local work while transport recovers.04 · Identity and permission
Authority is explicit at the point of action.
Identity state changes capability, never history. Owner, maintainer, reviewer, contributor, anonymous, and revoked states remain legible without forcing products into one permissions model.
Anonymous
Inspect public evidence and try capability-free actions.
Signed in
Save views, submit drafts, and receive durable receipts.
Owner
Manage owned resources and accountable automations.
Maintainer
Review package or namespace changes within delegated scope.
Reviewer
Approve or request changes without gaining ownership rights.
Contributor
Propose changes and retain evidence of accepted work.
Insufficient permission
Explain the required role and keep read access intact.
Suspended / revoked
Show scope, reason, and recovery path without hiding history.
User-owned automation is attributed to an accountable owner, scoped capability, and inspectable receipt. A bot never appears as an unowned system actor.
- Owner
- hoebat
- Capability
- draft release notes
- Status
- owner present
- Receipt
- bot_7782
05 · Responsive and input behaviour
Collapse supporting context before primary work.
Desktop, tablet, 680px, 390px, and 320px all preserve the primary task. Inspectors collapse before sidebars; horizontal context becomes scrollable; touch targets grow; editor focus is always explicit on mobile.
Visible focus, logical traversal, Escape to close disclosures, and focus return to the opener.
TabShift TabEscControls keep a minimum 44px target in touch-first compositions and do not depend on hover.
Ambient movement is removed; functional state changes use instant or low-distance substitutions.
state transition06 · End-to-end studies
Every workflow proves the complete state envelope.
These are deliberately cross-product specimens. They demonstrate shared interaction contracts while leaving package rules, publication policy, runtime semantics, moderation policy, and benchmark methodology to the owning product.
Package discovery
Search → filter → select → inspect
- Initial
Search is empty; useful recent packages remain visible.
- Active
Runtime and stability filters narrow 128 records to 14.
- Success
std.work is selected with exact version and provenance.
- Empty
No package matches all filters; query remains editable.
- Failure
Registry search failed; previous verified selection remains inspectable.
Publication form
Draft → validate → preview → submit → receipt
- Initial
A local draft starts with controlled fields clearly separated.
- Active
Validation reports one inline error and a summary link.
- Success
Submission returns revision 7f2c1d and receipt pub_1098.
- Empty
Preview has no optional release note; required metadata still renders.
- Failure
Submit failed; draft, validation results, and preview are preserved.
Live workbench
Load session → edit → run → observe → recover
- Initial
Session 42 loads at source revision 18 without editor autofocus.
- Active
Generation 6 is running; stop and observation controls are available.
- Success
Generation 6 completes with monotonic event sequence 218.
- Empty
No diagnostics were emitted; observation pane explains the clean run.
- Failure
Run failed; source stays editable and restart creates generation 7.
Community discussion
Browse feed → open thread → comment → published
- Initial
Feed items expose source, age, submitter, and discussion count.
- Active
Composer preview shows mention resolution and canonical thread target.
- Success
Comment is published with author identity and stable permalink.
- Empty
A thread with no comments offers context before the composer.
- Failure
Publish failed; the local comment remains available to retry.
Benchmark evidence
Compare evidence → change tab → share exact view
- Initial
Default comparison names workload, baseline, and revision.
- Active
Changing tabs preserves filters and updates the selected evidence panel.
- Success
Share action produces an exact, reproducible view URL.
- Empty
An incomparable workload explains why a cell has no value.
- Failure
Evidence fetch failed; cached values are visibly marked stale.
07 · Ownership boundary
Share behaviour; keep business semantics local.
The UI reference is an acceptance surface, not a replacement application framework. Downstream products consume the shared geometry, components, and state grammar without copying catalogue-only framing.
Visual Language owns
- focus and keyboard behaviour
- loading, empty, success, warning, and failure envelopes
- responsive collapse order
- validation presentation and recovery affordances
- identity and automation attribution patterns
Applications own
- which actions a role may perform
- package, spec, runtime, feed, or benchmark semantics
- moderation and publication policy
- durability and server-side receipt meaning
- domain-specific navigation and information architecture
Rule: consume shared components from the component catalogue; do not turn a application-specific state machine into a new global primitive until more than one application proves the need.