Styleguide · v5 · October 2026

How a deprint screen, button, table and chart are built.

Colour

Colour is named by role, not hue. One accent for anything verified or yours. One third-party colour for anything that belongs to someone else. No red anywhere. Five schemes fill those roles; Cyanotype is the default.

Showing Cyanotype: Prussian blue on cool paper, sepia for third parties. Switch schemes with the control at the bottom right of any page.

Paper--paperGround.
Ink--inkText, the mark, primary buttons.
Ink 2--ink-2Secondary text, icons.
Accent--accentVerified, yours. One per view.
Accent, as text--accent-inkThe accent as text on paper.
Third party--thirdSomeone else's: other signers, other marks.
TokenLightDarkUse
--paper#EEF1F4#0B1220Ground.
--paper-2#E3E8ED#111A2BRaised ground: table heads, wells, hover.
--paper-3#D5DCE3#18243ATracks, empty chart segments.
--line#C6CED7#22304AEvery hairline and border.
--ink#0C1626#E8EDF5Text, the mark, primary buttons.
--ink-2#4F5B6B#94A1B5Secondary text, icons.
--ink-3#8590A0#66738ATertiary text, placeholders.
--accent#2A62C9#6FA0FFVerified, yours. One per view.
--accent-ink#1D4A9E#8DB4FFThe accent as text on paper.
--accent-soft#DCE6F7#14244AFill behind a verified pill.
--third#B08A5B#B08A5BSomeone else's: other signers, other marks.
--third-ink#6B4E28#D4B58AThird-party colour as text.
--third-soft#F1E8DA#2A2114Fill behind a someone-else's pill.

Chart palette · validated for colour-vision deficiency in both themes

1 · ours2 · C2PA3 · generators4 · platformssequential · accent

Categorical hues are assigned in fixed order and never cycled: the same entity keeps the same colour across every chart. Past four series we fold to "other" or split into small multiples. Status is never a chart colour.

Type

One creative sans says everything: headings, text and interface. A wide mono is for anything read from a file, and a dot face is for the timer. Headings are set at regular weight and tight tracking so they read as something said, not announced. No italics, ever.

Showing Parkinsans. Round, built on the same circles as Arc. The default. Five type sets can be tried with the control at the bottom right of any page.

Display
A platform strips it. Your mark finds it again.--display · --fw-display · tracking --ls-display · emphasis by the accent
Body
A content credential is a signed statement about a file. It says who, when and with what. It does not say the file is good, true or worth anything. That part is still on you.--body · --fw-body · 16–17px · line-height 1.5
Labels & UI
Sign and mark · Download record · Rescan--ui · 600 · buttons, tabs, pills, field labels
Data
c2pa.manifest sha256:7f3a…c21e signed 2026-10-07T09:12:44Z es256Martian Mono · 400/500 · 11–14px · uppercase labels at +6% tracking · also every text input
Readout
07·10·26 ··· P 0.9961Doto · 700/800 · dates, confidence figures, step numbers. Never for body text.
Wordmark
deprintArchivo · 600 · width 112 · the logo only
TokenValueUse
--fs-displayclamp(38px, 5.4vw, 68px)Home headline only
--fs-h1clamp(36px, 5vw, 60px)Page titles
--fs-h2clamp(28px, 3.6vw, 42px)Section titles
--fs-h324pxCard and list titles
--fs-h416pxInterface weight, labels above content
--fs-ledeclamp(18px, 1.7vw, 21px)The sentence under a title
--fs-prose16.5pxArticles, 66 characters wide
--fs-body16pxEverything else that is said
--fs-small15pxSupporting text in cards
--fs-ui14.5pxButtons, menus, table cells
--fs-caption13.5pxFigure notes
--fs-label11pxMono uppercase eyebrows, +10% tracking

Space and shape

A 4px base. Radii: 2px for cells, 8px for inputs, 14px for cards, 18px for frames, full round for pills and the mark. One column, 1120px, with a 66-character measure for reading.

4
8
12
16
24
32
48
64
2 · cell
8 · input
14 · card
18 · frame
pill
TokenValueUse
--sp-1 … --sp-84 8 12 16 24 32 48 64Spacing on a 4px base
--sp-sectionclamp(56px, 8vw, 104px)Vertical rhythm between sections
--max1120pxThe one column
--measure66chReading width
--gutterclamp(16px, 4vw, 40px)Side padding
--r-cell / input / card / frame / pill2 / 8 / 14 / 18 / 999Radii
--shadow-float0 8px 24px rgb(0 0 0 / .18)Toasts and menus only

Motion

Develop, don't decorate. Content comes up the way a print does in a tray: in place, from nothing to full, in reading order. Every motion has a cause you could name, and nothing loops unless work is running.

01Things developThey appear where they belong and settle. Nothing slides in from a side, bounces or spins for effect.
02Every motion has a causeYou arrived, you acted, the file changed, or work is running. If none is true, nothing moves.
03One thing leadsNeighbours follow the leader by one step, so the eye is walked through a view, not pulled apart.
CauseWhat movesHowWhere
You arrivedContent develops in place, in reading orderFades up and rises 12px · 520ms · neighbours 60ms apartEvery section, list row and figure
You changed pageThe page fades upOpacity only · 240msEvery route
You actedThe control answersGives 1px in 80ms · colour in 120ms · arrows lean 4pxButtons, links, rows
The file changedThe new state landsScales from 0.9 with a small overshoot · 240msState pills, prices, the seal on a photograph
A file became yoursArc verifiesRing snaps a quarter turn, pupil takes the accent · 1100msAfter signing
Work is runningSomething travels or turns until it is doneScan line 2600ms a pass · Arc's ring turns · the pill dot breathesUpload detail, Arc in the nav, state pills
Data arrivedMarks grow from their baselineBars from zero, lines drawn left to right, dots landEvery chart
Something small came or wentIt rises in, sinks out8px · 240msMenus, toasts, table views, form errors
You changed the schemeColours cross-fade240ms, linearEverything
Nothing is happeningAlmost nothing movesThe field drifts at a fifth of real time · Arc blinksHome, sign-in

Develop · a group, in reading order

First000 ms
Then01+60 ms
Then02+120 ms
Last03+180 ms

Arc is the status light. It looks where you look and blinks. In the nav its ring turns while work runs, and its pupil takes the accent when a file verifies.

idle
looking
blink
working
verified
asleep

Six poses cover every state the product has. Never a speech bubble, never a second pupil, never beside an error.

Seal

The outer ring draws its arc, the inner ring follows, the pupil lands last.

first sign-in · signing complete
Lift

The mark presses onto a surface and lifts away, leaving a faint impression.

the name, acted out · export complete
Verify

The outer ring snaps a quarter turn and the pupil takes the accent. The only time the mark takes colour.

credential valid
TokenValueFor
--t-press80msA control giving under the finger
--t-quick120msHover, colour, a pointer answer
--t-base240msSmall things entering or leaving: menus, toasts, pages, a state landing
--t-develop520msContent developing into view
--t-ceremony1100msThe Seal and the Verify: a file became yours
--t-scan2600msOne pass of the scan line
--stagger60msBetween neighbours, in reading order
--d-micro / --d-ui / --d-develop4 / 8 / 12pxHow far a response, a small thing and content travel
--ease-outcubic-bezier(.2,.7,.2,1)Arriving: fast, then settling
--ease-incubic-bezier(.5,0,.9,.4)Leaving: slow, then gone
--ease-inoutcubic-bezier(.45,0,.2,1)Travelling: the scan, a ring drawing
--ease-popcubic-bezier(.3,1.5,.5,1)Landing: a result, the pupil

Never

Sliding in from a side, parallax, or bounce. The landing overshoot is the only spring, and only for a result.

Never

Motion on hover over the background. The field answers one thing: a file in the air over the drop zone.

Never

A loop with no work behind it. If it turns, sweeps or breathes, something is running.

Always

Reduced motion means present. Everything is simply there, the field holds one frame, and nothing is hidden waiting to animate.

Icons

Phosphor, Thin at 28px and up, Light below. Always in secondary ink, never in primary, so icons sit behind the text rather than in front of it. Never inside a text button.

fingerprint-simple
scan
seal-check
key
image-square
eye
upload-simple
camera
stamp
waveform
file-magnifying-glass
arrows-clockwise
check
circle-dashed
warning-circle
download-simple
link-simple
lock-key
folder-open
plus

Sizes: 14px in rows and menus, 18px in icon buttons, 28px as section glyphs. Icons never take the accent unless they mark a verified state.

Buttons

Three kinds, seven states. Primary takes the accent on hover. Loading hides the label and spins an accent arc. Success is the accent with the verb in the past tense. One primary per view.

stateprimarysecondaryquiet
default
hover
active
focus
disabled
loadingnever
successnever
sizes

States

A file is in one of six states. Two are transient. Of the four results, only verified takes the accent. Anything about someone else takes the third-party colour. Tampered is solid secondary ink, the heaviest thing in the system, and still not red.

queued

Waiting its turn. Dotted outline.

scanning

Being read now. The dot breathes.

verified

Credential valid, mark present, signer is you. Includes a manifest recovered through your mark.

no credential

Nothing to read. The most common result on the open web. Calm, not an error.

someone else's

A valid credential or watermark from another party, SynthID included. Reported, never removed.

tampered

Credential present but the pixel hash no longer matches. Plain words, never red.

Tags, badges, toasts, notes

Explaineroursthird partyc2pa 2.2
Signed by Example StudioSigned by another partyNo credential
Signed · mark embeddedNo image files in that drop

A note is for honest caveats about the build or the data: mono, dashed, never coloured.

Form controls

Inputs are set in the mono face because what you type becomes data. Segmented controls for a choice of two to five. A range with a dot-matrix readout. Checkboxes with a title and a consequence.

Default
A credential needs a name to sign with.
Disabled · set by the hardware key
0.5

Figures

When the content is a number, show the number. One hero figure per view. Tiles for the rest, with the source in mono under each.

Images SynthID has marked10B+DeepMind, Oct 2025
Bits in a SynthID-O payload136per 512 × 512 image
EU marking duty, grandfathered02·12·26Digital Omnibus, May 2026

Charts

Thin marks, one axis, hairline grid, a legend for two or more series, direct labels only where the story is. Hover any mark for the exact value. Every chart has a table view. Text never wears a series colour.

The first two charts use reported figures. The rest are layout specimens with illustrative numbers and are labelled as such.

BarsA quantity that grows from zero. One series, so no legend.
050100150 bitsSynthID-O136TrustMarkdeprint mark96Stable SignatureTree-Ringpresence only
reported
Dot plotA score, not a quantity. Never bars.
00.250.50.751coin flipNo attack1.00Synonym substitutionCopy-paste, 10× dilutionCopy-paste, 20× dilution0.50
reported
LinesTwo series over time: legend present, endpoints direct-labelled, area wash at 10%, crosshair on hover.
0%10%20%30%40%50%20232024202520262027*AI, labelled · 41%Human, signed · 17%
AI-generated, labelledHuman-made, signed

* projection. Illustrative layout data, not a measurement.

Table view
YearAI labelled %Human signed %
202321
202452
2025114
2026249
20274117
illustrative
Small multiplesOne shape per method on shared axes, when a grouped bar would hide the comparison.
Durable CredentialJPEGCropShotRegenSynthID-ImageJPEGCropShotRegenTrustMarkJPEGCropShotRegenTree-RingJPEGCropShotRegenManifest aloneJPEGCropShotRegenProof overlayJPEGCropShotRegen
qualitative
Ring meterThe mark's own geometry carries the one number a scan ends on. One per result, never a row of them.
.9961
Mark present · detector did not abstainThe unfilled track is a lighter step of the accent. The paper-coloured tick marks the 0.95 threshold.
Stacked barsComposition, with a 2px paper gap between fills. Only the first segment is labelled inline.
0%25%50%75%100%Platform A22%Platform B18%Platform C61%Email92%
credential intactrecovered via marklost
illustrative
Heat gridOne hue, light to dark, with the value in every cell. Never a rainbow.
crop 0%crop 10%crop 25%crop 40%crop 60%q951.000.930.860.790.72q850.940.870.800.730.66q750.880.810.740.670.60q600.820.750.680.500.50q450.760.690.620.500.50
> .95.85–.95.70–.85< .70
illustrative

Do

Small multiples when two measures have different scales.

Don't

Dual axes. Two y-scales let any two lines be made to cross anywhere.

Do

Fixed hue order. Ours is always first, in the accent hue.

Don't

Cycle a palette. Removing a series must never repaint the survivors.

Tables

A matrix for qualitative comparisons, with coloured cells and words in them. A numeric table with right-aligned tabular figures. Both scroll inside their own frame on small screens.

MethodSurvives JPEGSurvives cropSurvives regenerationPayload (bits)
C2PA manifest alonestrippedlostlost—
TrustMarkyesyespartial~100
Tree-Ringyesyesmostly0

TableWords in every cell, so colour is never the only channel. A dash means not reported, never a zero.

Text furniture

Timeline rows with dot-matrix dates, a callout for the one sentence that matters, a pull quote, citations as superscript numbers. Emphasis is weight or colour, never italics.

02·08·26Article 50 transparency obligations apply.
02·12·26Marking becomes mandatory for grandfathered systems.

You need both. A credential for meaning, a watermark to find the credential again.

Provenance is a statement, not a lock.deprint principle 02

SynthID-Image has watermarked more than ten billion images and video frames across Google services.1

Layouts

Four page shapes cover everything we publish. The accent shows where the eye lands first. Breakpoints at 600, 800 and 860px; below them every grid becomes one column.

Sticky label

Section name stays put on the left while the detail scrolls. About, pricing, this page.

Essay

A single 66-character column with figures breaking out to full width. Research.

Stage and inspector

The photograph on the left, what it says on the right. Upload detail.

Full-width list

A table or list gets the whole column and scrolls inside its frame. Uploads.

Voice

deprint speaks like a good lab technician. Precise, calm, on the maker's side. It never sells fear and never promises a lock it can't deliver.

We say

"Signed by you. Found again after the platform stripped it."

Specific, past tense, about something that happened to the file.

We don't say

"Military-grade protection against AI theft."

Fear, superlatives, and a promise provenance cannot keep.

We say

"No credential found. This file can't tell you where it came from."

Honest about absence. Absence is information too.

We don't say

"Clean this image in one click."

We never describe removing anyone else's mark as cleaning.

Rules

Few, and firm.

Lowercase, always, one colourdeprint is never capitalised, never two-toned, never split by weight.
One accent per viewIt marks one thing on a screen: what is verified, or what is yours. It never colours a warning.
Third-party colour means "not ours"Other signers, other marks and other people's credentials take it. Never the accent, never red.
No italicsEmphasis is weight or the accent. No italic font is loaded.
Photographs stay untouchedNever tint, overlay or crop a maker's image. The stage behind a photograph is always dark.
No glow, no gradientFlat colour, hairline rules, real whitespace. One shadow, for things that float.