Card
Container component with image, body, and footer sections. Works for product cards, article previews, or any rectangular content with image + text layout. Available in plain and hover-scale variants.
Live Demo
Lorem Ipsum
Magna magna mollit esse incididunt deserunt eiusmod ad id ullamco cupidatat laborum enim nostrud. Irure officia occaecat adipisicing amet labore et incididunt exercitation.
€599.00
Read more
Lorem Ipsum
Magna magna mollit esse incididunt deserunt eiusmod ad id ullamco cupidatat laborum enim nostrud.
€599.00
Read more
Lorem Ipsum
Magna magna mollit esse incididunt deserunt eiusmod ad id ullamco cupidatat laborum enim nostrud.
€599.00
Read more
html astro Copy all
<div class="bg-white border border-gray-200 rounded-lg shadow overflow-hidden">
<a href="#" class="aspect-ratio-video block relative">
<img src="https://placehold.co/826x620" alt="Image Alt" class="h-full w-full object-cover" />
</a>
<div class="p-5">
<h5 class="mb-2 text-2xl font-bold leading-none">Lorem Ipsum</h5>
<p class="mb-3 text-gray-700">Magna magna mollit esse incididunt deserunt eiusmod ad id ullamco cupidatat laborum enim nostrud.</p>
<div class="flex items-center justify-between my-4">
<span class="text-2xl font-bold">€599.00</span>
</div>
<a href="#" class="btn-tertiary btn-xs btn-medium-hover">
Read more
<span class="i-flowbite-arrow-right-outline ml-2 text-2xl leading-none"></span>
</a>
</div>
</div>
Grid example
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="html"><code><span class="line"><span style="color:#E1E4E8"><</span><span style="color:#85E89D">div</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"w-fit mx-auto grid grid-cols-1 lg:grid-cols-3 md:grid-cols-2 justify-items-center justify-center gap-y-20 gap-x-14 mt-10 mb-5 "</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">div</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"w-72 bg-white shadow-md rounded-xl duration-500 hover:scale-105 hover:shadow-xl"</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">a</span><span style="color:#B392F0"> href</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"#"</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">img</span><span style="color:#B392F0"> src</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"https://picsum.photos/600/500/?random"</span><span style="color:#B392F0"> alt</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"Product"</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"img--1/1 rounded-t-xl"</span><span style="color:#E1E4E8"> /></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">div</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"px-4 py-3 w-72"</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">span</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"text-gray-400 mr-3 uppercase text-xs"</span><span style="color:#E1E4E8">>Brand</</span><span style="color:#85E89D">span</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">p</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"text-lg font-bold text-black truncate block capitalize"</span><span style="color:#E1E4E8">>Product Name</</span><span style="color:#85E89D">p</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">div</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"flex items-center"</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">p</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"text-lg font-semibold text-black cursor-auto my-3"</span><span style="color:#E1E4E8">>€149</</span><span style="color:#85E89D">p</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">del</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">p</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"text-sm text-gray-600 cursor-auto ml-2"</span><span style="color:#E1E4E8">>€199</</span><span style="color:#85E89D">p</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> </</span><span style="color:#85E89D">del</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#FDAEB7;font-style:italic">Icon</span><span style="color:#B392F0"> name</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"octicon:info-24"</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"ml-auto"</span><span style="color:#E1E4E8"> /></span></span>
<span class="line"><span style="color:#E1E4E8"> </</span><span style="color:#85E89D">div</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> </</span><span style="color:#85E89D">div</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> </</span><span style="color:#85E89D">a</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> </</span><span style="color:#85E89D">div</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"></</span><span style="color:#85E89D">div</span><span style="color:#E1E4E8">></span></span></code></pre>
Card with skewed background
Skewed background with CSS & SVG.
Officia deserunt commodo sit eiusmod
Ullamco qui minim anim aliqua ex sunt irure aliqua irure ullamco tempor laborum non sit. Fugiat ipsum cillum deserunt proident esse elit.
Officia deserunt commodo sit eiusmod
Ullamco qui minim anim aliqua ex sunt irure aliqua irure ullamco tempor laborum non sit. Fugiat ipsum cillum deserunt proident esse elit.
Officia deserunt commodo sit eiusmod
Ullamco qui minim anim aliqua ex sunt irure aliqua irure ullamco tempor laborum non sit. Fugiat ipsum cillum deserunt proident esse elit.
Officia deserunt commodo sit eiusmod
Ullamco qui minim anim aliqua ex sunt irure aliqua irure ullamco tempor laborum non sit. Fugiat ipsum cillum deserunt proident esse elit.
Officia deserunt commodo sit eiusmod
Ullamco qui minim anim aliqua ex sunt irure aliqua irure ullamco tempor laborum non sit. Fugiat ipsum cillum deserunt proident esse elit.
Officia deserunt commodo sit eiusmod
Ullamco qui minim anim aliqua ex sunt irure aliqua irure ullamco tempor laborum non sit. Fugiat ipsum cillum deserunt proident esse elit.
Generic Card Shortcuts
Simple card layout using SDS shortcut classes — works in any HTML environment.
Card title Card description text goes here. Add any content you need inside the body.
Hover card This card scales on hover. Uses card-hover which composes from card.
html Copy all
Copy <div class="card">
<img class="card-image" src="..." alt="..." />
<div class="card-body">
<h3 class="text-xl font-bold">Card title</h3>
<p class="text-slate-light text-sm">Description text.</p>
</div>
<div class="card-footer">
<span class="text-sm text-slate-light">Footer info</span>
<a href="#" class="btn-tertiary btn-xs">Read more</a>
</div>
</div>Copy <div class="card-hover">
<img class="card-image" src="..." alt="..." />
<div class="card-body">
<h3 class="text-xl font-bold">Hover card</h3>
<p class="text-slate-light text-sm">Scales up on hover.</p>
</div>
</div>
Alerts
Notification banners — pure CSS, no JavaScript.
This is an informational message.
Operation completed successfully.
Please review your input before continuing.
An error occurred. Please try again.
html Copy all
Copy <div class="alert-info">
<span class="i-lucide-info text-lg shrink-0"></span>
<span>This is an informational message.</span>
</div>Copy <div class="alert-success">
<span class="i-lucide-check-circle text-lg shrink-0"></span>
<span>Operation completed successfully.</span>
</div>Copy <div class="alert-warning">
<span class="i-lucide-triangle-alert text-lg shrink-0"></span>
<span>Please review your input before continuing.</span>
</div>Copy <div class="alert-error">
<span class="i-lucide-x-circle text-lg shrink-0"></span>
<span>An error occurred. Please try again.</span>
</div>
Props
hrefstring—Link URL. If provided, wraps entire card in an anchor tag. imgSrcstring—Image source URL. Displays at the top of the card with object-fit coverage. imgAltstring—Alt text for the card image. Important for accessibility. classstring—Additional CSS classes to apply to the card root element.
Slot
The card body accepts a default slot. Typically contains:
<h5> or <h6> title
<p> description text
<div> with price or metadata
<Button> or other interactive elements
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="astro"><code><span class="line"><span style="color:#E1E4E8"><</span><span style="color:#79B8FF">Card</span><span style="color:#B392F0"> href</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"#"</span><span style="color:#B392F0"> imgSrc</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"..."</span><span style="color:#B392F0"> imgAlt</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"..."</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">h5</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"mb-2 font-bold"</span><span style="color:#E1E4E8">>Product Name</</span><span style="color:#85E89D">h5</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">p</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"mb-3"</span><span style="color:#E1E4E8">>Product description</</span><span style="color:#85E89D">p</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">div</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"flex justify-between"</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">span</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"font-bold"</span><span style="color:#E1E4E8">>€99.00</</span><span style="color:#85E89D">span</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#79B8FF">Button</span><span style="color:#E1E4E8">>View</</span><span style="color:#79B8FF">Button</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> </</span><span style="color:#85E89D">div</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"></</span><span style="color:#79B8FF">Card</span><span style="color:#E1E4E8">></span></span></code></pre>
CSS Shortcuts
For non-Vue/Astro projects, use these CSS shortcut classes:
Class
Purpose
card
Base card container with image, body, footer layout
card-hover
Card that scales up on hover (extends card)
card-image
Image container with object-fit coverage
card-body
Content area with padding
card-footer
Bottom section with flex layout
alert-info
Information banner with icon area
alert-success
Success notification banner
alert-warning
Warning notification banner
alert-error
Error notification banner