> ## Documentation Index
> Fetch the complete documentation index at: https://velt-mintlify-2d86552e.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Presence

> The Presence component displays the avatars of users in a room.

<Note>
  We recommend that you familiarize yourself with [UI Customization Concepts](/ui-customization/overview) before attempting to modify any components.
</Note>

## VeltPresenceWireframe

<img src="https://mintcdn.com/velt-mintlify-2d86552e/fu6zV4knM2DnsImM/images/customization/presence/presence-overview.png?fit=max&auto=format&n=fu6zV4knM2DnsImM&q=85&s=08b0a5fe15859c9e99859d37a6298083" alt="presence-overview.png" width="1280" height="420" data-path="images/customization/presence/presence-overview.png" />

<Tabs>
  <Tab title="React / Next.js">
    ```jsx theme={null}
    <VeltWireframe>
        <VeltPresenceWireframe>
            <VeltPresenceWireframe.AvatarList />
            <VeltPresenceWireframe.AvatarRemainingCount />
        </VeltPresenceWireframe>
    </VeltWireframe>
    ```
  </Tab>

  <Tab title="Other Frameworks">
    ```html theme={null}
    <velt-wireframe style="display:none;">
        <velt-presence-wireframe>
            <velt-presence-avatar-list-wireframe></velt-presence-avatar-list-wireframe>
            <velt-presence-avatar-remaining-count-wireframe></velt-presence-avatar-remaining-count-wireframe>
        </velt-presence-wireframe>
    </velt-wireframe>
    ```
  </Tab>
</Tabs>

### AvatarList

<img src="https://mintcdn.com/velt-mintlify-2d86552e/fu6zV4knM2DnsImM/images/customization/presence/presence-avatar-list.png?fit=max&auto=format&n=fu6zV4knM2DnsImM&q=85&s=39fec2bd6f9ccaea2553a25d79b455e6" alt="presence-avatar-list.png" width="1280" height="420" data-path="images/customization/presence/presence-avatar-list.png" />

<Tabs>
  <Tab title="React / Next.js">
    ```jsx theme={null}
    <VeltWireframe>
        <VeltPresenceWireframe.AvatarList>
            <VeltPresenceWireframe.AvatarList.Item />
        </VeltPresenceWireframe.AvatarList>
    </VeltWireframe>
    ```
  </Tab>

  <Tab title="Other Frameworks">
    ```html theme={null}
    <velt-wireframe style="display:none;">
        <velt-presence-avatar-list-wireframe>
            <velt-presence-avatar-list-item-wireframe></velt-presence-avatar-list-item-wireframe>
        </velt-presence-avatar-list-wireframe>
    </velt-wireframe>
    ```
  </Tab>
</Tabs>

#### Item

<img src="https://mintcdn.com/velt-mintlify-2d86552e/fu6zV4knM2DnsImM/images/customization/presence/presence-avatar-list-item.png?fit=max&auto=format&n=fu6zV4knM2DnsImM&q=85&s=e135f4ccb6bc2d9dc9146dde89174453" alt="presence-avatar-list-item.png" width="1280" height="420" data-path="images/customization/presence/presence-avatar-list-item.png" />

<Tabs>
  <Tab title="React / Next.js">
    ```jsx theme={null}
    <VeltWireframe>
        <VeltPresenceWireframe.AvatarList.Item />
    </VeltWireframe>
    ```
  </Tab>

  <Tab title="Other Frameworks">
    ```html theme={null}
    <velt-wireframe style="display:none;">
        <velt-presence-avatar-list-item-wireframe></velt-presence-avatar-list-item-wireframe>
    </velt-wireframe>
    ```
  </Tab>
</Tabs>

### AvatarRemainingCount

<img src="https://mintcdn.com/velt-mintlify-2d86552e/fu6zV4knM2DnsImM/images/customization/presence/presence-avatar-remaining-count.png?fit=max&auto=format&n=fu6zV4knM2DnsImM&q=85&s=8fe15db0bddf3134bec2183f3eaa1ed2" alt="presence-avatar-remaining-count.png" width="1280" height="420" data-path="images/customization/presence/presence-avatar-remaining-count.png" />

<Tabs>
  <Tab title="React / Next.js">
    ```jsx theme={null}
    <VeltWireframe>
        <VeltPresenceWireframe.AvatarRemainingCount />
    </VeltWireframe>
    ```
  </Tab>

  <Tab title="Other Frameworks">
    ```html theme={null}
    <velt-wireframe style="display:none;">
        <velt-presence-avatar-remaining-count-wireframe></velt-presence-avatar-remaining-count-wireframe>
    </velt-wireframe>
    ```
  </Tab>
</Tabs>

## VeltPresenceTooltipWireframe

<img src="https://mintcdn.com/velt-mintlify-2d86552e/pVTIwaPDezU2suJO/images/customization/presence/presence-tooltip.png?fit=max&auto=format&n=pVTIwaPDezU2suJO&q=85&s=b4485565a4f96569c87dc1afaee6c8ef" alt="presence-tooltip.png" width="1280" height="420" data-path="images/customization/presence/presence-tooltip.png" />

<Tabs>
  <Tab title="React / Next.js">
    ```jsx theme={null}
    <VeltWireframe>
        <VeltPresenceTooltipWireframe>
            <VeltPresenceTooltipWireframe.Avatar />
            <VeltPresenceTooltipWireframe.StatusContainer />
        </VeltPresenceTooltipWireframe>
    </VeltWireframe>
    ```
  </Tab>

  <Tab title="Other Frameworks">
    ```html theme={null}
    <velt-wireframe style="display:none;">
        <velt-presence-tooltip-wireframe>
            <velt-presence-tooltip-avatar-wireframe></velt-presence-tooltip-avatar-wireframe>
            <velt-presence-tooltip-status-container-wireframe></velt-presence-tooltip-status-container-wireframe>
        </velt-presence-tooltip-wireframe>
    </velt-wireframe>
    ```
  </Tab>
</Tabs>

### Avatar

<img src="https://mintcdn.com/velt-mintlify-2d86552e/pVTIwaPDezU2suJO/images/customization/presence/presence-tooltip-avatar.png?fit=max&auto=format&n=pVTIwaPDezU2suJO&q=85&s=ee434df6768f4d3060fbe5b5ba54669b" alt="presence-tooltip-avatar.png" width="1280" height="420" data-path="images/customization/presence/presence-tooltip-avatar.png" />

<Tabs>
  <Tab title="React / Next.js">
    ```jsx theme={null}
    <VeltWireframe>
        <VeltPresenceTooltipWireframe.Avatar />
    </VeltWireframe>
    ```
  </Tab>

  <Tab title="Other Frameworks">
    ```html theme={null}
    <velt-wireframe style="display:none;">
        <velt-presence-tooltip-avatar-wireframe></velt-presence-tooltip-avatar-wireframe>
    </velt-wireframe>
    ```
  </Tab>
</Tabs>

### StatusContainer

<img src="https://mintcdn.com/velt-mintlify-2d86552e/fu6zV4knM2DnsImM/images/customization/presence/presence-tooltip-avatar-status.png?fit=max&auto=format&n=fu6zV4knM2DnsImM&q=85&s=c2ed8c6f5f3cc3d69d5e80952d8bc4ab" alt="presence-tooltip-avatar-status.png" width="1280" height="420" data-path="images/customization/presence/presence-tooltip-avatar-status.png" />

<Tabs>
  <Tab title="React / Next.js">
    ```jsx theme={null}
    <VeltWireframe>
        <VeltPresenceTooltipWireframe.StatusContainer>
            <VeltPresenceTooltipWireframe.UserName />
            <VeltPresenceTooltipWireframe.UserActive />
            <VeltPresenceTooltipWireframe.UserInactive />
        </VeltPresenceTooltipWireframe.StatusContainer>
    </VeltWireframe>
    ```
  </Tab>

  <Tab title="Other Frameworks">
    ```html theme={null}
    <velt-wireframe style="display:none;">
        <velt-presence-tooltip-status-container-wireframe>
            <velt-presence-tooltip-user-name-wireframe></velt-presence-tooltip-user-name-wireframe>
            <velt-presence-tooltip-user-active-wireframe></velt-presence-tooltip-user-active-wireframe>
            <velt-presence-tooltip-user-inactive-wireframe></velt-presence-tooltip-user-inactive-wireframe>
        </velt-presence-tooltip-status-container-wireframe>
    </velt-wireframe>
    ```
  </Tab>
</Tabs>

#### UserName

<img src="https://mintcdn.com/velt-mintlify-2d86552e/pVTIwaPDezU2suJO/images/customization/presence/presence-tooltip-username.png?fit=max&auto=format&n=pVTIwaPDezU2suJO&q=85&s=66f69c94b6e090daea8d3d3e12c2dca9" alt="presence-tooltip-username.png" width="1280" height="420" data-path="images/customization/presence/presence-tooltip-username.png" />

<Tabs>
  <Tab title="React / Next.js">
    ```jsx theme={null}
    <VeltWireframe>
        <VeltPresenceTooltipWireframe.UserName />
    </VeltWireframe>
    ```
  </Tab>

  <Tab title="Other Frameworks">
    ```html theme={null}
    <velt-wireframe style="display:none;">
        <velt-presence-tooltip-user-name-wireframe></velt-presence-tooltip-user-name-wireframe>
    </velt-wireframe>
    ```
  </Tab>
</Tabs>

#### UserActive

<img src="https://mintcdn.com/velt-mintlify-2d86552e/pVTIwaPDezU2suJO/images/customization/presence/presence-tooltip-user-active.png?fit=max&auto=format&n=pVTIwaPDezU2suJO&q=85&s=847246e1479189a7d0187b7fdd9ca278" alt="presence-tooltip-user-active.png" width="1280" height="420" data-path="images/customization/presence/presence-tooltip-user-active.png" />

<Tabs>
  <Tab title="React / Next.js">
    ```jsx theme={null}
    <VeltWireframe>
        <VeltPresenceTooltipWireframe.UserActive />
    </VeltWireframe>
    ```
  </Tab>

  <Tab title="Other Frameworks">
    ```html theme={null}
    <velt-wireframe style="display:none;">
        <velt-presence-tooltip-user-active-wireframe></velt-presence-tooltip-user-active-wireframe>
    </velt-wireframe>
    ```
  </Tab>
</Tabs>

#### UserInactive

<img src="https://mintcdn.com/velt-mintlify-2d86552e/pVTIwaPDezU2suJO/images/customization/presence/presence-tooltip-user-inactive.png?fit=max&auto=format&n=pVTIwaPDezU2suJO&q=85&s=34cf88c29ce091e8a4f5a910eb84bc31" alt="presence-tooltip-user-inactive.png" width="1280" height="420" data-path="images/customization/presence/presence-tooltip-user-inactive.png" />

<Tabs>
  <Tab title="React / Next.js">
    ```jsx theme={null}
    <VeltWireframe>
        <VeltPresenceTooltipWireframe.UserInactive />
    </VeltWireframe>
    ```
  </Tab>

  <Tab title="Other Frameworks">
    ```html theme={null}
    <velt-wireframe style="display:none;">
        <velt-presence-tooltip-user-inactive-wireframe></velt-presence-tooltip-user-inactive-wireframe>
    </velt-wireframe>
    ```
  </Tab>
</Tabs>

## Styling

### Disable ShadowDOM

* By default, ShadowDOM is used to ensure that your app's CSS does not interfere with the styling of the SDK components.
* Disable the shadow dom to apply your custom CSS to the component.

Default: `true`

<Tabs>
  <Tab title="React / Next.js">
    ```jsx theme={null}
    <VeltPresence shadowDom={false} />
    ```
  </Tab>

  <Tab title="Other Frameworks">
    ```jsx theme={null}
    <velt-presence shadow-dom="false"></velt-presence>
    ```
  </Tab>
</Tabs>

## Limitations

* **Anonymous local users never see presence.** The feature requires an identified user.
* **`maxUsers` does double duty**: it caps the avatars shown *and* gates the "+N" overflow badge, which renders only when `filteredPresenceUsers.length > maxUsers`.
* **A custom `template` needs `shadowDom="true"` explicitly** if you want it inside the shadow DOM.
* **Tooltip slots are status-gated**: `.UserActive` renders only for `online` and `.UserInactive` only for `away`. Neither renders for `offline`.
