lapikit Lapikit
Components

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.
2 hours ago
Forest trail
Dense canopy, mossy rocks, and the sound of a distant waterfall.
Yesterday

kit:card is a layout container, it adds no heading or structure on its own. Use the following subcomponents to structure your card content:

componentsdescription
kit:card-mediaWraps media (image, video). Clips overflow to the card radius.
kit:card-titleBold title. font-weight: 600, tight line-height.
kit:card-contentMain text content.
kit:card-actionsFlex bar for action buttons.
kit:card-containerMain container for the card content.
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: 'none' | '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
card.svelte

Elevation

The Elevation property allows you to apply a box shadow effect to the Card component. This property lets you add this effect to the component—either by default or when the component is in the hover or active states.

  • elevation: '0' | '1' | '2' | '3' | '4' | '5' = 'undefined'
  • elevation (multi-state): {base: value, hover: value, active: value}
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
ref $bindableHTMLElementBindable reference to the rendered DOM element.null
isenum'div''article''section''aside''a''button'HTML element to render. Overridden by href.'div'
s-classenum'string''array''object'Sets className on card.
s-styleenum'string''array''object'Sets styles on card.
variantenum'filled''outline''text'Visual style.'filled'
typeenum'button''submit''reset'Defined html type to card.
densityenum'none''compact''default''comfortable'Internal padding.'default'
roundedenum0'xs''sm''md''lg''xl'Border radius.'md'
elevationElevationStateenum'0''1''2''3''4''5'Add shadow effect.
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.
colorstringForeground color override (--kit-card-fg).
backgroundstringBackground color override (--kit-card-bg).

kit:card-container

propstypedescriptiondefault
ref $bindableHTMLElementBindable reference to the rendered DOM element.null
isenum'div''span'HTML element to render'div'
s-classenum'string''array''object'Sets className on card container.
s-styleenum'string''array''object'Sets styles on card container.

kit:card-title

propstypedescriptiondefault
ref $bindableHTMLElementBindable reference to the rendered DOM element.null
isenum'div''p''span''h1''h2''h3''h4''h5''h6'HTML element to render'div'
s-classenum'string''array''object'Sets className on card title.
s-styleenum'string''array''object'Sets styles on card title.
colorstringForeground color override (--kit-card-title-fg).

kit:card-content

propstypedescriptiondefault
ref $bindableHTMLElementBindable reference to the rendered DOM element.null
isenum'div''p''span''h1''h2''h3''h4''h5''h6'HTML element to render'div'
s-classenum'string''array''object'Sets className on card content.
s-styleenum'string''array''object'Sets styles on card content.
colorstringForeground color override (--kit-card-content-fg).

kit:card-media

propstypedescriptiondefault
ref $bindableHTMLElementBindable reference to the rendered DOM element.null
isenum'div''span'HTML element to render'div'
s-classenum'string''array''object'Sets className on card media.
s-styleenum'string''array''object'Sets styles on card media.

kit:card-actions

propstypedescriptiondefault
ref $bindableHTMLElementBindable reference to the rendered DOM element.null
isenum'div''span'HTML element to render'div'
s-classenum'string''array''object'Sets className on card actions.
s-styleenum'string''array''object'Sets styles on card actions.

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