Skip to route content
Implemented

Shared language · Foundations

Shared interface foundations.

Hara sites and tools may have different information architectures while sharing identity, typography, colour, geometry, state, motion, and accessibility rules. This page records those rules and their source tokens.

Scope
Shared v2 document layer
Applies to
WWW · Docs · Specs · Packages · World · Learn
Does not replace
Application information architecture or tool-only chrome

01 · Identity

One block H. One signal.

The mark is not a flexible logo system. The block-H silhouette, its internal proportions, and the single blue signal square are invariants across the ecosystem.

Mark scaleHaraMark.astro
Primary · 64px Headers, launch surfaces, and identity specimens
Product · 40px Application headers and account surfaces
Minimum · 24px Smallest supported interface mark

Below 24px, use a text label or a larger touch target rather than simplifying the mark.

Approved lockupsidentity / product
HaraProgramming language
Hara visual languageFoundations · Version 2
PackagesA Hara application
Clear space1 signal unit
x x

Keep at least one signal-square width clear on every side. Product names align to the mark; they do not enter its protected field.

Do

Use current text colour for the H and the shared signal token for the square.

Avoid · stretch

Do not alter proportions to fill a container.

Avoid · rotate

Do not turn the identity into an ornamental glyph.

Avoid · outline

Do not redraw, outline, bevel, or add a second signal.

Ecosystem identity

Hara remains the parent signal.

Hara WWWPlaygroundSpecsPackagesWorldLearn

Applications own names, information architecture, and task-specific imagery. They do not replace the block H, invent product colours, or fork the theme contract.

02 · Colour and material

Pale steel. Deep graphite. Quiet seams.

Light and dark modes are equal products. Both use continuous fields, restrained contrast steps, one primary blue signal, and state colours that remain functional.

LightPale steel and paper
data-theme="light"
RaisedEvidence panel

Bright enough to separate, never white enough to glare.

PanelOrdinary working surface
RecessInput, rail, or nested field
  • --hara-v2-canvas#eef0efPage field
  • --hara-v2-canvas-clean#f8f8f5Reading field
  • --hara-v2-panel#f3f3f0Ordinary surface
  • --hara-v2-panel-raised#fbfbf8Raised surface
  • --hara-v2-panel-recess#e4e7e6Recessed surface
  • --hara-v2-ink#13171cPrimary content
  • --hara-v2-muted#5d656eSecondary content
  • --hara-v2-faint#8a9299Tertiary metadata
DarkGraphite and cool ink
data-theme="dark"
RaisedEvidence panel

Depth comes from tone, not a brighter border around every region.

PanelOrdinary working surface
RecessInput, rail, or nested field
  • --hara-v2-canvas#090b0ePage field
  • --hara-v2-canvas-clean#06080bReading field
  • --hara-v2-panel#101419Ordinary surface
  • --hara-v2-panel-raised#151a20Raised surface
  • --hara-v2-panel-recess#0b0e12Recessed surface
  • --hara-v2-ink#eef1f4Primary content
  • --hara-v2-muted#a1aab3Secondary content
  • --hara-v2-faint#6e7882Tertiary metadata
Seam hierarchyline / grid / sketch / shadow
Strong seam--hara-v2-line-strong
Ordinary seam--hara-v2-line
Layout grid--hara-v2-grid
Construction line--hara-v2-sketch
Ambient elevation--hara-v2-shadow
Functional colourState, not decoration
Signal#4d9cffIdentity, focus, selection
Success#3e9d6fCompleted or verified
Warning#f06a3cAttention or recoverable risk
Danger#d84f58Destructive or failed state
PassPrimary ink on ordinary panel

Use full ink for reading, labels, and critical values.

PassState plus text and shape

✓ Verified release · exact revision recorded

ForbiddenFaint text as body copy

Metadata contrast is not a substitute for readable prose.

ForbiddenColour-only selection

A blue wash without text, marker, or current-state semantics is ambiguous.

Protected inventory

Every token belongs to a semantic family.

Open token source →
Identity and type

Aliases the existing Hara families and reserves blue for identity, focus, selection, and measured state.

--hara-v2-font-heading--hara-v2-font-body--hara-v2-font-code--hara-v2-signal--hara-v2-signal-soft
Shell dimensions

Keeps ecosystem chrome and application-local chrome measurable, composable, and independently collapsible.

--hara-v2-header-height--hara-v2-context-height--hara-v2-context-offset--hara-v2-rail-width--hara-v2-inspector-width
Reading widths

Separates page breathing room, broad application content, and readable prose measure.

--hara-v2-page--hara-v2-column--hara-v2-prose
Geometry and controls

Uses restrained radii for repetition and reserves clipped geometry for rare identity or hero moments.

--hara-v2-cut--hara-v2-cut-small--hara-v2-radius--hara-v2-radius-large--hara-v2-row--hara-v2-control
Surfaces and content

Builds hierarchy through tonal fields before borders, bevels, or shadows.

--hara-v2-canvas--hara-v2-canvas-clean--hara-v2-panel--hara-v2-panel-raised--hara-v2-panel-recess--hara-v2-ink--hara-v2-muted--hara-v2-faint
Seams and atmosphere

Separates functional seams, construction lines, ambient texture, hover state, and depth.

--hara-v2-line--hara-v2-line-strong--hara-v2-grid--hara-v2-sketch--hara-v2-hover--hara-v2-shadow--hara-v2-paper
Functional state

Green, orange, and red communicate outcomes and risk only; they are not decorative palette choices.

--hara-v2-success--hara-v2-warning--hara-v2-danger
Motion refinement

The calm layer softens common boundaries and settles functional transitions without changing identity.

--hara-v2-motion--hara-v2-ease--hara-v2-calm-line--hara-v2-calm-line-strong--hara-v2-calm-grid--hara-v2-calm-sketch--hara-v2-calm-hover--hara-v2-calm-shadow

03 · Typography

One family for language. One for exactness.

Hara uses the existing sans family for identity, headings, controls, and reading. Monospace is reserved for code, exact identifiers, telemetry, and compact status.

Heading and bodyGeist / Helvetica Neue / Arial--hara-v2-font-heading · --hara-v2-font-body
Code and telemetryGeist Mono / SFMono-Regular / Consolas--hara-v2-font-code
Display · 72 / .88Portable programs, visible systems.
Section · 48 / .94Evidence before ornament.
Title · 28 / 1.05Schema values enter the ordinary runtime.
Body · 16 / 1.65

Long-form text uses a calm line length and generous leading. Dense product interfaces may reduce spacing, but not until the task genuinely benefits from comparison or repeated manipulation.

Metadata · 11 / 1.4REVISION af6273c · RUNTIME wasm · VERIFIED

Editorial prose

A shared language should disappear into the task.

The visual system is successful when a reader can move from a guide to a specification, a package record, and a community thread without relearning what hierarchy, state, or provenance look like.

Precision is alignment, rhythm, and exact state—not extra chrome around every fact.

Telemetry and data

session
live/8f24
generation
042
source revision
9d7b…e21
backend
hbc-wasm
(defn selected? [node]
  (= :active (:state node)))
Wrap naturally

Package compatibility and provenance remain readable even when the title spans two or three lines.

Truncate identifiers deliberatelyhara-lang/visual-language@af6273c…

Keep the full value available through title, copy, or detail view.

Never compress body copy

Readable text should not become tiny telemetry merely because a panel is narrow.

04 · Geometry and rhythm

Comfortable repetition. Exact alignment.

Geometry follows task frequency. Common controls use calm radii and reliable dimensions; clipped corners remain rare identity accents rather than the default card shape.

4px
8px
12px
16px
24px
32px
48px
64px
Page breathing roomclamp(16px, 2.6vw, 38px)--hara-v2-page
Application column1240px--hara-v2-column
Reading measure760px--hara-v2-prose
Rail and inspector248px / 248px--hara-v2-rail-width · --hara-v2-inspector-width
Common surface
7px radius

Panels, fields, tabs, cards, and repeated controls.

Large calm surface
12px radius

Workbench frames, major previews, and large composed examples.

Rare cut accent
4px cut

Identity or hero moments only; never every container.

Control rhythm
38px data row

Dense mode is earned by repeated comparison, not used as the default visual tone.

Responsive collapse

Protect the primary task first.

1120 → 820 → phone
HeaderRailMain taskInspector
HeaderRailMain taskInspector removed
Header + drawerMain taskRail collapsed · actions stack
  1. Remove the inspector below 1120px.
  2. Collapse the rail below 820px.
  3. Preserve horizontal context navigation as a reachable scroll row.
  4. Keep phone controls at least 34px high and preserve source order.

05 · Imagery and motif language

Technical atmosphere, never borrowed mythology.

Edge, Aperture, Rack, and Fleet Field create a recognisable material world through original technical imagery. They support hierarchy and mood; they never obscure text or impersonate another franchise.

EdgeDirectional transition

Use for arrival, movement, and a broad product proposition.

ApertureInspection and focus

Use around evidence, selection, checking, or a central concept.

RackSystems and inventory

Use for packages, runtimes, resources, and operational composition.

Architectural surface

Rendered structure with restrained telemetry.

The field uses a real raster architectural scene with a dark material treatment and sparse signal markers. It may carry a hero or section transition, but content remains first in source and reading order.

Density
Low behind copy · medium in a dedicated art field
Colour
Material image, current ink, and one signal
Motion
None required for meaning
Product imageryExplains a task or state.

Show the package graph, editor viewport, benchmark evidence, or contributor relationship the interface is actually about.

namespace → package → runtime
Decorative atmosphereSupports a transition.

Keep contrast quiet, avoid placing detailed linework under prose, and do not make ambient movement necessary for comprehension.

06 · Motion and state

Motion confirms change. State survives without it.

Functional transitions settle around 190ms with the shared easing curve. Reduced motion removes animation without removing status, hierarchy, or feedback.

Functional motion190ms · cubic-bezier(.2, .8, .2, 1)

Use for hover, focus, disclosure, selection, and state changes where continuity helps orientation.

Selected row
Ambient motionOptional and subordinate

Use only when it does not compete with reading, data, or repeated manipulation. Never animate geometry merely to look technical.

Reduced motionState remains explicit

Animations collapse to effectively zero duration. Loading retains text and a static progress marker; focus and selection remain visible.

Loading revision•••

Every interactive control has a visible focus ring with sufficient offset.

✓VerifiedGreen, icon, label, and receipt

State is never encoded by colour alone.

Touch controls retain a minimum 34px height and accessible names.

07 · Composed examples

Foundations under realistic load.

Isolated swatches are not enough. These compact studies show the same contracts supporting navigation, prose, data, code, workbench chrome, and community content.

Editorial prose760px measure · calm hierarchy

Runtime model

One lifecycle contract, multiple backends.

Interpreter and HBC execution share session, generation, and source-revision fencing while preserving backend-specific observations.

Read the exact contract →
Dense data38px rows · selection is not colour-only
RuntimeStatusMedian
HBC Wasmselected4.8 ms
Interpreterverified13.2 ms
JVMbaseline6.1 ms
Codestable dark frame · exact identifiers
(def.workflow
  lint
  [:task] {:main {:fn lint-project
                  :argcount 1}})
hara/main · af6273c
Workbench panelv2 document around scoped tool chrome
supersonic-live/main.hal
Community contentpaper surface · provenance first
M
Package release · 41 min

Schema values move into the ordinary Hara runtime

Submitted by @mina · hara-lang/hara · exact release revision

08 · Ownership

Shared contract, product composition, reference annotation.

The catalogue must make it obvious which rules downstream products inherit and which presentation exists only to explain the system.

Shared package contract

Protected

  • Block-H identity and signal
  • Theme, colour, state, type, and motion tokens
  • Shell and component geometry
  • Focus, responsive, and reduced-motion behavior
src/v2/* · src/astro/v2/*
Product-owned composition

Flexible

  • Information architecture and local navigation
  • Real data, workflows, and product terminology
  • Screen composition and task prioritisation
  • Application-specific imagery that explains the task
site/src/pages/{product}
Catalogue-only framing

Not exported

  • Specimen labels and measurement overlays
  • Do/avoid comparisons
  • Side-by-side theme previews
  • Annotation grids used for review
site/src/styles/v2-foundations.css

Adoption rule

Consume the contract. Do not copy the reference.

Downstream products import `v2.css` and shared Astro components, then own their application composition. They should never copy catalogue CSS or redefine protected Hara tokens locally.

Return to catalogueView the v1 historical reference