Placeholder

Empty state component used to display informational messages, upgrade prompts, or guide users when content is unavailable. Supports custom images and action buttons.

Basic Examples

Simple placeholder with title only, or with description and action button.

No available domains.

No available domains.

You don't have any messages yet…

You don't have any messages yet…

No items found

Try adjusting your search or filter to find what you're looking for.

Upgrade Prompts

Placeholders used to encourage users to upgrade their plan for premium features.

Unlock QR Code Creation

Unlock QR Code Creation

QR codes are available only on the PRO plan, upgrade to access the full toolkit.

Unlock Business Card Creation

Unlock Business Card Creation

Digital business cards are available exclusively on the PRO plan.

Gallery Placeholders

Gallery variant automatically creates a container with outer dashed border (brand-1) and renders multiple placeholder items with inner dashed border (gray-200). Pass an array of items to the component.

No images yet

No images yet

Upload your first image to get started.

No audio files

No audio files

Add audio files to your collection.

No videos

No videos

Add YouTube videos or upload your own.

Usage Example

Example code for implementing Placeholder components

import { Placeholder, Button } from '@monorepo/ui/DesignSystem';

// Basic placeholder with image
<Placeholder
  title="No available domains."
  image="/components/placeholder/no-available.png"
/>

// With description
<Placeholder
  title="You don't have any messages yet…"
  image="/components/placeholder/no-massages.png"
/>

// With action button
<Placeholder
  title="No items found"
  description="Try adjusting your search or filter."
  action={<Button size="sm">Clear Filters</Button>}
/>

// Upgrade prompt with image and action
<Placeholder
  title="Unlock QR Code Creation"
  description="QR codes are available only on the PRO plan."
  image="/components/placeholder/qr.png"
  action={<Button size="md">Upgrade to PRO</Button>}
/>

// Gallery placeholder - pass array of items
<Placeholder
  variant="gallery"
  items={[
    {
      title: "No images yet",
      description: "Upload your first image to get started.",
      image: "/components/placeholder/gallery-type-image.png",
      action: <Button size="sm">Upload Image</Button>,
    },
    {
      title: "No audio files",
      description: "Add audio files to your collection.",
      image: "/components/placeholder/gallery-type-audio.png",
      action: <Button size="sm">Add Audio</Button>,
    },
    {
      title: "No videos",
      description: "Add YouTube videos or upload your own.",
      image: "/components/placeholder/gallery-type-Youtube.png",
      action: <Button size="sm">Add Video</Button>,
    },
  ]}
/>

Props

PropTypeDefaultDescription
titlestring-Title text (for default variant)
descriptionstring-Optional description text (for default variant)
imagestring-Optional image source path (for default variant)
actionReactNode-Optional action button (for default variant)
variant'default' | 'gallery''default'Variant type - 'gallery' renders multiple items with outer brand-1 border
itemsPlaceholderItem[]-Array of items for gallery variant (each item has title, description, image, action)
classNamestring-Additional CSS classes

Use Cases

Empty States

Display when a list, gallery, or collection has no items. Helps users understand why content is missing and what actions they can take.

Upgrade Prompts

Encourage users to upgrade their plan to access premium features. Include clear descriptions of benefits and prominent upgrade buttons.

Search Results

Show when search or filter operations return no results. Provide suggestions for refining the search or clearing filters.

Onboarding

Guide new users through their first steps. Use images and action buttons to make the next steps clear and inviting.

Available Images

  • /components/placeholder/no-available.png
  • /components/placeholder/no-massages.png
  • /components/placeholder/qr.png
  • /components/placeholder/business-cards.png
  • /components/placeholder/gallery-type-image.png
  • /components/placeholder/gallery-type-audio.png
  • /components/placeholder/gallery-type-Youtube.png