Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
a14db83
Fix edit link
m-bert Feb 4, 2026
9e1f534
introduction
m-bert Feb 4, 2026
54889bb
installation
m-bert Feb 4, 2026
3e82cf8
Gesture detector
m-bert Feb 4, 2026
e005621
Reanimated interactions
m-bert Feb 4, 2026
90b1aa4
Animated interactions
m-bert Feb 4, 2026
a5b73b3
Composition
m-bert Feb 5, 2026
6c4aa0f
Merge branch 'main' into @mbert/docs-review
m-bert Feb 6, 2026
b2f97c5
State manager
m-bert Feb 5, 2026
8cb20ab
Callbacks
m-bert Feb 5, 2026
8f442f1
Quickstart
m-bert Feb 5, 2026
12abfeb
Troubleshooting
m-bert Feb 5, 2026
1094f92
Testing
m-bert Feb 6, 2026
d91e097
Fix callbacks flow chart
m-bert Feb 6, 2026
c503ea1
Pan
m-bert Feb 6, 2026
31a8db3
Tap
m-bert Feb 6, 2026
b3efbbe
LongPress
m-bert Feb 6, 2026
d201b3e
Rotation
m-bert Feb 6, 2026
62d0fe8
Pinch
m-bert Feb 6, 2026
64aa192
Fling
m-bert Feb 6, 2026
4667c7d
Hover
m-bert Feb 6, 2026
5f40baf
Native
m-bert Feb 6, 2026
800b37d
Manual
m-bert Feb 6, 2026
004f919
Touch events
m-bert Feb 6, 2026
e8ddacc
Pinch typo
m-bert Feb 6, 2026
128b226
HOOOOOOOOOOOOOOOOOOOOW?
m-bert Feb 6, 2026
cc1e783
Update packages/docs-gesture-handler/docs/guides/testing.md
m-bert Feb 9, 2026
d48e4ea
Update packages/docs-gesture-handler/docs/fundamentals/gesture-detect…
m-bert Feb 9, 2026
9f1ec51
Overrides
m-bert Feb 9, 2026
9b4aff8
Fix broken link
m-bert Feb 9, 2026
0ce4f89
Merge branch 'main' into @mbert/docs-review
m-bert Feb 9, 2026
1b48239
Pressable
m-bert Feb 9, 2026
e9e88a5
Swipeable
m-bert Feb 9, 2026
5fcdc6c
Drawer
m-bert Feb 9, 2026
6d909f3
Minor adjustments
m-bert Feb 10, 2026
6563cdc
Update packages/docs-gesture-handler/docs/fundamentals/gesture-detect…
m-bert Feb 11, 2026
f3500a4
Update kotlin version
m-bert Feb 11, 2026
9840339
Merge branch '@mbert/docs-review' of github.com:software-mansion/reac…
m-bert Feb 11, 2026
3d706ec
Update packages/docs-gesture-handler/docs/fundamentals/state-manager.mdx
m-bert Feb 11, 2026
2a877d9
Update packages/docs-gesture-handler/docs/fundamentals/state-manager.mdx
m-bert Feb 11, 2026
f927bf5
Remove ts block
m-bert Feb 11, 2026
18e4350
Update packages/docs-gesture-handler/docs/gestures/use-native-gesture…
m-bert Feb 11, 2026
8232dc8
Merge branch 'main' into @mbert/docs-review
m-bert Feb 11, 2026
264a843
Merge branch '@mbert/docs-review' of github.com:software-mansion/reac…
m-bert Feb 11, 2026
4fd4d8c
Rea and Ani
m-bert Feb 11, 2026
a09df73
Move examples to separate files
m-bert Feb 11, 2026
f94da57
Remove a
m-bert Feb 11, 2026
c9c429e
manualActivation
m-bert Feb 11, 2026
ca8179c
Merge branch 'main' into @mbert/docs-review
m-bert Feb 12, 2026
788827a
Update packages/docs-gesture-handler/docs/fundamentals/installation.mdx
m-bert Feb 12, 2026
d247707
Merge branch '@mbert/docs-review' of github.com:software-mansion/reac…
m-bert Feb 12, 2026
94526fd
Add other badges
m-bert Feb 12, 2026
04f992e
Add badges to pages
m-bert Feb 13, 2026
4c70804
Rename to HeaderWithBadges
m-bert Feb 13, 2026
4daad27
Merge branch 'main' into @mbert/docs-badges
m-bert Feb 13, 2026
a997a49
Revert gesture-composition sidebar change
m-bert Feb 13, 2026
04b82dc
Merge branch '@mbert/docs-badges' into @mbert/docs-badges-versions
m-bert Feb 13, 2026
7b8157c
Change badge color
m-bert Feb 13, 2026
b6eead3
Copilot review
m-bert Feb 16, 2026
8ba5b1c
Merge branch 'main' into @mbert/docs-badges
m-bert Feb 17, 2026
d52b0f9
Add badges to buttons
m-bert Feb 17, 2026
d97a7fe
Merge branch '@mbert/docs-badges' into @mbert/docs-badges-versions
m-bert Feb 17, 2026
36b7fe0
Badge styling
m-bert Feb 17, 2026
79b7f52
Hover android
m-bert Feb 17, 2026
b45919e
Sort badges
m-bert Feb 17, 2026
12d909c
Merge branch '@mbert/docs-badges' into @mbert/docs-badges-versions
m-bert Feb 17, 2026
fbdd4d6
Wrap
m-bert Feb 18, 2026
b6efac4
Change android color
m-bert Feb 19, 2026
e15ee60
two finger trackpad web
m-bert Feb 19, 2026
0cd3c28
Make badges case insensitive
m-bert Feb 19, 2026
549b6a7
Merge branch 'main' into @mbert/docs-badges
m-bert Feb 19, 2026
f5b4656
Merge branch '@mbert/docs-badges' into @mbert/docs-badges-versions
m-bert Feb 19, 2026
f8da44e
Merge branch 'main' into @mbert/docs-badges-versions
m-bert Feb 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions packages/docs-gesture-handler/docs/components/buttons.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_label: Buttons
import useBaseUrl from '@docusaurus/useBaseUrl';
import GifGallery from '@site/components/GifGallery';

import HeaderWithBadge from '@site/src/components/HeaderWithBadge';
import HeaderWithBadges from '@site/src/components/HeaderWithBadges';

<GifGallery>
<img src={useBaseUrl('gifs/samplebutton.gif')} width="280" />
Expand Down Expand Up @@ -39,19 +39,19 @@ exclusive?: boolean;

Defines if more than one button could be pressed simultaneously. By default set to `true`.

<HeaderWithBadge platforms={['android']}>
<HeaderWithBadges platforms={['android']}>
### rippleColor
</HeaderWithBadge>
</HeaderWithBadges>

```ts
rippleColor?: number | ColorValue | null;
```

Defines [color](https://reactnative.dev/docs/colors) of native [ripple](https://developer.android.com/reference/android/graphics/drawable/RippleDrawable) animation.

<HeaderWithBadge platforms={['android']}>
<HeaderWithBadges platforms={['android']}>
### rippleRadius
</HeaderWithBadge>
</HeaderWithBadges>


```ts
Expand All @@ -60,29 +60,29 @@ rippleRadius?: number | null;

Defines radius of native [ripple](https://developer.android.com/reference/android/graphics/drawable/RippleDrawable) animation.

<HeaderWithBadge platforms={['android']}>
<HeaderWithBadges platforms={['android']}>
### borderless
</HeaderWithBadge>
</HeaderWithBadges>

```ts
borderless?: boolean;
```

If set to `false`, [ripple](https://developer.android.com/reference/android/graphics/drawable/RippleDrawable) animation will render only within view bounds.

<HeaderWithBadge platforms={['android']}>
<HeaderWithBadges platforms={['android']}>
### foreground
</HeaderWithBadge>
</HeaderWithBadges>

```ts
foreground?: boolean;
```

Defines whether the [ripple](https://developer.android.com/reference/android/graphics/drawable/RippleDrawable) animation should be drawn on the foreground of the view.

<HeaderWithBadge platforms={['android']}>
<HeaderWithBadges platforms={['android']}>
### touchSoundDisabled
</HeaderWithBadge>
</HeaderWithBadges>

```ts
touchSoundDisabled?: boolean;
Expand Down Expand Up @@ -140,9 +140,9 @@ underlayColor?: string;

Background color that will be dimmed when button is in active state.

<HeaderWithBadge platforms={['iOS']}>
<HeaderWithBadges platforms={['iOS']}>
### activeOpacity
</HeaderWithBadge>
</HeaderWithBadges>

```ts
activeOpacity?: number;
Expand All @@ -154,9 +154,9 @@ Opacity applied to the underlay when button is in active state.

This type of button component should be used with simple icon-only or text-only buttons. The interaction will be different depending on platform: on Android a borderless ripple will be rendered (it means that the ripple will animate into a circle that can span outside of the view bounds), whereas on iOS the button will be dimmed (similar to how `TouchableOpacity` works). In addition to the props of [`BaseButton`](#basebutton), it accepts the following:

<HeaderWithBadge platforms={['iOS']}>
<HeaderWithBadges platforms={['iOS']}>
### activeOpacity
</HeaderWithBadge>
</HeaderWithBadges>

```ts
activeOpacity?: number;
Expand Down
34 changes: 17 additions & 17 deletions packages/docs-gesture-handler/docs/components/pressable.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_label: Pressable
import useBaseUrl from '@docusaurus/useBaseUrl';
import GifGallery from '@site/components/GifGallery';

import HeaderWithBadge from '@site/src/components/HeaderWithBadge';
import HeaderWithBadges from '@site/src/components/HeaderWithBadges';

:::info
This component is a drop-in replacement for the `Pressable` component.
Expand Down Expand Up @@ -89,39 +89,39 @@ cancelable?: null | boolean;

Whether a press gesture can be interrupted by a parent gesture such as a scroll event. Defaults to `true`.

<HeaderWithBadge platforms={['android', 'web']}>
<HeaderWithBadges platforms={['android', 'web']}>
### onHoverIn
</HeaderWithBadge>
</HeaderWithBadges>

```ts
onHoverIn?: null | ((event: PressableEvent) => void);
```

Called when pointer is hovering over the element.

<HeaderWithBadge platforms={['android', 'web']}>
<HeaderWithBadges platforms={['android', 'web']}>
### onHoverOut
</HeaderWithBadge>
</HeaderWithBadges>

```ts
onHoverOut?: null | ((event: PressableEvent) => void);
```

Called when pointer stops hovering over the element.

<HeaderWithBadge platforms={['web']}>
<HeaderWithBadges platforms={['web']}>
### delayHoverIn
</HeaderWithBadge>
</HeaderWithBadges>

```ts
delayHoverIn?: number | null;
```

Duration to wait after hover in before calling `onHoverIn`.

<HeaderWithBadge platforms={['web']}>
<HeaderWithBadges platforms={['web']}>
### delayHoverOut
</HeaderWithBadge>
</HeaderWithBadges>

```ts
delayHoverOut?: number | null;
Expand All @@ -145,9 +145,9 @@ disabled?: null | boolean;

Whether the `Pressable` behavior is disabled.

<HeaderWithBadge platforms={['android', 'iOS']}>
<HeaderWithBadges platforms={['android', 'iOS']}>
### hitSlop
</HeaderWithBadge>
</HeaderWithBadges>

```ts
hitSlop?: null | Insets | number;
Expand All @@ -157,9 +157,9 @@ Additional distance outside of the view in which a press is detected and [`onPre

The `Insets` type is essentially the same as [`Rect`](https://reactnative.dev/docs/rect).

<HeaderWithBadge platforms={['android', 'iOS']}>
<HeaderWithBadges platforms={['android', 'iOS']}>
### pressRetentionOffset
</HeaderWithBadge>
</HeaderWithBadges>

```ts
pressRetentionOffset?: null | Insets | number;
Expand All @@ -170,19 +170,19 @@ press before [`onPressOut`](#onpressout) is triggered.

The `Insets` type is essentially the same as [`Rect`](https://reactnative.dev/docs/rect).

<HeaderWithBadge platforms={['android']}>
<HeaderWithBadges platforms={['android']}>
### android_disableSound
</HeaderWithBadge>
</HeaderWithBadges>

```ts
android_disableSound?: null | boolean;
```

If `true`, doesn't play system sound on touch.

<HeaderWithBadge platforms={['android']}>
<HeaderWithBadges platforms={['android']}>
### android_ripple
</HeaderWithBadge>
</HeaderWithBadges>

```ts
android_ripple?: null | PressableAndroidRippleConfig;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ sidebar_label: Reanimated Drawer Layout

import useBaseUrl from '@docusaurus/useBaseUrl';

import HeaderWithBadge from '@site/src/components/HeaderWithBadge';
import HeaderWithBadges from '@site/src/components/HeaderWithBadges';

:::info
This component acts as a cross-platform replacement for React Native's [`DrawerLayoutAndroid`](http://reactnative.dev/docs/drawerlayoutandroid.html) component, written using [Reanimated](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/getting-started). For detailed information on standard parameters, please refer to the [React Native documentation](http://reactnative.dev/docs/drawerlayoutandroid.html).
Expand Down Expand Up @@ -134,9 +134,9 @@ export enum DrawerState {

A function is called when the status of the drawer changes, taking `newState` to represent the drawer's interaction state and `drawerWillShow`, which is `true` when the drawer starts animating towards the open position and `false` otherwise.

<HeaderWithBadge platforms={['iOS']}>
<HeaderWithBadges platforms={['iOS']}>
### enableTrackpadTwoFingerGesture
</HeaderWithBadge>
</HeaderWithBadges>

```ts
enableTrackpadTwoFingerGesture?: boolean;
Expand All @@ -153,9 +153,9 @@ children?: ReactNode | ((openValue?: SharedValue<number>) => ReactNode);

Either a component rendered in the content view or a function. If `children` is a function, it receives an `openValue` parameter - [`SharedValue`](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#shared-value) that indicates the progress of the drawer's opening or closing animation. This value equals `0` when the drawer is closed and `1` when it is fully opened. The drawer component can use this value to animate its children during the opening or closing process. This function must return a [`ReactNode`](https://reactnative.dev/docs/react-node).

<HeaderWithBadge platforms={['android', 'web']}>
<HeaderWithBadges platforms={['android', 'web']}>
### mouseButton
</HeaderWithBadge>
</HeaderWithBadges>

<CollapsibleCode
label="Show composed types definitions"
Expand All @@ -176,9 +176,9 @@ enum MouseButton {

Allows users to choose which mouse button should handler respond to. Arguments can be combined using `|` operator, e.g. `mouseButton(MouseButton.LEFT | MouseButton.RIGHT)`. Default value is set to `MouseButton.LEFT`.

<HeaderWithBadge platforms={['web']}>
<HeaderWithBadges platforms={['web']}>
### enableContextMenu
</HeaderWithBadge>
</HeaderWithBadges>

```ts
enableContextMenu: boolean;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_label: Reanimated Swipeable
import useBaseUrl from '@docusaurus/useBaseUrl';
import GifGallery from '@site/components/GifGallery'

import HeaderWithBadge from '@site/src/components/HeaderWithBadge';
import HeaderWithBadges from '@site/src/components/HeaderWithBadges';

:::info
This component is a drop-in replacement for the `Swipeable` component, rewritten using [Reanimated](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/getting-started).
Expand Down Expand Up @@ -242,19 +242,19 @@ blocksExternalGesture?: AnyGesture | AnyGesture[];

Gestures that `Swipeable` will prevent from activating (see [gesture composition section](/docs/fundamentals/gesture-composition#simultaneouswith)).

<HeaderWithBadge platforms={['iOS']}>
<HeaderWithBadges platforms={['iOS']}>
### enableTrackpadTwoFingerGesture
</HeaderWithBadge>
</HeaderWithBadges>

```ts
enableTrackpadTwoFingerGesture?: boolean;
```

Enables two-finger gestures on supported devices, for example iPads with trackpads. If not enabled the gesture will require click + drag, with `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger the gesture.

<HeaderWithBadge platforms={['android', 'web']}>
<HeaderWithBadges platforms={['android', 'web']}>
### mouseButton
</HeaderWithBadge>
</HeaderWithBadges>

<CollapsibleCode
label="Show composed types definitions"
Expand All @@ -275,9 +275,9 @@ enum MouseButton {

Allows users to choose which mouse button should handler respond to. Arguments can be combined using `|` operator, e.g. `mouseButton(MouseButton.LEFT | MouseButton.RIGHT)`. Default value is set to `MouseButton.LEFT`.

<HeaderWithBadge platforms={['web']}>
<HeaderWithBadges platforms={['web']}>
### enableContextMenu
</HeaderWithBadge>
</HeaderWithBadges>

```ts
enableContextMenu: boolean;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ sidebar_position: 4
---

import CollapsibleCode from '@site/src/components/CollapsibleCode';
import HeaderWithBadge from '@site/src/components/HeaderWithBadge';
import HeaderWithBadges from '@site/src/components/HeaderWithBadges';

## Gesture Detector

Expand Down Expand Up @@ -190,29 +190,29 @@ gesture: SingleGesture | ComposedGesture;

A gesture object containing the configuration and callbacks. Can be any of the base gestures or any [`ComposedGesture`](/docs/fundamentals/gesture-composition).

<HeaderWithBadge platforms={['web']}>
<HeaderWithBadges platforms={['web']}>
### userSelect
</HeaderWithBadge>
</HeaderWithBadges>

```ts
userSelect: 'none' | 'auto' | 'text';
```

This parameter allows to specify which `userSelect` property should be applied to underlying view. Default value is set to `"none"`.

<HeaderWithBadge platforms={['web']}>
<HeaderWithBadges platforms={['web']}>
### touchAction
</HeaderWithBadge>
</HeaderWithBadges>

```ts
touchAction: TouchAction;
```

This parameter allows to specify which `touchAction` property should be applied to underlying view. Supports all CSS [touch-action](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/touch-action) values. Default value is set to `"none"`.

<HeaderWithBadge platforms={['web']}>
<HeaderWithBadges platforms={['web']}>
### enableContextMenu
</HeaderWithBadge>
</HeaderWithBadges>

```ts
enableContextMenu: boolean;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import CollapsibleCode from '@site/src/components/CollapsibleCode';

import HeaderWithBadge from '@site/src/components/HeaderWithBadge';
import HeaderWithBadges from '@site/src/components/HeaderWithBadges';

### enabled

Expand Down Expand Up @@ -69,9 +69,9 @@ testID: string;

Sets a `testID` property for gesture object, allowing for querying for it in tests.

<HeaderWithBadge platforms={['iOS']}>
<HeaderWithBadges platforms={['iOS']}>
### cancelsTouchesInView
</HeaderWithBadge>
</HeaderWithBadges>

```ts
cancelsTouchesInView: boolean | SharedValue<boolean>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import useBaseUrl from '@docusaurus/useBaseUrl';
import FlingGestureBasic from '@site/static/examples/FlingGestureBasic';
import FlingGestureBasicSrc from '!!raw-loader!@site/static/examples/FlingGestureBasicSrc';

import HeaderWithBadge from '@site/src/components/HeaderWithBadge';
import HeaderWithBadges from '@site/src/components/HeaderWithBadges';

<div className={webContainer}>
<div className={vanishOnMobile} style={{ display: 'flex', justifyContent: 'center', maxWidth: 360 }}>
Expand Down Expand Up @@ -142,9 +142,9 @@ numberOfPointers: number | SharedValue<number>;

Determine exact number of points required to handle the fling gesture.

<HeaderWithBadge platforms={['android', 'web']}>
<HeaderWithBadges platforms={['android', 'web']}>
### mouseButton
</HeaderWithBadge>
</HeaderWithBadges>

<CollapsibleCode
label="Show composed types definitions"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import useBaseUrl from '@docusaurus/useBaseUrl';
import HoverGestureBasic from '@site/static/examples/HoverGestureBasic';
import HoverGestureBasicSrc from '!!raw-loader!@site/static/examples/HoverGestureBasic';

import HeaderWithBadge from '@site/src/components/HeaderWithBadge';
import HeaderWithBadges from '@site/src/components/HeaderWithBadges';

<div className={webContainer}>
<div className={vanishOnMobile} style={{ display: 'flex', justifyContent: 'center', maxWidth: 360 }}>
Expand Down Expand Up @@ -93,9 +93,9 @@ const styles = StyleSheet.create({

<SharedValueInfo />

<HeaderWithBadge platforms={['iOS']}>
<HeaderWithBadges platforms={['iOS']}>
### effect
</HeaderWithBadge>
</HeaderWithBadges>

<CollapsibleCode
label="Show composed types definitions"
Expand Down
Loading