Card Title
Some example content to demonstrate the card structure. Notice how we use semantic HTML elements instead of utility classes.
Axiom's cards provide flexible content containers following semantic-first principles with minimal classes.
Axiom01 cards use semantic HTML elements instead of multiple classes. Style child elements with descendant selectors like .card header and .card footer.
Some example content to demonstrate the card structure. Notice how we use semantic HTML elements instead of utility classes.
<article class="card">
<header>
<h3>Card Title</h3>
</header>
<p>Some example content to demonstrate the card structure. Notice how we use semantic HTML elements instead of utility classes.</p>
<footer>
<button class="primary">Primary Action</button>
<button class="secondary">Secondary</button>
</footer>
</article>
Add images directly to cards using semantic <img> elements. Axiom automatically styles images within cards.
Cards with images use semantic structure for better accessibility and cleaner markup.
<article class="card">
<img src="image.jpg" alt="Descriptive alt text">
<header>
<h3>Image Card</h3>
</header>
<p>Cards with images use semantic structure for better accessibility and cleaner markup.</p>
<footer>
<button class="primary">Learn More</button>
</footer>
</article>
Use single modifier classes to create card variations following Axiom's minimal class philosophy.
Standard card styling with semantic elements.
Enhanced shadow for more prominence.
Subtle border for definition.
<article class="card">Default Card</article>
<article class="card elevated">Elevated Card</article>
<article class="card bordered">Bordered Card</article>
Axiom cards are styled using descendant selectors, not utility classes:
/* ✅ Axiom01 Way - Descendant Selectors */
.card {
padding: var(--a-space-l);
border-radius: var(--a-border-radius-medium);
background: var(--a-color-surface);
}
.card header {
margin-bottom: var(--a-space-m);
border-bottom: 1px solid var(--a-color-outline);
}
.card footer {
margin-top: var(--a-space-m);
display: flex;
gap: var(--a-space-s);
}
.card img {
width: 100%;
border-radius: var(--a-border-radius-medium);
}
<article>, <header>, <footer>.card.card__header<div> wrappers