> ## Documentation Index
> Fetch the complete documentation index at: https://juo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Card

> Surface container with border, radius, and nested level support.

<Frame>
  <iframe src="data:text/html;base64,PCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgc2NyaXB0cy9nZW5lcmF0ZS1kb2NzLnRzLiBEbyBub3QgZWRpdCBtYW51YWxseS4gLS0+CjwhRE9DVFlQRSBodG1sPgo8aHRtbCBsYW5nPSJlbiI+CjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vQGp1by9jdXN0b21lci11aS9kaXN0L3dlYi1jb21wb25lbnRzLmlpZmUuanMiPjwvc2NyaXB0PgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9pbnRlci11aUAzLjE5LjMvaW50ZXIubWluLmNzcyIgLz4KICA8c3R5bGU+CiAgICAqIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CiAgICBodG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9CiAgICBib2R5IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGZvbnQtZmFtaWx5OiAiSW50ZXIgdmFyIiwgc2Fucy1zZXJpZjsgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH0KICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKPHN0eWxlPgogIC8qIENhcmRzIGluaGVyaXQgc3VyZmFjZSBjb2xvdXJzIGZyb20gdGhlIGFjdGl2ZSB0aGVtZS4gU3VwcGx5IGEgcmVwcmVzZW50YXRpdmUKICAgICBzdXJmYWNlIHNjYWxlIHZpYSB0aGUgcHVibGljIC0tdGhlbWUtc3VyZmFjZS0qIGhvb2tzIHNvIGVhY2ggbGV2ZWwgaXMgZGlzdGluY3Q7CiAgICAgdGhlIHBlci1sZXZlbCBzdHlsaW5nIGl0c2VsZiBjb21lcyBmcm9tIHRoZSByZWFsIC0tY2FyZC17Tn0tKiB0b2tlbiBjaGFpbi4gKi8KICAuc3VyZmFjZS1kZW1vIHsKICAgIC0tdGhlbWUtc3VyZmFjZS0xOiAjZmZmZmZmOyAgLS10aGVtZS1zdXJmYWNlLTEtYm9yZGVyOiAjZTVlN2ViOwogICAgLS10aGVtZS1zdXJmYWNlLTI6ICNmOWZhZmI7ICAtLXRoZW1lLXN1cmZhY2UtMi1ib3JkZXI6ICNkMWQ1ZGI7CiAgICAtLXRoZW1lLXN1cmZhY2UtMzogI2YzZjRmNjsgIC0tdGhlbWUtc3VyZmFjZS0zLWJvcmRlcjogI2M3Y2NkNTsKICAgIHdpZHRoOiA5MCU7CiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKICB9CiAgLnN1cmZhY2UtZGVtbyBqdW8tY2FyZCB7IGRpc3BsYXk6IGJsb2NrOyB9CiAgLmxhYmVsIHsgbWFyZ2luOiAwIDAgOHB4OyBmb250LXNpemU6IDExcHg7IGNvbG9yOiAjNmI3MjgwOyB9Cjwvc3R5bGU+CjxkaXYgY2xhc3M9InN1cmZhY2UtZGVtbyI+CiAgPGp1by1jYXJkIGxldmVsPSIxIiBwYWRkaW5nPSJsZyI+CiAgICA8cCBjbGFzcz0ibGFiZWwiPkxldmVsIDE8L3A+CiAgICA8anVvLWNhcmQgbGV2ZWw9IjIiIHBhZGRpbmc9ImxnIj4KICAgICAgPHAgY2xhc3M9ImxhYmVsIj5MZXZlbCAyPC9wPgogICAgICA8anVvLWNhcmQgbGV2ZWw9IjMiIHBhZGRpbmc9ImxnIj4KICAgICAgICA8cCBjbGFzcz0ibGFiZWwiIHN0eWxlPSJtYXJnaW46MDsiPkxldmVsIDM8L3A+CiAgICAgIDwvanVvLWNhcmQ+CiAgICA8L2p1by1jYXJkPgogIDwvanVvLWNhcmQ+CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K" style={{ width: "100%", height: "280px", border: "none" }} />
</Frame>

<Accordion title="Example code">
  ```html theme={null}

  <style>
    /* Cards inherit surface colours from the active theme. Supply a representative
       surface scale via the public --theme-surface-* hooks so each level is distinct;
       the per-level styling itself comes from the real --card-{N}-* token chain. */
    .surface-demo {
      --theme-surface-1: #ffffff;  --theme-surface-1-border: #e5e7eb;
      --theme-surface-2: #f9fafb;  --theme-surface-2-border: #d1d5db;
      --theme-surface-3: #f3f4f6;  --theme-surface-3-border: #c7ccd5;
      width: 90%;
      font-family: sans-serif;
    }
    .surface-demo juo-card { display: block; }
    .label { margin: 0 0 8px; font-size: 11px; color: #6b7280; }
  </style>
  <div class="surface-demo">
    <juo-card level="1" padding="lg">
      <p class="label">Level 1</p>
      <juo-card level="2" padding="lg">
        <p class="label">Level 2</p>
        <juo-card level="3" padding="lg">
          <p class="label" style="margin:0;">Level 3</p>
        </juo-card>
      </juo-card>
    </juo-card>
  </div>
  ```
</Accordion>

Surface container with border, radius, and nested level support. Levels 1–3 map to progressively
insetter surface tokens. In a normal DOM tree the level is inferred automatically from nesting via
the descendant `.card.card` selectors. As an isolated web component each card lives in its own
shadow root, so those selectors can't match across the boundary — instead we infer the level on
mount by walking the (light-DOM) ancestor `&lt;juo-card&gt;` hosts. An explicit `level` prop always
wins. `padding` and `rounding` map to the `--padding-*` and `--radius-*` scales.

## Usage

```html theme={null}
<juo-card>Card</juo-card>
```

## Reference

### Parameters

<ParamField path="level" type="attr · 1 | 2 | 3">
  Surface level. Omit to infer from DOM nesting; set explicitly for web-component nesting.
</ParamField>

<ParamField path="padding" type="attr · md | sm | lg | xl | none | xs | 2xl | 3xl">
  Inner padding, from the `--padding-*` scale.
</ParamField>

<ParamField path="rounding" type="attr · md | sm | lg | xl | none | xs | full">
  Corner rounding, from the `--radius-*` scale. Defaults to the level's radius.
</ParamField>

### Slots

<ResponseField name="default" type="slot" />
