Ballmac UI home

Cover Art

Cover pictures drawn from a seed in your theme's chart colors: color fields, rings, bars, dots or waves. The same seed always draws the same picture, so an item without an image still looks finished.

mesh
rings
bars
dots
waves

Installation

$ pnpm dlx shadcn@latest add @ballmac/cover-art

Usage

import { CoverArt } from "@/components/ballmac/cover-art"

The full example is in the Code tab above.

Examples

One per name

  • Launch
  • Design
  • Billing
  • Support
  • Research
  • Hiring
  • Docs
  • Ops

API reference

PropTypeDefault
seed*

Anything stable: an id, a name, a slug. The same seed always draws the same picture.

string | number—
variant

Which picture to draw. Leave it out (or "auto") to let the seed choose among the five.

CoverArtVariant | "auto""auto"
grid

Lay a faint grid over the picture.

booleanfalse

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
NoneDecorative: aria-hidden, no focus. Never the only way to tell items apart.

Quality scorecard

6/6

Every applicable check passes

Measured in Chromium 153.0.8010.12 on October 19, 2026, on version 1.0.0, across 2 examples.

How we measure
  • Passed: Accessibility scan

    No serious or critical issues in light and dark, on a phone and a desktop (axe-core 4.13.0, WCAG 2.1 AA and best-practice rules).

  • Passed: Small screens

    No sideways scrolling at 360, 390 or 1280 px wide.

  • Passed: Reduced motion

    No endless animation to begin with.

  • Passed: Right to left

    Mirrors correctly in Arabic, Hebrew, Persian and Urdu layouts (0% of elements off the mirror, limit 15%).

  • Passed: Clean console

    No console errors or React hydration errors while loading.

  • Not applicable: Keyboard

    Static content: nothing to focus.

  • Not applicable: Loading, empty and error

    Does not show data or take submissions.

  • Passed: Automated tests

    Covered by cover-art.test.tsx.

  • For information: Footprint

    2.6 KB of source (gzip) in 1 file. No extra npm packages.

Automated checks find a subset of problems and do not replace testing with a screen reader and a keyboard in your own app. What they miss.

Use with AI

<CoverArt seed={project.id} /> fills its parent with a picture chosen and drawn from the seed; variant: 'mesh' | 'rings' | 'bars' | 'dots' | 'waves' | 'auto'; grid adds a faint grid. Put it in a sized container (an aspect-video div, a size-10 rounded avatar). It is decorative and hidden from screen readers, so keep the item's name as text next to it. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Cover Art (@ballmac/cover-art) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • The fallback for a card, channel, project or agent that has no image
  • A profile cover or a thumbnail while images load

Not for

  • A real photograph or logo (use media)
  • An animated hero background (use aurora-background or beams-background)

Registry JSON: https://ui.ballmac.com/r/cover-art.json

Credits

Free to use in personal and commercial projects.

npm
None
Registry
shadcn/utils

Ballmac UI Pro

Need the whole screen, not one piece?

150 premium blocks (dashboards, settings, calendars, mail, shops, onboarding), a private shadcn registry and Figma tokens. Blocks that show data come with loading, empty and error states built in.

Not ready? Try three Pro blocks free

Leave your email and the blocks appear right here, ready to copy. Yours to use in any project.