Components
- Accordion
- Alert
- Avatar
- Badge
- Breadcrumb
- Bubble
- Button
- Button Group
- Calendar
- Carousel
- Checkbox
- Clipboard
- Collapsible
- Color Picker
- Combobox
- Data Table
- Date Picker
- Description List
- Dropdown Button
- Empty
- Form
- Group Box
- Hover Card
- Icon
- Image
- Input
- Input Group
- Kbd
- Label
- Link
- List
- Marker
- Menu
- Message
- Notification
- Number Input
- Pagination
- Popover
- Progress
- Progress Circle
- Radio
- Rating
- Resizable
- Scrollable
- Select
- Separator
- Sheet
- Shimmer
- Sidebar
- Skeleton
- Slider
- Spinner
- Status Bar
- Stepper
- Switch
- Table
- Tabs
- Tag
- Textarea
- Time Field
- Title Bar
- Toggle
- Toggle Group
- Toolbar
- Tooltip
- Tree
- Virtual List
A muted status line with an icon or a spinner, and optional separators.
New control
Interactive



<StackPanel Spacing="16" Width="420" HorizontalAlignment="Left">
<gpui:Marker Content="Conversation archived">
<gpui:Marker.Icon>
<PathIcon Data="{StaticResource Gpui.Icon.Info}" />
</gpui:Marker.Icon>
</gpui:Marker>
<gpui:Marker Classes="separator" Content="Today" />
<gpui:Marker Classes="border" Content="Earlier messages" />
</StackPanel>Usage
gpui:Marker is a muted text_sm row for a conversation or a timeline: an Icon in a 16px box, then the content, 8px apart. HorizontalContentAlignment places the row: Left (the default, GPUI Kit's start), Center or Right. While IsLoading, and there is no icon, a small spinner leads instead.
| Class | Meaning |
|---|---|
separator | 1px lines in the border color fill the rest of the row, on both sides of the content when centered or on one side when aligned to an end. |
border | A bottom border, with 8px under the row. |
shimmer | While loading, a text content shimmers instead of the spinner (other content pulses). |
Examples
HorizontalContentAlignment places the content and its separators at the start, center or end; without separators the row itself moves.
Interactive



<StackPanel Spacing="16" Width="420" HorizontalAlignment="Left">
<gpui:Marker Classes="separator" Content="Start" HorizontalContentAlignment="Left" />
<gpui:Marker Classes="separator" Content="Center" />
<gpui:Marker Classes="separator" Content="End" HorizontalContentAlignment="Right" />
<gpui:Marker Content="Online" HorizontalContentAlignment="Center">
<gpui:Marker.Icon>
<PathIcon Data="{StaticResource Gpui.Icon.CircleCheck}" />
</gpui:Marker.Icon>
</gpui:Marker>
<gpui:Marker Content="Seen 2 minutes ago" HorizontalContentAlignment="Right" />
</StackPanel>IsLoading leads with a spinner, or shimmers the text with shimmer; separators stay.
Interactive



<StackPanel Spacing="16" Width="320" HorizontalAlignment="Left">
<gpui:Marker Content="Thinking" IsLoading="True" />
<gpui:Marker Classes="shimmer" Content="Thinking" IsLoading="True" />
<gpui:Marker Classes="separator" Content="Loading older messages" IsLoading="True" />
</StackPanel>Not covered
- Changing the separator's style (
separator_style).