Welcome to Vanilla Breeze
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
General-purpose work unit card for tasks, bugs, chores, spikes, and features — the engineering sibling of user-story.
A web component for engineering work units — tasks, bugs, chores, spikes, and features. While <user-story> captures product needs in agile format, <work-item> represents the implementation work: what needs to be built, fixed, researched, or maintained. A single story may decompose into multiple work items, and some work items exist independently of any story.
<work-item item-id="PROJ-42" type="task" status="in-progress" priority="high" assignee="Sarah Chen" estimate="5" story-ids="PROJ-101,PROJ-102"> <h3 slot="title">Implement search API endpoint</h3> <p slot="description">Build the /api/search endpoint with filters and pagination.</p> <ul slot="checklist"> <li>Database schema design</li> <li>Endpoint implementation</li> <li>Integration tests</li> </ul></work-item>
| Attribute | Type | Default | Description |
|---|---|---|---|
item-id | string | — | Unique identifier (also sets HTML id for cross-referencing) |
type | string | "task" | task, bug, chore, spike, or feature |
priority | string | "medium" | critical, high, medium, or low |
status | string | "backlog" | backlog, to-do, in-progress, review, done, or blocked |
estimate | string | — | Effort estimate (points, hours, t-shirt size) |
assignee | string | — | Assignee name (shown with auto-generated avatar) |
story-ids | string | — | Comma-separated linked <user-story> IDs |
detail | string | "full" | full, compact, or minimal |
compact | boolean | — | Alias for detail="compact" |
src | string (URL) | — | Path to JSON data file |
| Slot | Expected Content | Description |
|---|---|---|
title | <h3> or text | Work item title displayed in the card header. |
description | <p> | Work item description. Shows in the body section. |
checklist | <ul> or <ol> | Subtasks or checklist items. |
notes | <p> | Additional notes, context, or links. |
Each type gets a distinct icon and color badge in the header. Types are semantic — they help teams categorize work without requiring a separate labeling system.
| Type | Use Case |
|---|---|
task | Engineering implementation work (default) |
bug | Defect that needs fixing |
chore | Tech debt, maintenance, or operational work |
spike | Research, investigation, or proof-of-concept |
feature | New user-facing capability |
Work items connect to the broader UX Planning system through two mechanisms:
story-ids — links outward to <user-story> elements via fragment anchors. Rendered as clickable chips in the card body.item-id — auto-set as the HTML id, enabling inbound references from <gantt-chart> rows via data-task-id matching.<kanban-board> <section data-column="in-progress" data-column-label="In Progress"> <work-item draggable="true" data-id="PROJ-42" item-id="PROJ-42" type="task" status="in-progress" story-ids="PROJ-101" detail="minimal"> <h3 slot="title">Implement search API</h3> </work-item> </section></kanban-board>
| Event | Detail | When |
|---|---|---|
work-item:ready | { itemId, title, type, priority, status } | After render |
work-item:status | { status, itemId } | When updateStatus() is called |
work-item:priority | { priority, itemId } | When updatePriority() is called |
| Variable | Default | Description |
|---|---|---|
--work-item-bg | #ffffff | Card background |
--work-item-text | #1a1a1a | Primary text |
--work-item-border | #e0e0e0 | Card border |
--work-item-accent | #0066cc | Interactive color |
--work-item-card-bg | #f8f9fa | Header background |
<article> with aria-label<a> elements with fragment hrefsprefers-reduced-motion: reduce<user-story> — Agile story cards that work items implement<kanban-board> — Track work items through status columns<gantt-chart> — Schedule work items on a timeline<impact-effort> — Prioritize work items on impact vs effort<review-surface> — Annotate work item designs with review pins