Sift / Concept / Stage 06

The visual language

One brand, Command center, on the ranked ledger the etalon actually is. Every color, type, and form decision below is signed with the attribute it comes from. The page chrome is the portfolio theme; everything framed is the product brand it documents.

The language alive

Synthesis, and the brief a stranger reads

Two screens carry the language: the etalon, a dense ranked instrument its owner reads at a desk, and the public brief, one column of reading matter opened cold from a link by someone with no account. Same language, opposite density. Everything below this is the specification behind them.

Open the etalon in color Open the shared brief Colored copies in design/: the etalon with its empty, loading and error states, plus the public brief. The grey wireframe stays the source of truth.

Below: the Split-evidence direction, deferred. It was chosen at Step 5 to put evidence in front of the eye before the click. The block bank then delivered that inside one column, with a representative verbatim on every card and the scope line stating the denominator, so the attribute is served without the structural change. The pane stays on record as a later deepening of the drill; it is a change to node 2.0, and structure belongs to the IA and the wireframes rather than to a colour copy. See docs/decisions.md.
Evidence · 42 items
Onboarding is confusing
n=42CSV, Intercom
“I signed up and just stared at the empty screen. No idea what to do first.”
[1]Intercom·scrubbed·2 days ago
“Our new PMs cannot tell where to start without someone walking them through it.”
[2]CSV·scrubbed·4 days ago
Open source
Palette

Layered neutrals, one accent

Depth from tone and hairline borders, not shadow. The accent is the only saturated color on a working screen, reserved for the one next action and strong confidence. The neutrals tilt faintly cool toward the accent, never warm. Each color is signed with its attribute.

Canvas
#0B0E11
Page background, deepest surface.A1 quiet
Surface
#151A1F
Card and panel, one step up.A1 · A4
Elevated
#1E252B
Raised panel, focused row.A1
Line
#262D34
Hairline borders and dividers.A1 depth, no shadow
Porcelain
#EAEEF2
Primary text and the mark.A5 type leads
Ash
#868F99
Secondary text, metadata.A1 secondary recedes
Cyan (accent)
#33C4CC
The one accent: primary action, active, strong confidence.A1 · A2 · A4
Amber
#D9A441
Low signal only. A quiet tag, never an alarm.A3 honest about thin
Red
#E5484D
Error only, paired with the next move.A3 · Voice P4
Typography

Inter for the interface, mono for the numbers

A humanist grotesque plus a monospace, a real contrast axis. The count reads in mono because the number carries the weight (Voice Principle 1). The theme is set as an editorial finding in normal case, never a colored label chip (A5).

Inter · display
590 · -0.02em
Onboarding is confusing
Inter · body
400 / 500
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
IBM Plex Mono
counts, citations
n=42  n=6  0123456789  [1] [2]
Type scale
30   24   20   17   14   12.5   11 mono
Form

Radius, spacing, elevation

Compact and consistent. 6px on cards, buttons, and inputs; 4px on badges. Depth is one or two tonal steps plus a hairline, not a diffuse shadow (A1).

6px
card / button / input
4px
badge / tag
shadow
0 2px 4px /.4, contained
8px
element gap
1px
hairline border, Line
16px
card padding
Imagery

Data first, not photo first

Sift is a data tool, not a photo product. The app surfaces carry no decorative photography; the evidence is text, and the calm comes from hierarchy and whitespace (Design Principle 2, A1). Photography appears in one place only: the marketing Home hero (0.0), a single restrained real photograph, never a grey placeholder and never on an app screen.

A calm office workspace, the one context where Sift uses photography (marketing Home hero)
Home hero only. Unsplash: photo-1497215728101-856f4ea42174

Rule for the app: no stock imagery, no illustration, no avatars of invented people (feedback authors are PII-scrubbed, so a face would be a lie). Where a source needs a face, it is a channel token (Intercom, Zendesk, CSV), monochrome. The photograph on the left is documented here for reproducibility and belongs to the marketing surface, outside the two app screens this stage colors.

Icons

Solar Linear, monochrome

One line weight, inline SVG (not a CDN script), Porcelain or Ash by default, Cyan only on the active or selected icon (A1). Coverage: the nav, metadata, badges, buttons, and states.

source
confidence
evidence
citation
brief
filter
priority
share
drill (active)
select
Components

Three live components

The product's real controls, built from the language above. Each carries its attribute.

Action button A1

Build brief One primary (Cyan) per view; secondary is ghost.

Theme card + confidence A2 · A3

Onboarding is confusing
CSV, Intercom · 2 days ago
n=42
Dark mode requested
CSV · 12 days ago
n=4 low signal

Form field Voice P4

Enter a work email.
Create workspace
Contrast

WCAG AA, verified

Every text pair passes AA. Ash is the dimmest tone used for text; nothing darker carries text. Any new pair introduced later is measured before it ships.

ForegroundBackgroundRatioUse
Porcelain Canvas~16:1 AAPrimary text
Ash Canvas~5.5:1 AASecondary text
Cyan Canvas~9:1 AAAccent text, icons
Canvas Cyan fill~9.5:1 AAText on primary button
Amber Canvas~8.5:1 AALow-signal tag
Red Canvas~5:1 AAError text
Brand and references

Where the language came from

Three brand toolkit plates were generated against the emotions in the personas and against what the competitors already look like, and one was chosen at a glance. Every value in the palette above traces to a pixel of that plate or to a character decision recorded beside it.

Brand plate B, Command center: the chosen toolkit spread, showing the mark, the dark layered palette, the type pairing, and the UI tone
Chosen: Plate B, Command center. The most product-native of the three, and the etalon is exactly this dense dark surface. The fixing scene is a PM at 9pm in a dim room, the screen the only light, the interface receding so the signal stands out. Two corrections were applied on the way into DESIGN-artifacts.md: the mark was flattened to monochrome, because a gradient would break the single-accent discipline, and Cyan was fixed as the one accent.
Brand plate A, Analyst's desk: light off-white and deep teal with an editorial serif
Not chosen: A, Analyst's desk. Light, warmer, closest to the Stripe and Perplexity end of the taste. Its serif for theme statements is kept on record as an open option.
Brand plate C, Evidence ledger: stark monochrome on a ruled ledger grid with one semantic red
Not chosen: C, Evidence ledger. The most ownable brand idea of the three and the coldest. Kept on record; nothing stops a later return to it.
BorrowedFromWhich anxiety it answers
One accent on layered neutrals, weight from hierarchyLinear (base)Alex works in 10 to 15 minute sessions; loud copy and loud color are friction, not delight
Inline citation marker plus a source panelPerplexity, Parallel"Confident presentation with no visible reasoning" is the named stop-trust trigger
Ranked rows with a count and a drillMercury, AmplitudeThe synthesis is the value and the drill is the trust mechanism, so the first screen ranks rather than dumps
A tiny semantic accent on a monochrome fieldshadcn/uiThin evidence has to read as information, not as an alarm

A reference says HOW something is done; an attribute says WHY it is right for us. A technique with no attribute behind it is borrowing without a reason. Full table in design/concept/docs/references.md.

Critique

Before and after, and what the audit found

The colour copy was made before the wireframes were rebuilt on the block bank. The gap was not cosmetic: the screen could not demonstrate two of its own five attributes.

The etalon in color before the rebuild: no rank numbers, no quote on the card, no scope line, and a permanently visible action bar
Before, 1440. No rank number, no quote on the card, no denominator, no remainder on the load control, and an action bar that never went away, so the screen carried two primary actions at once.
The etalon in color after the rebuild: rank, representative quote, scope line, facet counts, load more with the remainder
After, 1440. A2 is answered on the surface by the quote and the scope line; A4 by the rank and the remainder. The one action sits in the head at rest and swaps for the selection bar the moment a row is picked.
The etalon in color before the rebuild at 360px
Before, 360.
The etalon in color after the rebuild at 360px, with the quote clamped to two lines and the confidence pill on its own row
After, 360. The quote clamps to two lines and the confidence pill takes its own row, so the theme label never gets squeezed to three.
FoundSeverityResolution
No control in the colour layer met the 44px target floor: checkbox 16, drill 18, chips 27, tabs 32, buttons 36. The grey contract had just been fixed to meet it; the colour copy had drifted from it.P1Fixed in _theme.css. Three exceptions are named rather than averaged: the checkbox at the 24px AA floor, links inside running text, and the avatar which reads at 28 and is hit at 44 through an overlay.
No designed focus state anywhere in the colour layer, only the browser default ring, which on a dark instrument is barely a ring.P1Fixed. :focus-visible draws the accent, because focus is the keyboard's version of the active state.
The separator between phases sat at 1.39:1. Decorative and aria-hidden, so not a WCAG failure, but a separator nobody can see is not doing its job.P3Fixed. Raised to Ash at reduced opacity.
The detector flags Inter as an overused face: every wave of generated UI converges on it.Accepted, with the argumentKept. Inter is signed to A5 and to the named taste, it is self-hostable, and the pairing carries its contrast on the mono half, where the counts live. Recorded rather than waved away, because "the reflex answer happens to be right" is a claim that has to be made out loud. Revisit when fonts become tokens at Stage 07.
Every text pair measured in the browser against its real background: 5 pages, both viewports.PassNo failures. Ash on Canvas is the dimmest pair that carries text, at about 5.5:1.

Run with /impeccable audit plus a browser pass that measured contrast, target size, focus, landmarks and overflow on every page at 1440 and 360. Full record in docs/decisions.md.