Skip to content

Spec, part by part

Every component in manifest order, with each state it can be in. Copy markup from components/<name>/<name>.html. This page uses nothing but the system's files.

Accent preset

Buttons

components/buttons/ Square buttons with mono caps labels: solid accent primary, ink outline secondary, ghost, danger, sizes, icon-only, loading, the action group and the segmented control.
Primary, secondary, ghost and danger
Start a project See the work
Forced states: hover, active, focus, disabled; then loading
Sizes, icon-only and the segmented control
Book a call

Badges

components/badges/ Square mono caps tags: outline, ink, accent, ok, warn and danger, with an optional square dot.
Wayfinding 2026 New Shipped In review Paused

Avatar

components/avatar/ Square initials and four geometric marks in three sizes, plus a tight group. No photos.
IH TR MO PV Ingrid Halden, Tomas Reyes and 4 others

Nav

components/nav/ Top bar laid on the 12-column grid: wordmark, numbered links, grid toggle, theme toggle, one primary action and a numbered mobile menu.

Announcement bar

components/announcement-bar/ Inverted one-line bar above the nav for a publication or notice, with a link and a dismiss button.

Breadcrumbs

components/breadcrumbs/ Mono caps trail with slash separators and the current page in ink.

Sidebar nav

components/sidebar-nav/ Grouped vertical navigation with section numbers, counts and an accent bar on the current item.

Grid overlay

components/grid-overlay/ The visible 12-column grid: faint hairlines on each column start, optional column numbers, drawn in on load, and a toggle that lays the grid over the whole page.
The numbered grid behind a hero block (resize the window: 12, 8 and 4 columns)

Text lands on the lines.

Columns 9 to 12 hold the metadata.

The toggle, off and on

Section index

components/section-index/ Numbered section header row on a 1px rule: the number in mono, the title, and an aside in the metadata columns.
02

Selected work, 2023 to 2026

All 34 projects

2.1

Public transport

4 projects

Hero

components/hero/ Type-only page opener on the visible grid: a giant title, a lede in columns 1 to 6, spec rows in 9 to 12, and one action pair.

Design and engineering for systems people rely on.

We plan, design and build wayfinding, data tools and reports for transit operators, hospitals, utilities and foundations. Twenty-three people, two studios, one method.

Founded
2014, Oslo
Studios
Oslo, Rotterdam
People
23
Booking
From February 2027

Section header

components/section-header/ Unnumbered section heading with an intro set in the metadata columns, for sub-sections and plain pages.

What we leave behind

Every engagement ends with files your team can run without us: source, tokens, a written rationale and a hand-over session.

Spec rows

components/spec-rows/ Label and value rows in mono caps that read like a spec sheet, stacked, inline or as a strip.
Client
Northline Transit Authority
Year
2025
Scope
Network map, signage system, typeface
Duration
38 weeksIncluding 9 weeks of field tests
Lead
Ingrid Halden, design direction
Team
Six people from both studios
Stops
212
Lines
14
Sign types
37
Languages
3

Big figure

components/big-figure/ A giant number that runs to its column edge, with a caption and a mono source line. Fit classes size it to the column.

212

Stops on one network map, where there had been four maps by four operators.
Source: Northline Transit network data, December 2025

38%

Fewer wrong-platform reports in the first year after the new signs.
Source: Northline customer report log, 7,160 reports in 2024 against 4,439 in 2025

Features

components/features/ Capabilities in two to four columns on top rules, with an icon, a code, a title and a sentence.
  • S.01

    Wayfinding systems

    Maps, signs and digital directions planned from how people actually move through a place, tested on site.

  • S.02

    Data products

    Dashboards and planning tools for operators who need one number they can defend in a meeting.

  • S.03

    Reports

    Annual and impact reports where every figure links to its source and the PDF passes an accessibility audit.

  • Source files and design tokens
  • Written rationale for every decision
  • Ongoing hosting (we hand it over)

Cards

components/cards/ Ruled cards with no box: a top rule, mono meta, title, text and a link; a boxed variant for rare use.

Bento

components/bento/ A ruled 12-column table of cells with 1px hairlines between them, for figures, spec rows and small charts.
Delivery

11wk

Median engagement length across 14 projects in 2025/26.
Source: Halden project ledger, FY 2025/26
Hand-over

What every client receives

Files
Source, tokens, PDFs
Docs
Rationale, 30 to 60 pp
Training
Two half-days

Stats

components/stats/ A row of sourced figures between column rules. Smaller than big-figure, and every number has a source.
Median engagement length
11wk
Project ledger, FY 2025/26
Revenue from returning clients
71%
Audited accounts, FY 2025/26
People in two studios
23
Payroll, 30 Sep 2026
Interfaces shipped without an accessibility audit
0
Audit log, 2019 to 2026

Logo row

components/logo-row/ Invented geometric monogram marks with names in a ruled row, for partners and collaborators.

Testimonial

components/testimonial/ A large quote with a hanging accent quotation mark and a mono attribution from the studio itself.

We don't hand over a design and leave. We hand over a system that a team of four can keep running for ten years, and we write down why each part is the way it is.

Ingrid HaldenFounder, design direction

Pricing

components/pricing/ Engagement columns between rules: name, price, duration rows, what is included and one action, with a currency switch.
Fixed fees, VAT excluded

Audit

E.01

$18,000Fixed, 3 weeks

We review one system (a signage family, a dashboard, a report template) and tell you what to fix first.

Team
2 people
You get
40-page findings
  • Site or product walk-through
  • Ranked list of 20 fixes
  • No design or build work

Retainer

E.03

$14,000Per month, 6-month minimum

Two days a week from the team that built your system, for changes, new sign types and quarterly reports.

Team
1 lead, on call
Response
2 working days
  • Monthly change log
  • Quarterly review
  • New systems are a Project

Prices for 2027 bookings. Travel outside Oslo and Rotterdam is billed at cost, and we send the receipts.

FAQ

components/faq/ Numbered native details rows on rules, with the answer set in the question column.
Q.01Do you work with in-house teams?

Yes, and we prefer it. Most projects pair two of our people with two of yours from the first week, so the hand-over is a formality.

Q.02What happens if the scope changes halfway?

We write a one-page change note with the cost and the new end date. Nothing changes until you sign it.

CTA

components/cta/ The accent field: a full-bleed block of accent color with giant black type and one action.

Send us the brief. We reply in two working days.

Tell us what the system is, who uses it and when it has to work. We'll answer with a scope, a team and a price.

Next free start: February 2027

Case study header

components/case-study-header/ Case study opener on the visible grid: breadcrumb, giant title, lede, client, year, scope and team as spec rows, and a coded plate.

One map for 212 stops

Four operators, four maps and three languages became one network that a visitor can read in ten seconds.

Client
Northline Transit Authority
Year
2025
Scope
Map, signage, typeface
Team
6 people, 2 studios
Duration
38 weeks
Plate 1. The network diagram, lines simplified to 45 and 90 degreesP-034

Project index

components/project-index/ The table of projects: number, project, client, discipline and year, with discipline filters and a live count.
4 projects
Projects, newest first
No.ProjectClientDisciplineYear
P-034One map for 212 stops Northline TransitWayfinding2025
P-032Load forecasts operators trust Tidal Grid CooperativeData2026
P-031A report with 140 sources Salt & Seed FoundationReport2026
P-033Signs a patient can follow Okra Health TrustWayfinding2025

Contact sheet

components/contact-sheet/ A grid of project frames as coded SVG compositions with frame numbers and captions. No photos.

Process

components/process/ Numbered phases with durations and a week scale that shows when each phase runs.
  1. 01

    Survey

    We walk the site or the product with the people who run it, and count what actually happens.

    Weeks 1 to 22 wk
  2. 02

    Design

    Three directions in week three, one by week five, and the full system after that.

    Weeks 3 to 75 wk
  3. 03

    Build and test

    Prototypes go in front of real users from week six; the build follows what the tests say.

    Weeks 6 to 127 wk

Credits

components/credits/ People and roles as ruled rows, role in the label columns and names in the content columns.
Design direction
Ingrid Halden
Wayfinding
Maren OkaforPieter VosLea Sandvik
Client team
Arne DahlYusra Benali

Prose

components/prose/ Long-form typography: numbered headings, lists with square bullets, quotes, figures, tables, inline code and footnote marks.

A visible grid is a promise to the reader: everything on this page lines up with something else, on purpose.

1Why the lines stay on

We leave the column lines visible in every hero because they settle arguments. When a caption sits one column too far in, everyone can see it, so nobody has to defend a feeling.1

  • Twelve columns from 960px, eight from 640px, four on phones.
  • Content in columns 1 to 7, metadata in 9 to 12.

If two things almost line up, they look like a mistake.

The rule we break least

  1. Measure the column, not the screen.
  2. Set the type, then the box.

Inline --sp-gap is the gutter between columns.

Callout

components/callout/ An aside on a colored top rule with a mono label column: note, method, caveat, ok and danger.

TOC

components/toc/ Numbered contents list that marks the section in view with the accent bar.

Byline

components/byline/ Author mark, name and role, with date and reading time as inline spec rows.

Footnotes

components/footnotes/ Numbered note marks in the text and the sources list they point to, with links back.

Median engagement length fell to 11 weeks.2

  1. 1Halden studio review notes, 41 projects, 2019 to 2026. Back
  2. 2Halden project ledger, FY 2025/26, 14 closed engagements. Back

Timeline

components/timeline/ Dated rows for changelogs and roadmaps, with shipped, new and planned states.
  1. Annual report published

    Our year in figures, with 14 numbered sources and the raw tables as CSV.

    New
  2. Rotterdam studio moves to Katendrecht

    Room for eleven people and a test wall for full-size signs.

    Studio
  3. Open-source wayfinding toolkit

    The sign-schedule generator we use on every project, released under MIT.

    Planned

Forms

components/forms/ Mono caps labels, square inputs, selects, textareas, checkboxes and radios with hint, error, valid, disabled and read-only states.
Add the domain, for example [email protected]
Matches a past client. We'll pull up the files.
Read-only. Quote it in emails.
Three sentences are enough. We'll ask the rest on a call.
Disciplines
Preferred studio

Switch

components/switch/ A square toggle on a real checkbox with role="switch", inline or as a settings row.

Choice cards

components/choice-cards/ Ruled radio options with a title, a sentence and spec rows; the chosen one gets the accent bar.
Engagement

Search field

components/search-field/ Search input with icon, clear button, slash shortcut and a keyboard-navigable suggestion list.

File drop

components/file-drop/ Drop zone on a real file input, plus file rows with progress, done and error states.
  • station-plans-level-2.pdf4.2 MB
  • brief-northline-2027.docx62%
  • site-walk-video.movToo largeFiles must be 25 MB or smaller. Send a link instead.

Newsletter

components/newsletter/ Joined email field and button with hint, success and error states.
One email on the first Monday. Unsubscribe from any issue.
That address is missing a domain. Check it and try again.
Studio notes, monthly Subscribed. The next issue arrives on 7 December.

Tables

components/tables/ Ruled data tables with a caption, mono numerals, status cells, group and total rows, a comparison variant and a labelled stack under 640px.
Hours by discipline, FY 2025/26Source: Halden time ledger, 31,840 hours logged
DisciplineProjectsHoursShare
Design
Wayfinding59,87031%
Reports34,14013%
Engineering
Data products411,46036%
Interfaces26,37020%
Total1431,840100%
What each engagement includes
IncludedAuditProjectRetainer
Field tests with usersNot includedIncluded
Source filesNot includedIncluded
Length3 weeks6 months or more

Description list

components/description-list/ Term and value pairs in the sans face, in rows or two columns, for settings and plain metadata.
Billing contact
Yusra Benali, Northline finance
Invoices
Monthly, net 30, in NOK or EUR
Project folder
Shared with 6 people at Northline
Next review
Thursday 12 November, 10:00 CET

Pagination

components/pagination/ Previous and next in mono caps around square page numbers, with the current page in ink.

Chart

components/chart/ Inline SVG bar, line and donut charts that read only viz tokens, with a shape-coded legend and the data as a table.
Projects started per year
2021 to 2026
1680 7910121314 202120222023202420252026
Show the data
YearProjects
20217
20229
202310
202412
202513
202614
Revenue by sector
FY 2025/26
$4.2M
  • Public transport38%
  • Health26%
  • Energy22%
  • Foundations14%
Hours per week, two studios
Weeks 1 to 8, Q3 2026
5002500 W1W4W8
  • Oslo440 h
  • Rotterdam346 h

Report chart

components/report-chart/ Report-style charts: one highlighted series against gray, direct labels instead of legends, a figure number and a source line.
Fig. 1
Public transport is now our largest sector
  1. Public transport38%
  2. Health26%
  3. Energy22%
  4. Foundations14%
Share of revenue, FY 2025/26. Source: audited accounts.
Fig. 2
Engineering took over half of all hours
  1. Engineering56%
  2. Wayfinding31%
  3. Reports13%
31,840 hours. Source: Halden time ledger, FY 2025/26.

Alert

components/alert/ Page-level message on a colored top rule: info, ok, warn and danger, with actions and dismiss.
Booking from February 2027New projects start after 1 February. Audits can start sooner.
Brief receivedPieter will reply by Tuesday 10 November.
Files over 25 MB won't uploadSend large plans as a link in the brief.

Toast

components/toast/ Inverted ink notices in a polite live region with an undo action; window.spToast() and data-sp-toast.
  1. Link to P-034 copied.
  2. Brief moved to drafts.

Dialog

components/dialog/ Native with a ruled head, body and actions, including the destructive confirm.

Withdraw this brief?

We'll delete the brief and its 3 files. The studio keeps no copy, so this can't be undone.

Book a 30-minute call

Pick a slot with Pieter or Ingrid. We'll send a calendar invite and a one-page agenda.

Tooltip

components/tooltip/ Short ink label on hover and focus, dismissed with Escape, never holding essential content.
PDF, 2.4 MB, 64 pages Three weeks, two people, a ranked fix list.

Empty state

components/empty-state/ A giant outlined zero, a title, a line of help and one action.

No projects match "hardware"

We haven't shipped a hardware project yet. Clear the filter to see all 34.

Skeleton

components/skeleton/ Loading blocks for lines, titles, figures and rows, with a reduced-motion static state.
Loading the project
Loading the contact sheet

Progress

components/progress/ Square-ended bars, an indeterminate bar, a three-square spinner and numbered steps.
Uploading plans62%
Report checked100%
Export failed at page 2234%
Checking links
  1. 01Brief
  2. 02Call
  3. 03Proposal
  4. 04Start

Part of the Design Systems Library