Skip to content

Radial Line

Today as an open line round a 24-hour dial, ending in a pulsing dot at now, against yesterday’s dashed full loop on the same scale, inside an instrument tick ring and faint value rings.

$149 once · every Pro piece

Customize

The line draws on clockwise, and its last stretch runs hot: what just happened glows, older data has cooled to bone. Point anywhere round the dial or step with the arrow keys: a gradient spoke springs to the hour, a marker rides the curve on its own spring, the line steps back to half strength while a short window round the marker is re-stroked at full, and the centre rewrites itself as a sentence with rolling digits. An optional seam fills the gap between the loops, hot only where today runs ahead.

Install

npx shadcn@latest add @obsyde/radial-line

Needs your licence key · Get Pro

Usage

Import it from where the CLI puts it, or copy the files below by hand.

import { RadialLine } from '@/components/obsyde/ember/radial-line/RadialLine';

export function Example() {
  return (
    <RadialLine />
  );
}

Files

What you get with Pro: plain React, TypeScript and CSS, with no dependencies.

  • ember/radial-line/RadialLine.tsxcomponent
  • ember/radial-line/radial-line.cssstyles
  • ember/radial-line/RadialLineDemo.tsxdemo
  • ember/viz-kit/viz-kit.cssshared
  • ember/viz-kit/state-messages.tsxshared
  • ember/viz-kit/size.tsshared
  • ember/viz-kit/shape.tsshared
  • ember/viz-kit/scale.tsshared
  • ember/viz-kit/roll.tsshared
  • ember/shared/rolling-number.cssshared
  • ember/shared/spring.tsshared
  • ember/shared/accent.tsshared
  • ember/viz-kit/radial.tsxshared
  • ember/viz-kit/radial.cssshared
  • ember/shared/ember.cssshared
  • ember/viz-kit/touch.tsshared
  • ember/viz-kit/motion.tsshared
  • ember/viz-kit/focus.tsshared
  • ember/viz-kit/keyboard.tsshared
  • ember/viz-kit/patterns.tsxshared
  • ember/viz-kit/Legend.tsxshared
  • ember/viz-kit/Grid.tsxshared
  • ember/viz-kit/chart.tsxshared
  • ember/viz-kit/demo.tsxshared
  • ember/viz-kit/demo.cssshared
  • ember/viz-kit/Axis.tsxshared

API

PropTypeDefault
accentAccent'ember' | 'volt' | 'arc''ember'
pointsPointsnumber96
nowNow (hour)number17.25
seamSeambooleanfalse
heatHeat by recencybooleantrue
ringsValue ringsbooleantrue
legendLegend'row' | 'none''row'
crosshairCrosshair'solid' | 'dashed' | 'gradient' | 'none''gradient'
dotsDots'halo' | 'ring' | 'none''halo'
curveCurve'catmull' | 'linear''catmull'
statusStatus'ready' | 'loading' | 'empty''ready'
sizeSizenumber440
seedSeednumber3