Hand-drawn

Hand-drawn booking

A hand-drawn call booking: a real form in a sketched frame — days and times as capsule radio buttons (taken ones crossed out), phone in a handwritten frame, a checkbox with a two-stroke tick, an ink-filled button. Without action it shows “done” in place.

React + Tailwind, shadcn-compatible: press “Copy for AI” and your Cursor or Claude Code agent installs it with the shadcn CLI.

What you can change

  • all labels — eyebrow, title, description, submitLabel — days, slots, hint and footnote
  • action — where to submit; without it doneLabel is shown
  • accent and ink, rough and boil, tone

A link for your AI agent: preview, code and instructions.

Preview

1440pxHost theme
Hand-drawn booking — A hand-drawn call booking: a real form in a sketched frame — days and times as capsule radio buttons (taken ones crossed out), phone in a handwritten frame, a checkbox with a two-stroke tick, an ink-filled button. Without action it shows “done” in place.

Use it with AI

  1. 1. Copy the link.
  2. 2. Write to your agent in your own words and drop the link into the sentence.
  3. 3. The agent opens the link and installs the component from the registry.
AI
1Pick it here

put this on the home page as the hero:

https://vibeui.club/c/sketch-021?lang=en&theme=dark

2Paste into the chat
3Get it in your project

Not sure where to paste it? Step-by-step guide

Show the full instructions

What the link says, spelled out. Use it when your agent cannot open links — paste this text instead.

Loading…

How to use

<Sketch021
  eyebrow="Booking"
  title="Pick a day, I will call you"
  description="Fifteen minutes on the phone: the idea and the place."
  days={[{ label: "Today", note: "14 May" }, { label: "Tomorrow", note: "15 May" }]}
  slots={[{ time: "10:00" }, { time: "11:00", taken: true }, { time: "12:00" }]}
  submitLabel="Book a call"
  action="/api/book"
/>

A sample call. The agent installs the component itself from the registry via the “Copy for AI” link.

Settings

Theme
tone · default: auto
Title
title · default: Pick a day, I will call you
Button
submitLabel · default: Book a call
Hand
rough · default: loose
Boil
boil · default: soft
Line
accent · default: theme colour
Text
ink · default: theme colour

Used in scenarios

FAQ

How do I add Hand-drawn booking with Cursor or Claude Code?
Press “Copy for AI” on this page and paste it into your agent's chat. The instruction contains the shadcn CLI install command, the dependencies and what to keep, so the agent installs this exact component instead of recreating a lookalike.
What does Hand-drawn booking depend on?
No npm packages beyond React and Tailwind CSS.
What can I change in Hand-drawn booking?
Adapt: all labels — eyebrow, title, description, submitLabel — days, slots, hint and footnote; action — where to submit; without it doneLabel is shown; accent and ink, rough and boil, tone. Keep as installed: capsule radio buttons with the chosen one filled and taken ones crossed out — instead of plain buttons; the drawn sheet frame with shadow and the slight sheet rotation with level content; the two-stroke tick on consent and the field line thickening on focus.
Is Hand-drawn booking free?
The preview is open to everyone; the source is available with a PRO subscription.

For developers

npx shadcn@latest add https://vibeui.club/r/pro/sketch-021.json

This command needs a signed link: sign in and open “Component source” below — it issues a working link valid for 30 minutes. All install options

Technical notes

One file, zero dependencies, “use client”. Layout follows its own width: a column, from 52rem text on the left and the form on the right. The form is a <form> inside Frame (a span measured by ResizeObserver, a rectPoints outline with shadow), the sheet rotated 0.6° with the content rotated back. Days and times are <label>s with an invisible <input type=radio> and a Frame capsule; the chosen one is filled, a taken one is disabled and crossed with a diagonal stroke. The phone is an <input type=tel> in a Frame whose line thickens on focus. The checkbox is a hidden input and a Frame square with a tick appearing on :checked. The button is a filled Frame with a <button type=submit>. With empty action submit is intercepted and doneLabel is shown; with action the form POSTs. Three boil frames via @property --frame. Neucha and Caveat via <link precedence>, palette --vibeui-sketch-021-* with light-dark.

Tags

  • sketch
  • hand-drawn
  • handwritten
  • doodle
  • rough
  • boil
  • contact
  • booking
  • form
  • schedule
  • slots
  • call
Component source

The same file your agent installs. Here in case you would rather copy it by hand.

Loading…