Skip to content
Entangle UI v0.13.0

StatusBar

Application status bar for displaying live status information at the bottom of editor interfaces. Supports sectioned layout (left/right), interactive and static items, badge indicators, and color variants for different application states.

Live Preview

import { StatusBar } from 'entangle-ui';
<StatusBar>
<StatusBar.Section side="left">
<StatusBar.Item icon={<BranchIcon />}>main</StatusBar.Item>
<StatusBar.Item icon={<SyncIcon />} onClick={handleSync}>
Synced
</StatusBar.Item>
</StatusBar.Section>
<StatusBar.Section side="right">
<StatusBar.Item>Ln 42, Col 8</StatusBar.Item>
<StatusBar.Item onClick={handleLanguage}>TypeScript</StatusBar.Item>
</StatusBar.Section>
</StatusBar>

| Component | Purpose | | ------------------- | --------------------------------------------------------------------------------------------- | | StatusBar.Section | Container for grouping items on the left or right side | | StatusBar.Item | Individual status item — renders as a button when onClick is provided, otherwise as a span |

The variant prop changes the status bar’s background color to communicate application state.

<StatusBar variant="default">
<StatusBar.Section side="left">
<StatusBar.Item>Ready</StatusBar.Item>
</StatusBar.Section>
</StatusBar>
<StatusBar variant="error">
<StatusBar.Section side="left">
<StatusBar.Item>Build Failed</StatusBar.Item>
</StatusBar.Section>
</StatusBar>
<StatusBar variant="accent">
<StatusBar.Section side="left">
<StatusBar.Item>Remote Connected</StatusBar.Item>
</StatusBar.Section>
</StatusBar>

| Variant | Use case | | --------- | ------------------------------------------------ | | default | Normal application state (default) | | error | Error or critical state (e.g., build failure) | | accent | Active or special state (e.g., remote debugging) |

<StatusBar size="sm">{/* Compact */}</StatusBar>
<StatusBar size="md">{/* Standard */}</StatusBar>

| Size | Use case | | ---- | ---------------------------- | | sm | Compact status bar (default) | | md | Standard height |

When an onClick handler is provided, StatusBar.Item renders as a <button> with hover and focus styles. Without onClick, it renders as a static <span>.

<StatusBar>
<StatusBar.Section side="left">
{/* Static display */}
<StatusBar.Item icon={<CheckIcon />}>No Errors</StatusBar.Item>
{/* Clickable button */}
<StatusBar.Item onClick={handleWarnings} icon={<WarningIcon />}>
3 Warnings
</StatusBar.Item>
</StatusBar.Section>
</StatusBar>

Items support badge indicators. Pass a number for a numeric badge, or true for a dot indicator.

<StatusBar>
<StatusBar.Section side="left">
{/* Numeric badge */}
<StatusBar.Item icon={<BellIcon />} badge={5} onClick={handleNotifications}>
Notifications
</StatusBar.Item>
{/* Dot badge */}
<StatusBar.Item icon={<UpdateIcon />} badge={true} onClick={handleUpdate}>
Updates Available
</StatusBar.Item>
</StatusBar.Section>
</StatusBar>

Use StatusBar.Section to align items to the left or right side of the status bar. Items within each section are laid out inline.

<StatusBar>
<StatusBar.Section side="left">
<StatusBar.Item>Left-aligned items</StatusBar.Item>
</StatusBar.Section>
<StatusBar.Section side="right">
<StatusBar.Item>Right-aligned items</StatusBar.Item>
</StatusBar.Section>
</StatusBar>
Prop Type Default Description
size 'sm' | 'md' 'sm' Size of the status bar.
variant 'default' | 'error' | 'accent' 'default' Color variant indicating application state.
children ReactNode StatusBar.Section components.
className string Additional CSS class names.
style CSSProperties Inline styles.
testId string Test identifier for automated testing.
ref Ref<HTMLDivElement> Ref to the root element.
Prop Type Default Description
side 'left' | 'right' 'left' Which side of the status bar the section aligns to.
children ReactNode StatusBar.Item components.
className string Additional CSS class names.
style CSSProperties Inline styles.
testId string Test identifier for automated testing.
ref Ref<HTMLDivElement> Ref to the section element.
Prop Type Default Description
children ReactNode Item label text.
icon ReactNode Icon element displayed before the label.
onClick () => void Click handler. When provided, the item renders as a button instead of a span.
title string Tooltip text shown on hover.
badge number | boolean Badge indicator. A number shows a count badge. `true` shows a dot badge. `false` or `undefined` hides the badge.
disabled boolean false Whether the item is disabled (only applies to interactive items).
className string Additional CSS class names.
style CSSProperties Inline styles.
testId string Test identifier for automated testing.
ref Ref<HTMLElement> Ref to the item element (HTMLButtonElement when clickable, HTMLSpanElement when static).
  • The root element has role="status" with aria-live="polite", so screen readers announce content changes without interrupting the user
  • Interactive items render as native <button> elements with full keyboard support
  • Static items render as <span> elements
  • Use the title prop on items to provide additional context via tooltip