@texuli/charts
Charts gallery
Interactive examples for every chart family, each with its data contract. Fictional Harbor Notes metrics only. Theme tokens drive light and dark; nothing leaves this origin.
Cartesian
Open Cartesian pageLine, area, bar, stacked bar and combo charts on a shared series model.
Monthly new and returning Harbor Notes accounts (fictional counts).
Data contract
| Field | Type | Required | Notes |
|---|---|---|---|
title | string | yes | — |
description | string | yes | Accessible long description |
series | CartesianSeries[] | yes | { id, label, points: { x, y }[] } |
mode | 'light' | 'dark' | — | Optional palette override |
renderer | 'auto' | 'svg' | 'canvas' | — | Dense series may use canvas |
interactive | boolean | — | Enables brush/zoom/select hooks |
Cartesian examples
Account growth
New and returning Harbor Notes accounts each month.
Accounts over time
Account additions by month as stacked areas.
Monthly accounts
Grouped new and returning accounts.
Account mix
Monthly accounts stacked by type.
Accounts and retention
New accounts as bars and returning accounts as a line.
Part-whole
Open Part-whole pagePie, donut, treemap and sunburst for categorical and hierarchical shares.
Quarterly revenue mix in millions (fictional Example Co.).
Data contract
| Field | Type | Required | Notes |
|---|---|---|---|
title | string | yes | — |
description | string | yes | — |
data | PartWholeDatum[] | — | Flat slices: { id, label, value } — pie and donut |
root | PartWholeTree | — | Hierarchy: { id, label, value? | children[] } — treemap and sunburst |
labels | PartWholeTableLabels | — | Table chrome copy |
Part-whole examples
Revenue mix
Platform is the largest share, followed by services, support and other.
- Platform
- Services
- Support
- Other
Open data table
| Category | Value |
|---|---|
| Platform | 42 |
| Services | 28 |
| Support | 18 |
| Other | 12 |
Revenue share
The same revenue mix with the total in the center.
- Platform
- Services
- Support
- Other
Open data table
| Category | Value |
|---|---|
| Platform | 42 |
| Services | 28 |
| Support | 18 |
| Other | 12 |
Revenue by team
Area encodes each product and service revenue amount.
- Platform
- Support
- Implementation
- Training
Open data table
| Category | Value |
|---|---|
| Harbor Notes | 100 |
| Product | 60 |
| Platform | 42 |
| Support | 18 |
| Services | 40 |
| Implementation | 24 |
| Training | 16 |
Revenue hierarchy
Inner ring groups product and services; outer ring shows their parts.
- Product
- Platform
- Support
- Services
- Implementation
- Training
Open data table
| Category | Value |
|---|---|
| Harbor Notes | 100 |
| Product | 60 |
| Platform | 42 |
| Support | 18 |
| Services | 40 |
| Implementation | 24 |
| Training | 16 |
Compact
Open Compact pageSparklines, bullets, gauges and progress rings for dense dashboards.
Weekly signups, quarterly revenue target and service health (fictional).
Data contract
| Field | Type | Required | Notes |
|---|---|---|---|
label | string | yes | — |
values | readonly number[] | — | Sparkline sequence |
value | number | — | Bullet, gauge, ring current value |
max | number | — | Bullet and ring scale |
target | number | — | Bullet target marker |
ranges | number[] | — | Bullet qualitative bands |
thresholds | number[] | — | Gauge band edges |
Compact examples
Weekly signups
View data table
Quarterly target
View data table
| Measure | Value |
|---|---|
| Current | 74 |
| Maximum | 100 |
| Target | 80 |
Service health
View data table
| Measure | Value |
|---|---|
| Current | 86 |
| Minimum | 0 |
| Maximum | 100 |
| Range | Excellent |
Project completion
View data table
| Measure | Value |
|---|---|
| Complete | 7 |
| Total | 10 |
| Percent | 70% |
Matrix
Open Matrix pageHeatmap, scatter and bubble plots for two- and three-dimensional metrics.
Squad effort by weekday; latency vs throughput; service footprint (fictional).
Data contract
| Field | Type | Required | Notes |
|---|---|---|---|
cells | HeatmapCell[] | — | { x, y, value } categorical axes |
points | ScatterPoint[] | — | { id, label, x, y, r?, seriesId? } |
series | { id, label }[] | — | Legend groups for scatter/bubble |
title | string | yes | — |
description | string | yes | — |
Matrix examples
Squad effort by day
Relative story points by squad and weekday. Fictional planning data.
View data table
| Row | Column | Value |
|---|---|---|
| Design | Mon | 2 |
| Design | Tue | 5 |
| Design | Wed | 3 |
| Build | Mon | 4 |
| Build | Tue | 7 |
| Build | Wed | 6 |
| Review | Mon | 1 |
| Review | Tue | 2 |
| Review | Wed | 8 |
Latency versus throughput
Desks by requests per minute and p95 latency.
View data table
| Point | Series | X | Y |
|---|---|---|---|
| North desk | on-site | 12 | 40 |
| East desk | on-site | 28 | 22 |
| Remote A | remote | 18 | 55 |
| Remote B | remote | 35 | 48 |
| Lab | on-site | 8 | 18 |
Service footprint
Services by error rate (x), traffic (y) and instance count (size).
View data table
| Point | Series | X | Y | Size |
|---|---|---|---|---|
| Alpha | core | 10 | 30 | 4 |
| Beta | core | 25 | 45 | 9 |
| Gamma | edge | 40 | 20 | 6 |
| Delta | edge | 32 | 55 | 12 |
Flow
Open Flow pageFunnel, sankey and network graphs for conversion and collaboration flows.
Signup funnel and acquisition flow for Harbor Notes (illustrative).
Data contract
| Field | Type | Required | Notes |
|---|---|---|---|
steps | { id, label, value }[] | — | Funnel ordered stages |
nodes | { id, label, value? }[] | — | Sankey / network nodes |
links | { source, target, value }[] | — | Directed edges between node ids |
title | string | yes | — |
description | string | yes | — |
Flow examples
Signup funnel
Harbor Notes signup flow from visit to paid account.
View data table
| Step | Count | Conversion |
|---|---|---|
| Visit | 1,200 | 100% |
| Trial | 760 | 63.3% |
| Account | 420 | 35% |
| Paid | 190 | 15.8% |
Acquisition flow
Website and referrals flow through trials to paid accounts.
View data table
| From | To | Value |
|---|---|---|
| Website | Trial | 760 |
| Trial | Paid | 190 |
| Referral | Trial | 240 |
Team network
Connections between four fictional Harbor teammates.
View data table
| From | To | Value |
|---|---|---|
| Ada | Lin | 3 |
| Ada | Sam | 2 |
| Lin | Ren | 1 |
| Sam | Ren | 2 |
Geo
Open Geo pageOffline choropleth and point maps on bundled schematic tiles (not live GIS).
Revenue by world region and team activity on Harbor Bay districts (schematic).
Data contract
| Field | Type | Required | Notes |
|---|---|---|---|
data | Record<string, number | null> | — | Region id → value; null uses patterned missing fill |
points | GeoPointDatum[] | — | { id, label, regionId, value, offset? } |
shape | GeoShape | — | WORLD_TILES or REGION_TILES |
title | string | yes | — |
description | string | yes | — |
Geo examples
Revenue by world region
Revenue in millions on schematic world tiles; missing values use a patterned fill. Not precise borders.
View data table
| Region | Value |
|---|---|
| North America | 68 |
| Northern Europe | 46 |
| Eastern Europe | 28 |
| Central Asia | 19 |
| East Asia | 79 |
| Central America & Caribbean | 24 |
| Western Europe | 62 |
| Southern Europe | 39 |
| Middle East | 31 |
| South Asia | 56 |
| South America | 35 |
| North Africa | No data |
| Southeast Asia | 52 |
| Sub-Saharan Africa | 18 |
| Oceania | 42 |
Team activity by district
Marker size shows quarterly activity across fictional Harbor Bay districts.
View data table
| Point | Location | Value |
|---|---|---|
| Harbor team | Harbor Point | 31 |
| Quay team | East Quay | 18 |
| Ridge team | North Ridge | 25 |
| Town team | Old Town | 39 |
| Mill team | Mill District | 12 |
| Tide team | Tidewater | 21 |
Interaction
Open Interaction pageLegend toggles, keyboard plot focus, tooltips, brush/zoom and data table.
Weekly signups and trials with live selection announcements (fictional).
Data contract
| Field | Type | Required | Notes |
|---|---|---|---|
series | PlotSeries[] | yes | { id, label, color, points: { x, y, xValue, yValue }[] } |
formatters | ChartFormatters | — | x/y label formatters |
hidden | ReadonlySet<string> | — | Legend-hidden series ids |
onselect / onbrush / onzoom | callbacks | — | Optional host hooks |
Interaction examples
Use arrow keys to move between points, Page Up and Page Down to switch series, Enter to select. Shift-drag to brush; Ctrl-wheel or plus and minus to zoom when enabled.
Selection: None yet
Full range
Canvas renderer
Open Canvas renderer pageDense cartesian series rendered on canvas with the same contracts as SVG charts.
Deterministic daily activity curve (512 samples) on canvas.
Data contract
| Field | Type | Required | Notes |
|---|---|---|---|
series | CartesianSeries[] | yes | — |
renderer | 'canvas' | 'auto' | yes | Force canvas for dense samples |
title | string | yes | — |
description | string | yes | — |
Canvas renderer examples
Daily activity (canvas)
Five hundred twelve deterministic daily activity samples on the canvas renderer.
Activity area (canvas)
The same samples as a filled canvas area chart.