{
  "palette": {
    "ground": "#EFE8D9",
    "light": "#2A2420",
    "signal": "#B5472A"
  },
  "recommendations": [
    {
      "name": "Paper texture",
      "why": "A small press makes books, so the ground should feel like the sheet the poems are printed on: warm stock with fine fibres and tooth."
    },
    {
      "name": "Halftone",
      "why": "Halftone dots point back to printing and zines. Kept faint in the ink colour, it suits a press that sees itself as part of a print tradition."
    },
    {
      "name": "Stippled gradients",
      "why": "Hand-placed dots that thin out read as handmade and patient, which fits a small press's attention to the craft of the page."
    }
  ],
  "texture": "Paper texture",
  "kind": "canvas",
  "code": "<canvas class=\"texture\" width=\"640\" height=\"400\"></canvas>\n<script>\n(function(){\nvar cv=document.querySelector(\"canvas.texture\"),c=cv.getContext(\"2d\"),W=cv.width,H=cv.height;\nvar s=20240917;function r(){s|=0;s=s+0x6D2B79F5|0;var t=Math.imul(s^s>>>15,1|s);t=t+Math.imul(t^t>>>7,61|t)^t;return((t^t>>>14)>>>0)/4294967296}\nc.fillStyle=\"#EFE8D9\";c.fillRect(0,0,W,H);\nvar g=c.createRadialGradient(W*.2,H*.15,0,W*.2,H*.15,W*.6);g.addColorStop(0,\"rgba(255,252,244,.4)\");g.addColorStop(1,\"rgba(255,252,244,0)\");c.fillStyle=g;c.fillRect(0,0,W,H);\ng=c.createRadialGradient(W*.85,H*.9,0,W*.85,H*.9,W*.6);g.addColorStop(0,\"rgba(42,36,32,.05)\");g.addColorStop(1,\"rgba(42,36,32,0)\");c.fillStyle=g;c.fillRect(0,0,W,H);\nc.lineWidth=.8;\nfor(var i=0;i<1400;i++){var x=r()*W,y=r()*H;c.strokeStyle=r()<.03?\"rgba(181,71,42,.06)\":\"rgba(42,36,32,.07)\";c.beginPath();c.moveTo(x,y);c.quadraticCurveTo(x+(r()-.5)*20,y+(r()-.5)*6,x+(r()-.5)*44,y+(r()-.5)*8);c.stroke()}\nvar d=c.getImageData(0,0,W,H),p=d.data;\nfor(var j=0;j<p.length;j+=4){var n=(r()-.5)*14;p[j]+=n;p[j+1]+=n;p[j+2]+=n}\nc.putImageData(d,0,0);\n})();\n</script>",
  "size_bytes": 1097,
  "contrast": "#2A2420 on the plain #EFE8D9 ground comes out at about 12.5:1. The fibres are the text colour at 7% alpha, the grain shifts lightness by only ±7 levels, and the shadow wash is at most 5%. The darkest areas stay near the ground's lightness and still clear 10:1, well above WCAG AA's 4.5:1, so no scrim is needed.",
  "warning": null
}
