ArcaneJaspr Codex
Documentation
ArcaneTracker
GitHub-style contribution grid and uptime tracker
Live Demo
Contribution Grid
Less
More
Uptime Tracker
30 days 99.45% uptime

ArcaneTracker#

A dense status grid for time-series data visualization, similar to GitHub's contribution graph or uptime status displays.

Basic Usage#

ArcaneTracker(
  data: List.generate(90, (i) => TrackerData(
    level: TrackerLevel.fine,
    tooltip: 'Day ${i + 1}: 100% uptime',
  )),
)

Properties#

PropertyTypeDefaultDescription
data List<TrackerData> required Data points
columns int 12 Columns per row
cellSize int 12 Cell size in px
gapint3Gap between cells
showTooltips bool true Show tooltips on hover
showLegend bool false Show level legend
onCellTap Function? null Cell tap handler

TrackerData#

PropertyTypeDescription
levelTrackerLevelSeverity level
tooltipString?Hover tooltip text
valuedouble?Optional numeric value
labelString?Optional label

TrackerLevel#

  • fine - Green (healthy/success)
  • warning - Yellow (warning state)
  • critical - Red (error/critical)
  • unknown - Gray (no data)

Factory Constructors#

Weekly View (7 columns)#

ArcaneTracker.weekly(
  data: weeklyData,
  showLegend: true,
)

Monthly View (31 columns)#

ArcaneTracker.monthly(
  data: monthlyData,
  showLegend: true,
)

With Legend#

ArcaneTracker(
  data: trackerData,
  showLegend: true,
)

Custom Colors#

ArcaneTracker(
  data: trackerData,
  levelColors: {
    TrackerLevel.fine: '#22c55e',
    TrackerLevel.warning: '#f59e0b',
    TrackerLevel.critical: '#ef4444',
    TrackerLevel.unknown: '#6b7280',
  },
)

ArcaneUptimeTracker#

An uptime tracker showing percentage bars for each day.

Basic Usage#

ArcaneUptimeTracker(
  days: List.generate(30, (i) => UptimeDay(
    date: DateTime.now().subtract(Duration(days: i)),
    uptime: 99.5 + (i % 5) / 10,
  )),
)

Properties#

PropertyTypeDefaultDescription
days List<UptimeDay> required Uptime data
barHeight int 32 Bar height in px
barWidth int 4 Bar width in px
gapint2Gap between bars
showDates bool false Show date labels
showPercentage bool true Show percentage on hover

Examples#

Status Page#

ArcaneCard(
  child: ArcaneColumn(
    children: [
      ArcaneRow(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: [
          ArcaneText('API Status', weight: FontWeight.bold),
          ArcaneStatusBadge.success('Operational'),
        ],
      ),
      ArcaneDiv(
        styles: const ArcaneStyleData(margin: MarginPreset.topMd),
        children: [
          ArcaneUptimeTracker(
            days: uptimeData,
          ),
        ],
      ),
    ],
  ),
)

Contribution Grid#

ArcaneColumn(
  gapSize: Gap.sm,
  children: [
    ArcaneText('Contributions in the last 90 days'),
    ArcaneTracker(
      data: contributions,
      columns: 12,
      showLegend: true,
      onCellTap: (index, data) => showContributionDetails(index),
    ),
  ],
)