Best For
hand-drawn / doodle style / sketch illustration
Hand-drawn lines, doodle illustrations, irregular shapes, and handwritten fonts. Like designs casually sketched in a notebook -- full of creativity and fun, conveying a warm and approachable handmade feel.
Best For
hand-drawn / doodle style / sketch illustration
Primary Move
Use dashed borders (border-dashed) to simulate hand-drawn lines
Watch Out
Do not use precise geometric shapes and right angles (rounded-none)
AI Implementation
Use the Hard Prompt by default to generate UI. Use the Design Spec to understand, modify, and review the style. Use the Creative Brief for early exploration.
Use this by default: copy it, append the concrete requirement, and let AI generate consistent production UI.
When to use
How to use
STYLEKIT_STYLE_REFERENCE
style_name: Hand-Drawn Doodle
style_slug: hand-drawn-doodle
style_source: /styles/hand-drawn-doodle
# Hard Prompt
## When To Use
Use this when you want AI to generate code with strict style consistency. It is the safest default for production UI.
## How To Use
- Copy the full prompt into ChatGPT, Claude, Cursor, or another coding assistant.
- Append the concrete product/page requirement after the prompt.
- After generation, check the forbidden rules and interaction states before accepting the output.
Strictly follow the style rules below and maintain consistency. No style drift allowed.
## Requirements
- Prioritize style consistency first, then creative extension.
- When conflicts arise, treat prohibitions as the highest priority.
- Self-check before output: verify colors, typography, spacing, and interactions still match this style.
## Style Rules
You are a Hand-Drawn Doodle design style frontend development expert. All generated code must strictly follow these constraints:
## Absolutely Forbidden
- Sharp geometric precision (rounded-none) - use rounded-sm instead
- Gradients of any kind (bg-gradient)
- Precise shadows (shadow-md, shadow-lg) - use hard offset shadows only
- Monospace fonts (font-mono)
- Solid borders (border-solid) - always use border-dashed
- Large border radius (rounded-lg and above)
- Dark backgrounds - always use paper-white
## Must Follow
- Paper-white background: bg-[#fffef5]
- Ink black text: text-[#2c2c2c]
- Dashed borders everywhere: border-2 border-dashed
- Sans-serif fonts only: font-sans
- Subtle rotations on elements for hand-drawn feel (rotate-[Ndeg])
- Marker colors: red #ff6b6b, teal #4ecdc4, yellow #ffd93d
- Offset shadows with marker colors: shadow-[Npx_Npx_0px_color]
- Notebook line backgrounds for sections
## Color Palette
Primary:
- Ink Black: #2c2c2c (text, borders)
- Paper White: #fffef5 (backgrounds)
- Red Marker: #ff6b6b (accents, highlights)
- Teal Marker: #4ecdc4 (shadows, accents)
- Yellow Marker: #ffd93d (highlights, tape)
## Special Elements
- Notebook line backgrounds (repeating-linear-gradient)
- Red margin line decorations
- Wavy underlines (text-decoration-style: wavy)
- Marker highlight effects
- Tape, pushpin, and paperclip decorations on cards
- Subtle element rotations for sketchy feel
- Spiral binding holes on left edge
- Coffee stain ring decorations
- Hand-drawn stars and squiggles via SVG
## Animation & Interaction Rules
- Stop-Motion Jitter: Hover creates hand-drawn tremor feel through tiny rotations and displacements, avoiding smooth mechanical motion.
- Ink Filling: May enhance border thickness or color contrast to simulate "re-inking", while maintaining border-dashed hand-drawn semantics.
- Offset Smudge: Only use hard-edge offset shadows; hover changes offset amount and marker pen color, like a second stroke.
- Paper Press: Active state flattens shadow with slight scale (e.g., scale-[0.98]), presenting finger-pressing-paper feedback.
---
# Hand-Drawn Doodle Design System
> Hand-drawn lines, doodle illustrations, irregular shapes, and handwritten fonts. Like designs casually sketched in a notebook -- full of creativity and fun, conveying a warm and approachable handmade feel.
## Design Philosophy
Hand-Drawn Doodle style simulates the texture of hand-crafted drawing, creating a warm, approachable, and creatively rich visual experience.
Core principles:
- Notebook paper: Cream-white background simulating real notebooks, with blue ruled lines and red margin lines
- Hand-drawn lines: Dashed borders simulating hand-drawn strokes, avoiding precise geometry
- Irregular forms: Subtle rotations and offsets create a handmade feel
- Marker pen colors: Red, teal, and yellow three-color marker pen accents
- Decorative elements: Tape, pushpins, paperclips, coffee stain rings, and other paper decorations
- Doodle accents: Casually drawn stars, squiggly lines, arrows, and other decorations
---
## Token Dictionary (exact class mapping)
### Border
```
Width: border-2
Color: border-[#2c2c2c]
Radius: rounded-sm
```
### Shadow
```
sm: shadow-[2px_2px_0px_#4ecdc4]
md: shadow-[3px_3px_0px_#4ecdc4]
lg: shadow-[4px_4px_0px_#4ecdc4]
hover: hover:shadow-[6px_6px_0px_#4ecdc4]
focus: focus:shadow-[2px_2px_0px_#ffd93d]
```
### Interaction
```
Hover translate: hover:translate-x-[1px] hover:translate-y-[1px]
Hover scale: (none)
Hover opacity: (none)
Transition: transition-all duration-200 ease-in-out
Active: active:translate-x-[2px] active:translate-y-[2px] active:shadow-none
```
### Typefaces
```
Heading: font-sans font-bold
Body: font-sans
Mono: font-mono
```
### Type scale
```
Hero: text-4xl md:text-6xl lg:text-8xl
H1: text-3xl md:text-5xl
H2: text-2xl md:text-4xl
H3: text-xl md:text-2xl
Body: text-sm md:text-base
Small: text-xs md:text-sm
```
### Spacing
```
Section: py-12 md:py-20 lg:py-28
Container: px-4 md:px-8 lg:px-12
Card: p-5 md:p-8
Gap sm: gap-3 md:gap-4
Gap md: gap-4 md:gap-6
Gap lg: gap-6 md:gap-10
```
### Color roles
```
Background primary: bg-[#fffef5]
Background secondary: bg-[#f8f7f0]
Background accent: bg-[#ff6b6b], bg-[#4ecdc4], bg-[#ffd93d]
Text primary: text-[#2c2c2c]
Text secondary: text-[#ff6b6b]
Text muted: text-[#2c2c2c]/45
Button primary: bg-[#2c2c2c] text-[#fffef5] shadow-[3px_3px_0px_#ff6b6b]
Button secondary: bg-[#ff6b6b] text-[#fffef5] shadow-[3px_3px_0px_#4ecdc4]
```
---
## [FORBIDDEN]
These classes are banned in this style. Check for them before returning code:
### Banned classes
- `bg-gradient-to-r`
- `bg-gradient-to-b`
- `bg-gradient-to-br`
- `shadow-md`
- `shadow-lg`
- `shadow-xl`
- `font-mono`
- `backdrop-blur`
- `backdrop-blur-sm`
- `rounded-none`
- `rounded-lg`
- `rounded-xl`
- `rounded-2xl`
- `rounded-full`
- `border-solid`
### Banned patterns
- matches `^bg-gradient-`
- matches `^shadow-(?:sm|md|lg|xl|2xl)$`
- matches `^font-mono$`
- matches `^backdrop-blur`
- matches `^rounded-(?:none|lg|xl|2xl|full)$`
### Why they are banned
- `bg-gradient-to-r`: Hand-Drawn Doodle uses flat marker colors only, no gradients
- `shadow-md`: Hand-Drawn Doodle uses hard offset shadows (shadow-[Npx_Npx_0px_color]) to mimic marker strokes
- `font-mono`: Hand-Drawn Doodle uses casual sans-serif fonts, never technical monospace
- `backdrop-blur`: Hand-Drawn Doodle is opaque notebook paper, no blur or glass effects
- `rounded-none`: Hand-Drawn Doodle uses rounded-sm for a slightly imprecise hand-drawn feel
- `rounded-lg`: Hand-Drawn Doodle uses rounded-sm only - larger radii look too polished
- `border-solid`: Hand-Drawn Doodle uses border-dashed to simulate hand-drawn line strokes
> WARNING: if your code contains any of the above, replace it before shipping.
---
## [REQUIRED]
### Every button must include
```
rounded-sm
font-sans font-semibold
border-2 border-dashed
transition-all duration-200 ease-in-out
```
### Every card must include
```
rounded-sm
bg-[#fffef5]
border-2 border-dashed border-[#2c2c2c]
shadow-[4px_4px_0px_#4ecdc4]
```
### Every input must include
```
rounded-sm
border-2 border-dashed border-[#2c2c2c]
bg-[#fffef5]
font-sans
focus:outline-none
```
---
## [COMPARE] Hand-Drawn Doodle wrong vs right
The wrong examples below stand for generic library defaults that were never adapted to this style. Do not read them as visual suggestions.
### Button
[WRONG] **Wrong** (generic component library default, do not copy):
```html
<button class="{GENERIC_LIBRARY_BUTTON_DEFAULT}">
Click me
</button>
```
[CORRECT] **Right** (uses this style's tokens):
```html
<button class="rounded-sm font-sans font-semibold border-2 border-dashed transition-all duration-200 ease-in-out bg-[#2c2c2c] text-[#fffef5] shadow-[3px_3px_0px_#ff6b6b]">
Click me
</button>
```
### Card
[WRONG] **Wrong** (generic card, not adapted to this style):
```html
<div class="{GENERIC_LIBRARY_CARD_DEFAULT}">
<h3>{TITLE}</h3>
</div>
```
[CORRECT] **Right** (uses this style's card tokens):
```html
<div class="rounded-sm bg-[#fffef5] border-2 border-dashed border-[#2c2c2c] shadow-[4px_4px_0px_#4ecdc4] p-5 md:p-8">
<h3 class="font-sans font-bold text-xl md:text-2xl">{TITLE}</h3>
</div>
```
### Input
[WRONG] **Wrong** (generic input, not adapted to this style):
```html
<input class="{GENERIC_LIBRARY_INPUT_DEFAULT}" />
```
[CORRECT] **Right** (uses this style's input tokens):
```html
<input class="rounded-sm border-2 border-dashed border-[#2c2c2c] bg-[#fffef5] font-sans focus:outline-none" placeholder="{PLACEHOLDER}" />
```
---
## [TEMPLATES] Hand-Drawn Doodle page skeletons
These skeletons use this style's tokens only. Replace `{PLACEHOLDER}` values, but keep every token in place:
### Navigation
```html
<nav class="bg-[#fffef5] text-[#2c2c2c] border-2 border-[#2c2c2c] px-4 md:px-8 lg:px-12">
<div class="flex items-center justify-between max-w-6xl mx-auto gap-4 md:gap-6">
<a href="/" class="font-sans font-bold text-xl md:text-2xl">
{LOGO_TEXT}
</a>
<div class="flex gap-4 md:gap-6 font-sans text-xs md:text-sm">
{NAV_LINKS}
</div>
</div>
</nav>
```
### Hero section
```html
<section class="bg-[#ff6b6b] text-[#2c2c2c] py-12 md:py-20 lg:py-28 px-4 md:px-8 lg:px-12">
<div class="max-w-4xl mx-auto">
<h1 class="font-sans font-bold text-4xl md:text-6xl lg:text-8xl">
{HEADLINE}
</h1>
<p class="font-sans text-sm md:text-base max-w-xl">
{SUBHEADLINE}
</p>
<button class="rounded-sm font-sans font-semibold border-2 border-dashed transition-all duration-200 ease-in-out bg-[#2c2c2c] text-[#fffef5] shadow-[3px_3px_0px_#ff6b6b]">
{CTA_TEXT}
</button>
</div>
</section>
```
### Card grid
```html
<section class="bg-[#fffef5] text-[#2c2c2c] py-12 md:py-20 lg:py-28 px-4 md:px-8 lg:px-12">
<div class="max-w-6xl mx-auto">
<h2 class="font-sans font-bold text-2xl md:text-4xl">{SECTION_TITLE}</h2>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 md:gap-6">
<!-- Card template - repeat for each card -->
<div class="rounded-sm bg-[#fffef5] border-2 border-dashed border-[#2c2c2c] shadow-[4px_4px_0px_#4ecdc4] p-5 md:p-8">
<h3 class="font-sans font-bold text-xl md:text-2xl">{CARD_TITLE}</h3>
<p class="font-sans text-sm md:text-base text-[#2c2c2c]/45">{CARD_DESCRIPTION}</p>
</div>
</div>
</div>
</section>
```
### Form input
```html
<input class="rounded-sm border-2 border-dashed border-[#2c2c2c] bg-[#fffef5] font-sans focus:outline-none" placeholder="{PLACEHOLDER}" />
```
### Footer
```html
<footer class="bg-[#f8f7f0] text-[#ff6b6b] py-12 md:py-20 lg:py-28 px-4 md:px-8 lg:px-12">
<div class="max-w-6xl mx-auto">
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 md:gap-10">
<div>
<span class="font-sans font-bold text-xl md:text-2xl">{LOGO_TEXT}</span>
<p class="font-sans text-xs md:text-sm">{TAGLINE}</p>
</div>
<div>
<h4 class="font-sans font-bold text-xl md:text-2xl">{COLUMN_TITLE}</h4>
<ul class="font-sans text-xs md:text-sm">
{FOOTER_LINKS}
</ul>
</div>
</div>
</div>
</footer>
```
---
## [CHECKLIST] Hand-Drawn Doodle post-generation self check
**Before returning code, verify every token and rule below. Fix any violation before delivering:**
### Token check
- [ ] Button includes: `rounded-sm font-sans font-semibold border-2 border-dashed transition-all duration-200 ease-in-out`
- [ ] Card includes: `rounded-sm bg-[#fffef5] border-2 border-dashed border-[#2c2c2c] shadow-[4px_4px_0px_#4ecdc4]`
- [ ] Input includes: `rounded-sm border-2 border-dashed border-[#2c2c2c] bg-[#fffef5] font-sans focus:outline-none`
### Forbidden check
- [ ] Not using `bg-gradient-to-r`
- [ ] Not using `bg-gradient-to-b`
- [ ] Not using `bg-gradient-to-br`
- [ ] Not using `shadow-md`
- [ ] Not using `shadow-lg`
- [ ] Not using `shadow-xl`
- [ ] Not using `font-mono`
- [ ] Not using `backdrop-blur`
### Style rule check
- [ ] Use dashed borders (border-dashed) to simulate hand-drawn lines
- [ ] Use cream paper color #fffef5 background
- [ ] Use ink black #2c2c2c as primary color
- [ ] Add subtle rotation (rotate) to simulate hand-drawn irregularity
- [ ] Use marker pen colors: red #ff6b6b, teal #4ecdc4, yellow #ffd93d
### Style drift check
- [ ] Does not violate: Do not use precise geometric shapes and right angles (rounded-none)
- [ ] Does not violate: Do not use gradient effects
- [ ] Does not violate: Do not use precise shadows (shadow-md, etc.)
- [ ] Does not violate: Do not use monospace fonts
- [ ] Does not violate: Do not use solid borders (border-solid)
### Delivery check
- [ ] Responsive layout holds on phone, tablet and desktop with no horizontal overflow
- [ ] Every interactive element has a visible focus state, an accessible name and a reduced-motion path
- [ ] Text contrast meets WCAG AA and colour alone never carries state
- [ ] The result is still recognizable at a glance as Hand-Drawn Doodle
## Absolute Bans (Match and Refuse)
If any of the following patterns appear, it is a style violation — rewrite without exception.
- use precise geometric shapes and right angles (rounded-none)
- use gradient effects
- use precise shadows (shadow-md, etc.)
- use monospace fonts
- use solid borders (border-solid)
- use large border radius (rounded-lg and above)
## Self-Check (Verify Before Shipping)
If any item fails, the style has drifted — fix before shipping.
- [ ] No purple-to-blue gradients
- [ ] No overused fonts (Inter, Roboto, Geist, Fraunces, Plus Jakarta Sans)
- [ ] No nested cards (cards inside cards)
- [ ] No gray text on colored backgrounds
- [ ] Body text contrast meets WCAG AA (>= 4.5:1)
- [ ] No bounce or elastic easing curves
- [ ] Animations have a prefers-reduced-motion fallback
- [ ] Body text line length capped at 65-75 characters
- [ ] No side-stripe accent borders (border-left/right > 1px)
- [ ] No gradient text (background-clip: text)
- [ ] No glassmorphism used as the default surface treatment
- [ ] No tiny uppercase tracked eyebrow labels above every section heading
- [ ] do not use precise geometric shapes and right angles (rounded-none)
- [ ] do not use gradient effects
- [ ] do not use precise shadows (shadow-md, etc.)
- [ ] do not use monospace fonts
- [ ] do not use solid borders (border-solid)More prompt libraries: All UI Prompts · Tailwind UI Prompts · Dark Mode UI Prompts
Component Templates
Hand-Drawn Doodle 风格按钮 - 虚线边框标记笔阴影
Frontend Readiness
This layer tracks whether the style is ready for real websites: theme modes, state feedback, keyboard access, and performance constraints.
Overall
51%
Fallback
Dark Mode
0%
MissingUI States
79%
PartialMotion
70%
PartialA11y
70%
PartialPerformance
35%
FallbackButton
Default / Hover / Focus Visible / Active / Disabled
Input
Default / Hover / Focus Visible / Disabled / Error
Card
Default / Hover / Focus Visible / Loading / Skeleton
Form
Default / Focus Visible / Disabled / Loading / Error
FAQ
/* Hand-Drawn Doodle Global Styles */
:root {
--doodle-ink: #2c2c2c;
--doodle-paper: #fffef5;
--doodle-red: #ff6b6b;
--doodle-teal: #4ecdc4;
--doodle-yellow: #ffd93d;
}
/* Notebook lines background */
.doodle-lines {
background-image: repeating-linear-gradient(
transparent,
transparent 31px,
rgba(168, 200, 232, 0.35) 31px,
rgba(168, 200, 232, 0.35) 32px
);
}
/* Red margin line */
.doodle-margin::before {
content: "";
position: absolute;
left: 120px;
top: 0;
bottom: 0;
width: 1px;
background-color: rgba(255, 107, 107, 0.2);
}
/* Squiggly underline */
.doodle-underline {
text-decoration: underline;
text-decoration-style: wavy;
text-decoration-color: var(--doodle-red);
text-underline-offset: 4px;
}
/* Marker highlight */
.doodle-highlight {
background: linear-gradient(
104deg,
transparent 0.9%,
rgba(255, 217, 61, 0.3) 2.4%,
rgba(255, 217, 61, 0.2) 97.1%,
transparent 98.2%
);
padding: 0 4px;
}
/* Tape decoration */
.doodle-tape {
position: relative;
}
.doodle-tape::before {
content: "";
position: absolute;
top: -8px;
left: 50%;
transform: translateX(-50%) rotate(-3deg);
width: 60px;
height: 20px;
background-color: rgba(255, 217, 61, 0.4);
border-radius: 1px;
}
/* Sketchy rotation */
.doodle-tilt-left { transform: rotate(-1.5deg); }
.doodle-tilt-right { transform: rotate(1.5deg); }
/* Spiral binding holes */
.doodle-binding-holes::before {
content: "";
position: absolute;
left: 50px;
top: 0;
bottom: 0;
width: 16px;
background-image: radial-gradient(circle, transparent 5px, transparent 5px),
repeating-linear-gradient(
transparent,
transparent 60px,
rgba(44, 44, 44, 0.08) 60px,
rgba(44, 44, 44, 0.08) 76px,
transparent 76px
);
}IDE Integration
Download configuration files for AI coding assistants to generate code in this style.
Style Pack
Get complete machine-readable style assets including design tokens, Tailwind presets, CSS variables, and shadcn/ui themes.
Metadata
Style metadata including version information
Design Tokens
Compatible with Figma / Style Dictionary / Tokens Studio
Tailwind Preset
Tailwind CSS theme preset, import directly in config
Global CSS
CSS variables and base styles
shadcn Theme
shadcn/ui theme configuration
CSS Variables
Pure CSS variables, works with any project
SKILL.md
Loadable skill pack for Cursor / Claude Code / VS Code
Hand-Drawn Doodle style simulates the texture of hand-crafted drawing, creating a warm, approachable, and creatively rich visual experience.
WCAG 2.1 compliance analysis based on color contrast and typography readability.
Overall Score
Grade: C - Fair
Contrast Ratios
| Context | Colors | Ratio | AA | AAA |
|---|---|---|---|---|
| Text on background | /#2c2c2c / #fffef5 | 13.8:1 | ||
| Secondary text on background | /#ff6b6b / #fffef5 | 2.74:1 | ||
| Muted text on background | /#2c2c2c / #fffef5 | 13.8:1 | ||
| Text on secondary background | /#2c2c2c / #f8f7f0 | 13:1 | ||
| Secondary text on secondary | /#ff6b6b / #f8f7f0 | 2.58:1 | ||
| Button primary | /#fffef5 / #2c2c2c | 13.8:1 | ||
| Text on accent 1 | /#2c2c2c / #ff6b6b | 5.03:1 | ||
| Alt text on accent 1 | /#ff6b6b / #ff6b6b | 1:1 | ||
| Text on accent 2 | /#2c2c2c / #4ecdc4 | 7.22:1 | ||
| Alt text on accent 2 | /#ff6b6b / #4ecdc4 | 1.43:1 | ||
| Text on accent 3 | /#2c2c2c / #ffd93d | 10.14:1 | ||
| Alt text on accent 3 | /#ff6b6b / #ffd93d | 2.01:1 |
Readability
Score
87/100
Font Size
text-sm md:text-base
Font Weight
font-sans font-bold
Line Height
default
Scoring is based on WCAG 2.1 standards. AA requires 4.5:1 contrast for normal text, 3:1 for large text; AAA requires 7:1 for normal text, 4.5:1 for large text.