> ## Documentation Index
> Fetch the complete documentation index at: https://react-native-livechart.brandtnewlabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Momentum & degen

> Momentum-based coloring plus optional particle bursts and screen shake.

<Note>
  **Live example:**
  [`app/demo/momentum-and-degen.tsx`](https://github.com/brandtnewlabs/react-native-livechart/blob/main/app/demo/momentum-and-degen.tsx)
  in the example app.
</Note>

<Frame caption="Momentum coloring with degen particle bursts and screen shake">
  <video autoPlay loop muted playsInline controls poster="/media/momentum-and-degen.jpg" src="https://mintcdn.com/brandtnewlabs/3aK_iydbC8Ff9g3s/media/momentum-and-degen.mp4?fit=max&auto=format&n=3aK_iydbC8Ff9g3s&q=85&s=70f030f50fb664a3976b63aa62135af1" data-path="media/momentum-and-degen.mp4" />
</Frame>

## Momentum

Momentum drives the live dot and badge color (up / down / flat). By default it's auto-detected
from recent data.

```tsx theme={null}
<LiveChart data={data} value={value} momentum />
```

The `momentum` prop accepts:

* `true` — auto-detect (default)
* `false` — disabled, always flat
* `"up"` / `"down"` / `"flat"` — a forced value
* `MomentumConfig` — auto-detect with custom sensitivity

```tsx theme={null}
<LiveChart
  data={data}
  value={value}
  momentum={{ threshold: 0.12, lookback: 20 }}
/>
```

`threshold` is the fraction of the lookback range the tail delta must exceed to register as
directional; `lookback` is how many recent points feed the range calculation.

## Degen mode

Degen mode adds a particle burst (and, by default, a screen shake) on momentum swings — great
for trading / meme-market UIs.

```tsx theme={null}
<LiveChart data={data} value={value} degen />
```

Tune it with `DegenOptions`:

```tsx theme={null}
<LiveChart
  data={data}
  value={value}
  degen={{
    scale: 1,
    downMomentum: true,      // also trigger on down swings
    shake: true,
    shakeIntensity: 1,
    burstParticleCount: 20,
    colors: ["#22c55e", "#86efac"],
  }}
/>
```

<Note>
  Degen is available on both `LiveChart` and `LiveChartSeries`. On multi-series each visible series
  bursts off **its own** dot, in that series' color, on its own upward momentum swing (per-outcome).
</Note>

<Tip>
  Particle bursts render through a single batched Skia `drawAtlas` call: one white-circle sprite is
  rasterized once, then every active particle is blitted with its own transform and color in that
  one draw. So even dense bursts stay cheap. This is automatic — no API or config change.
</Tip>

## Reacting to shake

`onDegenShake` fires on the JS thread when a shake starts (unless `shake` is `false`) — useful
for haptics:

```tsx theme={null}
import * as Haptics from "expo-haptics";

<LiveChart
  data={data}
  value={value}
  degen
  onDegenShake={({ direction }) => {
    Haptics.impactAsync(
      direction === "up"
        ? Haptics.ImpactFeedbackStyle.Heavy
        : Haptics.ImpactFeedbackStyle.Light,
    );
  }}
/>;
```

See the full `DegenOptions` fields in the [`LiveChart` reference](/api-reference/livechart).
