AhaSlides Design
v0.52.0React · Vue · Lit

Components · General

Illustration

One spot-art set, called by name — 20 multi-colour illustrations imported from Figma, rendered by the shared <aha-illustration>, never inline SVG.

Examples

Size
Illustration
Smart widget · one live <aha-illustration> — the Size / Illustration controls below drive it
Multi-colour spot art · each keeps its OWN palette (not currentColor) — call any by name
empty-presentation-list
empty-templates
onboarding-business
onboarding-education
referral
error-ai-chatbot
Plan tiers · a compact illustration heads each card
edu
essential
pro
enterprise
Size · one edge in px; the other edge follows the art's aspect ratio
56
96
128
Unknown name · a visible dashed error box (the --aha-color-error token) — never a silent blank
Every illustration is called by name from the shared registry — pure-SVG illustrations imported from Figma, no inline SVG at the call site. Browse and copy any name in the Illustration library →. Multi-colour art keeps its own palette; size by a single edge and the aspect ratio is fixed by the source. Raster-backed art is intentionally excluded so the library stays pure-SVG.

API

PropTypeDefaultNotes
namestringRegistry illustration name, e.g. empty-team, onboarding-business, plan-pro
sizenumber (px)art intrinsicLonger edge in px; the shorter edge scales to preserve aspect. Omit to use the art's own pixels
labelstringAccessible name (role=img). Omit for a decorative illustration
decorativebooleanfalsearia-hidden — for art that only repeats adjacent text

Install

# .npmrc — once: point the @ahaslides-product scope at GitHub Packages
@ahaslides-product:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}   # a GitHub token with read:packages

npm i @ahaslides-product/design
import '@ahaslides-product/design/tokens.css';   // once, at the app root
import '@ahaslides-product/design/illustrations';   // registers <aha-illustration>

Agent feed for this component (absolute, fetchable anywhere): illustration.agent.json · illustration.md · illustration.llms.txt

When to use

When to use
  • empty-* illustration — an empty state — no presentations, empty trash, no templates, no team yet
  • onboarding-* / plan-* illustration — onboarding choice cards and plan-tier cards (edu / essential / pro / enterprise)
  • error-* / not-found illustration — a full-surface error or 404 state, paired with a recovery action
Call by name from the registry — never inline an <svg>, never paste a raster PNG. An illustration is multi-colour art: it does NOT follow currentColor (that is <aha-icon>). Size it by a single edge; the aspect ratio is fixed by the source. If an illustration is genuinely missing, add the SVG under illustrations/svg and re-run build-illustrations.mjs. Raster-backed art (embedded bitmaps) is intentionally excluded — the library stays pure-SVG.
Surfaces
dashboard editor settings audience

Spec

Set 20 illustrations · empty · onboarding · plan · offer · state · team · misc · Source Figma · Oldies library · file P764iQ6y4ZwW7W3f7FLZyW · Colour multi-colour — keeps its own palette (NOT currentColor) · Size one edge in px; the other follows the art's aspect ratio · Fallback unknown name → a dashed error box (var(--aha-color-error))