Hand-drawn / sketch: UI design prompt

Palette, type rules and a pasteable prompt for hand-drawn / sketch. Also called sketchy UI, doodle design, hand-drawn website, wobbly UI, Excalidraw style. 2010 (Balsamiq wireframes), 2020 onward (Excalidraw, tldraw, Notion doodles).

Traits

  • lines that wobble: SVG paths with slight roughness, double-stroked borders
  • handwriting fonts for headings and labels; a clean sans for long text
  • marker or pencil textures, hatching fills instead of solid colour
  • arrows, circles, underlines and asterisks drawn by hand around content
  • paper white or light grey background, ink black or dark blue lines
  • a few marker colours: red, blue, yellow highlighter
  • motion: lines draw themselves in (stroke-dashoffset), elements wiggle slightly on hover

Palette

#fffdf7 paper, #1e1e1e ink, #1971c2 marker blue, #e03131 marker red, #ffec99 highlighter, #868e96 pencil grey

Type

Virgil (Excalidraw font, free), Caveat, Patrick Hand, Architects Daughter or Gochi Hand for headings and labels at 24-48px; Nunito or Karla at 16-17px for body

Do

  • draw borders as inline SVG rects with a rough filter (feTurbulence + feDisplacementMap, scale 2-3) or use rough.js-style paths
  • use hatching (diagonal repeating-linear-gradient at 45deg, 2px lines) as the fill for highlighted areas
  • animate stroke-dashoffset so key lines draw in over 600-900ms

Don't

  • do not set paragraphs in a handwriting font
  • do not use perfectly straight CSS borders next to sketchy elements; it breaks the illusion
  • do not add drop shadows; use a second offset stroke instead

Known for it: Excalidraw, tldraw, Balsamiq, Notion marketing doodles, XKCD

CSS seed
:root {
  --bg: #fffdf7;
   --fg: #1e1e1e;
   --accent: #1971c2;
   --accent2: #e03131;
   --highlight: #ffec99;
   --radius: 8px;
   --stroke: 2px;
   --font: 'Nunito',sans-serif;
   --font-hand: 'Caveat',cursive
}
Prompt

Build the site in hand-drawn sketch style. Background #fffdf7, ink #1e1e1e, marker blue #1971c2, marker red #e03131, highlighter #ffec99, pencil grey #868e96. Fonts: Caveat 700 for headings at 48/34/24px and for all labels and buttons, Nunito 400 at 17px line-height 1.6 for body. Borders on cards and buttons are inline SVG rectangles with a 2px ink stroke, slightly rounded (rx 8), passed through an SVG filter (feTurbulence baseFrequency 0.02 plus feDisplacementMap scale 3) so edges wobble; draw a second stroke offset 2px at 50% opacity for the pencil double-line. Highlight key phrases with a hand-drawn #ffec99 underline (SVG path, 8px thick, slightly uneven). Add hand-drawn arrows and circled annotations in #e03131 pointing at the call to action. Fills use 45deg hatching (repeating-linear-gradient, 2px #1e1e1e lines at 20% opacity). No box-shadow, no gradients. Motion: lines draw in via stroke-dashoffset over 800ms on scroll; buttons wiggle 1deg on hover.
For design.md, .cursorrules or AGENTS.md
## Design direction
Build the site in hand-drawn sketch style. Background #fffdf7, ink #1e1e1e, marker blue #1971c2, marker red #e03131, highlighter #ffec99, pencil grey #868e96. Fonts: Caveat 700 for headings at 48/34/24px and for all labels and buttons, Nunito 400 at 17px line-height 1.6 for body. Borders on cards and buttons are inline SVG rectangles with a 2px ink stroke, slightly rounded (rx 8), passed through an SVG filter (feTurbulence baseFrequency 0.02 plus feDisplacementMap scale 3) so edges wobble; draw a second stroke offset 2px at 50% opacity for the pencil double-line. Highlight key phrases with a hand-drawn #ffec99 underline (SVG path, 8px thick, slightly uneven). Add hand-drawn arrows and circled annotations in #e03131 pointing at the call to action. Fills use 45deg hatching (repeating-linear-gradient, 2px #1e1e1e lines at 20% opacity). No box-shadow, no gradients. Motion: lines draw in via stroke-dashoffset over 800ms on scroll; buttons wiggle 1deg on hover.

## Tokens
:root { --bg:#fffdf7; --fg:#1e1e1e; --accent:#1971c2; --accent2:#e03131; --highlight:#ffec99; --radius:8px; --stroke:2px; --font:'Nunito',sans-serif; --font-hand:'Caveat',cursive }

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