Skip to content
tcpsystemsui

Theme

Colour scheme
Accent
Density
Radius
Esc

Stat

Metric with unit, delta and trend.

beta

Examples

Key metrics

Total revenue
$124.7KUSD
+12.3% vs last month
Active deployments
47
+3 since yesterday
Error rate
0.24%
-0.08% 24h window
Avg response time
142ms
+12ms p95 latency
Key metrics.svelte
<script lang="ts">
	import Stat from '@tcpsystems/ui/foundation/Stat';
	import Sparkline from '@tcpsystems/ui/foundation/Sparkline';
	import Grid from '@tcpsystems/ui/foundation/Grid';
</script>

<Grid min="sm" gap="lg">
	<Stat label="Total revenue" value="$124.7K" unit="USD" delta="+12.3%" deltaTone="good" foot="vs last month" />
	<Stat label="Active deployments" value="47" delta="+3" deltaTone="good" foot="since yesterday" />
	<Stat label="Error rate" value="0.24" unit="%" delta="-0.08%" deltaTone="good" foot="24h window" />
	<Stat label="Avg response time" value="142" unit="ms" delta="+12ms" deltaTone="bad" foot="p95 latency" />
</Grid>

With sparkline

CPU usage
68%
+5% 7-day trend
Memory usage
4.2GB
-0.3 GB 7-day trend
Request throughput
1,234req/s
+234 7-day trend
With sparkline.svelte
<script lang="ts">
	import Stat from '@tcpsystems/ui/foundation/Stat';
	import Sparkline from '@tcpsystems/ui/foundation/Sparkline';
	import Grid from '@tcpsystems/ui/foundation/Grid';
</script>

<Grid min="sm" gap="lg">
	<Stat
		label="CPU usage"
		value="68"
		unit="%"
		delta="+5%"
		deltaTone="bad"
		foot="7-day trend"
	>
		{#snippet spark()}
			<Sparkline values={[45, 52, 48, 61, 55, 63, 68]} label="CPU usage over 7 days" />
		{/snippet}
	</Stat>
	<Stat
		label="Memory usage"
		value="4.2"
		unit="GB"
		delta="-0.3 GB"
		deltaTone="good"
		foot="7-day trend"
	>
		{#snippet spark()}
			<Sparkline values={[4.8, 4.6, 4.5, 4.3, 4.4, 4.1, 4.2]} label="Memory usage over 7 days" />
		{/snippet}
	</Stat>
	<Stat
		label="Request throughput"
		value="1,234"
		unit="req/s"
		delta="+234"
		deltaTone="good"
		foot="7-day trend"
	>
		{#snippet spark()}
			<Sparkline values={[890, 950, 1020, 980, 1100, 1180, 1234]} label="Throughput over 7 days" />
		{/snippet}
	</Stat>
</Grid>

API

Import
import Stat from '@tcpsystems/ui/foundation/Stat';
PropTypeDefault
labelstringnone
valuestringnone
unit?stringnone
delta?stringnone
deltaTone?'good' | 'bad'none
foot?stringnone
Snippet
spark
HookKind
.tcp-statRoot class
data-toneData attribute