# <aihio-card>

A bordered surface that groups related content, with an optional header (title and description), content area, and footer for actions, such as a settings section or an item in a grid.

Intents: `container`, `surface`.

## Attributes

- `variant` (`default` | `outline`): Visual style variant. Outline removes the shadow. Default: `default`.

## Slots

- `default`: Card content. Use aihio-card-header, aihio-card-content, aihio-card-footer for structure.

## <aihio-card-header>

Card header container.

## <aihio-card-title>

Card title text.

## <aihio-card-description>

Card description text.

## <aihio-card-content>

Card main content area.

## <aihio-card-footer>

Card footer with actions.

## Accessibility obligations

- (warn, card-click-handler) When card acts as a link or button (entire surface is clickable, or it has a click handler): Wrap the card in an <a> or attach role="button" + keyboard handlers on the outer element. aihio-card itself has no interactive role.

## Examples

### Header, content, and footer

```html
<aihio-card>
  <aihio-card-header>
    <aihio-card-title>Card Title</aihio-card-title>
    <aihio-card-description>Card description.</aihio-card-description>
  </aihio-card-header>
  <aihio-card-content>
    <p>Card content here.</p>
  </aihio-card-content>
  <aihio-card-footer>
    <aihio-button>Action</aihio-button>
  </aihio-card-footer>
</aihio-card>
```

## Mistakes

### Title must live inside aihio-card-header, not directly inside aihio-card.

Don't (aihio lint: invalid-child):

```html
<aihio-card><aihio-card-title>Hi</aihio-card-title></aihio-card>
```

Do:

```html
<aihio-card>
  <aihio-card-header>
    <aihio-card-title>Hi</aihio-card-title>
  </aihio-card-header>
</aihio-card>
```

### Clickable cards need keyboard-accessible semantics. Wrap the card in a link, or add role="button" plus keyboard handlers to the interactive surface.

Don't (aihio lint: card-click-handler):

```html
<aihio-card onclick="openDetails()"><p>Open details</p></aihio-card>
```

Do:

```html
<a href="/details">
  <aihio-card><p>Open details</p></aihio-card>
</a>
```
