Thumbnail
A Thumbnail is a visual element used to display a small preview of an image. Thumbnails provide users with a quick glimpse of the associated content.
Guidelines
When to use thumbnails
Use the Thumbnail component to include small previews of images that can provide context or support the meaning of the content included in components such as Card or MenuItem.
The placeholder icon will display until the thumbnail image loads, or if a thumbnail image is not provided.
Specifications
The thumbnail component may include the following elements:
- Image
The thumbnail displays an image if one has been uploaded. - Placeholder icon
If the thumbnail doesn't have an loaded image, it presents a placeholder gray icon against a light gray background.
In both scenarios, the thumbnail features a Gray300 border to ensure sufficient contrast when placed on white backgrounds.
Component limitations
Thumbnails are set to a default square size of size-250
token (equivalent to 40px
in the default Codex theme). They cannot be scaled smaller than this size but can be scaled up to @ize-800
(equivalent to 128px
in the default Codex theme).
Refer to the Thumbnail component in Codex Figma.
Types
There are two types of thumbnails based on whether an image has been loaded or not:
- Image
If an image has been loaded, the thumbnail will display the image. - Placeholder
If no image has been loaded, the thumbnail will show a placeholder icon against a light gray background.
Interaction states
Thumbnail component just have two states:
- Default: it will display the image if it is uploaded.
- Loading: it displays the placeholder view until the thumbnail image loads.
Best practices
Consider the following recommendations when using thumbnails.
Usage
- Replace images with Thumbnails, as Thumbnail is intended only as preview and an image should remain high-resolution.
Icon
- Customize the icon within placeholder thumbnails.
- Use icons that provide clear context for the use of the thumbnail.
- Use icons that are difficult to understand or do not clearly convey their purpose.
Demos
Default
Name | Value |
---|---|
View | |
Reading direction |
Placeholder
The placeholder serves two purposes:
- To display while a thumbnail image is loading, improving the experience of those with slower connections
- To display when a thumbnail image is not provided
The second case may occur in a group of components, like Cards or MenuItems, when some items have a thumbnail image but some do not. In this case, the placeholder icon helps maintain a consistent layout for all items. See the MenuItem demo for an example.
Default placeholder
Custom placeholder icon
To customize the placeholder icon, use the placeholderIcon
prop.
Vue usage
Props
Prop name | Description | Type | Default |
---|---|---|---|
thumbnail | Thumbnail data. | Thumbnail|null | null |
placeholderIcon | Thumbnail placeholder icon. | Icon | cdxIconImageLayoutFrameless |
CSS-only version
Markup structure
For the CSS-only version, a background-image
rule must be set on the inner span. You can do this via a style
attribute (like in the example below), or by adding a custom CSS class to the inner span and adding the background-image
rule in your styles.
Placeholder
Default placeholder
To show the default placeholder icon, add two nested <span>
elements inside the wrapper <span>
:
- An outer
<span>
with the classcdx-thumbnail__placeholder
- An inner
<span>
with the classcdx-thumbnail__placeholder__icon
The default placeholder icon will automatically be added as a background image to the inner <span>
.
Custom placeholder icon
To show a custom placeholder icon, add two nested <span>
elements inside the wrapper <span>
:
- An outer
<span>
with the classcdx-thumbnail__placeholder
- An inner
<span>
with your own custom CSS class
In your Less code, use your custom CSS class to add a CSS-only icon. Be sure to use @color-placeholder
as the fill color.