Sunburst
A hierarchy as rings around a centre, one grey step per depth, cut apart by 2px gaps, sweeping on clockwise.
$149 once · every Pro piece
Point at a segment and every arc on the path from the centre out to it grows outward a few pixels, cumulatively, while the segment heats to the accent and unrelated branches step back to a quarter (or keep the quieter heat mode, where the path warms in place). Click a segment with parts and it becomes the centre: the angular window and the ring depth run on springs, so every arc morphs into place; click the centre or a breadcrumb pill to go back up. The centre rolls on per-digit mass and reads as a sentence (“24% of Beta · 3 parts”). Options: a legend of the current level that follows the drill and highlights both ways, a hatch per top-level branch, loading and empty states. Arrow keys walk the rings, Enter zooms in, Backspace zooms out.
Install
npx shadcn@latest add @obsyde/sunburstNeeds your licence key · Get Pro
Usage
Import it from where the CLI puts it, or copy the files below by hand.
import { Sunburst } from '@/components/obsyde/ember/sunburst/Sunburst';
export function Example() {
return (
<Sunburst />
);
}
Files
What you get with Pro: plain React, TypeScript and CSS, with no dependencies.
ember/sunburst/Sunburst.tsxcomponentember/sunburst/sunburst.cssstylesember/sunburst/SunburstDemo.tsxdemoember/viz-kit/viz-kit.csssharedember/viz-kit/size.tssharedember/viz-kit/shape.tssharedember/viz-kit/scale.tssharedember/viz-kit/roll.tssharedember/shared/rolling-number.csssharedember/shared/spring.tssharedember/shared/accent.tssharedember/viz-kit/patterns.tsxsharedember/viz-kit/motion.tssharedember/viz-kit/Legend.tsxsharedember/viz-kit/focus.tssharedember/shared/ember.csssharedember/viz-kit/touch.tsshared
API
| Prop | Type | Default |
|---|---|---|
accentAccent | 'ember' | 'volt' | 'arc' | 'ember' |
zoomZoom | 'none' | 'Alpha' | 'Beta' | 'Gamma' | 'Delta' | 'Epsilon' | 'none' |
hoverHover | 'grow' | 'heat' | 'grow' |
legendLegend | 'none' | 'list' | 'row' | 'none' |
patternPattern | 'none' | 'per-branch' | 'none' |
breadcrumbBreadcrumb | boolean | true |
branchesBranches | number | 5 |
ringsRings | number | 3 |
sizeSize | number | 340 |
statusStatus | 'ready' | 'loading' | 'empty' | 'ready' |
seedSeed | number | 3 |