Lollipop
One row per category: a hairline stem that fades in from the baseline and a head at the value, as a dot, a ring or a squircle.
$149 once · every Pro piece
Customize
dot
ring
squircle
desc
asc
none
zero
mean
max
min
none
pill
panel
none
grid
dots
none
ready
loading
empty
Rows re-sort on springs, so a new order slides into place rather than jumping. Point at a row or step with the arrow keys and its head pops with a one-shot ping, turns hot and carries a value pill while the other rows step back. Stems can grow from zero or diverge left and right from the average, and an optional hatched track shows what is left to the end of the scale.
Install
npx shadcn@latest add @obsyde/lollipopNeeds your licence key · Get Pro
Usage
Import it from where the CLI puts it, or copy the files below by hand.
import { Lollipop } from '@/components/obsyde/ember/lollipop/Lollipop';
export function Example() {
return (
<Lollipop head="dot" sort="desc" />
);
}
Files
What you get with Pro: plain React, TypeScript and CSS, with no dependencies.
ember/lollipop/Lollipop.tsxcomponentember/lollipop/lollipop.cssstylesember/lollipop/LollipopDemo.tsxdemoember/viz-kit/viz-kit.csssharedember/viz-kit/Tooltip.tsxsharedember/viz-kit/focus.tssharedember/viz-kit/patterns.tsxsharedember/viz-kit/roll.tssharedember/shared/rolling-number.csssharedember/shared/spring.tssharedember/shared/accent.tssharedember/viz-kit/scale.tssharedember/viz-kit/motion.tssharedember/viz-kit/chart.tsxsharedember/shared/ember.csssharedember/viz-kit/touch.tssharedember/viz-kit/keyboard.tssharedember/viz-kit/size.tssharedember/viz-kit/States.tsxsharedember/viz-kit/shape.tssharedember/viz-kit/marks.tsxsharedember/viz-kit/demo.tsxsharedember/viz-kit/demo.cssshared
API
| Prop | Type | Default |
|---|---|---|
accentAccent | 'ember' | 'volt' | 'arc' | 'ember' |
headHead | 'dot' | 'ring' | 'squircle' | 'dot' |
sortSort | 'desc' | 'asc' | 'none' | 'desc' |
sortSwitchSort switch | boolean | false |
baselineBaseline | 'zero' | 'mean' | 'zero' |
highlightHighlight | 'max' | 'min' | 'none' | 'max' |
trackTrack | 'none' | 'solid' | 'diagonal-up' | 'diagonal-down' | 'dots' | 'vertical' | 'crosshatch' | 'none' |
rowsRows | number | 8 |
tooltipTooltip | 'pill' | 'panel' | 'none' | 'pill' |
backgroundBackground | 'grid' | 'dots' | 'none' | 'grid' |
statusStatus | 'ready' | 'loading' | 'empty' | 'ready' |
valueLabelsValue labels | boolean | false |
seedSeed | number | 3 |