Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

Working with theme-able empty state images

Add theme-able empty state images to customize empty states and improve the user experience. Empty states include guidance or actions for users to add or create content.

When a component or a part of your Next Experience web page doesn’t contain data, an empty state image appears. Empty state images are theme-able, and adapt to the theme colors of your instance.

Image omitted: empty-state-no-data-available.png
No data available empty state image.

There are 12 empty state image types available, each including a small, medium, and large version. When creating a theme using Theme Builder a UX Styles Imagery record is created however, the record is empty. In this case, your theme defaults to using a base system empty state theme-able images. If you choose to override these images, see Customize theme-able empty state images for your theme.

You can insert an empty state image into your custom experience by using the Illustration component in UI Builder. The Illustration component displays all available empty state images. For more information on the Illustration component, see Horizon Design System Empty State.

You can also add custom images using the Custom Illustration component in UI Builder.

Theme-able empty state image with theme hooks

The following images represent the No Search Results empty state image along with the theme hooks required for each variation.

Image omitted: tb-no-search-results-accent-solid.png
No Search Results empty state image, accent solid variation. For the text description, refer to the theme hook information that follows.

The theme hook required for this variation is $now-color_interactive-1.

Image omitted: tb-no-search-results-accent-outline.png
No Search Results empty state image, accent outline variation. For the text description, refer to the theme hook information that follows.

The theme hook required for this variation is $now-color_interactive-3.

Image omitted: tb-no-search-results-subtle-outlines.png
No Search Results empty state image, subtle outlines variation. For the text description, refer to the theme hook information that follows.

The theme hook required for this variation is $now-color_border-secondary.

Image omitted: tb-no-search-results-dark-detail.png
No Search Results empty state image, subject dark detail variation. For the text description, refer to the theme hook information that follows.

The theme hook required for this variation is $now-color_border-tertiary.

Image omitted: tb-no-search-results-light-detail.png
No Search Results empty state image, subject light detail variation. For the text description, refer to the theme hook information that follows.

The theme hook required for this variation is $now-color_background-secondary.

Image omitted: tb-no-search-results-subject-fill.png
No Search Results empty state image, subject fill variation. For the text description, refer to the theme hook information that follows.

The theme hook required for this variation is $now-color_background-primary.

Image omitted: tb-no-search-results-subject-outline.png
No Search Results empty state image, subject outline variation. For the text description, refer to the theme hook information that follows.

The theme hook required for this variation is $now-color_border-secondary.

Image omitted: tb-no-search-results-subject-shadows.png
No Search Results empty state image, subject shadows variation. For the text description, refer to the theme hook information that follows.

The theme hook required for this variation is $now-color_border-secondary.

Empty state light mode tokens

Image omitted: tb-empty-state-main-object.png
Main object empty state image. For the text description, refer to the theme hook information that follows.

The theme hooks used to override the main object empty state image.

  • now-illustration--empty-state--main-object--outline
  • now-illustration--empty-state--main-object--fill
Image omitted: tb-empty-state-primary-object.png
Primary object empty state image. For the text description, refer to the theme hook information that follows.

The theme hooks used to override the primary object empty state image.

  • now-illustration--empty-state--primary-object--outline
  • now-illustration--empty-state--primary-object--primary-fill
  • now-illustration--empty-state--primary-object--tertiary-fill
  • now-illustration--empty-state--primary-object--main-detail
  • now-illustration--empty-state--primary-object--detail
  • now-illustration--empty-state--primary-object--shadow
Image omitted: tb-empty-state-tertiary-object.png
Tertiary object empty state image. For the text description, refer to the theme hook information that follows.

The theme hooks used to override the tertiary object empty state image.

  • now-illustration--empty-state--tertiary-object--outline
  • now-illustration--empty-state--tertiary-object--primary-fill
  • now-illustration--empty-state--tertiary-object--tertiary-fill
  • now-illustration--empty-state--tertiary-object--main-detail
  • now-illustration--empty-state--tertiary-object--detail
  • now-illustration--empty-state--tertiary-object--shadow
Image omitted: tb-empty-state-background.png
Background empty state image. For the text description, refer to the theme hook information that follows.

The theme hooks used to override the background empty state image.

  • now-illustration--empty-state--background--lines
  • now-illustration--empty-state--background--tertiary-lines
  • now-illustration--empty-state--background--object-outline
  • now-illustration--empty-state--background--object-detail
  • now-illustration--empty-state--background--object-shadow
  • now-illustration--empty-state--background--object-fill

Empty state light mode fallbacks

ObjectStyle declaration
Main object

 .main-object--outline {
  fill:rgb(var(--empty-state--main-object--outline),
      var(--main-object--outline), var(--now-color--interactive-3), 51,53,123);
}

 .main-object--fill {
  fill:rgb(var(--empty-state--main-object--fill),
      var(--main-object--fill), var(--now-color--interactive-1), 144,146,213);
}
Primary object

 .primary-object--outline {
  fill:rgb(var(--empty-state--primary-object--outline),
      var(--primary-object--outline), var(--now-color--border--secondary),
    176,181,191);
}

 .primary-object--primary-fill {

      fill:rgb(var(--empty-state--primary-object--primary-fill),
      var(--primary-object--primary-fill), var(--now-color--background--primary),
      255,255,255);
}

 .primary-object--tertiary-fill {

      fill:rgb(var(--empty-state--primary-object--tertiary-fill),
      var(--primary-object--tertiary-fill), var(--now-color--background--secondary),
      246,246,248);
}

 .primary-object--main-detail {

      fill:rgb(var(--empty-state--primary-object--main-detail), var(--primary-object--main-detail),
      var(--now-color--border--secondary), 176,181,191);
}

 .primary-object--detail {
  fill:rgb(var(--empty-state--primary-object--detail ),
      var(--primary-object--detail ), var(--now-color--border--tertiary),
    211,214,220);
}

 .primary-object--shadow {
  fill:rgb(var(--empty-state--primary-object--shadow),
      var(--primary-object--shadow), var(--now-color--background--tertiary),
    228,230,234);
}
Tertiary object

 .tertiary-object--outline {
  fill:rgb(var(--empty-state--tertiary-object--outline),
      var(--tertiary-object--outline), var(--now-color--border--secondary), 176,181,191);
}

 .tertiary-object--primary-fill {

      fill:rgb(var(--empty-state--tertiary-object--primary-fill),
      var(--tertiary-object--primary-fill), var(--now-color--background--primary),
      255,255,255);
}

 .tertiary-object--tertiary-fill {

      fill:rgb(var(--empty-state--tertiary-object--tertiary-fill),
      var(--tertiary-object--tertiary-fill), var(--now-color--background--secondary),
      246,246,248);
}

 .tertiary-object--main-detail {

      fill:rgb(var(--empty-state--tertiary-object--main-detail),
      var(--tertiary-object--main-detail), var(--now-color--border--secondary),
      176,181,191);
}

 .tertiary-object--detail {
  fill:rgb(var(--empty-state--primary-object--detail ),
      var(--primary-object--detail ), var(--now-color--border--tertiary),
    211,214,220);
}

 .tertiary-object--shadow {
  fill:rgb(var(--empty-state--tertiary-object--shadow),
      var(--tertiary-object--shadow), var(--now-color--background--tertiary),
    228,230,234);
}
Background object

 .background--lines {
  fill:rgb(var(--empty-state--background--lines),
      var(--background--lines), var(--now-color--border--tertiary), 211,214,220);
}

 .background--tertiary-lines {

      fill:rgb(var(--empty-state--background--tertiary-lines), var(--background--tertiary-lines),
      var(--now-color--border--tertiary), 211,214,220);
}

 .background--object-outline {

      fill:rgb(var(--empty-state--background--object-outline), var(--background--object-outline),
      var(--now-color--border--tertiary), 211,214,220);
}

 .background--object-detail {
  fill:rgb(var(--empty-state--background--object-detail),
      var(--background--object-detail), var(--now-color--border--tertiary),
    211,214,220);
}

 .background--object-shadow {
  fill:rgb(var(--empty-state--background--object-shadow),
      var(--background--object-shadow), var(--now-color--background--tertiary),
      228,230,234);
}

 .background--object-fill {
  fill:rgb(var(--empty-state--background--object-fill),
      var(--background--object-fill), var(--now-color--background--primary),
    255,255,255);
}

Parent Topic:Working with themes in Next Experience