Card component

The kit:card component is a versatile container used to group together information or actions in a user interface. It can be used to display content, images, buttons or links, while offering advanced customization to suit various styles and contexts.

card.svelte

Mountain hike

A breathtaking trail through alpine meadows and rocky peaks.

Forest trail

Dense canopy, mossy rocks, and the sound of a distant waterfall.

kit:card is a layout container, it adds no heading or structure on its own. Use the utility classes below inside it to organise content consistently.

classdescription
kit-card__mediaWraps media (image, video). Clips overflow to the card radius.
kit-card__headerBold title. font-weight: 600, tight line-height.
kit-card__bodyMain text content.
kit-card__footerFlex row between footer text and actions.
kit-card__footer-contentMuted text (date, meta) inside the footer.
kit-card__actionsInline action buttons inside the footer.
card.svelte

Examples of card

Variants

  • variant: 'filled' | 'outline' | 'text' = 'filled'

  • filled - accent background, white text.

  • outline - transparent background with accent border.

  • text - no background or border, accent text color.

card.svelte

Density

density adjusts the internal padding.

  • density: 'compact' | 'default' | 'comfortable' = 'default'
card.svelte

interactive

An interactive card lifts on hover and shows a ripple on click. This behaviour is automatic when href is set or an onclick handler is attached. Use interactive to enable it on a plain <div> without changing the element.

  • interactive: boolean = false
  • href: string | undefined = undefined
  • active: boolean = false
  • disabled: boolean = false
  • noRipple: boolean = false

When disabled is true on an <a> card, href is removed and tabindex="-1" is set.

card.svelte

Without preprocess Lapikit

If you aren’t using the Lapikit preprocessor in svelte.config.js, import the component directly:

API Reference

kit:card

propstypedescriptiondefault
isenum'div''article''section''aside''a''button'HTML element to render. Overridden by href.'div'
variantenum'filled''outline''text'Visual style.'filled'
densityenum'compact''default''comfortable'Internal padding.'default'
roundedenum0'xs''sm''md''lg''xl'Border radius.'md'
hrefstringRenders as <a>. Enables interactive mode.
interactivebooleanEnables hover lift and ripple without changing the tag.false
activebooleanApplies the pressed background.false
disabledbooleanDims and disables interaction.false
noRipplebooleanDisables the ripple animation on click.
childrenSnippetCard content.

For better structure, combine your Cards with Avatars and clear Buttons.