Card
A Card groups information related to a single topic.
Name | Value |
---|---|
Props | |
icon | |
url | |
Slots | |
title | |
description | |
supporting-text | |
View | |
Reading direction | |
Note: For icon properties, the relevant icon also needs to be imported from the @wikimedia/codex-icons package. See the usage documentation for more information. |
Overview
When to use Card
Use the Card component when you need to present individual pieces of information such as articles. Use them to create lists, grids or as standalone elements in the page. Cards can be clickable and offer a way to navigate to the content they represent.
Avoid using Cards when you have to display extensive content, multiple elements, or group unrelated topics together. In such cases, consider using a different component or layout.
About Card
Card includes the following elements.
Visual element (optional)
They may include a Thumbnail or an Icon as a visual representation of its content.
Use a Thumbnail when you intend to showcase articles and their associated images.
Use an Icon to help users quickly identify and associate Cards with specific actions or topics.
Title
A concise and descriptive title provides a brief description of the Card content.
Description
A description below the title provides more information about the element represented by the Card. If the Card itself is not a link, you can include links in the description.
Ensure that the content within the Card remains concise and pertinent.
Avoid overcrowding the Card with excessive content or unrelated topics.
Supporting text (optional)
Supporting text can be included to provide additional context about the Card’s content. If the Card itself is not a link, you can include links in the supporting text.
Link (optional)
As long as links are not included in the contents of the Card, the Card itself can be made a link.
Examples
Basic usage
With link
Developer notes
Adding the url
prop will make the root element of the Card an anchor element.
Media
A Card can have either a thumbnail
or an icon
. Card text will be aligned to the top of the media, unless there is only a title, which will be aligned to the center of the media.
- Always use the same media for each Card in a group.
With Icon
With Thumbnail
Media and title only
Card groups
Cards will often be displayed in groups. The height and width of cards can be customized as needed, and when multiple cards are aligned together, their heights should adjust to match the tallest card in the set.
Nearby Pages
Developer notes
There are two considerations for Card groups:
- Layout: Layout styles for groups of Cards, e.g. margins or grid layout, must be added by the application. The example above adds some simple layout styles to a group of Cards. Consider using flexbox or CSS grid to lay out Cards consistently.
- Media consistency: As shown above, adding a
thumbnail
prop will display the Thumbnail. For groups of Cards, you may want to display a Thumbnail for each Card if available, and otherwise display a placeholder. To enable this behavior, add theforceThumbnail
prop, as demonstrated below. The third item has no Thumbnail and display a placeholder Icon instead.
Technical implementation
Vue usage
Props
Prop name | Description | Type | Default |
---|---|---|---|
url | If provided, the Card will be a link to this URL. | string | '' |
icon | Icon displayed at the start of the Card. | Icon | '' |
thumbnail | Thumbnail image data for the Card. | Thumbnail|null | null |
forceThumbnail | Option to force a thumbnail layout. When set to true , the Card will display a Thumbnail. If a thumbnail prop was also provided, the thumbnail image will display. Otherwise, a placeholder icon will display.This is useful when displaying groups of Cards when some of the cards have thumbnail images but some do not. forceThumbnail will provide a consistent layout for that group.Note that this prop is not needed to display a thumbnail image: if the thumbnail prop is provided, it will display. This prop is only needed to enable the display of the thumbnail placeholder icon when the thumbnail prop is not provided. | boolean | false |
customPlaceholderIcon | Optional custom icon for the placeholder shown when forceThumbnail is true but no thumbnail is provided.Defaults to the default placeholder icon set in the Thumbnail component. | Icon | undefined |
Slots
Name | Description | Bindings |
---|---|---|
title | Card title | |
description | Card description | |
supporting-text | Short supporting text |
CSS-only version
Markup structure
With link
To make the entire Card a link, use an <a>
element and include the class cdx-card--is-link
.
With media
Image
To add an image, add the following markup:
- A
<span>
with the classescdx-card--thumbnail
andcdx-thumbnail
- Inside of that
<span>
, add an empty<span>
element with the classcdx-thumbnail__image
, plus a custom CSS class that you can use to add abackground-image
rule (alternately, you can add thebackground-image
rule via astyle
attribute on this<span>
)
See the CSS-only Thumbnail documentation for more examples.
Icon
To add an Icon, add a <span>
element with the class cdx-card__icon
, plus a custom class that you can use to add a CSS-only Icon.
Card groups
See the documentation above for UX guidelines.
Nearby Pages
Golden Gate National Recreation AreaU.S. National Recreation Area surrounding San Francisco Bay Area Distance: 170m Internet ArchiveAmerican non-profit organization providing archives of digital media since 1996 Distance: 300m Green Apple Books & MusicBookstore in San Francisco Distance: 350mKeyboard navigation
Key | Function |
---|---|
Tab | If the Card is interactive, it places the focus on the Card. If a non-interactive Card contains a link, this key places the focus in that link. When the focus is placed within an interactive Card or within the link of a non-interactive Card, it moves the focus to the next interactive element in tab order. |
Shift + Tab | It moves the focus to the previous interactive element. |
Enter | If the focus is on an interactive Card, it will open its hyperlink. When the focus is on a link within a Card, it will open the link. |