The thumbnail component absolutely positions a background image within a two-level container. This containment establishes a standard 16x9 aspect ratio, along with an image for print-only scenario and labels read by a screen reader.
Standard

<div class="comet-thumbnail">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/concept-2.jpeg')">
<img src="/images/components/thumbnail/concept-2.jpeg" alt="Concept" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Concept</span>
</div>
</div>
{% call comet.thumbnail(
alt= "Concept",
img_url= "/images/components/thumbnail/concept-2.jpeg"
) %}{% endcall %}
Macro params reference





<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/concept-1.jpeg')">
<img src="/images/components/thumbnail/concept-1.jpeg" alt="Concept" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Concept</span>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/concept-2.jpeg')">
<img src="/images/components/thumbnail/concept-2.jpeg" alt="Concept" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Concept</span>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/video-1.jpg')">
<img src="/images/components/thumbnail/video-1.jpg" alt="Concept" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Concept</span>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/video-2.jpg')">
<img src="/images/components/thumbnail/video-2.jpg" alt="Concept" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Concept</span>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/video-3.jpg')">
<img src="/images/components/thumbnail/video-3.jpg" alt="Concept" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Concept</span>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
alt= "Concept",
img_url= "/images/components/thumbnail/concept-1.jpeg"
) %}{% endcall %}
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
alt= "Concept",
img_url= "/images/components/thumbnail/concept-2.jpeg"
) %}{% endcall %}
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
alt= "Concept",
img_url= "/images/components/thumbnail/video-1.jpg"
) %}{% endcall %}
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
alt= "Concept",
img_url= "/images/components/thumbnail/video-2.jpg"
) %}{% endcall %}
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
alt= "Concept",
img_url= "/images/components/thumbnail/video-3.jpg"
) %}{% endcall %}
</div>
Macro params reference
Square
Display large thumbnails in a square aspect ratio for distinctive emphasis on a photograph. This display is useful in a grid setting limited to 3 to 5 cards, such as a grid of STEM projects.

<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail comet-thumbnail--squared">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/concept-1.jpeg')">
<img src="/images/components/thumbnail/concept-1.jpeg" alt="Concept" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Concept</span>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
alt= "Concept",
class= "comet-thumbnail--squared",
img_url= "/images/components/thumbnail/concept-1.jpeg"
) %}{% endcall %}
</div>
Macro params reference
-
use square thumbnails for photographs with a centrally-located focal point or lacking a focal point
-
display square thumbnails for photographs that risk cropping a person unpredictably
-
use a square thumbnail for images of more extreme portrait or landscape aspect ratios, which can result in a loss of context or meaning
Fixed Width
Fix thumbnail width when pairing a thumbnail with an object to its right, such as in a Media Object UI pattern. Use either the --fixed
(160px wide) or --fixed-s
(100px wide) modifier classes.

<div class="comet-thumbnail comet-thumbnail--fixed">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/concept-1.jpeg')">
<img src="/images/components/thumbnail/concept-1.jpeg" alt="Concept" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Concept</span>
</div>
</div>
{% call comet.thumbnail(
alt= "Concept",
class= "comet-thumbnail--fixed",
img_url= "/images/components/thumbnail/concept-1.jpeg"
) %}{% endcall %}
Macro params reference

<div class="comet-thumbnail comet-thumbnail--fixed-s">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/concept-1.jpeg')">
<img src="/images/components/thumbnail/concept-1.jpeg" alt="Concept" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Concept</span>
</div>
</div>
{% call comet.thumbnail(
alt= "Concept",
class= "comet-thumbnail--fixed-s",
img_url= "/images/components/thumbnail/concept-1.jpeg"
) %}{% endcall %}
Macro params reference
Contained
Contain the entire thumbnail in 16x9 letterbox in cases where image aspect ratio varies significantly, such as search results, using the --contain
modifier class.






<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail comet-thumbnail--contain">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/search-clinton.jpg')">
<img src="/images/components/thumbnail/search-clinton.jpg" alt="Bill Clinton" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Bill Clinton</span>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail comet-thumbnail--contain">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/search-bush.jpg')">
<img src="/images/components/thumbnail/search-bush.jpg" alt="George Bush" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">George Bush</span>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail comet-thumbnail--contain">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/search-enrollment.jpg')">
<img src="/images/components/thumbnail/search-enrollment.jpg" alt="Enrollment" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Enrollment</span>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail comet-thumbnail--contain">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/search-eternal-flame.jpg')">
<img src="/images/components/thumbnail/search-eternal-flame.jpg" alt="Eternal Flame" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Eternal Flame</span>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail comet-thumbnail--contain">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/search-palace.jpg')">
<img src="/images/components/thumbnail/search-palace.jpg" alt="Palace" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Palace</span>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail comet-thumbnail--contain">
<div class="comet-thumbnail__inner" style="background-image: url('/images/components/thumbnail/search-Reagan.jpg')">
<img src="/images/components/thumbnail/search-Reagan.jpg" alt="Reagan" class="comet-thumbnail__print-only-image">
<span class="comet-screenreader-only">Reagan</span>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
class= "comet-thumbnail--contain",
alt= "Bill Clinton",
img_url= "/images/components/thumbnail/search-clinton.jpg"
) %}{% endcall %}
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
class= "comet-thumbnail--contain",
alt= "George Bush",
img_url= "/images/components/thumbnail/search-bush.jpg"
) %}{% endcall %}
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
class= "comet-thumbnail--contain",
alt= "Enrollment",
img_url= "/images/components/thumbnail/search-enrollment.jpg"
) %}{% endcall %}
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
class= "comet-thumbnail--contain",
alt= "Eternal Flame",
img_url= "/images/components/thumbnail/search-eternal-flame.jpg"
) %}{% endcall %}
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
class= "comet-thumbnail--contain",
alt= "Palace",
img_url= "/images/components/thumbnail/search-palace.jpg"
) %}{% endcall %}
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
class= "comet-thumbnail--contain",
alt= "Reagan",
img_url= "/images/components/thumbnail/search-Reagan.jpg"
) %}{% endcall %}
</div>
Macro params reference
-
alter the letterbox’s matte color from what’s defined in the component.
No Image Icon Alternative
When an image is unavailable as a thumbnail, display an icon centered upon the product’s theme color.
<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail comet-thumbnail--no-image">
<div class="comet-thumbnail__inner">
<svg class="comet-thumbnail__icon" aria-hidden="true" focusable="false">
<use xlink:href="/comet/comet_assets/comet.svg#asset-project"></use>
</svg>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail comet-thumbnail--no-image">
<div class="comet-thumbnail__inner">
<svg class="comet-thumbnail__icon" aria-hidden="true" focusable="false">
<use xlink:href="/comet/comet_assets/comet.svg#asset-audio-cd"></use>
</svg>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail comet-thumbnail--no-image">
<div class="comet-thumbnail__inner">
<svg class="comet-thumbnail__icon" aria-hidden="true" focusable="false">
<use xlink:href="/comet/comet_assets/comet.svg#asset-book"></use>
</svg>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
asset_type="project"
) %}{% endcall %}
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
asset_type="audio-cd"
) %}{% endcall %}
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail(
asset_type="book"
) %}{% endcall %}
</div>
Macro params reference
Responsive Sizing
To increase icon size in wider viewports, apply the --responsive-icons
modifier class.
Image, No Icon Specified
In the absence of an image and a specified icon, display the asset-document
icon.
<div class="comet-doc__thumbnail-container">
<div class="comet-thumbnail comet-thumbnail--no-image">
<div class="comet-thumbnail__inner">
<svg class="comet-thumbnail__icon" aria-hidden="true" focusable="false">
<use xlink:href="/comet/comet_assets/comet.svg#asset-document"></use>
</svg>
</div>
</div>
</div>
<div class="comet-doc__thumbnail-container">
{% call comet.thumbnail() %}{% endcall %}
</div>
Macro params reference
Guidelines
Editorial
- When possible, source thumbnail images suitable for display in a 16x9 setting. When you lack control to source predictably cropped images, use the
--contain
thumbnail alternative. - Orient thumbnail focal points towards the central area – or at most, “on the thirds” – to ensure composition displays properly in a 16x9 aspect ratio.
Class Reference
Class | Applies to | Outcome |
---|---|---|
|
|
Contains entire thumbnail image inside the 16x9 block, cropping nothing and introducing a dark matte background color. |
|
|
Alters thumbnail aspect ratio from 16x9 to 1x1. |
|
|
Enlarges icon size in wide conditions when a thumbnail image is unavailable. |
|
|
Displays the thumbnail at a fixed width (160px) while sustaining default aspect ratio and cropping appropriately. |
|
|
Displays the thumbnail at a fixed width (100px) while sustaining default aspect ratio and cropping appropriately. |
Macro Reference
Parameter | Values | Description |
---|---|---|
class |
|
Style modifiers (see Class Reference, above) and custom classes. |
img_url |
|
URL path to image location |
icon_path |
|
URL path to icon SVG file other than Comet’s. |
asset_type |
|
Icon presented when an image is unavailable. |
background |
|
Display pattern used for background image. |
alt |
|
Image description used for screenreader and image alt tag. |