Skip to content

Card

Standalone directives that preserve article or button as the semantic root and apply the public Card anatomy.

Design

Functional preview

Running with the native Angular component and Elemento semântico nativo + composição Angular.

Loading functional preview…

Interactive Card · Angular

Rendered by Angular directives on a native button with real selection.

Loading functional preview…

Anatomy

1
2

Card Title 3

Description text

Body content goes here. This is a flexible slot for any content.

4
1 Container (.ds-card) — surface with border-radius, optional border or shadow depending on variant.
2 Content container (.ds-card__container) — applies inner padding and gap.
3 Header (.ds-card__header) — wrapper for optional title and description.
4 Body (.ds-card__body) — flexible content area.

Default

Card Title

Description or meta information

This is the card body content. It provides additional context or details about the subject of the card.

Outlined

Outlined Card

With a stronger border

Outlined cards use a more visible border to distinguish content sections clearly from the background.

Elevated

Elevated Card

Raised surface

Elevated cards use a raised surface and shadow instead of a border to create visual depth and hierarchy.

Comparison

Default

Subtle border.

Outlined

Stronger border.

Elevated

Raised surface.

Media and interactive

Custom composition

Use the card as a container when the inner content needs to be composed with other components. Header and footer are optional; the body hosts the primary content.

Usage 128 active seats
Healthy

Token mapping

PropertyTokenCSS variable
backgroundsemantic.surface.default--ds-surface-default
background (elevated variant)semantic.surface.raised--ds-surface-raised
border (default variant)semantic.border.subtle--ds-border-subtle
border (outlined variant)semantic.border.default--ds-border-default
shadow (elevated)semantic.shadow.card--ds-shadow-card
border-radiuscomponent.card.radius.default--ds-card-radius-default
border-widthcomponent.card.border-width.default--ds-card-border-width-default
.ds-card__container paddingcomponent.card.container.padding.default--ds-card-container-padding-default
.ds-card__container gapcomponent.card.container.gap.default--ds-card-container-gap-default
.ds-card__header gapcomponent.card.header.gap.default--ds-card-header-gap-default
.ds-card__title typographycomponent.card.title.{font-size,line-height,font-weight}.default--ds-card-title-*-default
.ds-card__description typographycomponent.card.subtitle.{font-size,line-height,font-weight}.default--ds-card-subtitle-*-default
.ds-card__body typographycomponent.card.body.{font-size,line-height,font-weight}.default--ds-card-body-*-default
.ds-card__footer spacingcomponent.card.footer.gap.default--ds-card-footer-gap-default
.ds-card--interactive bordercomponent.card-interactive.border-*--ds-card-interactive-border-*
.ds-card--interactive focus ring radiuscomponent.card-interactive.focus-ring.radius.default--ds-card-interactive-focus-ring-radius-default