---
title: slot
description: A named hole inside a component that an instance projects layout content into — the mechanism behind shared chrome with different bodies.
status: shipped
url: https://getairframe.com/framewerk/reference/nodes/slot
---

> Part of the Framewerk docs. Index of every page: /framewerk/llms.txt

# `slot`

A named hole inside a component that an instance projects layout content into — the mechanism behind shared chrome with different bodies.

## Example

**slot**

```json
{
  "formatVersion": "1.0",
  "components": {
    "shell": {
      "slots": [
        "body"
      ],
      "layout": {
        "_id": "sh",
        "type": "column",
        "children": [
          {
            "_id": "hd",
            "type": "text",
            "variant": "heading",
            "content": "App"
          },
          {
            "_id": "bd",
            "type": "slot",
            "name": "body"
          }
        ]
      }
    }
  },
  "screens": [
    {
      "id": "home",
      "layout": {
        "_id": "root",
        "type": "component",
        "ref": "shell",
        "slots": {
          "body": {
            "_id": "in",
            "type": "text",
            "content": "Projected body"
          }
        }
      }
    }
  ]
}
```

## States

Projected content or `fallback`. Common to every node: `hover` / `press` / `focus` CSS bags, `showWhen` / `hideWhen`, `animate`.

## Stability

This node type is part of the format contract: adding an optional prop is additive; removing the node or narrowing an existing prop is breaking. Prop tables are generated from the schema; this page carries the prose.
