Kinetik UI

Glow Columns

.md

An index through the day: thin stems grow under bright caps in turn, low periods sitting as green dots.

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

Installation

Kinetik CLI
npx kinetik-ui add glow-columns

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/glow-columns.json

Install manually

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

Usage

import { GlowColumns } from '@/components/kinetik/glow-columns';

<GlowColumns
  values={[0, 0, 1, 2, 4, 6, 7, 8, 8, 7, 5, 3, 2, 1, 1, 0, 0, 0]}
  current={5}
  max={10}
  level="MODERATE"
  name="UVI"
  labels={['12', '14', '16', '18', '20', '22']}
/>;

When to use

  • Sun, pollen or air index through a day.
  • Any level where low, medium and high carry the meaning.

When not to use

  • Exact values per period: only the current one is written out.
  • Colour alone cannot carry the meaning: keep level on.

Notes

  • Below 30% of the scale is green, below 70% yellow, and orange above.
  • current sets the big number and brightens that column's rail.

Props

GlowColumnsProps

PropTypeDefaultDescription
valuesrequirednumber[]—One value per period, oldest first.
maxnumber—Top of the scale. Defaults to the largest value.
currentnumber0Index of the current period, which sets the big number. Defaults to 0.
levelstring—Word beside the big number, e.g. "MODERATE".
namestring—Short name in the corner, e.g. "UVI".
labelsstring[]—Period labels, spread under the columns.
styleStyleProp<ViewStyle>—

Performance and accessibility

Performance

Budget
Stems and caps use short UI-thread springs on arrival. Nothing animates at rest.
Measured

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

Accessibility

Reduced motion
Columns appear in place and the number does not count.
Screen readers
One label ("UVI 6, MODERATE").
Touch target
Not interactive.

Source files

components/kinetik/glow-columns.tsx is in the Code tab of the preview above.