byDefaultHuman
Components

Scribble

Draw rough freehand scribbles over content for emphasis, redaction, or playful UI effects.

Scribbled text

Installation

package manager
npx shadcn add https://bydefaulthuman.fun/r/scribble.json

Props

PropTypeDefaultDescription
children
ReactNode
Content over which the scribble is drawn.
type
"redact" | "scrawl" | "circle" | "blob"
"scrawl"
Defines the scribble style: redaction block, cross-out scrawl, circle emphasis, or organic blob.
color
string
"currentColor"
Color used for stroke and fill of the scribble.
opacity
number
0.85
Controls transparency of the scribble overlay (affects fill and stroke).
padding
number
4
Extra spacing around the content for drawing the scribble.
theme
CrumbleTheme
Visual style variant (e.g., roughness, stroke width) passed to the rough renderer.
id
string
auto-generated
Optional stable identifier used to generate deterministic scribble shapes.
className
string
Additional CSS classes applied to the wrapper.
style
CSSProperties
Inline styles applied to the wrapper element.

Types

ScrawlRedactCircleBlob

Redaction

Sensitive content

Custom Color

Custom color

Opacity

Soft emphasis

Padding

Extra padding

In a Paragraph

This is a wrong idea that should be avoided.

Accessibility

Scribble is decorative and its SVG should not be the only place meaning lives. Keep the underlying content readable without the overlay and avoid using it to hide essential text.

Examples

import { Scribble } from "@/components/scribble";

<Scribble>
  <span className="text-base font-medium">Scribbled text</span>
</Scribble>;