Hairline figure preview

Hairline figure

33 isometric line drawings that answer the pointer: pillars rise, app layers part, a terminal scrolls back, a commit graph lifts its history. Zero dependencies, one shared animation loop, light and dark.

  • Group
    Interactive illustrations
  • Origin
    Copied · Hairline · source
  • License
    MIT
  • Added
    Oct 23
npx shadcn@latest add @deank/hairline-figure

The registry stays private. Install from the repo with a GitHub token — see the README.

Usage

import { HairlineFigure } from "@/registry/blocks/hairline-figure/hairline-figure";

<HairlineFigure figure={/* … */} />

Props

PropTypeDefaultDescription
figureHairlineFigureNameWhich drawing. "terrain" (pillars), "exploded" (app layers), "terminal", "branches", "hub", "plot" and "query" suit SaaS UI best.
intensity?number0.5How strongly it answers the pointer, 0 (subtle) to 1 (strong).
theme?"auto" | "light" | "dark""auto""auto" follows data-theme="dark" or .dark on an ancestor, then color-scheme.
label?stringAccessible name. Each figure has an English description by default.
play?booleanfalseWalk through its answer on its own until the pointer or focus arrives. Rests under reduced motion.
onRead?(text: string) => voidThe figure's caption whenever it changes, such as "03" or "gap 28.0".
plate?stringColour the figure's plates are filled with. Match it to what the figure sits on.
stroke?numberStroke width in CSS pixels at any size.

When to use

Empty states, feature and bento cards, docs and hero sections that need a calm illustration that reacts to the pointer, for developer and SaaS products (terrain, exploded, terminal, branches, hub, plot, query, stack).

When not to use

Data that must be read precisely (use a chart); photographic or brand illustration; anything inside a dense task flow where motion distracts.

Related

Empty state · Layer stack · Integration grid