bx

Card

Displays a card with header, content, and footer.

Create project
Deploy your new project in one-click.

Name : my-app

Framework : Next.js

tsx
<Card>
  <CardHeader>
    <CardTitle>Create project</CardTitle>
    <CardDescription>Deploy your new project in one-click.</CardDescription>
  </CardHeader>
  <CardContent>{/* body */}</CardContent>
  <CardFooter className="flex justify-end gap-2">
    <Button variant="outline">Cancel</Button>
    <Button>Deploy</Button>
  </CardFooter>
</Card>

Card — conteneur générique pour du contenu regroupé (utilisateur, produit, tableau de stats). Bordure + fond + padding + shadow-sm.

Composition idiomatique : CardHeader (Title + Description) → CardContent (corps) → CardFooter (actions).

Installation

Terminal
$ bext ui add card

Usage

tsx
import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from "@bext-stack/ui/primitives"

<Card>
  <CardHeader>
    <CardTitle>Notifications</CardTitle>
    <CardDescription>You have 3 unread messages.</CardDescription>
  </CardHeader>
  <CardContent>{/* body */}</CardContent>
  <CardFooter>
    <Button>Mark all as read</Button>
  </CardFooter>
</Card>

Anatomy

<Card>
  ├── <CardHeader>
  │   ├── <CardTitle>...</CardTitle>
  │   └── <CardDescription>...</CardDescription>
  ├── <CardContent>...corps libre...</CardContent>
  └── <CardFooter>...actions...</CardFooter>

API Reference

Card

Prop Type Default Description
className string rounded-xl border bg-card text-card-foreground shadow-sm.

CardHeader

Prop Type Default Description
className string flex flex-col gap-1.5 p-6.

CardTitle

Prop Type Default Description
className string

text-lg font-semibold leading-none tracking-tight.

CardDescription

Prop Type Default Description
className string

text-sm text-muted-foreground.

CardContent

Prop Type Default Description
className string p-6 pt-0 par défaut.

CardFooter

Prop Type Default Description
className string flex items-center p-6 pt-0.

Accessibility

Card est un container visuel — aucun rôle ARIA nécessaire. Si la card entière est cliquable, wrapper dans <a> ou <button>.

Try it live Open in play

Edit this example live in the bext playground — it compiles and runs entirely in your browser.

src/app/page.tsx 1 file · react · runs in your browser
The React idiom — same UI, for comparison.