Card
A card component for displaying content in a contained box with header, content, and footer sections.
Installation
bash
npx @galaxy-stack/nebula-cli@latest add cardbash
pnpm dlx @galaxy-stack/nebula-cli@latest add cardbash
yarn dlx @galaxy-stack/nebula-cli@latest add cardbash
bunx @galaxy-stack/nebula-cli@latest add cardbash
# If you have installed galaxy-design globally
galaxy-design add cardDependencies
This component automatically installs the following dependencies:
- React:
class-variance-authority - Vue:
class-variance-authority - Angular:
class-variance-authority - React Native:
nativewind,tailwindcss - Flutter: No additional dependencies
No manual installation needed!
Usage
Basic Example
tsx
import { Card, CardHeader, CardTitle, CardDescription, CardContent } from "@/components/ui/card"
export default function CardDemo() {
return (
<Card>
<CardHeader>
<CardTitle>Card Title</CardTitle>
<CardDescription>Card Description</CardDescription>
</CardHeader>
<CardContent>
<p>Card Content</p>
</CardContent>
</Card>
)
}vue
<script setup lang="ts">
import { Card, CardHeader, CardTitle, CardDescription, CardContent } from '@/components/ui/card'
</script>
<template>
<Card>
<CardHeader>
<CardTitle>Card Title</CardTitle>
<CardDescription>Card Description</CardDescription>
</CardHeader>
<CardContent>
<p>Card Content</p>
</CardContent>
</Card>
</template>With Actions
tsx
import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from "@/components/ui/card"
import { Button } from "@/components/ui/button"
export default function CardWithActions() {
return (
<Card>
<CardHeader>
<CardTitle>Card Title</CardTitle>
<CardDescription>Card Description</CardDescription>
</CardHeader>
<CardContent>
<p>Card Content</p>
</CardContent>
<CardFooter className="flex gap-2">
<Button variant="outline">Cancel</Button>
<Button>Save</Button>
</CardFooter>
</Card>
)
}vue
<script setup lang="ts">
import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from '@/components/ui/card'
import { Button } from '@/components/ui/button'
</script>
<template>
<Card>
<CardHeader>
<CardTitle>Card Title</CardTitle>
<CardDescription>Card Description</CardDescription>
</CardHeader>
<CardContent>
<p>Card Content</p>
</CardContent>
<CardFooter class="flex gap-2">
<Button variant="outline">Cancel</Button>
<Button>Save</Button>
</CardFooter>
</Card>
</template>API Reference
Components
| Component | Description | Props |
|---|---|---|
Card | Root container | className / class |
CardHeader | Header section | className / class |
CardTitle | Title text | className / class |
CardDescription | Description text | className / class |
CardContent | Main content area | className / class |
CardFooter | Footer section | className / class |
Accessibility
- Semantic HTML: Uses proper
<article>,<header>,<footer>elements - Screen Reader: Clear content hierarchy
- Focus Management: Inherits parent focus behavior
- WCAG Compliance: WCAG 2.1 Level AA compliant
Author
Bùi Trọng Hiếu (kevinbui)
- GitHub: @buikevin
- Email: kevinbui210191@gmail.com
License
MIT © 2025 Bùi Trọng Hiếu (kevinbui)
