What problem does this solve?
Activity streams are used to show time-ordered activity in a context (a document or issue, a project, a product, or a group of products) to help users understand what's currently happening in that context. Each activity stream entry is timestamped, and usually has an actor, an action, and a subject or object of the action.
Activity streams typically surface links to the objects they reference, so users can click through to the application for more information. It's also possible for users to comment directly on the activity stream entry from within the activity stream without having to go to the application that generated the entry. As they can be scoped narrowly or broadly, and to a large variety of actors and actions, Activity Streams are by necessity fairly flexible.
When to use this pattern
The summary nature of the Activity stream pattern makes it a great candidate for dashboards or roll-up pages that aggregate information about something. Since they also provide the ability to backtrack through time to understand the history of an object or a context, they are a good metadata source for an item and can be included on detail pages of an item.
In general, if you have any sort of time-ordered sequence you should consider if the Activity stream will work for you rather than creating a new custom pattern.
How to approach this guide
Until activity streams are consolidated into a single AUI component, this guide is provided as a visual reference on how to standardize appearance and behaviour across activity streams that are implemented in a variety of ways.
Activity stream container
The Activity stream container provides the chrome for the activity stream. The container also controls relative dating granularity as well as rolling up multiple activities from a single actor based on that granularity.
The Atlassian Activity Streams plugin provides a container for activity streams, and some applications have written their own containers. In general the container provides some minimal view controls and pagination.
|Title||Text name of stream||At top of list, or the name of a tab in a tabbed display|
|View Controls||Icons, upper right of stream frame||
|Entries||Activity Entries, see below|
|Pagination Control||"Show More"||Rather than doing paged content, we tend to build simple "show more" controls to get more content for the stream|
Activity stream entry
The Activity stream entry contains the actor, action, and optionally the objects or subjects of the action. It is the basic unit of the activity stream. Actors can be both humans or automated agents, but all should have avatars. The minimum activity stream entry would consist of an actor, an activity, and a date.
|Avatar||Image||No||32x32, 3px corner radius||Links to user profile|
|Actor||User Name||No||A link||Links to user profile|
|Activity||String, can include references to objects||At least 1 activity or comment||
|Comments||Comments are often included as useful metadata||At least 1 activity or comment||Separately timestamped and attributed||"reply to this comment" functionality may appear in the future|
|Actions||Controls to affect the entry: comment, like etc||Yes||Actions and date are on the same line, at the bottom||No navigation|
|Date||Datestamp for the act||No||Actions and date are on the same line, at the bottom||No navigation|
Activity entry examples
The following diagram references the basic layout of the activity stream entry:
This is in a comment stream on a page, so no activity statement is necessary (all activities are comments).
This is in a generic activity stream, so the commenting activity is shown.
The activity is listed, containing an issue link.
All elements are shown in this activity example.