E-ink / low-contrast calm: UI design prompt

Palette, type rules and a pasteable prompt for e-ink / low-contrast calm. Also called e-ink UI, calm technology design, low-contrast UI, paper display style, reader mode, Kindle style. 2007 (Kindle), design trend 2020 onward (calm tech, Readwise, Reader apps, Daylight computer).

Traits

  • greys on warm grey, like an e-paper display: no pure white, no pure black
  • contrast kept moderate (5-7:1), never harsh; no saturated colour except one dim accent
  • reading typography: serif body at 18-20px, long measure, generous leading
  • no shadows, no gradients, minimal borders in a slightly darker grey
  • controls are simple outlined shapes; states shown by fill inversion
  • deliberately slow or no animation, mimicking e-ink refresh (instant swaps or 0ms)
  • dithering or subtle halftone on images to mimic the display

Palette

#dedcd6 paper grey, #2f2f2d ink, #7a7975 muted, #b9b7b1 line, #c9c7c0 surface, #4a5d4f one dim green accent

Type

Literata, Bookerly-alike "Source Serif 4", Newsreader or Charter (free) for body at 19px line-height 1.7; Karla or Public Sans at 14px for UI; headings 500 at 28-36px

Do

  • keep the palette to 6 greys plus one dim accent and check every pair sits between 5:1 and 8:1 contrast
  • make transitions 0ms (instant swap) or a single 200ms fade; no easing curves, no movement
  • convert images to greyscale and apply a dither or 2px halftone so they belong to the surface

Don't

  • do not use white or black; the display look depends on the mid-grey paper
  • do not add hover effects beyond an underline; e-ink has no hover
  • do not use colour for state; use inversion (dark fill, light text)

Known for it: Kindle, Kobo, reMarkable, Readwise Reader (partial), Daylight DC-1 marketing

CSS seed
:root {
  --bg: #dedcd6;
   --fg: #2f2f2d;
   --muted: #7a7975;
   --line: #b9b7b1;
   --surface: #c9c7c0;
   --accent: #4a5d4f;
   --radius: 2px;
   --font: 'Literata',serif;
   --font-ui: 'Public Sans',sans-serif
}
Prompt

Build the site in e-ink low-contrast calm style. Background #dedcd6, text #2f2f2d, muted #7a7975, lines #b9b7b1, raised surface #c9c7c0, one dim accent #4a5d4f for links. No white, no black, no saturated colour, no gradients, no shadows. Fonts: Literata 400 at 19px, line-height 1.7, max-width 68ch for body; Literata 500 at 34/26px for headings; Public Sans 400 at 14px for nav and controls. Layout: single centred column, 32px padding, 72px between sections, 1px #b9b7b1 rules. Buttons: 1px #2f2f2d outline, transparent, radius 2px, 40px tall; active or selected state inverts to #2f2f2d fill with #dedcd6 text; no hover effect except a 1px underline on links. Inputs: same outline, no focus glow, focus shown by a 2px outline. Images greyscale with an ordered-dither look (CSS filter grayscale(1) contrast(1.1) plus a 2px halftone pattern overlay at 30%). Transitions: 0ms swaps; the only animation is a 200ms fade on load. Icons 1px stroke, 20px.
For design.md, .cursorrules or AGENTS.md
## Design direction
Build the site in e-ink low-contrast calm style. Background #dedcd6, text #2f2f2d, muted #7a7975, lines #b9b7b1, raised surface #c9c7c0, one dim accent #4a5d4f for links. No white, no black, no saturated colour, no gradients, no shadows. Fonts: Literata 400 at 19px, line-height 1.7, max-width 68ch for body; Literata 500 at 34/26px for headings; Public Sans 400 at 14px for nav and controls. Layout: single centred column, 32px padding, 72px between sections, 1px #b9b7b1 rules. Buttons: 1px #2f2f2d outline, transparent, radius 2px, 40px tall; active or selected state inverts to #2f2f2d fill with #dedcd6 text; no hover effect except a 1px underline on links. Inputs: same outline, no focus glow, focus shown by a 2px outline. Images greyscale with an ordered-dither look (CSS filter grayscale(1) contrast(1.1) plus a 2px halftone pattern overlay at 30%). Transitions: 0ms swaps; the only animation is a 200ms fade on load. Icons 1px stroke, 20px.

## Tokens
:root { --bg:#dedcd6; --fg:#2f2f2d; --muted:#7a7975; --line:#b9b7b1; --surface:#c9c7c0; --accent:#4a5d4f; --radius:2px; --font:'Literata',serif; --font-ui:'Public Sans',sans-serif }

Keep hover and focus-visible states on every interactive element. Do not add a CSS framework.