Component spec for the updated table pattern, the new ChartSpark trend sparkline component, and their composition inside the UniversalWidgetShell. Derived from Figma file wCdsKYnOx6hCoSOfvMT0Cu, node 3855:13746.
1
Trend Sparkline (ChartSpark)
An inline area-chart sparkline showing directional trend within a table cell.
Variants
Variant
Prop
Area fill
Stroke
Dot
Baseline
Positive
property1="positive"
Gradient — --content-success to transparent
#007844
Top-right
Bottom (y ≈ 29px)
Negative
property1="negative"
Gradient — --content-danger to transparent
#C10006
Bottom-right
Top (y ≈ 9px)
Visual Reference
Positive
endpoint dot 4×4baseline (dashed)
Negative
baseline (dashed)endpoint dot 4×4
In cell context
cell: 97×48 · pad: 12h 4v
Anatomy
Dimensions
Property
Value
Component size
85 × 40px
Cell container
97 × 48px (overflow: clip) — sparkline at (0, 0)
Endpoint dot
4 × 4px circle, same colour as stroke
Baseline
Dashed line, full 85px width, 1px stroke, rgba(0,0,0,0.10)
Rendering Notes
Area fill: SVG <path> with vertical gradient from stroke colour to transparent.
Line: separate SVG path on top of area fill — same stroke colour, no fill.
Endpoint dot marks the last data point (right edge). Positive = near top; negative = near bottom.
Baseline: dashed reference line (period start value) — positioned opposite to trend direction.
Generate from an array of numeric values. Min 2 points, recommended 7–12 for 85px width.
Ensure overflow: clip on container — area path intentionally bleeds 1px beyond bounds.
Accessibility
Add role="img" and aria-label describing the trend, e.g. "Trend: up 12.1%".
When paired with the Delta text column, aria-hidden="true" is acceptable (decorative).
{percentage}% (+/-£{absolute}) e.g. 12.1% (+£2,034)
Font size
14px
Line height
16px (tighter than standard body)
Letter spacing
-0.14px
White space
nowrap
Column Widths (reference — within widget shell)
Figma reference widths inside a ~602px widget. In production, use proportional/flex sizing:
Column
Figma width
Flex behaviour
Product
118px
flex: 0 0 auto, min-width for label
Trend
114px
flex: 0 0 114px — fixed for sparkline
Sales value
122px
flex: 1 — fills available space
Change
~189px
flex: 1 — fills available space
Fees
104px
flex: 0 0 auto
When the table is rendered standalone (outside the widget shell), columns should use flex: 1 with appropriate min-widths.
Border Collapse
Cells use margin-right: -1px to collapse shared vertical borders. The last cell in each row omits this negative margin.
3
Changes from Current Table Pattern
These are the breaking changes from the existing table component. Flag these to the dev team as migration work. Both patterns must coexist — consider a variant prop or CSS modifier class (e.g. .table--widget) rather than replacing the base table.