LearnNewsExamplesServices
Frontmatter
id8940
titleFeat: Activity Sparkline Column
stateClosed
labels
enhancementdesign
assigneestobiu
createdAtFeb 1, 2026, 5:44 PM
updatedAtFeb 2, 2026, 1:17 AM
githubUrlhttps://github.com/neomjs/neo/issues/8940
authortobiu
commentsCount1
parentIssue8930
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtFeb 2, 2026, 1:17 AM

Feat: Activity Sparkline Column

Closed v12.0.0 enhancementdesign
tobiu
tobiu commented on Feb 1, 2026, 5:44 PM

This task focuses on implementing a visual Sparkline to show activity trends over the last 15 years.

Requirements

  1. Component: Create a custom Neo.grid.column.Component implementation that uses HTML5 Canvas (or OffscreenCanvas).
  2. Rendering: Draw a line chart representing the yearly contribution data (y2010 - y2025).
  3. Grid Integration: Add this component column to the grid.

Acceptance Criteria

  • A sparkline chart appears in each row, visualizing the user's activity history.
  • Scrolling performance remains high (component recycling).
tobiu added the enhancement label on Feb 1, 2026, 5:44 PM
tobiu added the design label on Feb 1, 2026, 5:44 PM
tobiu added parent issue #8930 on Feb 1, 2026, 5:44 PM
tobiu assigned to @tobiu on Feb 1, 2026, 5:44 PM
tobiu referenced in commit efb2961 - "feat: Implement Activity Sparkline Column (#8940)" on Feb 2, 2026, 1:16 AM
tobiu
tobiu Feb 2, 2026, 1:16 AM

Input from Gemini 3 Pro:

✦ I have implemented the Activity Sparkline column.

  • SparklineComponent: Created a wrapper extending Neo.component.Canvas to handle the offscreen canvas.
  • Sparkline Worker: Implemented apps/devrank/canvas/Sparkline.mjs to draw the line chart using HTML5 Canvas API in the canvas worker.
  • Grid Integration: Added the column to GridContainer using component config to pass year data (2010-2025).
  • Configuration: Enabled useCanvasWorker: true in neo-config.json and set up the canvas.mjs entry point.

The sparkline visualizes the 15-year contribution trend for each user.

tobiu closed this issue on Feb 2, 2026, 1:17 AM