Vibary.ai
← All UI styles

Risograph Duotone

Two inks, flat and slightly off-register, printed on absorbent stock.

RisoeditorialCulture and event productsZines and small pressPlayful editorial

Construction · Riso

Two inks printed one pass at a time and never quite registered: fills sit a pixel or two off their outlines, and the overlap is visible.

Concept shot — generated from this style's terms, the way a designer would present it. The specimen below is the contract: rendered from the exact tokens on this page.

Every style renders this same screen, so the only thing changing between two of them is the style. The component above is the file below, running.

Prompt

Design this interface in the Risograph Duotone style. Exactly two inks on paper, laid down flat with visible grain. Depth is faked by overprinting rather than by shadow, and nothing is anti-aliased into a gradient.

The numbers in this prompt are printed from the tokens below, so it cannot drift from what the specimen renders.

What carries the look

  • two ink duotone
  • visible paper grain
  • flat overprint
  • off-register feel

What this style refuses

  • gradients
  • more than two inks
  • soft shadows
  • photographic imagery

The refusals are the half that keeps generated interfaces from converging — a prompt that only says what to add gets the default look.

Tokens

Palette

RoleLightDark
Background#f3efe4#14120f
Surface#faf7ee#1b1815
Border#d6cdb8#332e27
Text#241f1c#f0ebdf
Muted text#63594c#a2988a
Accent#1f4fd8#7f9bff
On accent#faf7ee#0a0f26

Shape and type

Radius0 / 2 / 4 px
Border1px solid
Shadownone
DisplayHelvetica Neue
BodyHelvetica Neue
Monoui-monospace
Type scale10 · 12 · 14 · 16 · 21 · 30 px
Weights500 / 700 / 700
Line height1.45
Tracking0em
Spacing4px grid · regular
Surfacegrain
Accentblock
Separatorhairline
Labelsuppercase
Blurnone

Measured contrast — body 14.19:1 light, 15.72:1 dark; secondary text 5.97:1 and 6.58:1. Every pair clears WCAG AA in both themes, checked on each build.

Specimen · Specimen.tsx

import type { CSSProperties } from "react";

/**
 * Vibary · Risograph Duotone
 *
 * Two inks, flat and slightly off-register, printed on absorbent stock.
 *
 * One complete product screen, rendered from the token object below —

Nearby styles