Kinetik UI

Level Steps

.md

A reading on a rising staircase: steps grow in turn and a bright marker slides to the value.

v1.0.0Live on webreact-native-reanimatedreact-native-worklets
Component preview

Installation

Kinetik CLI
npx kinetik-ui add level-steps

The CLI copies the source and installs native dependencies with npx expo install, so versions match your Expo SDK. With shadcn: npx shadcn@latest add https://kinetik-ui.dev/r/level-steps.json

Install manually

  1. Install dependencies
    npx expo install react-native-reanimated react-native-worklets
  2. Copy the source files
    • components/kinetik/level-steps.tsx
    View source files

Usage

import { LevelSteps } from '@/components/kinetik/level-steps';

<LevelSteps value={47.8} label="AEROBIC SCORE" rating="STRONG" stops={[15, 25, 34, 44, 53]} />;

When to use

  • One score with known bands: fitness, credit, a level in a game.
  • When where you stand matters as much as the number.

When not to use

  • Values with no meaningful bands. Use a plain figure.
  • Comparing several scores at once.

Notes

  • Each stop becomes one equal-width step, whatever its range.
  • Pass tones to recolour the staircase.

Props

LevelStepsProps

PropTypeDefaultDescription
valuerequirednumber—The reading.
labelrequiredstring—What it measures, e.g. "AEROBIC SCORE".
stopsrequirednumber[]—Where each step starts, ascending. Each one becomes a step on the staircase.
ratingstring—Word for the current level, e.g. "STRONG".
decimalsnumber1Decimal places of the reading. Defaults to 1.
tonesstring[]RAMPColours of the steps, low to high. Defaults to a violet to crimson ramp.
styleStyleProp<ViewStyle>—

Performance and accessibility

Performance

Budget
Steps and marker use short UI-thread springs on arrival and on change. Nothing animates at rest.
Measured

Huawei P20 Lite (ANE-LX1), Android 9, release build · 13 ms median frame, 18 ms p90 · no frames drawn at rest · 112 MB app memory

Accessibility

Reduced motion
Steps and marker appear in place and the number does not count.
Screen readers
One label ("AEROBIC SCORE 47.8, STRONG").
Touch target
Not interactive.

Source files

components/kinetik/level-steps.tsx is in the Code tab of the preview above.