Card
The Card component is a container for grouping and displaying related content in a visually distinct manner.
Installation
npm install @duskmoon-dev/el-card
Usage
import '@duskmoon-dev/el-card/register';
<el-dm-card>
<h2>Card Title</h2>
<p>Card content goes here.</p>
</el-dm-card>
Live Demo
Card Variants
Elevated
With shadow
Outlined
With border
Filled
Solid background
Properties
| Property | Type | Default | Description |
|---|---|---|---|
variant | 'elevated' | 'outlined' | 'filled' | 'elevated' | Visual style of the card |
padding | 'none' | 'sm' | 'md' | 'lg' | 'md' | Internal padding |
interactive | boolean | false | Enables hover effects for clickable cards |
Variants
Elevated
The elevated variant has a shadow for depth.
<el-dm-card variant="elevated">
<h3>Elevated Card</h3>
<p>This card has a subtle shadow.</p>
</el-dm-card>
Outlined
The outlined variant has a border instead of shadow.
<el-dm-card variant="outlined">
<h3>Outlined Card</h3>
<p>This card has a border.</p>
</el-dm-card>
Filled
The filled variant has a solid background color.
<el-dm-card variant="filled">
<h3>Filled Card</h3>
<p>This card has a filled background.</p>
</el-dm-card>
Padding
Card Padding Options
<el-dm-card padding="none">No padding</el-dm-card>
<el-dm-card padding="sm">Small padding</el-dm-card>
<el-dm-card padding="md">Medium padding</el-dm-card>
<el-dm-card padding="lg">Large padding</el-dm-card>
Interactive Cards
For clickable cards, add the interactive attribute:
Interactive Card
Clickable Card
Hover to see the effect.
<el-dm-card interactive>
<h3>Clickable Card</h3>
<p>Hover to see the effect.</p>
</el-dm-card>
Slots
The card component uses the default slot for content:
<el-dm-card>
<!-- Header -->
<header>
<h3>Card Header</h3>
</header>
<!-- Body -->
<div class="card-body">
<p>Main content area</p>
</div>
<!-- Footer -->
<footer>
<el-dm-button>Action</el-dm-button>
</footer>
</el-dm-card>
CSS Custom Properties
| Property | Default | Description |
|---|---|---|
--card-padding | 1rem | Internal padding |
--card-border-radius | 0.5rem | Border radius |
--card-shadow | 0 1px 3px rgba(0,0,0,0.12) | Box shadow for elevated variant |
--card-border-color | var(--color-outline) | Border color for outlined variant |
--card-background | var(--color-surface) | Background color |
Accessibility
- Use semantic HTML elements inside the card
- Provide meaningful headings for screen readers
- If interactive, ensure keyboard navigation works properly