Skip to content

ChatHeader

ChatHeader

<ChatHeader
avatar={
<span style={{ position: 'relative' }}>
<Avatar fallback="AL" />
<PresenceDot attached status="online" />
</span>
}
title="Alice Liddell"
subtitle="Active now"
actions={
<>
<IconButton aria-label="Search"><Search /></IconButton>
<IconButton aria-label="More"><Dots /></IconButton>
</>
}
/>

Install: @helixui/core

import { ChatHeader } from '@helixui/core'

status: stable · since: 0.3.0

Tags: conversation, top-bar, identity

Anatomy

┌──── ● Sara Tang typing… ──── [⋮][📞] ┐

Layout

  • displayflex
  • widthfill
  • heightcontent
  • intrinsicSize~56px tall, full width
  • stackablefalse
  • fullBleedtrue

Visual

A horizontal bar with a leading Avatar, a title with optional subtitle (online status, typing), and right-aligned action icons. Border-bottom by border.default separates it from the message list.

Props

NameTypeDefaultDescription
avatarReactNodeAvatar rendered on the left. May contain a PresenceDot.
titleReactNodeConversation title — channel name, person, AI assistant.
subtitleReactNodeMember count, presence text, model name.
actionsReactNodeRight-aligned IconButtons / Buttons — call, search, more.

Tokens used

color.bg.surface.default, color.border.default, color.text.primary, color.text.muted, space.1, space.3, space.4, font.family.sans, font.size.xs, font.size.md, font.weight.semibold

Accessibility

Notes

  • Renders as <header>. The title is plain content — wrap in a heading tag if appropriate (<Text as="h2">).

Composes with

ComponentRelationNote
AvatarchildLeading slot.
IconButtonchildRight-aligned actions.
ChatListsiblingSits above the chat list.
ChatComposersibling

Prompt examples

These are the AI prompt → JSX mappings used by the helixui prompt DSL and integrations like Cursor / Claude Code.

one-on-one chat header

“header with avatar, name, online dot”

<ChatHeader avatar={<Avatar fallback="ST" />} title="Sara" subtitle="online" />