this repo has no description

Reformat prettier to get rid of table spacing

+1256 -1256
out/llms-full-nativewind.txt
···
### Options
-
| Option | Description | Default Value |
-
| --- | --- | --- |
-
| `output` | The relative path for the output file. Defaults to `<projectRoot>/node_modules/.cache/nativewind/`. | `<projectRoot>/node_modules/.cache/nativewind/` |
-
| `projectRoot` | Absolute path to your project root, used only to set `output`. | N/A |
-
| `inlineRem` | Numeric value for inlining the value of `rem` units on native. Set to `false` to disable this behavior. Defaults to `14`. | `14` |
-
| `configPath` | Relative path to your `tailwind.config` file. Recommended to use `@config` instead. | `tailwind.config` |
-
| `hotServerOptions` | Options for the hot server, with a default configuration of `{ port: 8089 }`. | `{ port: 8089 }` |
+
|Option|Description|Default Value|
+
|-|-|-|
+
|`output`|The relative path for the output file. Defaults to `<projectRoot>/node_modules/.cache/nativewind/`.|`<projectRoot>/node_modules/.cache/nativewind/`|
+
|`projectRoot`|Absolute path to your project root, used only to set `output`.|N/A|
+
|`inlineRem`|Numeric value for inlining the value of `rem` units on native. Set to `false` to disable this behavior. Defaults to `14`.|`14`|
+
|`configPath`|Relative path to your `tailwind.config` file. Recommended to use `@config` instead.|`tailwind.config`|
+
|`hotServerOptions`|Options for the hot server, with a default configuration of `{ port: 8089 }`.|`{ port: 8089 }`|
#### Experimental Options
···
### Compatibility
-
| Class | Support |
-
| ----------------- | --------------- |
-
| `content-center` | ✅ Full Support |
-
| `content-start` | ✅ Full Support |
-
| `content-end` | ✅ Full Support |
-
| `content-between` | ✅ Full Support |
-
| `content-around` | ✅ Full Support |
-
| `content-evenly` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`content-center`|✅ Full Support|
+
|`content-start`|✅ Full Support|
+
|`content-end`|✅ Full Support|
+
|`content-between`|✅ Full Support|
+
|`content-around`|✅ Full Support|
+
|`content-evenly`|✅ Full Support|
## Text Decoration Color
···
### Compatibility
-
| Class | Support |
-
| -------------------- | --------------- |
-
| `decoration-{n}` | ✅ Full Support |
-
| `decoration-[n]` | ✅ Full Support |
-
| `decoration-inherit` | 🌐 Web only |
-
| `decoration-current` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`decoration-{n}`|✅ Full Support|
+
|`decoration-[n]`|✅ Full Support|
+
|`decoration-inherit`|🌐 Web only|
+
|`decoration-current`|🌐 Web only|
## Align Items
···
### Compatibility
-
| Class | Support |
-
| ---------------- | --------------- |
-
| `items-start` | ✅ Full Support |
-
| `items-end` | ✅ Full Support |
-
| `items-center` | ✅ Full Support |
-
| `items-baseline` | ✅ Full Support |
-
| `items-stretch` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`items-start`|✅ Full Support|
+
|`items-end`|✅ Full Support|
+
|`items-center`|✅ Full Support|
+
|`items-baseline`|✅ Full Support|
+
|`items-stretch`|✅ Full Support|
## Text Decoration Style
···
### Compatibility
-
| Class | Support |
-
| ------------------- | --------------- |
-
| `decoration-solid` | ✅ Full Support |
-
| `decoration-double` | ✅ Full Support |
-
| `decoration-dotted` | ✅ Full Support |
-
| `decoration-dashed` | ✅ Full Support |
-
| `decoration-wavy` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`decoration-solid`|✅ Full Support|
+
|`decoration-double`|✅ Full Support|
+
|`decoration-dotted`|✅ Full Support|
+
|`decoration-dashed`|✅ Full Support|
+
|`decoration-wavy`|🌐 Web only|
## Text Decoration Thickness
···
### Compatibility
-
| Class | Support |
-
| ---------------------- | ----------- |
-
| `decoration-auto` | 🌐 Web only |
-
| `decoration-from-font` | 🌐 Web only |
-
| `decoration-0` | 🌐 Web only |
-
| `decoration-1` | 🌐 Web only |
-
| `decoration-2` | 🌐 Web only |
-
| `decoration-4` | 🌐 Web only |
-
| `decoration-8` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`decoration-auto`|🌐 Web only|
+
|`decoration-from-font`|🌐 Web only|
+
|`decoration-0`|🌐 Web only|
+
|`decoration-1`|🌐 Web only|
+
|`decoration-2`|🌐 Web only|
+
|`decoration-4`|🌐 Web only|
+
|`decoration-8`|🌐 Web only|
## `vars()` Function Overview
···
### Compatibility
-
| Class | Support |
-
| ------------ | ----------- |
-
| `indent-[n]` | 🌐 Web only |
-
| `indent-{n}` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`indent-[n]`|🌐 Web only|
+
|`indent-{n}`|🌐 Web only|
## Align Self
···
### Compatibility
-
| Class | Support |
-
| --------------- | --------------- |
-
| `self-auto` | ✅ Full Support |
-
| `self-start` | ✅ Full Support |
-
| `self-end` | ✅ Full Support |
-
| `self-center` | ✅ Full Support |
-
| `self-stretch` | ✅ Full Support |
-
| `self-baseline` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`self-auto`|✅ Full Support|
+
|`self-start`|✅ Full Support|
+
|`self-end`|✅ Full Support|
+
|`self-center`|✅ Full Support|
+
|`self-stretch`|✅ Full Support|
+
|`self-baseline`|✅ Full Support|
## Text Overflow
···
### Compatibility
-
| Class | Support |
-
| --------------- | ----------- |
-
| `truncate` | 🌐 Web only |
-
| `text-ellipsis` | 🌐 Web only |
-
| `text-clip` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`truncate`|🌐 Web only|
+
|`text-ellipsis`|🌐 Web only|
+
|`text-clip`|🌐 Web only|
## Text Alignment
···
### Compatibility Table
-
| Class | Support |
-
| -------------- | --------------- |
-
| `text-left` | ✅ Full Support |
-
| `text-center` | ✅ Full Support |
-
| `text-right` | ✅ Full Support |
-
| `text-justify` | ✅ Full Support |
-
| `text-start` | ✅ Full Support |
-
| `text-end` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`text-left`|✅ Full Support|
+
|`text-center`|✅ Full Support|
+
|`text-right`|✅ Full Support|
+
|`text-justify`|✅ Full Support|
+
|`text-start`|✅ Full Support|
+
|`text-end`|✅ Full Support|
-
---
+
***
## Accessing and Managing Device Color Scheme
The `useColorScheme()` function provides a way to access and manage the device's current color scheme.
-
| Property | Description |
-
| --- | --- |
-
| `colorScheme` | Represents the current color scheme of the device. |
-
| `setColorScheme` | Allows overriding the current color scheme with either `light`, `dark`, or `system`. |
-
| `toggleColorScheme` | Switches the color scheme between `light` and `dark`. |
+
|Property|Description|
+
|-|-|
+
|`colorScheme`|Represents the current color scheme of the device.|
+
|`setColorScheme`|Allows overriding the current color scheme with either `light`, `dark`, or `system`.|
+
|`toggleColorScheme`|Switches the color scheme between `light` and `dark`.|
Additionally, you can manually adjust the color scheme using `NativeWindStyleSheet.setColorScheme(colorScheme)`.
···
### Compatibility
-
| Class | Support |
-
| -------------- | --------------- |
-
| `flex-1` | ✅ Full Support |
-
| `basis-[n]` | ✅ Full Support |
-
| `flex-auto` | 🌐 Web only |
-
| `flex-initial` | 🌐 Web only |
-
| `flex-none` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`flex-1`|✅ Full Support|
+
|`basis-[n]`|✅ Full Support|
+
|`flex-auto`|🌐 Web only|
+
|`flex-initial`|🌐 Web only|
+
|`flex-none`|🌐 Web only|
## Text Underline Offset
···
### Compatibility
-
| Class | Support |
-
| ----------------------- | ----------- |
-
| `underline-offset-auto` | 🌐 Web only |
-
| `underline-offset-0` | 🌐 Web only |
-
| `underline-offset-1` | 🌐 Web only |
-
| `underline-offset-2` | 🌐 Web only |
-
| `underline-offset-4` | 🌐 Web only |
-
| `underline-offset-8` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`underline-offset-auto`|🌐 Web only|
+
|`underline-offset-0`|🌐 Web only|
+
|`underline-offset-1`|🌐 Web only|
+
|`underline-offset-2`|🌐 Web only|
+
|`underline-offset-4`|🌐 Web only|
+
|`underline-offset-8`|🌐 Web only|
## Vertical Align
···
### Compatibility
-
| Class | Support |
-
| ------------------- | ----------- |
-
| `align-baseline` | 🌐 Web only |
-
| `align-top` | 🌐 Web only |
-
| `align-middle` | 🌐 Web only |
-
| `align-bottom` | 🌐 Web only |
-
| `align-text-top` | 🌐 Web only |
-
| `align-text-bottom` | 🌐 Web only |
-
| `align-sub` | 🌐 Web only |
-
| `align-super` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`align-baseline`|🌐 Web only|
+
|`align-top`|🌐 Web only|
+
|`align-middle`|🌐 Web only|
+
|`align-bottom`|🌐 Web only|
+
|`align-text-top`|🌐 Web only|
+
|`align-text-bottom`|🌐 Web only|
+
|`align-sub`|🌐 Web only|
+
|`align-super`|🌐 Web only|
## Flex Basis
···
### Compatibility
-
| Class | Support |
-
| ------------ | --------------- |
-
| `basis-{n}` | ✅ Full Support |
-
| `basis-[n]` | ✅ Full Support |
-
| `basis-auto` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`basis-{n}`|✅ Full Support|
+
|`basis-[n]`|✅ Full Support|
+
|`basis-auto`|🌐 Web only|
## Whitespace
···
### Compatibility
-
| Class | Support |
-
| ------------------------- | ----------- |
-
| `whitespace-normal` | 🌐 Web only |
-
| `whitespace-nowrap` | 🌐 Web only |
-
| `whitespace-pre` | 🌐 Web only |
-
| `whitespace-pre-line` | 🌐 Web only |
-
| `whitespace-pre-wrap` | 🌐 Web only |
-
| `whitespace-break-spaces` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`whitespace-normal`|🌐 Web only|
+
|`whitespace-nowrap`|🌐 Web only|
+
|`whitespace-pre`|🌐 Web only|
+
|`whitespace-pre-line`|🌐 Web only|
+
|`whitespace-pre-wrap`|🌐 Web only|
+
|`whitespace-break-spaces`|🌐 Web only|
## Flex Direction
···
### Compatibility
-
| Class | Support |
-
| ------------------ | --------------- |
-
| `flex-row` | ✅ Full Support |
-
| `flex-row-reverse` | ✅ Full Support |
-
| `flex-col` | ✅ Full Support |
-
| `flex-col-reverse` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`flex-row`|✅ Full Support|
+
|`flex-row-reverse`|✅ Full Support|
+
|`flex-col`|✅ Full Support|
+
|`flex-col-reverse`|✅ Full Support|
```typescript
// Example TypeScript typings for flex direction classes
···
### Compatibility
-
| Class | Support |
-
| -------------------- | ----------- |
-
| `break-normal` | 🌐 Web only |
-
| `word-break: normal` | 🌐 Web only |
-
| `break-words` | 🌐 Web only |
-
| `break-all` | 🌐 Web only |
-
| `break-keep` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`break-normal`|🌐 Web only|
+
|`word-break: normal`|🌐 Web only|
+
|`break-words`|🌐 Web only|
+
|`break-all`|🌐 Web only|
+
|`break-keep`|🌐 Web only|
## Background Attachment
The following table outlines the support for various background attachment classes in web development:
-
| Class | Support |
-
| ----------- | -------- |
-
| `bg-fixed` | Web only |
-
| `bg-local` | Web only |
-
| `bg-scroll` | Web only |
+
|Class|Support|
+
|-|-|
+
|`bg-fixed`|Web only|
+
|`bg-local`|Web only|
+
|`bg-scroll`|Web only|
These classes are used to control how a background image is positioned relative to the viewport or its containing element.
···
The following table outlines various CSS classes related to background clipping, along with their support status:
-
| Class | Support |
-
| ----------------- | ----------- |
-
| `bg-clip-border` | 🌐 Web only |
-
| `bg-clip-padding` | 🌐 Web only |
-
| `bg-clip-content` | 🌐 Web only |
-
| `bg-clip-text` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`bg-clip-border`|🌐 Web only|
+
|`bg-clip-padding`|🌐 Web only|
+
|`bg-clip-content`|🌐 Web only|
+
|`bg-clip-text`|🌐 Web only|
These classes are used to define how the background of an element is clipped, with support limited to web browsers.
···
### Compatibility
-
| Class | Support |
-
| -------- | --------------- |
-
| `grow` | ✅ Full Support |
-
| `grow-0` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`grow`|✅ Full Support|
+
|`grow-0`|✅ Full Support|
## Background Color
-
| Class | Support |
-
| ------------ | --------------- |
-
| `bg-{n}` | ✅ Full Support |
-
| `bg-[n]` | ✅ Full Support |
-
| `bg-inherit` | 🌐 Web only |
-
| `bg-current` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`bg-{n}`|✅ Full Support|
+
|`bg-[n]`|✅ Full Support|
+
|`bg-inherit`|🌐 Web only|
+
|`bg-current`|🌐 Web only|
### Background Opacity
···
The following table outlines various classes used for background images, along with their support status:
-
| Class | Support |
-
| ------------------- | ----------- |
-
| `bg-none` | 🌐 Web only |
-
| `bg-gradient-to-t` | 🌐 Web only |
-
| `bg-gradient-to-tr` | 🌐 Web only |
-
| `bg-gradient-to-r` | 🌐 Web only |
-
| `bg-gradient-to-br` | 🌐 Web only |
-
| `bg-gradient-to-b` | 🌐 Web only |
-
| `bg-gradient-to-bl` | 🌐 Web only |
-
| `bg-gradient-to-l` | 🌐 Web only |
-
| `bg-gradient-to-tl` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`bg-none`|🌐 Web only|
+
|`bg-gradient-to-t`|🌐 Web only|
+
|`bg-gradient-to-tr`|🌐 Web only|
+
|`bg-gradient-to-r`|🌐 Web only|
+
|`bg-gradient-to-br`|🌐 Web only|
+
|`bg-gradient-to-b`|🌐 Web only|
+
|`bg-gradient-to-bl`|🌐 Web only|
+
|`bg-gradient-to-l`|🌐 Web only|
+
|`bg-gradient-to-tl`|🌐 Web only|
These classes are specifically designed for use in web development to apply background styles.
···
### Compatibility
-
| Class | Support |
-
| ---------- | --------------- |
-
| `shrink` | ✅ Full Support |
-
| `shrink-0` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`shrink`|✅ Full Support|
+
|`shrink-0`|✅ Full Support|
## Background Origin
The following table outlines the support for different background origin classes in web development:
-
| Class | Support |
-
| ------------------- | -------- |
-
| `bg-origin-border` | Web only |
-
| `bg-origin-padding` | Web only |
-
| `bg-origin-content` | Web only |
+
|Class|Support|
+
|-|-|
+
|`bg-origin-border`|Web only|
+
|`bg-origin-padding`|Web only|
+
|`bg-origin-content`|Web only|
These classes are used to specify the positioning area of a background image within an element. Each class targets a different part of the element's box model:
···
### Compatibility
-
| Class | Support |
-
| ------------------- | --------------- |
-
| `flex-wrap` | ✅ Full Support |
-
| `flex-wrap-reverse` | ✅ Full Support |
-
| `flex-nowrap` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`flex-wrap`|✅ Full Support|
+
|`flex-wrap-reverse`|✅ Full Support|
+
|`flex-nowrap`|✅ Full Support|
## Background Position
The following table outlines various CSS classes used for setting background positions, along with their support status:
-
| Class | Support |
-
| ----------------- | ----------- |
-
| `bg-bottom` | 🌐 Web only |
-
| `bg-center` | 🌐 Web only |
-
| `bg-left` | 🌐 Web only |
-
| `bg-left-bottom` | 🌐 Web only |
-
| `bg-left-top` | 🌐 Web only |
-
| `bg-right` | 🌐 Web only |
-
| `bg-right-bottom` | 🌐 Web only |
-
| `bg-right-top` | 🌐 Web only |
-
| `bg-top` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`bg-bottom`|🌐 Web only|
+
|`bg-center`|🌐 Web only|
+
|`bg-left`|🌐 Web only|
+
|`bg-left-bottom`|🌐 Web only|
+
|`bg-left-top`|🌐 Web only|
+
|`bg-right`|🌐 Web only|
+
|`bg-right-bottom`|🌐 Web only|
+
|`bg-right-top`|🌐 Web only|
+
|`bg-top`|🌐 Web only|
These classes are used to position background images in various locations within an element.
···
The following table outlines various CSS classes related to background repeat properties, along with their support status:
-
| Class | Support |
-
| ----------------- | ----------- |
-
| `bg-repeat` | 🌐 Web only |
-
| `bg-no-repeat` | 🌐 Web only |
-
| `bg-repeat-x` | 🌐 Web only |
-
| `bg-repeat-y` | 🌐 Web only |
-
| `bg-repeat-round` | 🌐 Web only |
-
| `bg-repeat-space` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`bg-repeat`|🌐 Web only|
+
|`bg-no-repeat`|🌐 Web only|
+
|`bg-repeat-x`|🌐 Web only|
+
|`bg-repeat-y`|🌐 Web only|
+
|`bg-repeat-round`|🌐 Web only|
+
|`bg-repeat-space`|🌐 Web only|
These classes are used to control how background images repeat within an element. Each class is supported exclusively on web platforms.
···
The following table outlines the support for various background size classes:
-
| Class | Support |
-
| ------------ | ----------- |
-
| `bg-auto` | 🌐 Web only |
-
| `bg-cover` | 🌐 Web only |
-
| `bg-contain` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`bg-auto`|🌐 Web only|
+
|`bg-cover`|🌐 Web only|
+
|`bg-contain`|🌐 Web only|
These classes are used to control the sizing of background images in web development.
···
Nativewind offers two main strategies for integrating dark mode into your application:
1. **System Preference (Automatic)**
-
2. **Manual Selection (User Toggle)**
+
1. **Manual Selection (User Toggle)**
Both methods utilize the `colorScheme` from Nativewind, which provides a consistent API to interact with React Native's appearance settings. The underlying mechanism involves using the `Appearance` API on native platforms and `prefers-color-scheme` for web environments.
···
### Compatibility
-
| Class | Support |
-
| --------------- | --------------- |
-
| `aspect-auto` | ✅ Full Support |
-
| `aspect-video` | ✅ Full Support |
-
| `aspect-square` | ✅ Full Support |
-
| `aspect-[n]` | ✅ Full Support |
-
| `aspect-{n}` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`aspect-auto`|✅ Full Support|
+
|`aspect-video`|✅ Full Support|
+
|`aspect-square`|✅ Full Support|
+
|`aspect-[n]`|✅ Full Support|
+
|`aspect-{n}`|✅ Full Support|
## Gap
···
### Compatibility
-
| Class | Support |
-
| ----------- | --------------- |
-
| `gap-{n}` | ✅ Full Support |
-
| `gap-[n]` | ✅ Full Support |
-
| `gap-x-{n}` | ✅ Full Support |
-
| `gap-x-[n]` | ✅ Full Support |
-
| `gap-y-{n}` | ✅ Full Support |
-
| `gap-y-[n]` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`gap-{n}`|✅ Full Support|
+
|`gap-[n]`|✅ Full Support|
+
|`gap-x-{n}`|✅ Full Support|
+
|`gap-x-[n]`|✅ Full Support|
+
|`gap-y-{n}`|✅ Full Support|
+
|`gap-y-[n]`|✅ Full Support|
## Gradient Color Stops
-
| Class | Support |
-
| ------------------ | ----------- |
-
| `from-inherit` | 🌐 Web only |
-
| `from-current` | 🌐 Web only |
-
| `from-transparent` | 🌐 Web only |
-
| `from-black` | 🌐 Web only |
-
| `from-white` | 🌐 Web only |
-
| `from-{n}` | 🌐 Web only |
-
| `from-[n]` | 🌐 Web only |
-
| `via-inherit` | 🌐 Web only |
-
| `via-current` | 🌐 Web only |
-
| `via-transparent` | 🌐 Web only |
-
| `via-black` | 🌐 Web only |
-
| `via-white` | 🌐 Web only |
-
| `via-{n}` | 🌐 Web only |
-
| `via-[n]` | 🌐 Web only |
-
| `to-inherit` | 🌐 Web only |
-
| `to-current` | 🌐 Web only |
-
| `to-transparent` | 🌐 Web only |
-
| `to-black` | 🌐 Web only |
-
| `to-white` | 🌐 Web only |
-
| `to-{n}` | 🌐 Web only |
-
| `to-[n]` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`from-inherit`|🌐 Web only|
+
|`from-current`|🌐 Web only|
+
|`from-transparent`|🌐 Web only|
+
|`from-black`|🌐 Web only|
+
|`from-white`|🌐 Web only|
+
|`from-{n}`|🌐 Web only|
+
|`from-[n]`|🌐 Web only|
+
|`via-inherit`|🌐 Web only|
+
|`via-current`|🌐 Web only|
+
|`via-transparent`|🌐 Web only|
+
|`via-black`|🌐 Web only|
+
|`via-white`|🌐 Web only|
+
|`via-{n}`|🌐 Web only|
+
|`via-[n]`|🌐 Web only|
+
|`to-inherit`|🌐 Web only|
+
|`to-current`|🌐 Web only|
+
|`to-transparent`|🌐 Web only|
+
|`to-black`|🌐 Web only|
+
|`to-white`|🌐 Web only|
+
|`to-{n}`|🌐 Web only|
+
|`to-[n]`|🌐 Web only|
## Border Color
···
### Compatibility
-
| Class | Support |
-
| ---------------- | --------------- |
-
| `border-{n}` | ✅ Full Support |
-
| `border-[n]` | ✅ Full Support |
-
| `border-inherit` | 🌐 Web only |
-
| `border-current` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`border-{n}`|✅ Full Support|
+
|`border-[n]`|✅ Full Support|
+
|`border-inherit`|🌐 Web only|
+
|`border-current`|🌐 Web only|
#### Border Opacity (Native Only)
···
### Compatibility
-
| Class | Support |
-
| ---------------- | ----------- |
-
| `auto-cols-auto` | 🌐 Web only |
-
| `auto-cols-min` | 🌐 Web only |
-
| `auto-cols-max` | 🌐 Web only |
-
| `auto-cols-fr` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`auto-cols-auto`|🌐 Web only|
+
|`auto-cols-min`|🌐 Web only|
+
|`auto-cols-max`|🌐 Web only|
+
|`auto-cols-fr`|🌐 Web only|
## Border Radius
···
### Compatibility
-
| Class | Support |
-
| ----------------- | --------------- |
-
| `rounded-none` | ✅ Full Support |
-
| `rounded` | ✅ Full Support |
-
| `rounded-{n}` | ✅ Full Support |
-
| `rounded-[n]` | ✅ Full Support |
-
| `rounded-full` | ✅ Full Support |
-
| `rounded-t-none` | ✅ Full Support |
-
| `rounded-t-{n}` | ✅ Full Support |
-
| `rounded-t-[n]` | ✅ Full Support |
-
| `rounded-t-full` | ✅ Full Support |
-
| `rounded-r-none` | ✅ Full Support |
-
| `rounded-r-{n}` | ✅ Full Support |
-
| `rounded-r-[n]` | ✅ Full Support |
-
| `rounded-r-full` | ✅ Full Support |
-
| `rounded-b-none` | ✅ Full Support |
-
| `rounded-b-{n}` | ✅ Full Support |
-
| `rounded-b-[n]` | ✅ Full Support |
-
| `rounded-b-full` | ✅ Full Support |
-
| `rounded-l-none` | ✅ Full Support |
-
| `rounded-l-{n}` | ✅ Full Support |
-
| `rounded-l-[n]` | ✅ Full Support |
-
| `rounded-l-full` | ✅ Full Support |
-
| `rounded-tl-none` | ✅ Full Support |
-
| `rounded-tl-{n}` | ✅ Full Support |
-
| `rounded-tl-[n]` | ✅ Full Support |
-
| `rounded-tl-full` | ✅ Full Support |
-
| `rounded-tr-none` | ✅ Full Support |
-
| `rounded-tr-{n}` | ✅ Full Support |
-
| `rounded-tr-[n]` | ✅ Full Support |
-
| `rounded-tr-full` | ✅ Full Support |
-
| `rounded-br-none` | ✅ Full Support |
-
| `rounded-br-{n}` | ✅ Full Support |
-
| `rounded-br-[n]` | ✅ Full Support |
-
| `rounded-br-full` | ✅ Full Support |
-
| `rounded-bl-none` | ✅ Full Support |
-
| `rounded-bl-{n}` | ✅ Full Support |
-
| `rounded-bl-[n]` | ✅ Full Support |
-
| `rounded-bl-full` | ✅ Full Support |
-
| `border-inherit` | 🌐 Web only |
-
| `border-current` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`rounded-none`|✅ Full Support|
+
|`rounded`|✅ Full Support|
+
|`rounded-{n}`|✅ Full Support|
+
|`rounded-[n]`|✅ Full Support|
+
|`rounded-full`|✅ Full Support|
+
|`rounded-t-none`|✅ Full Support|
+
|`rounded-t-{n}`|✅ Full Support|
+
|`rounded-t-[n]`|✅ Full Support|
+
|`rounded-t-full`|✅ Full Support|
+
|`rounded-r-none`|✅ Full Support|
+
|`rounded-r-{n}`|✅ Full Support|
+
|`rounded-r-[n]`|✅ Full Support|
+
|`rounded-r-full`|✅ Full Support|
+
|`rounded-b-none`|✅ Full Support|
+
|`rounded-b-{n}`|✅ Full Support|
+
|`rounded-b-[n]`|✅ Full Support|
+
|`rounded-b-full`|✅ Full Support|
+
|`rounded-l-none`|✅ Full Support|
+
|`rounded-l-{n}`|✅ Full Support|
+
|`rounded-l-[n]`|✅ Full Support|
+
|`rounded-l-full`|✅ Full Support|
+
|`rounded-tl-none`|✅ Full Support|
+
|`rounded-tl-{n}`|✅ Full Support|
+
|`rounded-tl-[n]`|✅ Full Support|
+
|`rounded-tl-full`|✅ Full Support|
+
|`rounded-tr-none`|✅ Full Support|
+
|`rounded-tr-{n}`|✅ Full Support|
+
|`rounded-tr-[n]`|✅ Full Support|
+
|`rounded-tr-full`|✅ Full Support|
+
|`rounded-br-none`|✅ Full Support|
+
|`rounded-br-{n}`|✅ Full Support|
+
|`rounded-br-[n]`|✅ Full Support|
+
|`rounded-br-full`|✅ Full Support|
+
|`rounded-bl-none`|✅ Full Support|
+
|`rounded-bl-{n}`|✅ Full Support|
+
|`rounded-bl-[n]`|✅ Full Support|
+
|`rounded-bl-full`|✅ Full Support|
+
|`border-inherit`|🌐 Web only|
+
|`border-current`|🌐 Web only|
## Box Decoration Break
···
### Compatibility
-
| Class | Support |
-
| ---------------------- | ----------- |
-
| `box-decoration-clone` | 🌐 Web only |
-
| `box-decoration-slice` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`box-decoration-clone`|🌐 Web only|
+
|`box-decoration-slice`|🌐 Web only|
## Grid Auto Flow
···
### Compatibility
-
| Class | Support |
-
| --------------------- | ----------- |
-
| `grid-flow-row` | 🌐 Web only |
-
| `grid-flow-col` | 🌐 Web only |
-
| `grid-flow-dense` | 🌐 Web only |
-
| `grid-flow-row-dense` | 🌐 Web only |
-
| `grid-flow-col-dense` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`grid-flow-row`|🌐 Web only|
+
|`grid-flow-col`|🌐 Web only|
+
|`grid-flow-dense`|🌐 Web only|
+
|`grid-flow-row-dense`|🌐 Web only|
+
|`grid-flow-col-dense`|🌐 Web only|
## Border Style
···
When working with native environments, use `border-0` instead of `border-none` to eliminate borders. Below is a table indicating support levels for various border classes:
-
| Class | Support |
-
| --------------- | --------------- |
-
| `border-solid` | ✅ Full Support |
-
| `border-dashed` | ✅ Full Support |
-
| `border-dotted` | ✅ Full Support |
-
| `border-none` | 🌐 Web only |
-
| `border-double` | 🌐 Web only |
-
| `border-hidden` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`border-solid`|✅ Full Support|
+
|`border-dashed`|✅ Full Support|
+
|`border-dotted`|✅ Full Support|
+
|`border-none`|🌐 Web only|
+
|`border-double`|🌐 Web only|
+
|`border-hidden`|🌐 Web only|
## Border Width
···
The following table outlines the support status for various border width classes:
-
| Class | Support |
-
| -------------- | --------------- |
-
| `border` | ✅ Full Support |
-
| `border-{n}` | ✅ Full Support |
-
| `border-[n]` | ✅ Full Support |
-
| `border-x` | ✅ Full Support |
-
| `border-x-{n}` | ✅ Full Support |
-
| `border-x-[n]` | ✅ Full Support |
-
| `border-y` | ✅ Full Support |
-
| `border-y-{n}` | ✅ Full Support |
-
| `border-y-[n]` | ✅ Full Support |
-
| `border-t` | ✅ Full Support |
-
| `border-t-{n}` | ✅ Full Support |
-
| `border-t-[n]` | ✅ Full Support |
-
| `border-r` | ✅ Full Support |
-
| `border-r-{n}` | ✅ Full Support |
-
| `border-r-[n]` | ✅ Full Support |
-
| `border-b` | ✅ Full Support |
-
| `border-b-{n}` | ✅ Full Support |
-
| `border-b-[n]` | ✅ Full Support |
-
| `border-l` | ✅ Full Support |
-
| `border-l-{n}` | ✅ Full Support |
-
| `border-l-[n]` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`border`|✅ Full Support|
+
|`border-{n}`|✅ Full Support|
+
|`border-[n]`|✅ Full Support|
+
|`border-x`|✅ Full Support|
+
|`border-x-{n}`|✅ Full Support|
+
|`border-x-[n]`|✅ Full Support|
+
|`border-y`|✅ Full Support|
+
|`border-y-{n}`|✅ Full Support|
+
|`border-y-[n]`|✅ Full Support|
+
|`border-t`|✅ Full Support|
+
|`border-t-{n}`|✅ Full Support|
+
|`border-t-[n]`|✅ Full Support|
+
|`border-r`|✅ Full Support|
+
|`border-r-{n}`|✅ Full Support|
+
|`border-r-[n]`|✅ Full Support|
+
|`border-b`|✅ Full Support|
+
|`border-b-{n}`|✅ Full Support|
+
|`border-b-[n]`|✅ Full Support|
+
|`border-l`|✅ Full Support|
+
|`border-l-{n}`|✅ Full Support|
+
|`border-l-[n]`|✅ Full Support|
## Grid Auto Rows
···
### Compatibility
-
| Class | Support |
-
| ---------------- | ----------- |
-
| `auto-rows-auto` | 🌐 Web only |
-
| `auto-rows-min` | 🌐 Web only |
-
| `auto-rows-max` | 🌐 Web only |
-
| `auto-rows-fr` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`auto-rows-auto`|🌐 Web only|
+
|`auto-rows-min`|🌐 Web only|
+
|`auto-rows-max`|🌐 Web only|
+
|`auto-rows-fr`|🌐 Web only|
## Divide Color
···
### Compatibility
-
| Class | Support |
-
| ---------------- | ----------- |
-
| `divide-{n}` | 🌐 Web only |
-
| `divide-[n]` | 🌐 Web only |
-
| `divide-inherit` | 🌐 Web only |
-
| `divide-current` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`divide-{n}`|🌐 Web only|
+
|`divide-[n]`|🌐 Web only|
+
|`divide-inherit`|🌐 Web only|
+
|`divide-current`|🌐 Web only|
#### divideOpacity (native only)
···
### Compatibility
-
| Class | Support |
-
| --------------- | ----------- |
-
| `divide-solid` | 🌐 Web only |
-
| `divide-dashed` | 🌐 Web only |
-
| `divide-dotted` | 🌐 Web only |
-
| `divide-none` | 🌐 Web only |
-
| `divide-double` | 🌐 Web only |
-
| `divide-hidden` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`divide-solid`|🌐 Web only|
+
|`divide-dashed`|🌐 Web only|
+
|`divide-dotted`|🌐 Web only|
+
|`divide-none`|🌐 Web only|
+
|`divide-double`|🌐 Web only|
+
|`divide-hidden`|🌐 Web only|
## Typescript
···
The following table outlines the compatibility of various grid column classes with web platforms:
-
| Class | Support |
-
| ---------------- | ----------- |
-
| `col-auto` | 🌐 Web only |
-
| `col-span-1` | 🌐 Web only |
-
| `col-span-2` | 🌐 Web only |
-
| `col-span-3` | 🌐 Web only |
-
| `col-span-4` | 🌐 Web only |
-
| `col-span-5` | 🌐 Web only |
-
| `col-span-6` | 🌐 Web only |
-
| `col-span-7` | 🌐 Web only |
-
| `col-span-8` | 🌐 Web only |
-
| `col-span-9` | 🌐 Web only |
-
| `col-span-10` | 🌐 Web only |
-
| `col-span-11` | 🌐 Web only |
-
| `col-span-12` | 🌐 Web only |
-
| `col-span-full` | 🌐 Web only |
-
| `col-start-1` | 🌐 Web only |
-
| `col-start-2` | 🌐 Web only |
-
| `col-start-3` | 🌐 Web only |
-
| `col-start-4` | 🌐 Web only |
-
| `col-start-5` | 🌐 Web only |
-
| `col-start-6` | 🌐 Web only |
-
| `col-start-7` | 🌐 Web only |
-
| `col-start-8` | 🌐 Web only |
-
| `col-start-9` | 🌐 Web only |
-
| `col-start-10` | 🌐 Web only |
-
| `col-start-11` | 🌐 Web only |
-
| `col-start-12` | 🌐 Web only |
-
| `col-start-13` | 🌐 Web only |
-
| `col-start-auto` | 🌐 Web only |
-
| `col-end-1` | 🌐 Web only |
-
| `col-end-2` | 🌐 Web only |
-
| `col-end-3` | 🌐 Web only |
-
| `col-end-4` | 🌐 Web only |
-
| `col-end-5` | 🌐 Web only |
-
| `col-end-6` | 🌐 Web only |
-
| `col-end-7` | 🌐 Web only |
-
| `col-end-8` | 🌐 Web only |
-
| `col-end-9` | 🌐 Web only |
-
| `col-end-10` | 🌐 Web only |
-
| `col-end-11` | 🌐 Web only |
-
| `col-end-12` | 🌐 Web only |
-
| `col-end-13` | 🌐 Web only |
-
| `col-end-auto` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`col-auto`|🌐 Web only|
+
|`col-span-1`|🌐 Web only|
+
|`col-span-2`|🌐 Web only|
+
|`col-span-3`|🌐 Web only|
+
|`col-span-4`|🌐 Web only|
+
|`col-span-5`|🌐 Web only|
+
|`col-span-6`|🌐 Web only|
+
|`col-span-7`|🌐 Web only|
+
|`col-span-8`|🌐 Web only|
+
|`col-span-9`|🌐 Web only|
+
|`col-span-10`|🌐 Web only|
+
|`col-span-11`|🌐 Web only|
+
|`col-span-12`|🌐 Web only|
+
|`col-span-full`|🌐 Web only|
+
|`col-start-1`|🌐 Web only|
+
|`col-start-2`|🌐 Web only|
+
|`col-start-3`|🌐 Web only|
+
|`col-start-4`|🌐 Web only|
+
|`col-start-5`|🌐 Web only|
+
|`col-start-6`|🌐 Web only|
+
|`col-start-7`|🌐 Web only|
+
|`col-start-8`|🌐 Web only|
+
|`col-start-9`|🌐 Web only|
+
|`col-start-10`|🌐 Web only|
+
|`col-start-11`|🌐 Web only|
+
|`col-start-12`|🌐 Web only|
+
|`col-start-13`|🌐 Web only|
+
|`col-start-auto`|🌐 Web only|
+
|`col-end-1`|🌐 Web only|
+
|`col-end-2`|🌐 Web only|
+
|`col-end-3`|🌐 Web only|
+
|`col-end-4`|🌐 Web only|
+
|`col-end-5`|🌐 Web only|
+
|`col-end-6`|🌐 Web only|
+
|`col-end-7`|🌐 Web only|
+
|`col-end-8`|🌐 Web only|
+
|`col-end-9`|🌐 Web only|
+
|`col-end-10`|🌐 Web only|
+
|`col-end-11`|🌐 Web only|
+
|`col-end-12`|🌐 Web only|
+
|`col-end-13`|🌐 Web only|
+
|`col-end-auto`|🌐 Web only|
## Divide Width
···
### Compatibility
-
| Class | Support |
-
| -------------- | ----------- |
-
| `divide-x-{n}` | 🌐 Web only |
-
| `divide-x-[n]` | 🌐 Web only |
-
| `divide-y-{n}` | 🌐 Web only |
-
| `divide-y-[n]` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`divide-x-{n}`|🌐 Web only|
+
|`divide-x-[n]`|🌐 Web only|
+
|`divide-y-{n}`|🌐 Web only|
+
|`divide-y-[n]`|🌐 Web only|
## Outline Color
···
### Compatibility
-
| Class | Support |
-
| --------------------- | ----------- |
-
| `outline-inherit` | 🌐 Web only |
-
| `outline-current` | 🌐 Web only |
-
| `outline-transparent` | 🌐 Web only |
-
| `outline-black` | 🌐 Web only |
-
| `outline-white` | 🌐 Web only |
-
| `outline-{n}` | 🌐 Web only |
-
| `outline-[n]` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`outline-inherit`|🌐 Web only|
+
|`outline-current`|🌐 Web only|
+
|`outline-transparent`|🌐 Web only|
+
|`outline-black`|🌐 Web only|
+
|`outline-white`|🌐 Web only|
+
|`outline-{n}`|🌐 Web only|
+
|`outline-[n]`|🌐 Web only|
## Outline Offset
···
### Compatibility
-
| Class | Support |
-
| ------------------ | ----------- |
-
| `outline-offset-0` | 🌐 Web only |
-
| `outline-offset-1` | 🌐 Web only |
-
| `outline-offset-2` | 🌐 Web only |
-
| `outline-offset-4` | 🌐 Web only |
-
| `outline-offset-8` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`outline-offset-0`|🌐 Web only|
+
|`outline-offset-1`|🌐 Web only|
+
|`outline-offset-2`|🌐 Web only|
+
|`outline-offset-4`|🌐 Web only|
+
|`outline-offset-8`|🌐 Web only|
## Box Sizing
···
### Compatibility
-
| Class | Support |
-
| ------------- | ----------- |
-
| `box-border` | 🌐 Web only |
-
| `box-content` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`box-border`|🌐 Web only|
+
|`box-content`|🌐 Web only|
## Grid Row Start / End
···
The following classes are supported exclusively on web platforms:
-
| Class | Support |
-
| ---------------- | ----------- |
-
| `row-auto` | 🌐 Web only |
-
| `row-span-1` | 🌐 Web only |
-
| `row-span-2` | 🌐 Web only |
-
| `row-span-3` | 🌐 Web only |
-
| `row-span-4` | 🌐 Web only |
-
| `row-span-5` | 🌐 Web only |
-
| `row-span-6` | 🌐 Web only |
-
| `row-span-7` | 🌐 Web only |
-
| `row-span-8` | 🌐 Web only |
-
| `row-span-9` | 🌐 Web only |
-
| `row-span-10` | 🌐 Web only |
-
| `row-span-11` | 🌐 Web only |
-
| `row-span-12` | 🌐 Web only |
-
| `row-span-full` | 🌐 Web only |
-
| `row-start-1` | 🌐 Web only |
-
| `row-start-2` | 🌐 Web only |
-
| `row-start-3` | 🌐 Web only |
-
| `row-start-4` | 🌐 Web only |
-
| `row-start-5` | 🌐 Web only |
-
| `row-start-6` | 🌐 Web only |
-
| `row-start-7` | 🌐 Web only |
-
| `row-start-8` | 🌐 Web only |
-
| `row-start-9` | 🌐 Web only |
-
| `row-start-10` | 🌐 Web only |
-
| `row-start-11` | 🌐 Web only |
-
| `row-start-12` | 🌐 Web only |
-
| `row-start-13` | 🌐 Web only |
-
| `row-start-auto` | 🌐 Web only |
-
| `row-end-1` | 🌐 Web only |
-
| `row-end-2` | 🌐 Web only |
-
| `row-end-3` | 🌐 Web only |
-
| `row-end-4` | 🌐 Web only |
-
| `row-end-5` | 🌐 Web only |
-
| `row-end-6` | 🌐 Web only |
-
| `row-end-7` | 🌐 Web only |
-
| `row-end-8` | 🌐 Web only |
-
| `row-end-9` | 🌐 Web only |
-
| `row-end-10` | 🌐 Web only |
-
| `row-end-11` | 🌐 Web only |
-
| `row-end-12` | 🌐 Web only |
-
| `row-end-13` | 🌐 Web only |
-
| `row-end-auto` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`row-auto`|🌐 Web only|
+
|`row-span-1`|🌐 Web only|
+
|`row-span-2`|🌐 Web only|
+
|`row-span-3`|🌐 Web only|
+
|`row-span-4`|🌐 Web only|
+
|`row-span-5`|🌐 Web only|
+
|`row-span-6`|🌐 Web only|
+
|`row-span-7`|🌐 Web only|
+
|`row-span-8`|🌐 Web only|
+
|`row-span-9`|🌐 Web only|
+
|`row-span-10`|🌐 Web only|
+
|`row-span-11`|🌐 Web only|
+
|`row-span-12`|🌐 Web only|
+
|`row-span-full`|🌐 Web only|
+
|`row-start-1`|🌐 Web only|
+
|`row-start-2`|🌐 Web only|
+
|`row-start-3`|🌐 Web only|
+
|`row-start-4`|🌐 Web only|
+
|`row-start-5`|🌐 Web only|
+
|`row-start-6`|🌐 Web only|
+
|`row-start-7`|🌐 Web only|
+
|`row-start-8`|🌐 Web only|
+
|`row-start-9`|🌐 Web only|
+
|`row-start-10`|🌐 Web only|
+
|`row-start-11`|🌐 Web only|
+
|`row-start-12`|🌐 Web only|
+
|`row-start-13`|🌐 Web only|
+
|`row-start-auto`|🌐 Web only|
+
|`row-end-1`|🌐 Web only|
+
|`row-end-2`|🌐 Web only|
+
|`row-end-3`|🌐 Web only|
+
|`row-end-4`|🌐 Web only|
+
|`row-end-5`|🌐 Web only|
+
|`row-end-6`|🌐 Web only|
+
|`row-end-7`|🌐 Web only|
+
|`row-end-8`|🌐 Web only|
+
|`row-end-9`|🌐 Web only|
+
|`row-end-10`|🌐 Web only|
+
|`row-end-11`|🌐 Web only|
+
|`row-end-12`|🌐 Web only|
+
|`row-end-13`|🌐 Web only|
+
|`row-end-auto`|🌐 Web only|
## Outline Style
···
### Compatibility
-
| Class | Support |
-
| ---------------- | ----------- |
-
| `outline-none` | 🌐 Web only |
-
| `outline` | 🌐 Web only |
-
| `outline-dashed` | 🌐 Web only |
-
| `outline-dotted` | 🌐 Web only |
-
| `outline-double` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`outline-none`|🌐 Web only|
+
|`outline`|🌐 Web only|
+
|`outline-dashed`|🌐 Web only|
+
|`outline-dotted`|🌐 Web only|
+
|`outline-double`|🌐 Web only|
## Grid Template Columns
···
### Compatibility
-
| Class | Support |
-
| ---------------- | ----------- |
-
| `grid-cols-1` | 🌐 Web only |
-
| `grid-cols-2` | 🌐 Web only |
-
| `grid-cols-3` | 🌐 Web only |
-
| `grid-cols-4` | 🌐 Web only |
-
| `grid-cols-5` | 🌐 Web only |
-
| `grid-cols-6` | 🌐 Web only |
-
| `grid-cols-7` | 🌐 Web only |
-
| `grid-cols-8` | 🌐 Web only |
-
| `grid-cols-9` | 🌐 Web only |
-
| `grid-cols-10` | 🌐 Web only |
-
| `grid-cols-11` | 🌐 Web only |
-
| `grid-cols-12` | 🌐 Web only |
-
| `grid-cols-none` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`grid-cols-1`|🌐 Web only|
+
|`grid-cols-2`|🌐 Web only|
+
|`grid-cols-3`|🌐 Web only|
+
|`grid-cols-4`|🌐 Web only|
+
|`grid-cols-5`|🌐 Web only|
+
|`grid-cols-6`|🌐 Web only|
+
|`grid-cols-7`|🌐 Web only|
+
|`grid-cols-8`|🌐 Web only|
+
|`grid-cols-9`|🌐 Web only|
+
|`grid-cols-10`|🌐 Web only|
+
|`grid-cols-11`|🌐 Web only|
+
|`grid-cols-12`|🌐 Web only|
+
|`grid-cols-none`|🌐 Web only|
## Outline Width
···
### Compatibility
-
| Class | Support |
-
| ----------- | ----------- |
-
| `outline-0` | 🌐 Web only |
-
| `outline-1` | 🌐 Web only |
-
| `outline-2` | 🌐 Web only |
-
| `outline-4` | 🌐 Web only |
-
| `outline-8` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`outline-0`|🌐 Web only|
+
|`outline-1`|🌐 Web only|
+
|`outline-2`|🌐 Web only|
+
|`outline-4`|🌐 Web only|
+
|`outline-8`|🌐 Web only|
## Ring Color
···
### Compatibility
-
| Class | Support |
-
| ------------------ | ----------- |
-
| `ring-inherit` | 🌐 Web only |
-
| `ring-current` | 🌐 Web only |
-
| `ring-transparent` | 🌐 Web only |
-
| `ring-black` | 🌐 Web only |
-
| `ring-white` | 🌐 Web only |
-
| `ring-{n}` | 🌐 Web only |
-
| `ring-[n]` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`ring-inherit`|🌐 Web only|
+
|`ring-current`|🌐 Web only|
+
|`ring-transparent`|🌐 Web only|
+
|`ring-black`|🌐 Web only|
+
|`ring-white`|🌐 Web only|
+
|`ring-{n}`|🌐 Web only|
+
|`ring-[n]`|🌐 Web only|
## Units
···
These units can be utilized within classes or in the `tailwind.config.js` file.
-
| Unit | Name | Description |
-
| ---- | ----------- | -------------------------------------------- |
-
| vw | View Width | Implemented using `Dimensions.get('window')` |
-
| vh | View Height | Implemented using `Dimensions.get('window')` |
+
|Unit|Name|Description|
+
|-|-|-|
+
|vw|View Width|Implemented using `Dimensions.get('window')`|
+
|vh|View Height|Implemented using `Dimensions.get('window')`|
## Break After
···
### Compatibility
-
| Class | Support |
-
| ------------------------ | ----------- |
-
| `break-after-auto` | 🌐 Web only |
-
| `break-after-avoid` | 🌐 Web only |
-
| `break-after-all` | 🌐 Web only |
-
| `break-after-avoid-page` | 🌐 Web only |
-
| `break-after-page` | 🌐 Web only |
-
| `break-after-left` | 🌐 Web only |
-
| `break-after-right` | 🌐 Web only |
-
| `break-after-column` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`break-after-auto`|🌐 Web only|
+
|`break-after-avoid`|🌐 Web only|
+
|`break-after-all`|🌐 Web only|
+
|`break-after-avoid-page`|🌐 Web only|
+
|`break-after-page`|🌐 Web only|
+
|`break-after-left`|🌐 Web only|
+
|`break-after-right`|🌐 Web only|
+
|`break-after-column`|🌐 Web only|
## Ring Offset Color
···
### Compatibility
-
| Class | Support |
-
| --------------- | ----------- |
-
| `ring-offset-0` | 🌐 Web only |
-
| `ring-offset-1` | 🌐 Web only |
-
| `ring-offset-2` | 🌐 Web only |
-
| `ring-offset-4` | 🌐 Web only |
-
| `ring-offset-8` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`ring-offset-0`|🌐 Web only|
+
|`ring-offset-1`|🌐 Web only|
+
|`ring-offset-2`|🌐 Web only|
+
|`ring-offset-4`|🌐 Web only|
+
|`ring-offset-8`|🌐 Web only|
## Grid Template Rows
···
### Compatibility
-
| Class | Support |
-
| ---------------- | ----------- |
-
| `grid-rows-1` | 🌐 Web only |
-
| `grid-rows-2` | 🌐 Web only |
-
| `grid-rows-3` | 🌐 Web only |
-
| `grid-rows-4` | 🌐 Web only |
-
| `grid-rows-5` | 🌐 Web only |
-
| `grid-rows-6` | 🌐 Web only |
-
| `grid-rows-7` | 🌐 Web only |
-
| `grid-rows-8` | 🌐 Web only |
-
| `grid-rows-9` | 🌐 Web only |
-
| `grid-rows-10` | 🌐 Web only |
-
| `grid-rows-11` | 🌐 Web only |
-
| `grid-rows-12` | 🌐 Web only |
-
| `grid-rows-none` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`grid-rows-1`|🌐 Web only|
+
|`grid-rows-2`|🌐 Web only|
+
|`grid-rows-3`|🌐 Web only|
+
|`grid-rows-4`|🌐 Web only|
+
|`grid-rows-5`|🌐 Web only|
+
|`grid-rows-6`|🌐 Web only|
+
|`grid-rows-7`|🌐 Web only|
+
|`grid-rows-8`|🌐 Web only|
+
|`grid-rows-9`|🌐 Web only|
+
|`grid-rows-10`|🌐 Web only|
+
|`grid-rows-11`|🌐 Web only|
+
|`grid-rows-12`|🌐 Web only|
+
|`grid-rows-none`|🌐 Web only|
## Ring Offset Width
···
### Compatibility
-
| Class | Support |
-
| --------------- | ----------- |
-
| `ring-offset-0` | 🌐 Web only |
-
| `ring-offset-1` | 🌐 Web only |
-
| `ring-offset-2` | 🌐 Web only |
-
| `ring-offset-4` | 🌐 Web only |
-
| `ring-offset-8` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`ring-offset-0`|🌐 Web only|
+
|`ring-offset-1`|🌐 Web only|
+
|`ring-offset-2`|🌐 Web only|
+
|`ring-offset-4`|🌐 Web only|
+
|`ring-offset-8`|🌐 Web only|
## Ring Width
···
### Compatibility
-
| Class | Support |
-
| ------------ | ----------- |
-
| `ring-0` | 🌐 Web only |
-
| `ring-1` | 🌐 Web only |
-
| `ring-2` | 🌐 Web only |
-
| `ring` | 🌐 Web only |
-
| `ring-4` | 🌐 Web only |
-
| `ring-8` | 🌐 Web only |
-
| `ring-inset` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`ring-0`|🌐 Web only|
+
|`ring-1`|🌐 Web only|
+
|`ring-2`|🌐 Web only|
+
|`ring`|🌐 Web only|
+
|`ring-4`|🌐 Web only|
+
|`ring-8`|🌐 Web only|
+
|`ring-inset`|🌐 Web only|
## Break Before
···
### Compatibility
-
| Class | Support |
-
| ------------------------- | ----------- |
-
| `break-before-auto` | 🌐 Web only |
-
| `break-before-avoid` | 🌐 Web only |
-
| `break-before-all` | 🌐 Web only |
-
| `break-before-avoid-page` | 🌐 Web only |
-
| `break-before-page` | 🌐 Web only |
-
| `break-before-left` | 🌐 Web only |
-
| `break-before-right` | 🌐 Web only |
-
| `break-before-column` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`break-before-auto`|🌐 Web only|
+
|`break-before-avoid`|🌐 Web only|
+
|`break-before-all`|🌐 Web only|
+
|`break-before-avoid-page`|🌐 Web only|
+
|`break-before-page`|🌐 Web only|
+
|`break-before-left`|🌐 Web only|
+
|`break-before-right`|🌐 Web only|
+
|`break-before-column`|🌐 Web only|
## Justify Content
···
### Compatibility
-
| Class | Support |
-
| ----------------- | --------------- |
-
| `justify-start` | ✅ Full Support |
-
| `justify-end` | ✅ Full Support |
-
| `justify-center` | ✅ Full Support |
-
| `justify-between` | ✅ Full Support |
-
| `justify-around` | ✅ Full Support |
-
| `justify-evenly` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`justify-start`|✅ Full Support|
+
|`justify-end`|✅ Full Support|
+
|`justify-center`|✅ Full Support|
+
|`justify-between`|✅ Full Support|
+
|`justify-around`|✅ Full Support|
+
|`justify-evenly`|✅ Full Support|
## Background Blend Mode
···
The following table outlines the support status for various background blend mode classes:
-
| Class | Support |
-
| ---------------------- | --------------- |
-
| `bg-blend-normal` | ✅ Full Support |
-
| `bg-blend-multiply` | ✅ Full Support |
-
| `bg-blend-screen` | ✅ Full Support |
-
| `bg-blend-overlay` | ✅ Full Support |
-
| `bg-blend-darken` | ✅ Full Support |
-
| `bg-blend-lighten` | ✅ Full Support |
-
| `bg-blend-color-dodge` | ✅ Full Support |
-
| `bg-blend-color-burn` | ✅ Full Support |
-
| `bg-blend-hard-light` | ✅ Full Support |
-
| `bg-blend-soft-light` | ✅ Full Support |
-
| `bg-blend-difference` | ✅ Full Support |
-
| `bg-blend-exclusion` | ✅ Full Support |
-
| `bg-blend-hue` | ✅ Full Support |
-
| `bg-blend-saturation` | ✅ Full Support |
-
| `bg-blend-color` | ✅ Full Support |
-
| `bg-blend-luminosity` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`bg-blend-normal`|✅ Full Support|
+
|`bg-blend-multiply`|✅ Full Support|
+
|`bg-blend-screen`|✅ Full Support|
+
|`bg-blend-overlay`|✅ Full Support|
+
|`bg-blend-darken`|✅ Full Support|
+
|`bg-blend-lighten`|✅ Full Support|
+
|`bg-blend-color-dodge`|✅ Full Support|
+
|`bg-blend-color-burn`|✅ Full Support|
+
|`bg-blend-hard-light`|✅ Full Support|
+
|`bg-blend-soft-light`|✅ Full Support|
+
|`bg-blend-difference`|✅ Full Support|
+
|`bg-blend-exclusion`|✅ Full Support|
+
|`bg-blend-hue`|✅ Full Support|
+
|`bg-blend-saturation`|✅ Full Support|
+
|`bg-blend-color`|✅ Full Support|
+
|`bg-blend-luminosity`|✅ Full Support|
## Justify Items
···
### Compatibility
-
| Class | Support |
-
| ----------------------- | ----------- |
-
| `justify-items-start` | 🌐 Web only |
-
| `justify-items-end` | 🌐 Web only |
-
| `justify-items-center` | 🌐 Web only |
-
| `justify-items-stretch` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`justify-items-start`|🌐 Web only|
+
|`justify-items-end`|🌐 Web only|
+
|`justify-items-center`|🌐 Web only|
+
|`justify-items-stretch`|🌐 Web only|
## Box Shadow
···
### Compatibility
-
| Class | Support |
-
| -------------- | --------------- |
-
| `shadow` | ✅ Full Support |
-
| `shadow-{n}` | ✅ Full Support |
-
| `shadow-none` | ✅ Full Support |
-
| `shadow-[n]` | 🌐 Web only |
-
| `shadow-inner` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`shadow`|✅ Full Support|
+
|`shadow-{n}`|✅ Full Support|
+
|`shadow-none`|✅ Full Support|
+
|`shadow-[n]`|🌐 Web only|
+
|`shadow-inner`|🌐 Web only|
## Box Shadow Color
···
### Compatibility
-
| Class | Support |
-
| ------------ | --------------- |
-
| `shadow-{n}` | ✅ Full Support |
-
| `shadow-[n]` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`shadow-{n}`|✅ Full Support|
+
|`shadow-[n]`|✅ Full Support|
## Working with Third-Party Components in Nativewind
···
### Compatibility
-
| Class | Support |
-
| --------------------------- | ----------- |
-
| `break-inside-auto` | 🌐 Web only |
-
| `break-inside-avoid` | 🌐 Web only |
-
| `break-inside-avoid-page` | 🌐 Web only |
-
| `break-inside-avoid-column` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`break-inside-auto`|🌐 Web only|
+
|`break-inside-avoid`|🌐 Web only|
+
|`break-inside-avoid-page`|🌐 Web only|
+
|`break-inside-avoid-column`|🌐 Web only|
## Justify Self
···
### Compatibility
-
| Class | Support |
-
| ---------------------- | ----------- |
-
| `justify-self-auto` | 🌐 Web only |
-
| `justify-self-start` | 🌐 Web only |
-
| `justify-self-end` | 🌐 Web only |
-
| `justify-self-center` | 🌐 Web only |
-
| `justify-self-stretch` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`justify-self-auto`|🌐 Web only|
+
|`justify-self-start`|🌐 Web only|
+
|`justify-self-end`|🌐 Web only|
+
|`justify-self-center`|🌐 Web only|
+
|`justify-self-stretch`|🌐 Web only|
## Mix Blend Mode
···
### Compatibility
-
| Class | Support |
-
| ------------------------ | ----------- |
-
| `mix-blend-normal` | 🌐 Web only |
-
| `mix-blend-multiply` | 🌐 Web only |
-
| `mix-blend-screen` | 🌐 Web only |
-
| `mix-blend-overlay` | 🌐 Web only |
-
| `mix-blend-darken` | 🌐 Web only |
-
| `mix-blend-lighten` | 🌐 Web only |
-
| `mix-blend-color-dodge` | 🌐 Web only |
-
| `mix-blend-color-burn` | 🌐 Web only |
-
| `mix-blend-hard-light` | 🌐 Web only |
-
| `mix-blend-soft-light` | 🌐 Web only |
-
| `mix-blend-difference` | 🌐 Web only |
-
| `mix-blend-exclusion` | 🌐 Web only |
-
| `mix-blend-hue` | 🌐 Web only |
-
| `mix-blend-saturation` | 🌐 Web only |
-
| `mix-blend-color` | 🌐 Web only |
-
| `mix-blend-luminosity` | 🌐 Web only |
-
| `mix-blend-plus-lighter` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`mix-blend-normal`|🌐 Web only|
+
|`mix-blend-multiply`|🌐 Web only|
+
|`mix-blend-screen`|🌐 Web only|
+
|`mix-blend-overlay`|🌐 Web only|
+
|`mix-blend-darken`|🌐 Web only|
+
|`mix-blend-lighten`|🌐 Web only|
+
|`mix-blend-color-dodge`|🌐 Web only|
+
|`mix-blend-color-burn`|🌐 Web only|
+
|`mix-blend-hard-light`|🌐 Web only|
+
|`mix-blend-soft-light`|🌐 Web only|
+
|`mix-blend-difference`|🌐 Web only|
+
|`mix-blend-exclusion`|🌐 Web only|
+
|`mix-blend-hue`|🌐 Web only|
+
|`mix-blend-saturation`|🌐 Web only|
+
|`mix-blend-color`|🌐 Web only|
+
|`mix-blend-luminosity`|🌐 Web only|
+
|`mix-blend-plus-lighter`|🌐 Web only|
## Opacity
···
### Compatibility
-
| Class | Support |
-
| ------------- | --------------- |
-
| `opacity-{n}` | ✅ Full Support |
-
| `opacity-[n]` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`opacity-{n}`|✅ Full Support|
+
|`opacity-[n]`|✅ Full Support|
## Animation
···
### Compatibility
-
| Class | Support |
-
| ---------------- | ----------------------- |
-
| `animate-none` | 🧪 Experimental Support |
-
| `animate-spin` | 🧪 Experimental Support |
-
| `animate-ping` | 🧪 Experimental Support |
-
| `animate-bounce` | 🧪 Experimental Support |
-
| `animate-[n]` | 🧪 Experimental Support |
+
|Class|Support|
+
|-|-|
+
|`animate-none`|🧪 Experimental Support|
+
|`animate-spin`|🧪 Experimental Support|
+
|`animate-ping`|🧪 Experimental Support|
+
|`animate-bounce`|🧪 Experimental Support|
+
|`animate-[n]`|🧪 Experimental Support|
### Contributors
···
### Compatibility
-
| Class | Support |
-
| ------------- | ----------- |
-
| `order-1` | 🌐 Web only |
-
| `order-2` | 🌐 Web only |
-
| `order-3` | 🌐 Web only |
-
| `order-4` | 🌐 Web only |
-
| `order-5` | 🌐 Web only |
-
| `order-6` | 🌐 Web only |
-
| `order-7` | 🌐 Web only |
-
| `order-8` | 🌐 Web only |
-
| `order-9` | 🌐 Web only |
-
| `order-10` | 🌐 Web only |
-
| `order-11` | 🌐 Web only |
-
| `order-12` | 🌐 Web only |
-
| `order-first` | 🌐 Web only |
-
| `order-last` | 🌐 Web only |
-
| `order-none` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`order-1`|🌐 Web only|
+
|`order-2`|🌐 Web only|
+
|`order-3`|🌐 Web only|
+
|`order-4`|🌐 Web only|
+
|`order-5`|🌐 Web only|
+
|`order-6`|🌐 Web only|
+
|`order-7`|🌐 Web only|
+
|`order-8`|🌐 Web only|
+
|`order-9`|🌐 Web only|
+
|`order-10`|🌐 Web only|
+
|`order-11`|🌐 Web only|
+
|`order-12`|🌐 Web only|
+
|`order-first`|🌐 Web only|
+
|`order-last`|🌐 Web only|
+
|`order-none`|🌐 Web only|
## Transition Delay
···
### Compatibility
-
| Class | Support |
-
| ----------- | ----------------------- |
-
| `delay-{n}` | 🧪 Experimental Support |
-
| `delay-[n]` | 🧪 Experimental Support |
+
|Class|Support|
+
|-|-|
+
|`delay-{n}`|🧪 Experimental Support|
+
|`delay-[n]`|🧪 Experimental Support|
## Transition Duration
···
### Compatibility
-
| Class | Support |
-
| -------------- | ----------------------- |
-
| `duration-{n}` | 🧪 Experimental Support |
-
| `duration-[n]` | 🧪 Experimental Support |
+
|Class|Support|
+
|-|-|
+
|`duration-{n}`|🧪 Experimental Support|
+
|`duration-[n]`|🧪 Experimental Support|
## Place Items
···
### Compatibility
-
| Class | Support |
-
| ---------------------- | ----------- |
-
| `place-items-start` | 🌐 Web only |
-
| `place-items-end` | 🌐 Web only |
-
| `place-items-center` | 🌐 Web only |
-
| `place-items-baseline` | 🌐 Web only |
-
| `place-items-stretch` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`place-items-start`|🌐 Web only|
+
|`place-items-end`|🌐 Web only|
+
|`place-items-center`|🌐 Web only|
+
|`place-items-baseline`|🌐 Web only|
+
|`place-items-stretch`|🌐 Web only|
## Transition Property
···
### Compatibility
-
| Class | Support |
-
| ---------------------- | ----------------------- |
-
| `transition` | 🧪 Experimental Support |
-
| `transition-all` | 🧪 Experimental Support |
-
| `transition-colors` | 🧪 Experimental Support |
-
| `transition-opacity` | 🧪 Experimental Support |
-
| `transition-transform` | 🧪 Experimental Support |
-
| `transition-{n}` | 🧪 Experimental Support |
-
| `transition-[n]` | 🧪 Experimental Support |
-
| `transition-shadow` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`transition`|🧪 Experimental Support|
+
|`transition-all`|🧪 Experimental Support|
+
|`transition-colors`|🧪 Experimental Support|
+
|`transition-opacity`|🧪 Experimental Support|
+
|`transition-transform`|🧪 Experimental Support|
+
|`transition-{n}`|🧪 Experimental Support|
+
|`transition-[n]`|🧪 Experimental Support|
+
|`transition-shadow`|🌐 Web only|
## Platform Differences
···
### Compatibility
-
| Class | Support |
-
| ------------- | ----------- |
-
| `clear-left` | 🌐 Web only |
-
| `clear-right` | 🌐 Web only |
-
| `clear-both` | 🌐 Web only |
-
| `clear-none` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`clear-left`|🌐 Web only|
+
|`clear-right`|🌐 Web only|
+
|`clear-both`|🌐 Web only|
+
|`clear-none`|🌐 Web only|
## Place Content
···
The following table outlines the compatibility of various place content classes:
-
| Class | Support |
-
| ------------------------ | ----------- |
-
| `place-content-center` | 🌐 Web only |
-
| `place-content-start` | 🌐 Web only |
-
| `place-content-end` | 🌐 Web only |
-
| `place-content-between` | 🌐 Web only |
-
| `place-content-around` | 🌐 Web only |
-
| `place-content-evenly` | 🌐 Web only |
-
| `place-content-baseline` | 🌐 Web only |
-
| `place-content-stretch` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`place-content-center`|🌐 Web only|
+
|`place-content-start`|🌐 Web only|
+
|`place-content-end`|🌐 Web only|
+
|`place-content-between`|🌐 Web only|
+
|`place-content-around`|🌐 Web only|
+
|`place-content-evenly`|🌐 Web only|
+
|`place-content-baseline`|🌐 Web only|
+
|`place-content-stretch`|🌐 Web only|
## Transition Timing Function
···
### Compatibility
-
| Class | Support |
-
| ---------- | ----------------------- |
-
| `ease-{n}` | 🧪 Experimental Support |
-
| `ease-[n]` | 🧪 Experimental Support |
+
|Class|Support|
+
|-|-|
+
|`ease-{n}`|🧪 Experimental Support|
+
|`ease-[n]`|🧪 Experimental Support|
## Rotate
···
### Compatibility
-
| Class | Support |
-
| ------------ | --------------- |
-
| `rotate-{n}` | ✅ Full Support |
-
| `rotate-[n]` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`rotate-{n}`|✅ Full Support|
+
|`rotate-[n]`|✅ Full Support|
When using arbitrary styles or defining rotation values in your theme, always specify the `deg` unit. For example: `rotate-[90deg]`.
···
### Compatibility
-
| Class | Support |
-
| ------------- | --------------- |
-
| `scale-{n}` | ✅ Full Support |
-
| `scale-[n]` | ✅ Full Support |
-
| `scale-x-{n}` | ✅ Full Support |
-
| `scale-x-[n]` | ✅ Full Support |
-
| `scale-y-{n}` | ✅ Full Support |
-
| `scale-y-[n]` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`scale-{n}`|✅ Full Support|
+
|`scale-[n]`|✅ Full Support|
+
|`scale-x-{n}`|✅ Full Support|
+
|`scale-x-[n]`|✅ Full Support|
+
|`scale-y-{n}`|✅ Full Support|
+
|`scale-y-[n]`|✅ Full Support|
## Columns
···
### Compatibility
-
| Class | Support |
-
| ------------- | ----------- |
-
| `columns-[n]` | 🌐 Web only |
-
| `columns-{n}` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`columns-[n]`|🌐 Web only|
+
|`columns-{n}`|🌐 Web only|
## Place Self
···
### Compatibility
-
| Class | Support |
-
| -------------------- | ----------- |
-
| `place-self-auto` | 🌐 Web only |
-
| `place-self-start` | 🌐 Web only |
-
| `place-self-end` | 🌐 Web only |
-
| `place-self-center` | 🌐 Web only |
-
| `place-self-stretch` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`place-self-auto`|🌐 Web only|
+
|`place-self-start`|🌐 Web only|
+
|`place-self-end`|🌐 Web only|
+
|`place-self-center`|🌐 Web only|
+
|`place-self-stretch`|🌐 Web only|
## Skew
···
### Compatibility
-
| Class | Support |
-
| ------------ | --------------- |
-
| `skew-x-{n}` | ✅ Full Support |
-
| `skew-x-[n]` | ✅ Full Support |
-
| `skew-y-{n}` | ✅ Full Support |
-
| `skew-y-[n]` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`skew-x-{n}`|✅ Full Support|
+
|`skew-x-[n]`|✅ Full Support|
+
|`skew-y-{n}`|✅ Full Support|
+
|`skew-y-[n]`|✅ Full Support|
## Transform Origin
···
### Compatibility
-
| Class | Support |
-
| --------------------- | ----------- |
-
| `origin-center` | 🌐 Web only |
-
| `origin-top` | 🌐 Web only |
-
| `origin-top-right` | 🌐 Web only |
-
| `origin-right` | 🌐 Web only |
-
| `origin-bottom-right` | 🌐 Web only |
-
| `origin-bottom` | 🌐 Web only |
-
| `origin-bottom-left` | 🌐 Web only |
-
| `origin-left` | 🌐 Web only |
-
| `origin-top-left` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`origin-center`|🌐 Web only|
+
|`origin-top`|🌐 Web only|
+
|`origin-top-right`|🌐 Web only|
+
|`origin-right`|🌐 Web only|
+
|`origin-bottom-right`|🌐 Web only|
+
|`origin-bottom`|🌐 Web only|
+
|`origin-bottom-left`|🌐 Web only|
+
|`origin-left`|🌐 Web only|
+
|`origin-top-left`|🌐 Web only|
### Contributors
···
The following table outlines the support status for various margin classes:
-
| Class | Support |
-
| --------- | --------------- |
-
| `m-{n}` | ✅ Full Support |
-
| `m-[n]` | ✅ Full Support |
-
| `mx-{n}` | ✅ Full Support |
-
| `mx-[n]` | ✅ Full Support |
-
| `my-{n}` | ✅ Full Support |
-
| `my-[n]` | ✅ Full Support |
-
| `mt-{n}` | ✅ Full Support |
-
| `mt-[n]` | ✅ Full Support |
-
| `mr-{n}` | ✅ Full Support |
-
| `mr-[n]` | ✅ Full Support |
-
| `mb-{n}` | ✅ Full Support |
-
| `mb-[n]` | ✅ Full Support |
-
| `ml-{n}` | ✅ Full Support |
-
| `ml-[n]` | ✅ Full Support |
-
| `m-auto` | ✅ Full Support |
-
| `mx-auto` | ✅ Full Support |
-
| `my-auto` | ✅ Full Support |
-
| `mt-auto` | ✅ Full Support |
-
| `mr-auto` | ✅ Full Support |
-
| `mb-auto` | ✅ Full Support |
-
| `ml-auto` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`m-{n}`|✅ Full Support|
+
|`m-[n]`|✅ Full Support|
+
|`mx-{n}`|✅ Full Support|
+
|`mx-[n]`|✅ Full Support|
+
|`my-{n}`|✅ Full Support|
+
|`my-[n]`|✅ Full Support|
+
|`mt-{n}`|✅ Full Support|
+
|`mt-[n]`|✅ Full Support|
+
|`mr-{n}`|✅ Full Support|
+
|`mr-[n]`|✅ Full Support|
+
|`mb-{n}`|✅ Full Support|
+
|`mb-[n]`|✅ Full Support|
+
|`ml-{n}`|✅ Full Support|
+
|`ml-[n]`|✅ Full Support|
+
|`m-auto`|✅ Full Support|
+
|`mx-auto`|✅ Full Support|
+
|`my-auto`|✅ Full Support|
+
|`mt-auto`|✅ Full Support|
+
|`mr-auto`|✅ Full Support|
+
|`mb-auto`|✅ Full Support|
+
|`ml-auto`|✅ Full Support|
## Translate
···
### Compatibility
-
| Class | Support |
-
| ----------------- | --------------- |
-
| `translate-x-{n}` | ✅ Full Support |
-
| `translate-x-[n]` | ✅ Full Support |
-
| `translate-y-{n}` | ✅ Full Support |
-
| `translate-y-[n]` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`translate-x-{n}`|✅ Full Support|
+
|`translate-x-[n]`|✅ Full Support|
+
|`translate-y-{n}`|✅ Full Support|
+
|`translate-y-[n]`|✅ Full Support|
## Other Bundlers
Nativewind offers installation guidance for the two most prevalent React Native bundlers, Metro and Next.js. However, it is compatible with any bundler. To integrate Nativewind successfully, ensure these three conditions are satisfied:
1. Tailwind CSS must be configured using the Nativewind preset.
-
2. React Native should be set up, specifically utilizing React Native Web version 0.17 or higher.
-
3. The JSX runtime needs to be adjusted to `'automatic'`, and `jsxImportSource` should be assigned to `'nativewind'`.
+
1. React Native should be set up, specifically utilizing React Native Web version 0.17 or higher.
+
1. The JSX runtime needs to be adjusted to `'automatic'`, and `jsxImportSource` should be assigned to `'nativewind'`.
### Troubleshooting for Web Bundlers
···
Nativewind defines the following specificity order from highest to lowest:
1. Styles marked as important (following CSS specificity rules)
-
2. Inline & remapped styles (applied in right-to-left order)
-
3. `className` styles (following CSS specificity rules)
+
1. Inline & remapped styles (applied in right-to-left order)
+
1. `className` styles (following CSS specificity rules)
### Concept of Remapped Styles
···
The following table outlines the support for various padding classes:
-
| Class | Support |
-
| --------- | --------------- |
-
| `p-{n}` | ✅ Full Support |
-
| `p-[n]` | ✅ Full Support |
-
| `px-{n}` | ✅ Full Support |
-
| `px-[n]` | ✅ Full Support |
-
| `py-{n}` | ✅ Full Support |
-
| `py-[n]` | ✅ Full Support |
-
| `pt-{n}` | ✅ Full Support |
-
| `pt-[n]` | ✅ Full Support |
-
| `pr-{n}` | ✅ Full Support |
-
| `pr-[n]` | ✅ Full Support |
-
| `pb-{n}` | ✅ Full Support |
-
| `pb-[n]` | ✅ Full Support |
-
| `pl-{n}` | ✅ Full Support |
-
| `pl-[n]` | ✅ Full Support |
-
| `p-auto` | 🌐 Web only |
-
| `px-auto` | 🌐 Web only |
-
| `py-auto` | 🌐 Web only |
-
| `pt-auto` | 🌐 Web only |
-
| `pr-auto` | 🌐 Web only |
-
| `pb-auto` | 🌐 Web only |
-
| `pl-auto` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`p-{n}`|✅ Full Support|
+
|`p-[n]`|✅ Full Support|
+
|`px-{n}`|✅ Full Support|
+
|`px-[n]`|✅ Full Support|
+
|`py-{n}`|✅ Full Support|
+
|`py-[n]`|✅ Full Support|
+
|`pt-{n}`|✅ Full Support|
+
|`pt-[n]`|✅ Full Support|
+
|`pr-{n}`|✅ Full Support|
+
|`pr-[n]`|✅ Full Support|
+
|`pb-{n}`|✅ Full Support|
+
|`pb-[n]`|✅ Full Support|
+
|`pl-{n}`|✅ Full Support|
+
|`pl-[n]`|✅ Full Support|
+
|`p-auto`|🌐 Web only|
+
|`px-auto`|🌐 Web only|
+
|`py-auto`|🌐 Web only|
+
|`pt-auto`|🌐 Web only|
+
|`pr-auto`|🌐 Web only|
+
|`pb-auto`|🌐 Web only|
+
|`pl-auto`|🌐 Web only|
## Accent Color
···
The following table outlines the compatibility of various accent classes with different platforms:
-
| Class | Support |
-
| -------------------- | -------- |
-
| `accent-{n}` | Web only |
-
| `accent-[n]` | Web only |
-
| `accent-black` | Web only |
-
| `accent-white` | Web only |
-
| `accent-transparent` | Web only |
-
| `accent-inherit` | Web only |
-
| `accent-current` | Web only |
+
|Class|Support|
+
|-|-|
+
|`accent-{n}`|Web only|
+
|`accent-[n]`|Web only|
+
|`accent-black`|Web only|
+
|`accent-white`|Web only|
+
|`accent-transparent`|Web only|
+
|`accent-inherit`|Web only|
+
|`accent-current`|Web only|
### Contributors
···
### Compatibility
-
| Class | Support |
-
| ----------------- | ----------- |
-
| `appearance-none` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`appearance-none`|🌐 Web only|
-
---
+
***
This reformatted content maintains the original structure and intent while ensuring clarity and adherence to markdown formatting standards.
···
### Compatibility
-
| Class | Support |
-
| ------------------- | --------------- |
-
| `caret-{n}` | ✅ Full Support |
-
| `caret-[n]` | ✅ Full Support |
-
| `caret-black` | ✅ Full Support |
-
| `caret-white` | ✅ Full Support |
-
| `caret-transparent` | ✅ Full Support |
-
| `caret-inherit` | 🌐 Web only |
-
| `caret-current` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`caret-{n}`|✅ Full Support|
+
|`caret-[n]`|✅ Full Support|
+
|`caret-black`|✅ Full Support|
+
|`caret-white`|✅ Full Support|
+
|`caret-transparent`|✅ Full Support|
+
|`caret-inherit`|🌐 Web only|
+
|`caret-current`|🌐 Web only|
### Contributors
···
### Compatibility
-
| Class | Support |
-
| ------------ | ----------- |
-
| `cursor-{n}` | 🌐 Web only |
-
| `cursor-[n]` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`cursor-{n}`|🌐 Web only|
+
|`cursor-[n]`|🌐 Web only|
## Container
···
### Compatibility
-
| Class | Support |
-
| ----------- | --------------- |
-
| `container` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`container`|✅ Full Support|
## Space Between
···
### Compatibility
-
| Class | Support |
-
| ----------------- | ----------- |
-
| `space-{n}` | 🌐 Web only |
-
| `space-[n]` | 🌐 Web only |
-
| `space-x-{n}` | 🌐 Web only |
-
| `space-x-[n]` | 🌐 Web only |
-
| `space-y-{n}` | 🌐 Web only |
-
| `space-y-[n]` | 🌐 Web only |
-
| `space-x-reverse` | 🌐 Web only |
-
| `space-y-reverse` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`space-{n}`|🌐 Web only|
+
|`space-[n]`|🌐 Web only|
+
|`space-x-{n}`|🌐 Web only|
+
|`space-x-[n]`|🌐 Web only|
+
|`space-y-{n}`|🌐 Web only|
+
|`space-y-[n]`|🌐 Web only|
+
|`space-x-reverse`|🌐 Web only|
+
|`space-y-reverse`|🌐 Web only|
## Pointer Events
···
### Compatibility
-
| Class | Support |
-
| ------------------------- | --------------- |
-
| `pointer-events-none` | ✅ Full Support |
-
| `pointer-events-auto` | ✅ Full Support |
-
| `pointer-events-box-none` | 📱 Native only |
-
| `pointer-events-box-only` | 📱 Native only |
+
|Class|Support|
+
|-|-|
+
|`pointer-events-none`|✅ Full Support|
+
|`pointer-events-auto`|✅ Full Support|
+
|`pointer-events-box-none`|📱 Native only|
+
|`pointer-events-box-only`|📱 Native only|
## Height
···
### Compatibility
-
| Class | Support |
-
| ---------- | --------------- |
-
| `h-{n}` | ✅ Full Support |
-
| `h-[n]` | ✅ Full Support |
-
| `h-full` | ✅ Full Support |
-
| `h-screen` | ✅ Full Support |
-
| `h-auto` | 🌐 Web only |
-
| `h-min` | 🌐 Web only |
-
| `h-max` | 🌐 Web only |
-
| `h-fit` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`h-{n}`|✅ Full Support|
+
|`h-[n]`|✅ Full Support|
+
|`h-full`|✅ Full Support|
+
|`h-screen`|✅ Full Support|
+
|`h-auto`|🌐 Web only|
+
|`h-min`|🌐 Web only|
+
|`h-max`|🌐 Web only|
+
|`h-fit`|🌐 Web only|
## Resize
···
### Compatibility
-
| Class | Support |
-
| ------------- | ----------- |
-
| `resize-none` | 🌐 Web only |
-
| `resize-y` | 🌐 Web only |
-
| `resize-x` | 🌐 Web only |
-
| `resize` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`resize-none`|🌐 Web only|
+
|`resize-y`|🌐 Web only|
+
|`resize-x`|🌐 Web only|
+
|`resize`|🌐 Web only|
## Scroll Behavior
···
### Compatibility
-
| Class | Support |
-
| --------------- | ----------- |
-
| `scroll-auto` | 🌐 Web only |
-
| `scroll-smooth` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`scroll-auto`|🌐 Web only|
+
|`scroll-smooth`|🌐 Web only|
## Safe Area Insets
···
### Compatibility
-
| Class | Support | Comments |
-
| --- | --- | --- |
-
| `m-safe` | ✅ Full Support | Applies margins using safe area insets: `margin-top`, `margin-bottom`, `margin-left`, and `margin-right`. |
-
| `p-safe` | ✅ Full Support | Applies padding using safe area insets: `padding-top`, `padding-bottom`, `padding-left`, and `padding-right`. |
-
| `mx-safe` | ✅ Full Support | Sets horizontal margins with safe area insets. |
-
| `px-safe` | ✅ Full Support | Sets horizontal padding with safe area insets. |
-
| `my-safe` | ✅ Full Support | Sets vertical margins using safe area insets. |
-
| `py-safe` | ✅ Full Support | Sets vertical padding using safe area insets. |
-
| `mt-safe` | ✅ Full Support | Applies top margin with a safe area inset. |
-
| `pt-safe` | ✅ Full Support | Applies top padding with a safe area inset. |
-
| `mr-safe` | ✅ Full Support | Sets right margin using a safe area inset. |
-
| `pr-safe` | ✅ Full Support | Sets right padding using a safe area inset. |
-
| `mb-safe` | ✅ Full Support | Applies bottom margin with a safe area inset. |
-
| `pb-safe` | ✅ Full Support | Applies bottom padding with a safe area inset. |
-
| `ml-safe` | ✅ Full Support | Sets left margin using a safe area inset. |
-
| `pl-safe` | ✅ Full Support | Sets left padding using a safe area inset. |
-
| `*-safe-or-[n]` | ✅ Full Support | Allows substitution of any spacing utility (`*`) and value (`[n]`). Example: `mt-safe-or-4` translates to `margin-top: max(env(safe-area-inset-top), 1rem);`. Another example is `mt-safe-or-[2px]`, resulting in `margin-top: max(env(safe-area-inset-top), 2px);`. |
-
| `h-screen-safe` | 🌐 Web only | Adjusts height using safe area insets: `height: calc(100vh - (env(safe-area-inset-top) + env(safe-area-inset-bottom)))`. |
-
| `*-safe-offset-[n]` | 🌐 Web only | Allows substitution of any spacing utility (`*`) and value (`[n]`). Example: `mt-safe-offset-4` results in `margin-top: calc(env(safe-area-inset-top) + 1rem);`. Another example is `mt-safe-offset-[2px]`, resulting in `margin-top: calc(env(safe-area-inset-top) + 2px);`. |
+
|Class|Support|Comments|
+
|-|-|-|
+
|`m-safe`|✅ Full Support|Applies margins using safe area insets: `margin-top`, `margin-bottom`, `margin-left`, and `margin-right`.|
+
|`p-safe`|✅ Full Support|Applies padding using safe area insets: `padding-top`, `padding-bottom`, `padding-left`, and `padding-right`.|
+
|`mx-safe`|✅ Full Support|Sets horizontal margins with safe area insets.|
+
|`px-safe`|✅ Full Support|Sets horizontal padding with safe area insets.|
+
|`my-safe`|✅ Full Support|Sets vertical margins using safe area insets.|
+
|`py-safe`|✅ Full Support|Sets vertical padding using safe area insets.|
+
|`mt-safe`|✅ Full Support|Applies top margin with a safe area inset.|
+
|`pt-safe`|✅ Full Support|Applies top padding with a safe area inset.|
+
|`mr-safe`|✅ Full Support|Sets right margin using a safe area inset.|
+
|`pr-safe`|✅ Full Support|Sets right padding using a safe area inset.|
+
|`mb-safe`|✅ Full Support|Applies bottom margin with a safe area inset.|
+
|`pb-safe`|✅ Full Support|Applies bottom padding with a safe area inset.|
+
|`ml-safe`|✅ Full Support|Sets left margin using a safe area inset.|
+
|`pl-safe`|✅ Full Support|Sets left padding using a safe area inset.|
+
|`*-safe-or-[n]`|✅ Full Support|Allows substitution of any spacing utility (`*`) and value (`[n]`). Example: `mt-safe-or-4` translates to `margin-top: max(env(safe-area-inset-top), 1rem);`. Another example is `mt-safe-or-[2px]`, resulting in `margin-top: max(env(safe-area-inset-top), 2px);`.|
+
|`h-screen-safe`|🌐 Web only|Adjusts height using safe area insets: `height: calc(100vh - (env(safe-area-inset-top) + env(safe-area-inset-bottom)))`.|
+
|`*-safe-offset-[n]`|🌐 Web only|Allows substitution of any spacing utility (`*`) and value (`[n]`). Example: `mt-safe-offset-4` results in `margin-top: calc(env(safe-area-inset-top) + 1rem);`. Another example is `mt-safe-offset-[2px]`, resulting in `margin-top: calc(env(safe-area-inset-top) + 2px);`.|
## Display
···
### Compatibility
-
| Class | Support |
-
| -------------------- | --------------- |
-
| `flex` | ✅ Full Support |
-
| `hidden` | ✅ Full Support |
-
| `block` | 🌐 Web only |
-
| `inline-block` | 🌐 Web only |
-
| `inline` | 🌐 Web only |
-
| `inline-flex` | 🌐 Web only |
-
| `table` | 🌐 Web only |
-
| `inline-table` | 🌐 Web only |
-
| `table-caption` | 🌐 Web only |
-
| `table-cell` | 🌐 Web only |
-
| `table-column` | 🌐 Web only |
-
| `table-column-group` | 🌐 Web only |
-
| `table-footer-group` | 🌐 Web only |
-
| `table-header-group` | 🌐 Web only |
-
| `table-row-group` | 🌐 Web only |
-
| `table-row` | 🌐 Web only |
-
| `flow-root` | 🌐 Web only |
-
| `grid` | 🌐 Web only |
-
| `inline-grid` | 🌐 Web only |
-
| `contents` | 🌐 Web only |
-
| `list-item` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`flex`|✅ Full Support|
+
|`hidden`|✅ Full Support|
+
|`block`|🌐 Web only|
+
|`inline-block`|🌐 Web only|
+
|`inline`|🌐 Web only|
+
|`inline-flex`|🌐 Web only|
+
|`table`|🌐 Web only|
+
|`inline-table`|🌐 Web only|
+
|`table-caption`|🌐 Web only|
+
|`table-cell`|🌐 Web only|
+
|`table-column`|🌐 Web only|
+
|`table-column-group`|🌐 Web only|
+
|`table-footer-group`|🌐 Web only|
+
|`table-header-group`|🌐 Web only|
+
|`table-row-group`|🌐 Web only|
+
|`table-row`|🌐 Web only|
+
|`flow-root`|🌐 Web only|
+
|`grid`|🌐 Web only|
+
|`inline-grid`|🌐 Web only|
+
|`contents`|🌐 Web only|
+
|`list-item`|🌐 Web only|
## Max-Height
···
### Compatibility
-
| Class | Support |
-
| -------------- | --------------- |
-
| `max-h-0` | ✅ Full Support |
-
| `max-h-[n]` | ✅ Full Support |
-
| `max-h-{n}` | ✅ Full Support |
-
| `max-h-full` | ✅ Full Support |
-
| `max-h-screen` | ✅ Full Support |
-
| `max-h-min` | 🌐 Web only |
-
| `max-h-max` | 🌐 Web only |
-
| `max-h-fit` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`max-h-0`|✅ Full Support|
+
|`max-h-[n]`|✅ Full Support|
+
|`max-h-{n}`|✅ Full Support|
+
|`max-h-full`|✅ Full Support|
+
|`max-h-screen`|✅ Full Support|
+
|`max-h-min`|🌐 Web only|
+
|`max-h-max`|🌐 Web only|
+
|`max-h-fit`|🌐 Web only|
## Scroll Margin
···
The following classes are supported exclusively on web platforms:
-
| Class | Support |
-
| --------------- | ----------- |
-
| `scroll-m-{n}` | 🌐 Web only |
-
| `scroll-m-[n]` | 🌐 Web only |
-
| `scroll-mx-{n}` | 🌐 Web only |
-
| `scroll-mx-[n]` | 🌐 Web only |
-
| `scroll-my-{n}` | 🌐 Web only |
-
| `scroll-my-[n]` | 🌐 Web only |
-
| `scroll-mt-{n}` | 🌐 Web only |
-
| `scroll-mt-[n]` | 🌐 Web only |
-
| `scroll-mr-{n}` | 🌐 Web only |
-
| `scroll-mr-[n]` | 🌐 Web only |
-
| `scroll-mb-{n}` | 🌐 Web only |
-
| `scroll-mb-[n]` | 🌐 Web only |
-
| `scroll-ml-{n}` | 🌐 Web only |
-
| `scroll-ml-[n]` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`scroll-m-{n}`|🌐 Web only|
+
|`scroll-m-[n]`|🌐 Web only|
+
|`scroll-mx-{n}`|🌐 Web only|
+
|`scroll-mx-[n]`|🌐 Web only|
+
|`scroll-my-{n}`|🌐 Web only|
+
|`scroll-my-[n]`|🌐 Web only|
+
|`scroll-mt-{n}`|🌐 Web only|
+
|`scroll-mt-[n]`|🌐 Web only|
+
|`scroll-mr-{n}`|🌐 Web only|
+
|`scroll-mr-[n]`|🌐 Web only|
+
|`scroll-mb-{n}`|🌐 Web only|
+
|`scroll-mb-[n]`|🌐 Web only|
+
|`scroll-ml-{n}`|🌐 Web only|
+
|`scroll-ml-[n]`|🌐 Web only|
## Max-Width
···
### Compatibility
-
| Class | Support |
-
| ------------------ | --------------- |
-
| `max-w-0` | ✅ Full Support |
-
| `max-w-[n]` | ✅ Full Support |
-
| `max-w-{n}` | ✅ Full Support |
-
| `max-w-full` | ✅ Full Support |
-
| `max-w-screen-sm` | ✅ Full Support |
-
| `max-w-screen-md` | ✅ Full Support |
-
| `max-w-screen-lg` | ✅ Full Support |
-
| `max-w-screen-xl` | ✅ Full Support |
-
| `max-w-screen-2xl` | ✅ Full Support |
-
| `max-w-min` | 🌐 Web only |
-
| `max-w-max` | 🌐 Web only |
-
| `max-w-fit` | 🌐 Web only |
-
| `max-w-prose` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`max-w-0`|✅ Full Support|
+
|`max-w-[n]`|✅ Full Support|
+
|`max-w-{n}`|✅ Full Support|
+
|`max-w-full`|✅ Full Support|
+
|`max-w-screen-sm`|✅ Full Support|
+
|`max-w-screen-md`|✅ Full Support|
+
|`max-w-screen-lg`|✅ Full Support|
+
|`max-w-screen-xl`|✅ Full Support|
+
|`max-w-screen-2xl`|✅ Full Support|
+
|`max-w-min`|🌐 Web only|
+
|`max-w-max`|🌐 Web only|
+
|`max-w-fit`|🌐 Web only|
+
|`max-w-prose`|🌐 Web only|
## Scroll Padding
···
The following classes are supported exclusively on web platforms:
-
| Class | Support |
-
| --------------- | ----------- |
-
| `scroll-p-{n}` | 🌐 Web only |
-
| `scroll-p-[n]` | 🌐 Web only |
-
| `scroll-px-{n}` | 🌐 Web only |
-
| `scroll-px-[n]` | 🌐 Web only |
-
| `scroll-py-{n}` | 🌐 Web only |
-
| `scroll-py-[n]` | 🌐 Web only |
-
| `scroll-pt-{n}` | 🌐 Web only |
-
| `scroll-pt-[n]` | 🌐 Web only |
-
| `scroll-pr-{n}` | 🌐 Web only |
-
| `scroll-pr-[n]` | 🌐 Web only |
-
| `scroll-pb-{n}` | 🌐 Web only |
-
| `scroll-pb-[n]` | 🌐 Web only |
-
| `scroll-pl-{n}` | 🌐 Web only |
-
| `scroll-pl-[n]` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`scroll-p-{n}`|🌐 Web only|
+
|`scroll-p-[n]`|🌐 Web only|
+
|`scroll-px-{n}`|🌐 Web only|
+
|`scroll-px-[n]`|🌐 Web only|
+
|`scroll-py-{n}`|🌐 Web only|
+
|`scroll-py-[n]`|🌐 Web only|
+
|`scroll-pt-{n}`|🌐 Web only|
+
|`scroll-pt-[n]`|🌐 Web only|
+
|`scroll-pr-{n}`|🌐 Web only|
+
|`scroll-pr-[n]`|🌐 Web only|
+
|`scroll-pb-{n}`|🌐 Web only|
+
|`scroll-pb-[n]`|🌐 Web only|
+
|`scroll-pl-{n}`|🌐 Web only|
+
|`scroll-pl-[n]`|🌐 Web only|
## Scroll Snap Align
···
### Compatibility
-
| Class | Support |
-
| ----------------- | ----------- |
-
| `snap-start` | 🌐 Web only |
-
| `snap-end` | 🌐 Web only |
-
| `snap-center` | 🌐 Web only |
-
| `snap-align-none` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`snap-start`|🌐 Web only|
+
|`snap-end`|🌐 Web only|
+
|`snap-center`|🌐 Web only|
+
|`snap-align-none`|🌐 Web only|
## Floats
···
### Compatibility
-
| Class | Support |
-
| ------------- | ----------- |
-
| `float-right` | 🌐 Web only |
-
| `float-left` | 🌐 Web only |
-
| `float-none` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`float-right`|🌐 Web only|
+
|`float-left`|🌐 Web only|
+
|`float-none`|🌐 Web only|
## Scroll Snap Stop
···
### Compatibility
-
| Class | Support |
-
| ------------- | ----------- |
-
| `snap-normal` | 🌐 Web only |
-
| `snap-always` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`snap-normal`|🌐 Web only|
+
|`snap-always`|🌐 Web only|
## Min-Height
···
### Compatibility
-
| Class | Support |
-
| ------------ | --------------- |
-
| `min-h-0` | ✅ Full Support |
-
| `min-h-[n]` | ✅ Full Support |
-
| `min-h-full` | ✅ Full Support |
-
| `min-h-min` | 🌐 Web only |
-
| `min-h-max` | 🌐 Web only |
-
| `min-h-fit` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`min-h-0`|✅ Full Support|
+
|`min-h-[n]`|✅ Full Support|
+
|`min-h-full`|✅ Full Support|
+
|`min-h-min`|🌐 Web only|
+
|`min-h-max`|🌐 Web only|
+
|`min-h-fit`|🌐 Web only|
```typescript
type MinHeightClasses = {
···
### Compatibility
-
| Class | Support |
-
| ---------------- | ----------- |
-
| `snap-none` | 🌐 Web only |
-
| `snap-x` | 🌐 Web only |
-
| `snap-y` | 🌐 Web only |
-
| `snap-both` | 🌐 Web only |
-
| `snap-mandatory` | 🌐 Web only |
-
| `snap-proximity` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`snap-none`|🌐 Web only|
+
|`snap-x`|🌐 Web only|
+
|`snap-y`|🌐 Web only|
+
|`snap-both`|🌐 Web only|
+
|`snap-mandatory`|🌐 Web only|
+
|`snap-proximity`|🌐 Web only|
## Touch Action
···
The following table outlines the support for various touch action classes:
-
| Class | Support |
-
| -------------------- | ----------- |
-
| `touch-auto` | 🌐 Web only |
-
| `touch-none` | 🌐 Web only |
-
| `touch-pan-x` | 🌐 Web only |
-
| `touch-pan-left` | 🌐 Web only |
-
| `touch-pan-right` | 🌐 Web only |
-
| `touch-pan-y` | 🌐 Web only |
-
| `touch-pan-up` | 🌐 Web only |
-
| `touch-pan-down` | 🌐 Web only |
-
| `touch-pinch-zoom` | 🌐 Web only |
-
| `touch-manipulation` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`touch-auto`|🌐 Web only|
+
|`touch-none`|🌐 Web only|
+
|`touch-pan-x`|🌐 Web only|
+
|`touch-pan-left`|🌐 Web only|
+
|`touch-pan-right`|🌐 Web only|
+
|`touch-pan-y`|🌐 Web only|
+
|`touch-pan-up`|🌐 Web only|
+
|`touch-pan-down`|🌐 Web only|
+
|`touch-pinch-zoom`|🌐 Web only|
+
|`touch-manipulation`|🌐 Web only|
## Configuration
···
### Compatibility
-
| Class | Support |
-
| ---------------- | ----------- |
-
| `isolate` | 🌐 Web only |
-
| `isolation-auto` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`isolate`|🌐 Web only|
+
|`isolation-auto`|🌐 Web only|
## Min-Width
···
### Compatibility
-
| Class | Support |
-
| ------------ | --------------- |
-
| `min-w-0` | ✅ Full Support |
-
| `min-w-[n]` | ✅ Full Support |
-
| `min-w-full` | ✅ Full Support |
-
| `min-w-min` | 🌐 Web only |
-
| `min-w-max` | 🌐 Web only |
-
| `min-w-fit` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`min-w-0`|✅ Full Support|
+
|`min-w-[n]`|✅ Full Support|
+
|`min-w-full`|✅ Full Support|
+
|`min-w-min`|🌐 Web only|
+
|`min-w-max`|🌐 Web only|
+
|`min-w-fit`|🌐 Web only|
```typescript
// TypeScript typings for min-width classes
···
### Compatibility
-
| Class | Support |
-
| ------------- | ----------- |
-
| `select-none` | 🌐 Web only |
-
| `select-text` | 🌐 Web only |
-
| `select-all` | 🌐 Web only |
-
| `select-auto` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`select-none`|🌐 Web only|
+
|`select-text`|🌐 Web only|
+
|`select-all`|🌐 Web only|
+
|`select-auto`|🌐 Web only|
### Contributors
···
### Compatibility
-
| Class | Support |
-
| ---------- | --------------- |
-
| `w-{n}` | ✅ Full Support |
-
| `w-[n]` | ✅ Full Support |
-
| `w-full` | ✅ Full Support |
-
| `w-screen` | ✅ Full Support |
-
| `w-auto` | 🌐 Web only |
-
| `w-min` | 🌐 Web only |
-
| `w-max` | 🌐 Web only |
-
| `w-fit` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`w-{n}`|✅ Full Support|
+
|`w-[n]`|✅ Full Support|
+
|`w-full`|✅ Full Support|
+
|`w-screen`|✅ Full Support|
+
|`w-auto`|🌐 Web only|
+
|`w-min`|🌐 Web only|
+
|`w-max`|🌐 Web only|
+
|`w-fit`|🌐 Web only|
## Will Change
···
### Compatibility
-
| Class | Support |
-
| ----------------------- | ----------- |
-
| `will-change-auto` | 🌐 Web only |
-
| `will-change-scroll` | 🌐 Web only |
-
| `will-change-contents` | 🌐 Web only |
-
| `will-change-transform` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`will-change-auto`|🌐 Web only|
+
|`will-change-scroll`|🌐 Web only|
+
|`will-change-contents`|🌐 Web only|
+
|`will-change-transform`|🌐 Web only|
### Contributors
···
### Compatibility
-
| Class | Support |
-
| -------------- | --------------- |
-
| `fill-{n}` | ✅ Full Support |
-
| `fill-[n]` | ✅ Full Support |
-
| `fill-inherit` | 🌐 Web only |
-
| `fill-current` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`fill-{n}`|✅ Full Support|
+
|`fill-[n]`|✅ Full Support|
+
|`fill-inherit`|🌐 Web only|
+
|`fill-current`|🌐 Web only|
## Content
···
### Compatibility
-
| Class | Support |
-
| -------------- | ----------- |
-
| `content-none` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`content-none`|🌐 Web only|
## Stroke
···
### Compatibility
-
| Class | Support |
-
| ---------------- | --------------- |
-
| `stroke-{n}` | ✅ Full Support |
-
| `stroke-[n]` | ✅ Full Support |
-
| `stroke-inherit` | 🌐 Web only |
-
| `stroke-current` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`stroke-{n}`|✅ Full Support|
+
|`stroke-[n]`|✅ Full Support|
+
|`stroke-inherit`|🌐 Web only|
+
|`stroke-current`|🌐 Web only|
```typescript
// Example TypeScript typings for stroke classes
···
### Compatibility
-
| Class | Support |
-
| ------------ | --------------- |
-
| `stroke-{n}` | ✅ Full Support |
-
| `stroke-[n]` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`stroke-{n}`|✅ Full Support|
+
|`stroke-[n]`|✅ Full Support|
## Object Fit
···
### Compatibility
-
| Class | Support |
-
| ------------------- | ----------- |
-
| `object-contain` | 🌐 Web only |
-
| `object-cover` | 🌐 Web only |
-
| `object-fill` | 🌐 Web only |
-
| `object-none` | 🌐 Web only |
-
| `object-scale-down` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`object-contain`|🌐 Web only|
+
|`object-cover`|🌐 Web only|
+
|`object-fill`|🌐 Web only|
+
|`object-none`|🌐 Web only|
+
|`object-scale-down`|🌐 Web only|
### Contributors
···
### Compatibility
-
| Class | Support |
-
| ------------ | --------------- |
-
| `font-sans` | ✅ Full Support |
-
| `font-serif` | ✅ Full Support |
-
| `font-mono` | ✅ Full Support |
-
| `font-[n]` | ✅ Full Support |
-
| `font-{n}` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`font-sans`|✅ Full Support|
+
|`font-serif`|✅ Full Support|
+
|`font-mono`|✅ Full Support|
+
|`font-[n]`|✅ Full Support|
+
|`font-{n}`|✅ Full Support|
## Font Size
···
### Compatibility
-
| Class | Support |
-
| ----------- | --------------- |
-
| `text-{n}` | ✅ Full Support |
-
| `text-[n]` | ✅ Full Support |
-
| `text-base` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`text-{n}`|✅ Full Support|
+
|`text-[n]`|✅ Full Support|
+
|`text-base`|✅ Full Support|
## Object Position
···
The following table outlines the compatibility of various classes:
-
| Class | Support |
-
| --------------------- | ----------- |
-
| `object-bottom` | 🌐 Web only |
-
| `object-center` | 🌐 Web only |
-
| `object-left` | 🌐 Web only |
-
| `object-left-bottom` | 🌐 Web only |
-
| `object-left-top` | 🌐 Web only |
-
| `object-right` | 🌐 Web only |
-
| `object-right-bottom` | 🌐 Web only |
-
| `object-right-top` | 🌐 Web only |
-
| `object-top` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`object-bottom`|🌐 Web only|
+
|`object-center`|🌐 Web only|
+
|`object-left`|🌐 Web only|
+
|`object-left-bottom`|🌐 Web only|
+
|`object-left-top`|🌐 Web only|
+
|`object-right`|🌐 Web only|
+
|`object-right-bottom`|🌐 Web only|
+
|`object-right-top`|🌐 Web only|
+
|`object-top`|🌐 Web only|
## Font Smoothing
···
### Compatibility
-
| Class | Support |
-
| ---------------------- | --------------- |
-
| `antialiased` | ✅ Full Support |
-
| `subpixel-antialiased` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`antialiased`|✅ Full Support|
+
|`subpixel-antialiased`|✅ Full Support|
## Editor Setup
···
### Compatibility
-
| Class | Support |
-
| -------------------- | --------------- |
-
| `visible` | ✅ Full Support |
-
| `hidden` | ✅ Full Support |
-
| `scroll` | ✅ Full Support |
-
| `overflow-auto` | 🌐 Web only |
-
| `overflow-clip` | 🌐 Web only |
-
| `overflow-x-auto` | 🌐 Web only |
-
| `overflow-y-auto` | 🌐 Web only |
-
| `overflow-x-hidden` | 🌐 Web only |
-
| `overflow-y-hidden` | 🌐 Web only |
-
| `overflow-x-clip` | 🌐 Web only |
-
| `overflow-y-clip` | 🌐 Web only |
-
| `overflow-x-visible` | 🌐 Web only |
-
| `overflow-y-visible` | 🌐 Web only |
-
| `overflow-x-scroll` | 🌐 Web only |
-
| `overflow-y-scroll` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`visible`|✅ Full Support|
+
|`hidden`|✅ Full Support|
+
|`scroll`|✅ Full Support|
+
|`overflow-auto`|🌐 Web only|
+
|`overflow-clip`|🌐 Web only|
+
|`overflow-x-auto`|🌐 Web only|
+
|`overflow-y-auto`|🌐 Web only|
+
|`overflow-x-hidden`|🌐 Web only|
+
|`overflow-y-hidden`|🌐 Web only|
+
|`overflow-x-clip`|🌐 Web only|
+
|`overflow-y-clip`|🌐 Web only|
+
|`overflow-x-visible`|🌐 Web only|
+
|`overflow-y-visible`|🌐 Web only|
+
|`overflow-x-scroll`|🌐 Web only|
+
|`overflow-y-scroll`|🌐 Web only|
## Font Style
···
### Compatibility
-
| Class | Support |
-
| ------------ | --------------- |
-
| `italic` | ✅ Full Support |
-
| `not-italic` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`italic`|✅ Full Support|
+
|`not-italic`|✅ Full Support|
## Font Variant Numeric
···
### Compatibility
-
| Class | Support |
-
| -------------------- | --------------- |
-
| `normal-nums` | ✅ Full Support |
-
| `ordinal` | ✅ Full Support |
-
| `slashed-zero` | ✅ Full Support |
-
| `lining-nums` | ✅ Full Support |
-
| `oldstyle-nums` | ✅ Full Support |
-
| `proportional-nums` | ✅ Full Support |
-
| `tabular-nums` | ✅ Full Support |
-
| `diagonal-fractions` | ✅ Full Support |
-
| `stacked-fractions` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`normal-nums`|✅ Full Support|
+
|`ordinal`|✅ Full Support|
+
|`slashed-zero`|✅ Full Support|
+
|`lining-nums`|✅ Full Support|
+
|`oldstyle-nums`|✅ Full Support|
+
|`proportional-nums`|✅ Full Support|
+
|`tabular-nums`|✅ Full Support|
+
|`diagonal-fractions`|✅ Full Support|
+
|`stacked-fractions`|✅ Full Support|
## Font Weight
···
### Compatibility
-
| Class | Support |
-
| ----------------- | --------------- |
-
| `font-thin` | ✅ Full Support |
-
| `font-extralight` | ✅ Full Support |
-
| `font-light` | ✅ Full Support |
-
| `font-normal` | ✅ Full Support |
-
| `font-medium` | ✅ Full Support |
-
| `font-semibold` | ✅ Full Support |
-
| `font-bold` | ✅ Full Support |
-
| `font-extrabold` | ✅ Full Support |
-
| `font-black` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`font-thin`|✅ Full Support|
+
|`font-extralight`|✅ Full Support|
+
|`font-light`|✅ Full Support|
+
|`font-normal`|✅ Full Support|
+
|`font-medium`|✅ Full Support|
+
|`font-semibold`|✅ Full Support|
+
|`font-bold`|✅ Full Support|
+
|`font-extrabold`|✅ Full Support|
+
|`font-black`|✅ Full Support|
## Theme
···
The following table outlines the support for various overscroll behavior classes:
-
| Class | Support |
-
| ---------------------- | ----------- |
-
| `overscroll-auto` | 🌐 Web only |
-
| `overscroll-contain` | 🌐 Web only |
-
| `overscroll-none` | 🌐 Web only |
-
| `overscroll-y-auto` | 🌐 Web only |
-
| `overscroll-y-contain` | 🌐 Web only |
-
| `overscroll-y-none` | 🌐 Web only |
-
| `overscroll-x-auto` | 🌐 Web only |
-
| `overscroll-x-contain` | 🌐 Web only |
-
| `overscroll-x-none` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`overscroll-auto`|🌐 Web only|
+
|`overscroll-contain`|🌐 Web only|
+
|`overscroll-none`|🌐 Web only|
+
|`overscroll-y-auto`|🌐 Web only|
+
|`overscroll-y-contain`|🌐 Web only|
+
|`overscroll-y-none`|🌐 Web only|
+
|`overscroll-x-auto`|🌐 Web only|
+
|`overscroll-x-contain`|🌐 Web only|
+
|`overscroll-x-none`|🌐 Web only|
## Hyphens
···
### Compatibility
-
| Class | Support |
-
| ---------------- | ----------- |
-
| `hyphens-none` | 🌐 Web only |
-
| `hyphens-manual` | 🌐 Web only |
-
| `hyphens-auto` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`hyphens-none`|🌐 Web only|
+
|`hyphens-manual`|🌐 Web only|
+
|`hyphens-auto`|🌐 Web only|
## Letter Spacing
···
### Compatibility
-
| Class | Support |
-
| ------------------ | --------------- |
-
| `tracking-tighter` | ✅ Full Support |
-
| `tracking-tight` | ✅ Full Support |
-
| `tracking-normal` | ✅ Full Support |
-
| `tracking-wide` | ✅ Full Support |
-
| `tracking-wider` | ✅ Full Support |
-
| `tracking-widest` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`tracking-tighter`|✅ Full Support|
+
|`tracking-tight`|✅ Full Support|
+
|`tracking-normal`|✅ Full Support|
+
|`tracking-wide`|✅ Full Support|
+
|`tracking-wider`|✅ Full Support|
+
|`tracking-widest`|✅ Full Support|
## Position
···
### Compatibility
-
| Class | Support |
-
| ---------- | --------------- |
-
| `absolute` | ✅ Full Support |
-
| `relative` | ✅ Full Support |
-
| `fixed` | 🌐 Web only |
-
| `sticky` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`absolute`|✅ Full Support|
+
|`relative`|✅ Full Support|
+
|`fixed`|🌐 Web only|
+
|`sticky`|🌐 Web only|
## Line Clamp
···
### Compatibility
-
| Class | Support |
-
| ----------------- | --------------- |
-
| `line-clamp-1` | ✅ Full Support |
-
| `line-clamp-2` | ✅ Full Support |
-
| `line-clamp-3` | ✅ Full Support |
-
| `line-clamp-4` | ✅ Full Support |
-
| `line-clamp-5` | ✅ Full Support |
-
| `line-clamp-6` | ✅ Full Support |
-
| `line-clamp-none` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`line-clamp-1`|✅ Full Support|
+
|`line-clamp-2`|✅ Full Support|
+
|`line-clamp-3`|✅ Full Support|
+
|`line-clamp-4`|✅ Full Support|
+
|`line-clamp-5`|✅ Full Support|
+
|`line-clamp-6`|✅ Full Support|
+
|`line-clamp-none`|✅ Full Support|
## Line Height
···
React Native does not support relative line height utilities due to its lack of `em` unit support.
-
| Class | Support |
-
| ----------------- | --------------- |
-
| `leading-{n}` | ✅ Full Support |
-
| `leading-[n]` | ✅ Full Support |
-
| `leading-none` | 🌐 Web only |
-
| `leading-tight` | 🌐 Web only |
-
| `leading-snug` | 🌐 Web only |
-
| `leading-normal` | 🌐 Web only |
-
| `leading-relaxed` | 🌐 Web only |
-
| `leading-loose` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`leading-{n}`|✅ Full Support|
+
|`leading-[n]`|✅ Full Support|
+
|`leading-none`|🌐 Web only|
+
|`leading-tight`|🌐 Web only|
+
|`leading-snug`|🌐 Web only|
+
|`leading-normal`|🌐 Web only|
+
|`leading-relaxed`|🌐 Web only|
+
|`leading-loose`|🌐 Web only|
## Using Nativewind with Monorepos
···
### Compatibility
-
| Class | Support |
-
| -------------- | --------------- |
-
| `inset-{n}` | ✅ Full Support |
-
| `inset-[n]` | ✅ Full Support |
-
| `inset-x-{n}` | ✅ Full Support |
-
| `inset-y-[n]` | ✅ Full Support |
-
| `top-{n}` | ✅ Full Support |
-
| `top-[n]` | ✅ Full Support |
-
| `bottom-{n}` | ✅ Full Support |
-
| `bottom-[n]` | ✅ Full Support |
-
| `left-{n}` | ✅ Full Support |
-
| `left-[n]` | ✅ Full Support |
-
| `right-{n}` | ✅ Full Support |
-
| `right-[n]` | ✅ Full Support |
-
| `inset-auto` | 🌐 Web only |
-
| `inset-x-auto` | 🌐 Web only |
-
| `inset-y-auto` | 🌐 Web only |
-
| `top-auto` | 🌐 Web only |
-
| `bottom-auto` | 🌐 Web only |
-
| `left-auto` | 🌐 Web only |
-
| `right-auto` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`inset-{n}`|✅ Full Support|
+
|`inset-[n]`|✅ Full Support|
+
|`inset-x-{n}`|✅ Full Support|
+
|`inset-y-[n]`|✅ Full Support|
+
|`top-{n}`|✅ Full Support|
+
|`top-[n]`|✅ Full Support|
+
|`bottom-{n}`|✅ Full Support|
+
|`bottom-[n]`|✅ Full Support|
+
|`left-{n}`|✅ Full Support|
+
|`left-[n]`|✅ Full Support|
+
|`right-{n}`|✅ Full Support|
+
|`right-[n]`|✅ Full Support|
+
|`inset-auto`|🌐 Web only|
+
|`inset-x-auto`|🌐 Web only|
+
|`inset-y-auto`|🌐 Web only|
+
|`top-auto`|🌐 Web only|
+
|`bottom-auto`|🌐 Web only|
+
|`left-auto`|🌐 Web only|
+
|`right-auto`|🌐 Web only|
## List Style Image
···
### Compatibility
-
| Class | Support |
-
| ----------------- | --------------- |
-
| `list-image-none` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`list-image-none`|✅ Full Support|
-
---
+
***
This reformatted content maintains the original structure and information while ensuring clarity and consistency in presentation.
···
### Compatibility
-
| Class | Support |
-
| ----------- | --------------- |
-
| `visible` | ✅ Full Support |
-
| `invisible` | ✅ Full Support |
-
| `collapse` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`visible`|✅ Full Support|
+
|`invisible`|✅ Full Support|
+
|`collapse`|🌐 Web only|
```typescript
// Example TypeScript typings for visibility classes
···
### Compatibility
-
| Class | Support |
-
| -------------- | --------------- |
-
| `list-inside` | ✅ Full Support |
-
| `list-outside` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`list-inside`|✅ Full Support|
+
|`list-outside`|✅ Full Support|
## List Style Type
···
### Compatibility
-
| Class | Support |
-
| -------------- | --------------- |
-
| `list-none` | ✅ Full Support |
-
| `list-disc` | ✅ Full Support |
-
| `list-decimal` | ✅ Full Support |
+
|Class|Support|
+
|-|-|
+
|`list-none`|✅ Full Support|
+
|`list-disc`|✅ Full Support|
+
|`list-decimal`|✅ Full Support|
## Built on Tailwind CSS
···
### Compatibility
-
| Class | Support |
-
| ------------- | --------------- |
-
| `uppercase` | ✅ Full Support |
-
| `lowercase` | ✅ Full Support |
-
| `capitalize` | ✅ Full Support |
-
| `normal-case` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`uppercase`|✅ Full Support|
+
|`lowercase`|✅ Full Support|
+
|`capitalize`|✅ Full Support|
+
|`normal-case`|🌐 Web only|
## Z-Index
···
### Compatibility
-
| Class | Support |
-
| -------- | --------------- |
-
| `z-{n}` | ✅ Full Support |
-
| `z-[n]` | ✅ Full Support |
-
| `z-auto` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`z-{n}`|✅ Full Support|
+
|`z-[n]`|✅ Full Support|
+
|`z-auto`|🌐 Web only|
## Text Color
···
### Compatibility
-
| Class | Support |
-
| -------------- | --------------- |
-
| `text-{n}` | ✅ Full Support |
-
| `text-[n]` | ✅ Full Support |
-
| `text-inherit` | 🌐 Web only |
-
| `text-current` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`text-{n}`|✅ Full Support|
+
|`text-[n]`|✅ Full Support|
+
|`text-inherit`|🌐 Web only|
+
|`text-current`|🌐 Web only|
### textOpacity (Native Only)
···
### Compatibility
-
| Class | Support |
-
| -------------- | --------------- |
-
| `underline` | ✅ Full Support |
-
| `line-through` | ✅ Full Support |
-
| `no-underline` | ✅ Full Support |
-
| `overline` | 🌐 Web only |
+
|Class|Support|
+
|-|-|
+
|`underline`|✅ Full Support|
+
|`line-through`|✅ Full Support|
+
|`no-underline`|✅ Full Support|
+
|`overline`|🌐 Web only|
+204 -208
out/llms-full-react-native-gesture-handler.txt
···
The `react-native-gesture-handler` library supports the three most recent minor versions of `react-native`. Below is a compatibility table:
-
| Gesture Handler Version | React Native Version |
-
| ----------------------- | -------------------- |
-
| 2.24.0+ | 0.75.0+ |
-
| 2.21.0+ | 0.74.0+ |
-
| 2.18.0+ | 0.73.0+ |
-
| 2.16.0+ | 0.68.0+ |
-
| 2.14.0+ | 0.67.0+ |
-
| 2.10.0+ | 0.64.0+ |
-
| 2.0.0+ | 0.63.0+ |
+
|Gesture Handler Version|React Native Version|
+
|-|-|
+
|2.24.0+|0.75.0+|
+
|2.21.0+|0.74.0+|
+
|2.18.0+|0.73.0+|
+
|2.16.0+|0.68.0+|
+
|2.14.0+|0.67.0+|
+
|2.10.0+|0.64.0+|
+
|2.0.0+|0.63.0+|
To fully leverage touch events, ensure you are using `react-native-reanimated` version 2.3.0 or newer.
···
#### Properties Common to All Gestures:
-
| Property | Description |
-
| --- | --- |
-
| `enabled(value: boolean)` | Indicates whether the handler should analyze touch events. Default is `true`. If set to `false`, the handler's state will never become `ACTIVE`. |
-
| `shouldCancelWhenOutside(value: boolean)` | When `true`, cancels or fails recognition if a finger leaves the view area. Defaults vary by gesture type; most are `false` except for `LongPressGesture` and `TapGesture`, which default to `true`. |
-
| `hitSlop(settings)` | Controls the activation area of the gesture within the connected view. Negative numbers reduce bounds evenly, while objects can specify reductions per side or edge. Positive values on Android expand beyond view bounds but not past parent view bounds. Use React Native's View hitSlop for cross-platform support. |
-
| `withRef(ref)` | Sets a ref to the gesture object for interoperability with older APIs. |
-
| `withTestId(testID)` | Assigns a `testID` property for querying in tests. |
-
| `cancelsTouchesInView(value)` (**iOS only**) | When `true`, cancels touches for native UI components when active. Default is `true`. |
-
| `runOnJS(value: boolean)` | Determines if callbacks run on the JS thread (`true`) or UI thread (`false`). Defaults to `false` with `react-native-reanimated`. |
-
| `simultaneousWithExternalGesture(otherGesture1, otherGesture2, ...)` | Marks gestures for simultaneous recognition without composing them. Requires additional detectors for recognition. |
-
| `requireExternalGestureToFail(otherGesture1, otherGesture2, ...)` | Adds a relation requiring another gesture to fail before activation. Does not compose gestures; requires additional detectors. |
-
| `blocksExternalGesture(otherGesture1, otherGesture2, ...)` | Makes other gestures wait until this one fails or doesn't start. Marks relations without composing gestures; requires additional detectors. |
-
| `activeCursor(value)` (**Web only**) | Specifies the cursor when the gesture activates. Supports CSS cursor values (e.g., `"grab"`, `"zoom-in"`). Default is `"auto"`. |
+
|Property|Description|
+
|-|-|
+
|`enabled(value: boolean)`|Indicates whether the handler should analyze touch events. Default is `true`. If set to `false`, the handler's state will never become `ACTIVE`.|
+
|`shouldCancelWhenOutside(value: boolean)`|When `true`, cancels or fails recognition if a finger leaves the view area. Defaults vary by gesture type; most are `false` except for `LongPressGesture` and `TapGesture`, which default to `true`.|
+
|`hitSlop(settings)`|Controls the activation area of the gesture within the connected view. Negative numbers reduce bounds evenly, while objects can specify reductions per side or edge. Positive values on Android expand beyond view bounds but not past parent view bounds. Use React Native's View hitSlop for cross-platform support.|
+
|`withRef(ref)`|Sets a ref to the gesture object for interoperability with older APIs.|
+
|`withTestId(testID)`|Assigns a `testID` property for querying in tests.|
+
|`cancelsTouchesInView(value)` (**iOS only**)|When `true`, cancels touches for native UI components when active. Default is `true`.|
+
|`runOnJS(value: boolean)`|Determines if callbacks run on the JS thread (`true`) or UI thread (`false`). Defaults to `false` with `react-native-reanimated`.|
+
|`simultaneousWithExternalGesture(otherGesture1, otherGesture2, ...)`|Marks gestures for simultaneous recognition without composing them. Requires additional detectors for recognition.|
+
|`requireExternalGestureToFail(otherGesture1, otherGesture2, ...)`|Adds a relation requiring another gesture to fail before activation. Does not compose gestures; requires additional detectors.|
+
|`blocksExternalGesture(otherGesture1, otherGesture2, ...)`|Makes other gestures wait until this one fails or doesn't start. Marks relations without composing gestures; requires additional detectors.|
+
|`activeCursor(value)` (**Web only**)|Specifies the cursor when the gesture activates. Supports CSS cursor values (e.g., `"grab"`, `"zoom-in"`). Default is `"auto"`.|
#### Properties Common to All Continuous Gestures:
···
#### Callbacks Common to All Gestures:
-
| Callback | Description |
-
| --- | --- |
-
| `onBegin(callback)` | Called when the gesture handler starts receiving touches but is not yet active. |
-
| `onStart(callback)` | Called when the gesture is recognized and transitions to an active state. |
-
| `onEnd(callback)` | Called when a recognized gesture finishes, provided it was previously active. |
-
| `onFinalize(callback)` | Called when handling finalizes—either recognition completes or fails. |
-
| `onTouchesDown(callback)` | Triggered every time a finger is placed on the screen. |
-
| `onTouchesMove(callback)` | Triggered every time a finger moves on the screen. |
-
| `onTouchesUp(callback)` | Triggered every time a finger is lifted from the screen. |
-
| `onTouchesCancelled(callback)` | Triggered when a finger stops being tracked, such as when a gesture finishes. |
+
|Callback|Description|
+
|-|-|
+
|`onBegin(callback)`|Called when the gesture handler starts receiving touches but is not yet active.|
+
|`onStart(callback)`|Called when the gesture is recognized and transitions to an active state.|
+
|`onEnd(callback)`|Called when a recognized gesture finishes, provided it was previously active.|
+
|`onFinalize(callback)`|Called when handling finalizes—either recognition completes or fails.|
+
|`onTouchesDown(callback)`|Triggered every time a finger is placed on the screen.|
+
|`onTouchesMove(callback)`|Triggered every time a finger moves on the screen.|
+
|`onTouchesUp(callback)`|Triggered every time a finger is lifted from the screen.|
+
|`onTouchesCancelled(callback)`|Triggered when a finger stops being tracked, such as when a gesture finishes.|
#### Callbacks Common to All Continuous Gestures:
···
#### Attributes Specific to `PinchGesture`:
-
| Attribute | Description |
-
| --- | --- |
-
| `scale` | Scale factor relative to touch points in screen coordinates. |
-
| `velocity` | Velocity of the gesture at the current moment, expressed as scale factor per second. |
-
| `focalX` | X-axis position of the center anchor point of the gesture in points. |
-
| `focalY` | Y-axis position of the center anchor point of the gesture in points. |
+
|Attribute|Description|
+
|-|-|
+
|`scale`|Scale factor relative to touch points in screen coordinates.|
+
|`velocity`|Velocity of the gesture at the current moment, expressed as scale factor per second.|
+
|`focalX`|X-axis position of the center anchor point of the gesture in points.|
+
|`focalY`|Y-axis position of the center anchor point of the gesture in points.|
#### Attributes Common to All Gestures:
-
| Attribute | Description |
-
| --- | --- |
-
| `state` | Current state of the handler, expressed as a constant from the `State` object. |
-
| `numberOfPointers` | Number of pointers (fingers) currently on the screen. |
-
| `pointerType` | Type of pointer device in use, represented by the `PointerType` enum: `TOUCH`, `STYLUS`, `MOUSE`, `KEY`, or `OTHER`. |
+
|Attribute|Description|
+
|-|-|
+
|`state`|Current state of the handler, expressed as a constant from the `State` object.|
+
|`numberOfPointers`|Number of pointers (fingers) currently on the screen.|
+
|`pointerType`|Type of pointer device in use, represented by the `PointerType` enum: `TOUCH`, `STYLUS`, `MOUSE`, `KEY`, or `OTHER`.|
## Force Touch Gesture
···
#### Properties Specific to `ForceTouchGesture`:
-
| Property | Description |
-
| --- | --- |
-
| `minForce(value: number)` | Minimal pressure required for activation. Range `[0.0, 1.0]`. Default is `0.2`. |
-
| `maxForce(value: number)` | Maximal pressure before gesture fails. Range `[0.0, 1.0]`. |
-
| `feedbackOnActivation(value: boolean)` | Defines if haptic feedback occurs on activation. |
+
|Property|Description|
+
|-|-|
+
|`minForce(value: number)`|Minimal pressure required for activation. Range `[0.0, 1.0]`. Default is `0.2`.|
+
|`maxForce(value: number)`|Maximal pressure before gesture fails. Range `[0.0, 1.0]`.|
+
|`feedbackOnActivation(value: boolean)`|Defines if haptic feedback occurs on activation.|
#### Properties Common to All Gestures:
-
| Property | Description |
-
| --- | --- |
-
| `enabled(value: boolean)` | Indicates whether the handler analyzes touch events. Default is `true`. |
-
| `shouldCancelWhenOutside(value: boolean)` | Cancels recognition if finger leaves view area. Defaults vary by handler type. |
-
| `hitSlop(settings)` | Controls gesture activation area within the view. Supports negative values for reduction. |
-
| `withRef(ref)` | Sets a ref to the gesture object for interoperability with old API. |
-
| `withTestId(testID)` | Sets a `testID` property for querying in tests. |
-
| `cancelsTouchesInView(value)` (**iOS only**) | Cancels touches for native UI components when active. Default is `true`. |
-
| `runOnJS(value: boolean)` | Runs callbacks on JS thread if true, otherwise on the UI thread. Defaults to `false`. |
-
| `simultaneousWithExternalGesture(otherGesture1, otherGesture2, ...)` | Marks relation for simultaneous recognition with other gestures. |
-
| `requireExternalGestureToFail(otherGesture1, otherGesture2, ...)` | Requires another gesture to fail before activation. |
-
| `blocksExternalGesture(otherGesture1, otherGesture2, ...)` | Makes other gestures wait until this one fails or doesn't start. |
-
| `activeCursor(value)` (**Web only**) | Specifies cursor when gesture activates. Supports CSS cursor values. Default is `"auto"`. |
+
|Property|Description|
+
|-|-|
+
|`enabled(value: boolean)`|Indicates whether the handler analyzes touch events. Default is `true`.|
+
|`shouldCancelWhenOutside(value: boolean)`|Cancels recognition if finger leaves view area. Defaults vary by handler type.|
+
|`hitSlop(settings)`|Controls gesture activation area within the view. Supports negative values for reduction.|
+
|`withRef(ref)`|Sets a ref to the gesture object for interoperability with old API.|
+
|`withTestId(testID)`|Sets a `testID` property for querying in tests.|
+
|`cancelsTouchesInView(value)` (**iOS only**)|Cancels touches for native UI components when active. Default is `true`.|
+
|`runOnJS(value: boolean)`|Runs callbacks on JS thread if true, otherwise on the UI thread. Defaults to `false`.|
+
|`simultaneousWithExternalGesture(otherGesture1, otherGesture2, ...)`|Marks relation for simultaneous recognition with other gestures.|
+
|`requireExternalGestureToFail(otherGesture1, otherGesture2, ...)`|Requires another gesture to fail before activation.|
+
|`blocksExternalGesture(otherGesture1, otherGesture2, ...)`|Makes other gestures wait until this one fails or doesn't start.|
+
|`activeCursor(value)` (**Web only**)|Specifies cursor when gesture activates. Supports CSS cursor values. Default is `"auto"`.|
#### Properties Common to All Continuous Gestures:
-
| Property | Description |
-
| --- | --- |
-
| `manualActivation(value: boolean)` | When true, the handler does not activate automatically; state must be manipulated manually. |
+
|Property|Description|
+
|-|-|
+
|`manualActivation(value: boolean)`|When true, the handler does not activate automatically; state must be manipulated manually.|
### Callbacks
#### Callbacks Common to All Gestures:
-
| Callback | Description |
-
| --- | --- |
-
| `onBegin(callback)` | Called when gesture handling starts receiving touches. |
-
| `onStart(callback)` | Called when the gesture is recognized and transitions to active state. |
-
| `onEnd(callback)` | Called when a recognized gesture finishes, if previously in active state. |
-
| `onFinalize(callback)` | Called when gesture handling finalizes (recognized or failed). |
-
| `onTouchesDown(callback)` | Called every time a finger is placed on the screen. |
-
| `onTouchesMove(callback)` | Called every time a finger moves on the screen. |
-
| `onTouchesUp(callback)` | Called every time a finger is lifted from the screen. |
-
| `onTouchesCancelled(callback)` | Called when a finger stops being tracked, e.g., gesture finishes. |
+
|Callback|Description|
+
|-|-|
+
|`onBegin(callback)`|Called when gesture handling starts receiving touches.|
+
|`onStart(callback)`|Called when the gesture is recognized and transitions to active state.|
+
|`onEnd(callback)`|Called when a recognized gesture finishes, if previously in active state.|
+
|`onFinalize(callback)`|Called when gesture handling finalizes (recognized or failed).|
+
|`onTouchesDown(callback)`|Called every time a finger is placed on the screen.|
+
|`onTouchesMove(callback)`|Called every time a finger moves on the screen.|
+
|`onTouchesUp(callback)`|Called every time a finger is lifted from the screen.|
+
|`onTouchesCancelled(callback)`|Called when a finger stops being tracked, e.g., gesture finishes.|
#### Callbacks Common to All Continuous Gestures:
-
| Callback | Description |
-
| --- | --- |
-
| `onUpdate(callback)` | Called every time the gesture receives an update while active. |
-
| `onChange(callback)` | Called with information about changes in value relative to the last event. |
+
|Callback|Description|
+
|-|-|
+
|`onUpdate(callback)`|Called every time the gesture receives an update while active.|
+
|`onChange(callback)`|Called with information about changes in value relative to the last event.|
### Event Data
#### Attributes Specific to `ForceTouchGesture`:
-
| Attribute | Description |
-
| --------- | ------------------------ |
-
| `force` | The pressure of a touch. |
+
|Attribute|Description|
+
|-|-|
+
|`force`|The pressure of a touch.|
#### Attributes Common to All Gestures:
-
| Attribute | Description |
-
| --- | --- |
-
| `state` | Current state of the handler, expressed as one of the constants in the `State` object. |
-
| `numberOfPointers` | Number of pointers (fingers) currently on the screen. |
-
| `pointerType` | Type of pointer device in use, represented by the `PointerType` enum (`TOUCH`, `STYLUS`, etc.). |
+
|Attribute|Description|
+
|-|-|
+
|`state`|Current state of the handler, expressed as one of the constants in the `State` object.|
+
|`numberOfPointers`|Number of pointers (fingers) currently on the screen.|
+
|`pointerType`|Type of pointer device in use, represented by the `PointerType` enum (`TOUCH`, `STYLUS`, etc.).|
## Buttons
···
#### Properties Specific to `FlingGesture`:
-
| Property | Description | | |
-
| --- | --- | --- | --- |
-
| `direction(value: Directions)` | Specifies allowed movement directions. Use constants from the `Directions` object, combining multiple directions with \` | `. Example: `fling.direction(Directions.RIGHT | Directions.LEFT);`or`fling.direction(Directions.DOWN);\` |
-
| `numberOfPointers(value: number)` | Sets the exact number of pointers required for gesture recognition. | | |
-
| `mouseButton(value: MouseButton)` (Web & Android only) | Chooses which mouse button to respond to, using predefined fields in `MouseButton`: `LEFT`, `RIGHT`, `MIDDLE`, `BUTTON_4`, `BUTTON_5`, `ALL`. Combine with \` | `operator; default is`LEFT\`. | |
+
|Property|Description|||
+
|-|-|-|-|
+
|`direction(value: Directions)`|Specifies allowed movement directions. Use constants from the `Directions` object, combining multiple directions with \`|`. Example: `fling.direction(Directions.RIGHT|Directions.LEFT);`or`fling.direction(Directions.DOWN);\`|
+
|`numberOfPointers(value: number)`|Sets the exact number of pointers required for gesture recognition.|||
+
|`mouseButton(value: MouseButton)` (Web & Android only)|Chooses which mouse button to respond to, using predefined fields in `MouseButton`: `LEFT`, `RIGHT`, `MIDDLE`, `BUTTON_4`, `BUTTON_5`, `ALL`. Combine with \`|`operator; default is`LEFT\`.||
#### Properties Common to All Gestures:
-
| Property | Description |
-
| --- | --- |
-
| `enabled(value: boolean)` | Determines if the handler analyzes touch events. Default is `true`. Disabling during recognition changes state to `FAILED` or `CANCELLED`. |
-
| `shouldCancelWhenOutside(value: boolean)` | Cancels/fails recognition when a finger leaves the view area. Defaults vary by gesture type; most are `false`, except for `LongPressGesture` and `TapGesture` which default to `true`. |
-
| `hitSlop(settings)` | Controls the active area for gesture recognition, reducing or expanding bounds as specified. Supports negative numbers, objects with specific side reductions, and `width`/`height` attributes. |
-
| `withRef(ref)` | Sets a ref for interoperability with older APIs. |
-
| `withTestId(testID)` | Assigns a `testID` for querying in tests. |
-
| `cancelsTouchesInView(value)` (**iOS only**) | When `true`, cancels touches for native UI components when active. Default is `true`. |
-
| `runOnJS(value: boolean)` | Determines if callbacks run on the JS thread (`true`) or UI thread (`false`). Defaults to `false` with `react-native-reanimated`. |
-
| `simultaneousWithExternalGesture(otherGesture1, otherGesture2, ...)` | Marks gestures for simultaneous recognition without composing them. Requires separate detectors. |
-
| `requireExternalGestureToFail(otherGesture1, otherGesture2, ...)` | Requires another gesture to fail before activation. Does not compose gestures; requires separate detectors. |
-
| `blocksExternalGesture(otherGesture1, otherGesture2, ...)` | Delays other gestures until this one fails or doesn't start. Marks relations without composing; requires separate detectors. |
+
|Property|Description|
+
|-|-|
+
|`enabled(value: boolean)`|Determines if the handler analyzes touch events. Default is `true`. Disabling during recognition changes state to `FAILED` or `CANCELLED`.|
+
|`shouldCancelWhenOutside(value: boolean)`|Cancels/fails recognition when a finger leaves the view area. Defaults vary by gesture type; most are `false`, except for `LongPressGesture` and `TapGesture` which default to `true`.|
+
|`hitSlop(settings)`|Controls the active area for gesture recognition, reducing or expanding bounds as specified. Supports negative numbers, objects with specific side reductions, and `width`/`height` attributes.|
+
|`withRef(ref)`|Sets a ref for interoperability with older APIs.|
+
|`withTestId(testID)`|Assigns a `testID` for querying in tests.|
+
|`cancelsTouchesInView(value)` (**iOS only**)|When `true`, cancels touches for native UI components when active. Default is `true`.|
+
|`runOnJS(value: boolean)`|Determines if callbacks run on the JS thread (`true`) or UI thread (`false`). Defaults to `false` with `react-native-reanimated`.|
+
|`simultaneousWithExternalGesture(otherGesture1, otherGesture2, ...)`|Marks gestures for simultaneous recognition without composing them. Requires separate detectors.|
+
|`requireExternalGestureToFail(otherGesture1, otherGesture2, ...)`|Requires another gesture to fail before activation. Does not compose gestures; requires separate detectors.|
+
|`blocksExternalGesture(otherGesture1, otherGesture2, ...)`|Delays other gestures until this one fails or doesn't start. Marks relations without composing; requires separate detectors.|
### Callbacks
#### Common to All Gestures:
-
| Callback | Description |
-
| --- | --- |
-
| `onBegin(callback)` | Called when the gesture handler starts receiving touches but hasn't yet recognized the gesture. |
-
| `onStart(callback)` | Triggered when the gesture is recognized and transitions to active state. |
-
| `onEnd(callback)` | Invoked when a recognized gesture finishes, only if previously active. |
-
| `onFinalize(callback)` | Called upon finalizing gesture handling—either recognition or failure. |
-
| `onTouchesDown(callback)` | Executed every time a finger touches the screen. |
-
| `onTouchesMove(callback)` | Triggered with each finger movement on the screen. |
-
| `onTouchesUp(callback)` | Invoked when a finger is lifted from the screen. |
-
| `onTouchesCancelled(callback)` | Called when a finger stops being tracked, such as gesture completion. |
+
|Callback|Description|
+
|-|-|
+
|`onBegin(callback)`|Called when the gesture handler starts receiving touches but hasn't yet recognized the gesture.|
+
|`onStart(callback)`|Triggered when the gesture is recognized and transitions to active state.|
+
|`onEnd(callback)`|Invoked when a recognized gesture finishes, only if previously active.|
+
|`onFinalize(callback)`|Called upon finalizing gesture handling—either recognition or failure.|
+
|`onTouchesDown(callback)`|Executed every time a finger touches the screen.|
+
|`onTouchesMove(callback)`|Triggered with each finger movement on the screen.|
+
|`onTouchesUp(callback)`|Invoked when a finger is lifted from the screen.|
+
|`onTouchesCancelled(callback)`|Called when a finger stops being tracked, such as gesture completion.|
### Event Data
#### Specific to `FlingGesture`:
-
| Attribute | Description |
-
| --- | --- |
-
| `x` | X coordinate of the pointer relative to the attached view (in points). |
-
| `y` | Y coordinate of the pointer relative to the attached view (in points). |
-
| `absoluteX` | X coordinate of the pointer relative to the window, recommended for transformed views. |
-
| `absoluteY` | Y coordinate of the pointer relative to the window, recommended for transformed views. |
+
|Attribute|Description|
+
|-|-|
+
|`x`|X coordinate of the pointer relative to the attached view (in points).|
+
|`y`|Y coordinate of the pointer relative to the attached view (in points).|
+
|`absoluteX`|X coordinate of the pointer relative to the window, recommended for transformed views.|
+
|`absoluteY`|Y coordinate of the pointer relative to the window, recommended for transformed views.|
#### Common to All Gestures:
-
| Attribute | Description |
-
| --- | --- |
-
| `state` | Current handler state, expressed as constants from the `State` object. |
-
| `numberOfPointers` | Number of pointers currently on the screen. |
-
| `pointerType` | Type of pointer device, using `PointerType`: `TOUCH`, `STYLUS`, `MOUSE`, `KEY`, `OTHER`. |
+
|Attribute|Description|
+
|-|-|
+
|`state`|Current handler state, expressed as constants from the `State` object.|
+
|`numberOfPointers`|Number of pointers currently on the screen.|
+
|`pointerType`|Type of pointer device, using `PointerType`: `TOUCH`, `STYLUS`, `MOUSE`, `KEY`, `OTHER`.|
## Common Handler Properties
···
- **Description:** Represents the number of pointers (fingers) currently on the screen.
-
````markdown
-
# Gestures (Version: 2.x)
+
## Gestures (Version: 2.x)
-
## GestureDetector
+
### GestureDetector
The `GestureDetector` serves as the core component within RNGH2, tasked with creating and updating native gesture handlers based on the configuration of provided gestures. A key enhancement over previous versions is its ability to recognize multiple gestures simultaneously through gesture composition. It's important to note that `GestureDetector` does not support integration with the Animated API or Reanimated 1.
-
## Gesture
+
### Gesture
A `Gesture` object facilitates the creation and combination of various gestures, enabling more complex interactions.
-
## Pan Gesture
+
### Pan Gesture
```typescript
<InteractiveExample />
```
-
````
### Tap Gesture
···
The `GestureStateManager` allows manual control over gesture states. Note that react-native-reanimated is required for its use, as it enables synchronous execution of methods within worklets.
-
````
+
## Touch Events
-
# Touch Events
-
-
## Touch Event Attributes
+
### Touch Event Attributes
- **eventType**: Indicates the type of event, such as finger placement on the screen, movement, lifting, or cancellation.
···
> **Caution**: Do not rely on the order of items in `touches` as it may change during a gesture. Use the `id` attribute to track individual touches across events.
-
## PointerData Attributes
+
### PointerData Attributes
- **id**: A unique number representing the touch's ID, used for tracking the touch between events since the ID remains constant while being tracked.
···
- **absoluteY**: The Y coordinate of the current position of the touch relative to the window, expressed in point units. Recommended for use when the original view can be transformed due to a gesture.
-
# Gesture State Manager
+
## Gesture State Manager
The `GestureStateManager` provides manual control over gesture states, requiring `react-native-reanimated` for synchronous execution of methods within worklets.
-
## Methods Overview
+
### Methods Overview
-
### `begin()`
+
#### `begin()`
- **Purpose**: Transition the gesture to the `BEGAN` state.
- **Effectiveness**: Ineffective if the gesture is already active or has finished.
-
### `activate()`
+
#### `activate()`
- **Purpose**: Transition the gesture to the `ACTIVE` state.
- **Effectiveness**: Ineffective if the handler is currently active or has finished. Activation may be delayed for gestures marked as `exclusive` until a higher-priority gesture fails.
-
### `end()`
+
#### `end()`
- **Purpose**: Transition the gesture to the `END` state.
- **Effectiveness**: Ineffective if the handler has already completed its process.
-
### `fail()`
+
#### `fail()`
- **Purpose**: Transition the gesture to the `FAILED` state.
- **Effectiveness**: Ineffective if the handler has already finished.
-
# Touch Events
+
## Touch Events
-
## Touch Event Attributes
+
### Touch Event Attributes
- **eventType**: Indicates the type of event, such as finger placement on the screen, movement, lifting, or cancellation.
···
> **Caution**: Do not rely on the order of items in `touches` as it may change during a gesture. Use the `id` attribute to track individual touches across events.
-
## PointerData Attributes
+
### PointerData Attributes
- **id**: A unique number representing the touch's ID, used for tracking the touch between events since the ID remains constant while being tracked.
···
- **absoluteY**: The Y coordinate of the current position of the touch relative to the window, expressed in point units. Recommended for use when the original view can be transformed due to a gesture.
-
# Gesture State Manager
+
## Gesture State Manager
The `GestureStateManager` provides manual control over gesture states, requiring `react-native-reanimated` for synchronous execution of methods within worklets.
-
## Methods Overview
+
### Methods Overview
-
### `begin()`
+
#### `begin()`
- **Purpose**: Transition the gesture to the `BEGAN` state.
- **Effectiveness**: Ineffective if the gesture is already active or has finished.
-
### `activate()`
+
#### `activate()`
- **Purpose**: Transition the gesture to the `ACTIVE` state.
- **Effectiveness**: Ineffective if the handler is currently active or has finished. Activation may be delayed for gestures marked as `exclusive` until a higher-priority gesture fails.
-
### `end()`
+
#### `end()`
- **Purpose**: Transition the gesture to the `END` state.
- **Effectiveness**: Ineffective if the handler has already completed its process.
-
### `fail()`
+
#### `fail()`
- **Purpose**: Transition the gesture to the `FAILED` state.
- **Effectiveness**: Ineffective if the handler has already finished.
-
# GestureDetector
+
## GestureDetector
The `GestureDetector` is a key component within RNGH2, tasked with creating and updating native gesture handlers based on the configuration of provided gestures. A notable advancement over previous gesture handlers is its ability to recognize multiple gestures simultaneously through gesture composition. It's important to note that `GestureDetector` does not support the Animated API or Reanimated 1.
-
## Reference
+
### Reference
```typescript
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
···
</GestureDetector>
);
-
````
+
```
### Properties
···
### Properties
-
| Property | Description |
-
| --- | --- |
-
| `children` | Accepts either children or a render function that receives a boolean indicating if the component is currently pressed. |
-
| `style` | Can be view styles or a function receiving a boolean reflecting the press state and returning view styles. |
-
| `onPress` | Triggered after `onPressOut` when a single tap gesture is detected. |
-
| `onPressIn` | Called before `onPress` when a touch is engaged. |
-
| `onPressOut` | Called before `onPress` when a touch is released. |
-
| `onLongPress` | Triggered immediately after the pointer has been down for at least `delayLongPress` milliseconds (default: 500 ms). After this, `onPressOut` will be called upon pointer lift and `onPress` won't trigger. |
-
| `cancelable` | Determines if a press gesture can be interrupted by a parent gesture like scrolling. Defaults to `true`. |
-
| `onHoverIn` (Web only) | Called when the pointer hovers over the element. |
-
| `onHoverOut` (Web only) | Triggered when the pointer stops hovering over the element. |
-
| `delayHoverIn` (Web only) | Duration to wait after hover in before calling `onHoverIn`. |
-
| `delayHoverOut` (Web only) | Duration to wait after hover out before calling `onHoverOut`. |
-
| `delayLongPress` | Time in milliseconds from `onPressIn` before `onLongPress` is called. |
-
| `disabled` | Disables the `Pressable` behavior if set to true. |
-
| `hitSlop` (Android & iOS only) | Additional distance outside of the view where a press is detected and `onPressIn` is triggered. Accepts `number` or `Rect`. |
-
| `pressRetentionOffset` (Android & iOS only) | Extra distance outside of the view (or `hitSlop` if present) to consider a touch as a press before `onPressOut` is triggered. Accepts `number` or `Rect`. |
-
| `android_disableSound` (Android only) | If true, prevents system sound on touch. |
-
| `android_ripple` (Android only) | Enables the Android ripple effect and configures its color, radius, etc. Accepts `RippleConfig`. |
-
| `testOnly_pressed` | Used for documentation or testing purposes (e.g., snapshot testing). |
-
| `unstable_pressDelay` | Duration in milliseconds to wait after press down before calling `onPressIn`. |
+
|Property|Description|
+
|-|-|
+
|`children`|Accepts either children or a render function that receives a boolean indicating if the component is currently pressed.|
+
|`style`|Can be view styles or a function receiving a boolean reflecting the press state and returning view styles.|
+
|`onPress`|Triggered after `onPressOut` when a single tap gesture is detected.|
+
|`onPressIn`|Called before `onPress` when a touch is engaged.|
+
|`onPressOut`|Called before `onPress` when a touch is released.|
+
|`onLongPress`|Triggered immediately after the pointer has been down for at least `delayLongPress` milliseconds (default: 500 ms). After this, `onPressOut` will be called upon pointer lift and `onPress` won't trigger.|
+
|`cancelable`|Determines if a press gesture can be interrupted by a parent gesture like scrolling. Defaults to `true`.|
+
|`onHoverIn` (Web only)|Called when the pointer hovers over the element.|
+
|`onHoverOut` (Web only)|Triggered when the pointer stops hovering over the element.|
+
|`delayHoverIn` (Web only)|Duration to wait after hover in before calling `onHoverIn`.|
+
|`delayHoverOut` (Web only)|Duration to wait after hover out before calling `onHoverOut`.|
+
|`delayLongPress`|Time in milliseconds from `onPressIn` before `onLongPress` is called.|
+
|`disabled`|Disables the `Pressable` behavior if set to true.|
+
|`hitSlop` (Android & iOS only)|Additional distance outside of the view where a press is detected and `onPressIn` is triggered. Accepts `number` or `Rect`.|
+
|`pressRetentionOffset` (Android & iOS only)|Extra distance outside of the view (or `hitSlop` if present) to consider a touch as a press before `onPressOut` is triggered. Accepts `number` or `Rect`.|
+
|`android_disableSound` (Android only)|If true, prevents system sound on touch.|
+
|`android_ripple` (Android only)|Enables the Android ripple effect and configures its color, radius, etc. Accepts `RippleConfig`.|
+
|`testOnly_pressed`|Used for documentation or testing purposes (e.g., snapshot testing).|
+
|`unstable_pressDelay`|Duration in milliseconds to wait after press down before calling `onPressIn`.|
### Example
···
- **`BACK`**: Drawer appears below the content view, revealed by sliding away the content view.
- **`SLIDE`**: Drawer slides with the content view.
-
| `FRONT` | `BACK` | `SLIDE` |
-
| ------- | ------ | ------- |
+
|`FRONT`|`BACK`|`SLIDE`|
+
|-|-|-|
#### `edgeWidth`
···
### Properties
-
| Property | Description |
-
| --- | --- |
-
| `friction` | A number specifying the delay in visual interaction relative to gesture distance. E.g., `1` means no delay, `2` doubles it. |
-
| `leftThreshold` | Distance from the left edge for panel animation to open or close state. Defaults to half of the panel's width. |
-
| `rightThreshold` | Distance from the right edge for panel animation to open or close state. Defaults to half of the panel's width. |
-
| `dragOffsetFromLeftEdge` | Minimum drag distance from the left edge to consider a swipe (default: 10). |
-
| `dragOffsetFromRightEdge` | Minimum drag distance from the right edge to consider a swipe (default: 10). |
-
| `overshootLeft` | Boolean indicating if swiping beyond the left action panel's width is allowed. Defaults to `true` if `renderLeftActions` is provided. |
-
| `overshootRight` | Boolean indicating if swiping beyond the right action panel's width is allowed. Defaults to `true` if `renderRightActions` is provided. |
-
| `overshootFriction` | Number specifying delay in visual interaction at overshoot (default: 1). For a native feel, try `8` or above. |
+
|Property|Description|
+
|-|-|
+
|`friction`|A number specifying the delay in visual interaction relative to gesture distance. E.g., `1` means no delay, `2` doubles it.|
+
|`leftThreshold`|Distance from the left edge for panel animation to open or close state. Defaults to half of the panel's width.|
+
|`rightThreshold`|Distance from the right edge for panel animation to open or close state. Defaults to half of the panel's width.|
+
|`dragOffsetFromLeftEdge`|Minimum drag distance from the left edge to consider a swipe (default: 10).|
+
|`dragOffsetFromRightEdge`|Minimum drag distance from the right edge to consider a swipe (default: 10).|
+
|`overshootLeft`|Boolean indicating if swiping beyond the left action panel's width is allowed. Defaults to `true` if `renderLeftActions` is provided.|
+
|`overshootRight`|Boolean indicating if swiping beyond the right action panel's width is allowed. Defaults to `true` if `renderRightActions` is provided.|
+
|`overshootFriction`|Number specifying delay in visual interaction at overshoot (default: 1). For a native feel, try `8` or above.|
### Callbacks
···
### Properties
-
| Property | Description |
-
| --- | --- |
-
| `friction` | A number specifying how much the visual interaction will be delayed compared to the gesture distance. For example, a value of `1` means the swipeable panel follows the gesture exactly; `2` makes it two times "slower". |
-
| `leftThreshold` | Distance from the left edge at which the released panel animates to the open state (or vice versa). Default is half of the panel's width. |
-
| `rightThreshold` | Distance from the right edge for similar behavior as `leftThreshold`. Default is also half of the panel's width. |
-
| `dragOffsetFromLeftEdge` | Minimum distance that must be dragged from the left edge to consider it a swipe. Default value: `10`. |
-
| `dragOffsetFromRightEdge` | Similar to `dragOffsetFromLeftEdge`, but for the right edge. Default value: `10`. |
-
| `overshootLeft` | Boolean indicating if the panel can be pulled further than the left actions panel's width. Defaults to `true` if a left panel render method is present. |
-
| `overshootRight` | Similar to `overshootLeft`, but for the right side. Defaults to `true` if a right panel render method is present. |
-
| `overshootFriction` | Number specifying visual interaction delay at overshoot. Default value: `1`. For a native feel, try `8` or above. |
+
|Property|Description|
+
|-|-|
+
|`friction`|A number specifying how much the visual interaction will be delayed compared to the gesture distance. For example, a value of `1` means the swipeable panel follows the gesture exactly; `2` makes it two times "slower".|
+
|`leftThreshold`|Distance from the left edge at which the released panel animates to the open state (or vice versa). Default is half of the panel's width.|
+
|`rightThreshold`|Distance from the right edge for similar behavior as `leftThreshold`. Default is also half of the panel's width.|
+
|`dragOffsetFromLeftEdge`|Minimum distance that must be dragged from the left edge to consider it a swipe. Default value: `10`.|
+
|`dragOffsetFromRightEdge`|Similar to `dragOffsetFromLeftEdge`, but for the right edge. Default value: `10`.|
+
|`overshootLeft`|Boolean indicating if the panel can be pulled further than the left actions panel's width. Defaults to `true` if a left panel render method is present.|
+
|`overshootRight`|Similar to `overshootLeft`, but for the right side. Defaults to `true` if a right panel render method is present.|
+
|`overshootFriction`|Number specifying visual interaction delay at overshoot. Default value: `1`. For a native feel, try `8` or above.|
**Deprecated Callbacks:**
- `onSwipeableLeftOpen`: Deprecated; use `onSwipeableOpen(direction)`.
- `onSwipeableRightOpen`: Deprecated; use `onSwipeableOpen(direction)`.
-
| Property | Description |
-
| --- | --- |
-
| `onSwipeableOpen` | Called when an action panel gets open (either right or left). Takes swipe direction as an argument. |
-
| `onSwipeableClose` | Called when the action panel is closed, with swipe direction as an argument. |
-
| `onSwipeableWillOpen` | Called when an action panel starts animating on open (either right or left), taking swipe direction as an argument. |
-
| `onSwipeableWillClose` | Called when an action panel starts animating on close, with swipe direction as an argument. |
+
|Property|Description|
+
|-|-|
+
|`onSwipeableOpen`|Called when an action panel gets open (either right or left). Takes swipe direction as an argument.|
+
|`onSwipeableClose`|Called when the action panel is closed, with swipe direction as an argument.|
+
|`onSwipeableWillOpen`|Called when an action panel starts animating on open (either right or left), taking swipe direction as an argument.|
+
|`onSwipeableWillClose`|Called when an action panel starts animating on close, with swipe direction as an argument.|
**Rendering Methods:**
···
Using a reference to `Swipeable`, you can trigger actions:
-
| Method | Description |
-
| ----------- | ------------------------------------------------------- |
-
| `close` | Closes the component with animation. |
-
| `openLeft` | Opens the component on the left side. |
-
| `openRight` | Opens the component on the right side. |
-
| `reset` | Resets swiping states without triggering any animation. |
+
|Method|Description|
+
|-|-|
+
|`close`|Closes the component with animation.|
+
|`openLeft`|Opens the component on the left side.|
+
|`openRight`|Opens the component on the right side.|
+
|`reset`|Resets swiping states without triggering any animation.|
### Example
+307 -307
out/llms-full-react-native-reanimated.txt
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## useAnimatedScrollHandler
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## useEvent Hook Overview
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
This overview provides a concise guide to using the `useEvent` hook effectively within React Native Reanimated projects.
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
This documentation provides a comprehensive overview of how to utilize the `useHandler` hook within React Native Reanimated for creating custom event handlers.
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## Troubleshooting
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ❌ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|❌|
## useAnimatedScrollHandler
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## scrollTo Function in React Native Reanimated
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## getRelativeCoords Functionality
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## useAnimatedGestureHandler
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ⚠️ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|⚠️|
- On the Web, it is necessary to pass the returned handler object to both `onGestureEvent` and `onHandlerStateChange` parameters.
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
```markdown
# Advanced APIs - Version 3.x
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## Measure Functionality in React Native Reanimated
···
The `measure` function returns an object containing:
-
| Field | Description |
-
| --- | --- |
-
| `x` | A number representing the X coordinate relative to the parent component. |
-
| `y` | A number representing the Y coordinate relative to the parent component. |
-
| `width` | A number representing the width of the component. |
-
| `height` | A number representing the height of the component. |
-
| `pageX` | A number representing the X coordinate relative to the screen. |
-
| `pageY` | A number representing the Y coordinate relative to the screen. |
+
|Field|Description|
+
|-|-|
+
|`x`|A number representing the X coordinate relative to the parent component.|
+
|`y`|A number representing the Y coordinate relative to the parent component.|
+
|`width`|A number representing the width of the component.|
+
|`height`|A number representing the height of the component.|
+
|`pageX`|A number representing the X coordinate relative to the screen.|
+
|`pageY`|A number representing the Y coordinate relative to the screen.|
Alternatively, it returns `null` if the measurement could not be performed.
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## useAnimatedReaction
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
````markdown
# withSequence
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
````
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
- Reference
- Arguments
···
- **`delayedAnimation`**: The animation that will be delayed.
-
- **`reduceMotion`** _(Optional)_: Determines how the animation responds to the device's reduced motion accessibility setting.
+
- **`reduceMotion`** *(Optional)*: Determines how the animation responds to the device's reduced motion accessibility setting.
#### Returns
···
### Example
-
_(Example content would go here)_
+
*(Example content would go here)*
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
-
---
+
***
## useAnimatedKeyboard in React Native Reanimated (Version: 3.x)
···
The `useAnimatedKeyboard` hook returns an object with the following fields:
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| height | `SharedValue<number>` | A shared value representing the current height of the keyboard. |
-
| state | `SharedValue<KeyboardState>` | A shared value indicating the current state of the keyboard. Possible states: `{ CLOSED, OPEN, CLOSING, OPENING }` |
+
|Name|Type|Description|
+
|-|-|-|
+
|height|`SharedValue<number>`|A shared value representing the current height of the keyboard.|
+
|state|`SharedValue<KeyboardState>`|A shared value indicating the current state of the keyboard. Possible states: `{ CLOSED, OPEN, CLOSING, OPENING }`|
### Remarks
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ❌ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|❌|
- **Reference**
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## dispatchCommand
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ❌ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|❌|
## withClamp
···
An object containing the following properties:
-
| Name | Type | Description |
-
| ---- | ------ | ----------------------------------------------------- |
-
| min | number | Optional. The lowest value your animation can reach. |
-
| max | number | Optional. The highest value your animation can reach. |
+
|Name|Type|Description|
+
|-|-|-|
+
|min|number|Optional. The lowest value your animation can reach.|
+
|max|number|Optional. The highest value your animation can reach.|
##### `animation`
···
`withClamp` returns an animation object. This can be directly assigned to a shared value or used as a style value in `useAnimatedStyle`.
-
| Platform | Supported |
-
| -------- | --------- |
-
| Android | ✅ |
-
| iOS | ✅ |
-
| Web | ✅ |
+
|Platform|Supported|
+
|-|-|
+
|Android|✅|
+
|iOS|✅|
+
|Web|✅|
## useAnimatedSensor
···
##### `config` (Optional)
-
| Name | Type | Default | Description |
-
| --- | --- | --- | --- |
-
| interval | `number \| "auto"` | `"auto"` | Time between sensor readings in milliseconds. `"auto"` matches the device's screen refresh rate. |
-
| adjustToInterfaceOrientation | `boolean` | `true` | Adjusts measurements to the current interface orientation. |
-
| iosReferenceFrame | `IOSReferenceFrame` | `IOSReferenceFrame.Auto` | Frame of reference for iOS sensors. |
+
|Name|Type|Default|Description|
+
|-|-|-|-|
+
|interval|`number \| "auto"`|`"auto"`|Time between sensor readings in milliseconds. `"auto"` matches the device's screen refresh rate.|
+
|adjustToInterfaceOrientation|`boolean`|`true`|Adjusts measurements to the current interface orientation.|
+
|iosReferenceFrame|`IOSReferenceFrame`|`IOSReferenceFrame.Auto`|Frame of reference for iOS sensors.|
Available `IOSReferenceFrame` options:
···
`useAnimatedSensor` returns an object:
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| sensor | `SharedValue<Value3D \| ValueRotation>` | Shared value with sensor measurements. |
-
| unregister | `() => void` | Stops listening to sensor updates when called. |
-
| isAvailable | `boolean` | Indicates if the sensor is available for use. |
-
| config | `SensorConfig` | Contains sensor configuration details. |
+
|Name|Type|Description|
+
|-|-|-|
+
|sensor|`SharedValue<Value3D \| ValueRotation>`|Shared value with sensor measurements.|
+
|unregister|`() => void`|Stops listening to sensor updates when called.|
+
|isAvailable|`boolean`|Indicates if the sensor is available for use.|
+
|config|`SensorConfig`|Contains sensor configuration details.|
The shared value from the **rotation sensor** includes:
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## setNativeProps
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
-
---
+
***
## React Native Reanimated: useReducedMotion Hook (Version 3.x)
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
This hook is compatible across Android, iOS, and Web platforms.
···
### Remarks
-
**Info:** The term _mutable value_ refers to an object created by `makeMutable`, distinguishing it from a _shared value_, which is essentially a mutable value with automatic cleanup.
+
**Info:** The term *mutable value* refers to an object created by `makeMutable`, distinguishing it from a *shared value*, which is essentially a mutable value with automatic cleanup.
- All remarks applicable to the `useSharedValue` hook are relevant to `makeMutable`.
- Avoid invoking `makeMutable` directly within component scope. Component re-renders will generate a new object, potentially resetting the initial value and losing previous state.
···
#### Comparison with `useSharedValue`
-
| Feature | `makeMutable` | `useSharedValue` |
-
| --- | --- | --- |
-
| Object Creation | Creates a new object on each call | Reuses the same object on each call |
-
| Initial Value Change | A new object is created if `initial` changes | The initially created object remains unchanged if `initialValue` changes |
-
| Scope Usage | Can be used outside of component scope | Limited to use within component scope |
-
| Loop Usage | Usable in loops with variable iterations | Usable in loops only if the number of hooks (`useSharedValue` calls) is constant |
-
| Animation Cancellation | Does not automatically cancel animations on unmount | Automatically cancels animations when the component unmounts |
+
|Feature|`makeMutable`|`useSharedValue`|
+
|-|-|-|
+
|Object Creation|Creates a new object on each call|Reuses the same object on each call|
+
|Initial Value Change|A new object is created if `initial` changes|The initially created object remains unchanged if `initialValue` changes|
+
|Scope Usage|Can be used outside of component scope|Limited to use within component scope|
+
|Loop Usage|Usable in loops with variable iterations|Usable in loops only if the number of hooks (`useSharedValue` calls) is constant|
+
|Animation Cancellation|Does not automatically cancel animations on unmount|Automatically cancels animations when the component unmounts|
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## Accurate Call Stacks
···
```
-
| Aspect | Description |
-
| --- | --- |
-
| **Issue** | Misleading call stacks in error or warning messages. |
-
| **Cause** | Call stacks often highlight Reanimated's internal code rather than API misuse. |
-
| **Impact** | Difficulty in identifying the true source of problems during debugging. |
+
|Aspect|Description|
+
|-|-|
+
|**Issue**|Misleading call stacks in error or warning messages.|
+
|**Cause**|Call stacks often highlight Reanimated's internal code rather than API misuse.|
+
|**Impact**|Difficulty in identifying the true source of problems during debugging.|
Understanding this behavior is crucial for effectively diagnosing and resolving issues within Reanimated projects.
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
- Reference
- Arguments
···
The example below illustrates the difference in call stacks before and after applying the Reanimated Metro config wrapper. The **Before** scenario shows Reanimated source code as the error origin, while the **After** scenario reveals the actual incorrect code that caused the error.
-
| Before | After |
-
| ------ | ----- |
-
| | |
+
|Before|After|
+
|-|-|
+
|||
### Remarks
- `wrapWithReanimatedMetroConfig` does not remove any stack frames; it only collapses irrelevant ones from Reanimated. To inspect these, you can expand collapsed stack frames by clicking on the **See N more frames** text at the bottom of the **Call Stack**.
-
| Collapsed | Expanded |
-
| --------- | -------- |
-
| | |
+
|Collapsed|Expanded|
+
|-|-|
+
|||
- Some errors, especially those arising from asynchronous code, may still point to Reanimated internals instead of the exact problematic line in your code. This happens because stack traces can lose track of the original code that initiated the asynchronous operation. In such cases, manual debugging based on the error message is necessary to identify the potential cause of the problem.
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
```markdown
# Guides
···
- **Expo SDK**: Match major and minor versions with Expo SDK.
- Example: Expo SDK 52 supports `~3.16.x`. Update to the latest patch, e.g., `3.16.7`.
-
| Expo SDK Version | Reanimated Version |
-
| ---------------- | ------------------ |
-
| `52` | `~3.16.1` |
-
| `51` | `~3.10.1` |
-
| `50` | `~3.6.2` |
+
|Expo SDK Version|Reanimated Version|
+
|-|-|
+
|`52`|`~3.16.1`|
+
|`51`|`~3.10.1`|
+
|`50`|`~3.6.2`|
- **Expo Prebuild or React Native without Framework**: Use a version compatible with your React Native version according to the Compatibility table.
···
### Currently Supported React Native Versions (Paper)
-
| Version | 0.63 | 0.64 | 0.65 | 0.66 | 0.67 | 0.68 | 0.69 | 0.70 | 0.71 | 0.72 | 0.73 | 0.74 | 0.75 | 0.76 | 0.77 | 0.78 | 0.79 | 0.80 |
-
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
-
| 3.18.0 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | yes | yes |
-
| 3.17.4 - 3.17.5 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | yes | no |
-
| 3.17.1 – 3.17.3 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | no | no |
-
| 3.17.0 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | no | no | no |
-
| 3.16.7 | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | no | no | no |
-
| 3.16.0 – 3.16.6 | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | no | no | no | no |
-
| 3.15.x | no | no | no | no | no | no | no | no | no | no | no | yes | yes | no | no | no | no | no |
-
| 3.9.x – 3.14.x | no | no | no | no | no | no | no | no | no | no | no | yes | no | no | no | no | no | no |
-
| 3.6.x – 3.8.x | no | no | no | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no |
-
| 3.5.x | no | no | no | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no |
-
| 3.3.x – 3.4.x | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no |
-
| 3.0.x – 3.2.x | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no |
-
| 2.14.x – 2.17.x | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no |
-
| 2.11.x – 2.13.x | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no |
-
| 2.10.x | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no | no |
-
| 2.5.x – 2.9.x | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no | no | no |
-
| 2.3.x – 2.4.x | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no | no | no | no |
+
|Version|0.63|0.64|0.65|0.66|0.67|0.68|0.69|0.70|0.71|0.72|0.73|0.74|0.75|0.76|0.77|0.78|0.79|0.80|
+
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
+
|3.18.0|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|yes|yes|
+
|3.17.4 - 3.17.5|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|yes|no|
+
|3.17.1 – 3.17.3|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|no|no|
+
|3.17.0|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|no|no|no|
+
|3.16.7|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|no|no|no|
+
|3.16.0 – 3.16.6|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|no|no|no|no|
+
|3.15.x|no|no|no|no|no|no|no|no|no|no|no|yes|yes|no|no|no|no|no|
+
|3.9.x – 3.14.x|no|no|no|no|no|no|no|no|no|no|no|yes|no|no|no|no|no|no|
+
|3.6.x – 3.8.x|no|no|no|yes|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|
+
|3.5.x|no|no|no|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|
+
|3.3.x – 3.4.x|yes|yes|yes|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|
+
|3.0.x – 3.2.x|yes|yes|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|no|
+
|2.14.x – 2.17.x|yes|yes|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|no|
+
|2.11.x – 2.13.x|yes|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|no|no|
+
|2.10.x|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|no|no|no|
+
|2.5.x – 2.9.x|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|no|no|no|no|
+
|2.3.x – 2.4.x|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|no|no|no|no|no|
**Note:** Reanimated 2 will not receive support for the newest React Native versions. To access the latest features and updates, upgrade to Reanimated 3.
···
Reanimated supports bridgeless mode.
-
| Version | 0.63 | 0.64 | 0.65 | 0.66 | 0.67 | 0.68 | 0.69 | 0.70 | 0.71 | 0.72 | 0.73 | 0.74 | 0.75 | 0.76 | 0.77 | 0.78 | 0.79 | 0.80 |
-
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
-
| 3.18.0 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | yes | yes |
-
| 3.17.4 - 3.17.5 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | yes | no |
-
| 3.17.1 – 3.17.3 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | no | no |
-
| 3.17.0 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | no | no | no |
-
| 3.16.7 | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | no | no | no |
-
| 3.16.0 – 3.16.6 | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | no | no | no | no |
-
| 3.15.x | no | no | no | no | no | no | no | no | no | no | no | yes | yes | no | no | no | no | no |
-
| 3.9.x – 3.14.x | no | no | no | no | no | no | no | no | no | no | no | yes | no | no | no | no | no | no |
-
| 3.6.x – 3.8.x | no | no | no | no | no | no | no | no | no | yes | yes | no | no | no | no | no | no | no |
-
| 3.1.x – 3.5.x | no | no | no | no | no | no | no | no | no | yes | no | no | no | no | no | no | no | no |
-
| 3.0.x | no | no | no | no | no | no | no | no | yes | no | no | no | no | no | no | no | no | no |
+
|Version|0.63|0.64|0.65|0.66|0.67|0.68|0.69|0.70|0.71|0.72|0.73|0.74|0.75|0.76|0.77|0.78|0.79|0.80|
+
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
+
|3.18.0|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|yes|yes|
+
|3.17.4 - 3.17.5|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|yes|no|
+
|3.17.1 – 3.17.3|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|no|no|
+
|3.17.0|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|no|no|no|
+
|3.16.7|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|no|no|no|
+
|3.16.0 – 3.16.6|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|no|no|no|no|
+
|3.15.x|no|no|no|no|no|no|no|no|no|no|no|yes|yes|no|no|no|no|no|
+
|3.9.x – 3.14.x|no|no|no|no|no|no|no|no|no|no|no|yes|no|no|no|no|no|no|
+
|3.6.x – 3.8.x|no|no|no|no|no|no|no|no|no|yes|yes|no|no|no|no|no|no|no|
+
|3.1.x – 3.5.x|no|no|no|no|no|no|no|no|no|yes|no|no|no|no|no|no|no|no|
+
|3.0.x|no|no|no|no|no|no|no|no|yes|no|no|no|no|no|no|no|no|no|
## Animating Styles and Props
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## Contributing Guide for Reanimated
···
#### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
This table indicates that all predefined transitions are compatible across Android, iOS, and web platforms.
···
### Compatibility Summary
-
| Tool | Platform | JSC | Hermes | V8 |
-
| ------------------------- | -------- | ------ | ------ | ------ |
-
| Chrome Debugger | Android | ⚛️ ✅¹ | ⚛️ ✅¹ | ⚛️ ✅¹ |
-
| | iOS | ⚛️ ✅¹ | ⚛️ ✅¹ | N/A |
-
| Chrome DevTools | Android | N/A | ⚛️ ✅² | ⚛️ |
-
| | iOS | N/A | ⚛️ ✅² | N/A |
-
| Flipper (Hermes debugger) | Android | N/A | ⚛️ ✅² | ⚛️ |
-
| | iOS | N/A | ⚛️ ✅² | N/A |
-
| Safari DevTools | Android | N/A | N/A | N/A |
-
| | iOS | ⚛️ ✅ | N/A | N/A |
-
| React Developer Tools | Android | ⚛️ | ⚛️ | ⚛️ |
-
| | iOS | ⚛️ | ⚛️ | N/A |
+
|Tool|Platform|JSC|Hermes|V8|
+
|-|-|-|-|-|
+
|Chrome Debugger|Android|⚛️ ✅¹|⚛️ ✅¹|⚛️ ✅¹|
+
||iOS|⚛️ ✅¹|⚛️ ✅¹|N/A|
+
|Chrome DevTools|Android|N/A|⚛️ ✅²|⚛️|
+
||iOS|N/A|⚛️ ✅²|N/A|
+
|Flipper (Hermes debugger)|Android|N/A|⚛️ ✅²|⚛️|
+
||iOS|N/A|⚛️ ✅²|N/A|
+
|Safari DevTools|Android|N/A|N/A|N/A|
+
||iOS|⚛️ ✅|N/A|N/A|
+
|React Developer Tools|Android|⚛️|⚛️|⚛️|
+
||iOS|⚛️|⚛️|N/A|
¹ - Functions use web implementations, running worklets on the JS thread. Measure and Layout Animations are unavailable. ² - Experimental feature.
···
#### Chrome Debugger
-
| Platform | JSC | Hermes | V8 |
-
| -------- | ----- | ------ | ----- |
-
| Android | ⚛️ ✅ | ⚛️ ✅ | ⚛️ ✅ |
-
| iOS | ⚛️ ✅ | ⚛️ ✅ | N/A |
+
|Platform|JSC|Hermes|V8|
+
|-|-|-|-|
+
|Android|⚛️ ✅|⚛️ ✅|⚛️ ✅|
+
|iOS|⚛️ ✅|⚛️ ✅|N/A|
**Summary:** Functions use web implementations, running on the JS thread. Measure and Layout Animations are unavailable.
#### Chrome DevTools
-
| Platform | JSC | Hermes | V8 |
-
| -------- | --- | ------ | --- |
-
| Android | N/A | ⚛️ ✅² | ⚛️ |
-
| iOS | N/A | ⚛️ ✅² | N/A |
+
|Platform|JSC|Hermes|V8|
+
|-|-|-|-|
+
|Android|N/A|⚛️ ✅²|⚛️|
+
|iOS|N/A|⚛️ ✅²|N/A|
**Summary:** Both contexts can be debugged. This is an experimental feature.
#### Flipper (Hermes Debugger)
-
| Platform | JSC | Hermes | V8 |
-
| -------- | --- | ------ | --- |
-
| Android | N/A | ⚛️ ✅² | ⚛️ |
-
| iOS | N/A | ⚛️ ✅² | N/A |
+
|Platform|JSC|Hermes|V8|
+
|-|-|-|-|
+
|Android|N/A|⚛️ ✅²|⚛️|
+
|iOS|N/A|⚛️ ✅²|N/A|
**Summary:** Both contexts can be debugged. This is an experimental feature.
#### Safari DevTools
-
| Platform | JSC | Hermes | V8 |
-
| -------- | ----- | ------ | --- |
-
| Android | N/A | N/A | N/A |
-
| iOS | ⚛️ ✅ | N/A | N/A |
+
|Platform|JSC|Hermes|V8|
+
|-|-|-|-|
+
|Android|N/A|N/A|N/A|
+
|iOS|⚛️ ✅|N/A|N/A|
**Summary:** Available only on iOS devices with the JSC engine. Worklet debugging is supported.
#### React Developer Tools
-
| Platform | JSC | Hermes | V8 |
-
| -------- | --- | ------ | --- |
-
| Android | ⚛️ | ⚛️ | ⚛️ |
-
| iOS | ⚛️ | ⚛️ | N/A |
+
|Platform|JSC|Hermes|V8|
+
|-|-|-|-|
+
|Android|⚛️|⚛️|⚛️|
+
|iOS|⚛️|⚛️|N/A|
**Summary:** Functions as expected, with profiler and layout inspector available.
···
- **Known Issues:** Include reload failures, breakpoint issues on iOS, unresponsive consoles without animations, and more. These do not affect release builds or debug builds where the debugger is disconnected during a reload.
-
_Efforts are ongoing to enhance debugging experiences with Chrome DevTools and Flipper on Hermes._
+
*Efforts are ongoing to enhance debugging experiences with Chrome DevTools and Flipper on Hermes.*
## Incremental Migration from Reanimated 1 to Reanimated 2
···
## Getting Started
-
The _Fundamentals_ section aims to establish a solid understanding of the core concepts of Reanimated, empowering you to explore more complex scenarios independently. This section includes interactive examples, code snippets, and detailed explanations.
+
The *Fundamentals* section aims to establish a solid understanding of the core concepts of Reanimated, empowering you to explore more complex scenarios independently. This section includes interactive examples, code snippets, and detailed explanations.
### What is React Native Reanimated?
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ❌ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|❌|
## useAnimatedProps
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## React Native Reanimated: LayoutAnimationConfig (Version 3.x)
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ❌ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|❌|
- **Reference**
- Arguments
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
- **Example**
- **Remarks**
···
The configuration for timing animations. Available properties:
-
| Name | Type | Default | Description |
-
| --- | --- | --- | --- |
-
| duration | `number` | 300 | Length of the animation in milliseconds. |
-
| easing | `Easing` | `Easing.inOut(Easing.quad)` | An easing function defining the animation curve. |
-
| reduceMotion | `ReduceMotion` | `ReduceMotion.System` | Determines how the animation responds to reduced motion settings on devices. |
+
|Name|Type|Default|Description|
+
|-|-|-|-|
+
|duration|`number`|300|Length of the animation in milliseconds.|
+
|easing|`Easing`|`Easing.inOut(Easing.quad)`|An easing function defining the animation curve.|
+
|reduceMotion|`ReduceMotion`|`ReduceMotion.System`|Determines how the animation responds to reduced motion settings on devices.|
###### `Easing`
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## Getting Started
-
The _Fundamentals_ section aims to establish a solid understanding of the core concepts of Reanimated, empowering you to explore more complex scenarios independently. This section includes interactive examples, code snippets, and detailed explanations.
+
The *Fundamentals* section aims to establish a solid understanding of the core concepts of Reanimated, empowering you to explore more complex scenarios independently. This section includes interactive examples, code snippets, and detailed explanations.
### What is React Native Reanimated?
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
```markdown
# Overview
···
Unlike `withTiming`, `withSpring` is physics-based and simulates real-world spring dynamics, making animations appear more realistic.
-
When adjusting springs, focus on these three properties: `mass`, `stiffness` (also known as _tension_), and `damping` (also known as _friction_).
+
When adjusting springs, focus on these three properties: `mass`, `stiffness` (also known as *tension*), and `damping` (also known as *friction*).
```typescript
import { withSpring } from "react-native-reanimated"
···
**Physics-based Spring Configuration:**
-
| Name | Type | Default | Description |
-
| --- | --- | --- | --- |
-
| mass (optional) | `number` | 1 | The weight of the spring. Lower values make the animation faster. |
-
| damping (optional) | `number` | 10 | Controls how quickly a spring slows down; higher values result in quicker rest. |
+
|Name|Type|Default|Description|
+
|-|-|-|-|
+
|mass (optional)|`number`|1|The weight of the spring. Lower values make the animation faster.|
+
|damping (optional)|`number`|10|Controls how quickly a spring slows down; higher values result in quicker rest.|
**Duration-based Spring Configuration:**
-
| Name | Type | Default | Description |
-
| --- | --- | --- | --- |
-
| duration (optional) | `number` | 2000 | Length of the animation in milliseconds. Available in Reanimated ≥ 3.2.x. |
-
| dampingRatio (optional) | `number` | 0.5 | Determines how damped the spring is; `1` means critically damped, and values >1 mean overdamped. Available in Reanimated ≥ 3.2.x. |
+
|Name|Type|Default|Description|
+
|-|-|-|-|
+
|duration (optional)|`number`|2000|Length of the animation in milliseconds. Available in Reanimated ≥ 3.2.x.|
+
|dampingRatio (optional)|`number`|0.5|Determines how damped the spring is; `1` means critically damped, and values >1 mean overdamped. Available in Reanimated ≥ 3.2.x.|
**Note**: The `mass` and `damping` properties cannot be used simultaneously with `duration` and `dampingRatio`. When both are provided, `duration` and `dampingRatio` take precedence.
**Common Spring Configuration:**
-
| Name | Type | Default | Description |
-
| --- | --- | --- | --- |
-
| stiffness (optional) | `number` | 100 | Determines the bounciness of the spring. |
-
| velocity (optional) | `number` | 0 | Initial velocity applied to the spring equation. |
-
| overshootClamping (optional) | `boolean` | false | Prevents the spring from bouncing over the `toValue`. |
-
| restDisplacementThreshold (optional) | `number` | 0.01 | Displacement below which the spring will settle at `toValue`. |
-
| restSpeedThreshold (optional) | `number` | 2 | Speed threshold in pixels per second for settling at `toValue`. |
-
| reduceMotion (optional) | `ReduceMotion` | `ReduceMotion.System` | Determines animation response to reduced motion settings. Available in Reanimated ≥ 3.5.x. |
-
| clamp (optional) | `[number, number]` | `undefined` | Limits the movement scope; reduces bounciness if exceeded. Available in Reanimated ≥ 3.6.x. |
+
|Name|Type|Default|Description|
+
|-|-|-|-|
+
|stiffness (optional)|`number`|100|Determines the bounciness of the spring.|
+
|velocity (optional)|`number`|0|Initial velocity applied to the spring equation.|
+
|overshootClamping (optional)|`boolean`|false|Prevents the spring from bouncing over the `toValue`.|
+
|restDisplacementThreshold (optional)|`number`|0.01|Displacement below which the spring will settle at `toValue`.|
+
|restSpeedThreshold (optional)|`number`|2|Speed threshold in pixels per second for settling at `toValue`.|
+
|reduceMotion (optional)|`ReduceMotion`|`ReduceMotion.System`|Determines animation response to reduced motion settings. Available in Reanimated ≥ 3.5.x.|
+
|clamp (optional)|`[number, number]`|`undefined`|Limits the movement scope; reduces bounciness if exceeded. Available in Reanimated ≥ 3.6.x.|
##### `callback` (Optional)
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## useAnimatedRef
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## createWorkletRuntime
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## Run On JS
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## runOnUI
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## Your First Animation
···
Configuration for the decay animation. The following properties are available:
-
| Name | Type | Default | Description |
-
| --- | --- | --- | --- |
-
| `velocity` (optional) | `number` | 0 | Initial velocity of the animation. |
-
| `deceleration` (optional) | `number` | 0.998 | Rate at which the velocity decreases over time. |
-
| `clamp` (optional)\* | `[number, number]` | \[] | Array specifying bounds to restrict the animation's range. The animation stops when either bound is reached unless `rubberBandEffect` is set to `true`. \*Required if `rubberBandEffect` is enabled. |
-
| `velocityFactor` (optional) | `number` | 1 | Multiplier for velocity. |
-
| `rubberBandEffect` (optional) | `boolean` | false | Enables bouncing over the limit specified in `clamp`. |
-
| `rubberBandFactor` (optional) | `number` | 0.6 | Determines the strength of the rubber band effect. |
-
| `reduceMotion` (optional) | `ReduceMotion` | `ReduceMotion.System` | Controls how the animation responds to the device's reduced motion accessibility setting. |
+
|Name|Type|Default|Description|
+
|-|-|-|-|
+
|`velocity` (optional)|`number`|0|Initial velocity of the animation.|
+
|`deceleration` (optional)|`number`|0.998|Rate at which the velocity decreases over time.|
+
|`clamp` (optional)\*|`[number, number]`|\[]|Array specifying bounds to restrict the animation's range. The animation stops when either bound is reached unless `rubberBandEffect` is set to `true`. \*Required if `rubberBandEffect` is enabled.|
+
|`velocityFactor` (optional)|`number`|1|Multiplier for velocity.|
+
|`rubberBandEffect` (optional)|`boolean`|false|Enables bouncing over the limit specified in `clamp`.|
+
|`rubberBandFactor` (optional)|`number`|0.6|Determines the strength of the rubber band effect.|
+
|`reduceMotion` (optional)|`ReduceMotion`|`ReduceMotion.System`|Controls how the animation responds to the device's reduced motion accessibility setting.|
##### `callback` (Optional)
···
### Example
-
_Note: An example section is mentioned but not provided in the original content._
+
*Note: An example section is mentioned but not provided in the original content.*
### Remarks
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## createAnimatedComponent
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## runOnRuntime
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ❌ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|❌|
## Canceling Animations with `cancelAnimation`
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
This function is compatible across Android, iOS, and web platforms.
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ❌ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|❌|
```markdown
# `useAnimatedGestureHandler`
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
## Clamp Function in React Native Reanimated
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
This function is compatible across Android, iOS, and Web platforms.
···
- **`output`**: An array of color strings (e.g., `'red'`, `'#ff0000'`, `'rgba(255, 0, 0, 0.5)'`) that define the output colors. It must have at least as many points as the input range.
-
- **`colorSpace`** _(Optional)_: Specifies the color space for interpolation, either `'HSV'` or `'RGB'`. Defaults to `'RGB'`.
+
- **`colorSpace`** *(Optional)*: Specifies the color space for interpolation, either `'HSV'` or `'RGB'`. Defaults to `'RGB'`.
-
- **`options`** _(Optional)_: Additional parameters for color interpolation:
+
- **`options`** *(Optional)*: Additional parameters for color interpolation:
-
| Options | Type | Default | Description |
-
| --- | --- | --- | --- |
-
| `gamma` | `number` | 2.2 | Gamma parameter used in gamma correction. |
-
| `useCorrectedHSVInterpolation` | `boolean` | true | Reduces the number of hues during interpolation by treating HSV as circular. |
+
|Options|Type|Default|Description|
+
|-|-|-|-|
+
|`gamma`|`number`|2.2|Gamma parameter used in gamma correction.|
+
|`useCorrectedHSVInterpolation`|`boolean`|true|Reduces the number of hues during interpolation by treating HSV as circular.|
#### Options Explanation
···
### Platform Compatibility
-
| Android | iOS | Web |
-
| ------- | --- | --- |
-
| ✅ | ✅ | ✅ |
+
|Android|iOS|Web|
+
|-|-|-|
+
|✅|✅|✅|
This function is versatile and compatible across major platforms, making it ideal for cross-platform applications.
+737 -737
out/llms-full-react-native.txt
···
Menu paths are presented in bold and utilize carets for navigating submenus. Example: **Android Studio > Preferences**
-
---
+
***
With an understanding of how to navigate these guides, it's time to explore the foundation of React Native: Native Components.
···
Certain URL schemes are universally recognized across platforms:
-
| Scheme | Description | iOS | Android |
-
| --- | --- | --- | --- |
-
| `mailto` | Opens mail app, e.g., `mailto:support@expo.io` | ✅ | ✅ |
-
| `tel` | Opens phone app, e.g., `tel:+123456789` | ✅ | ✅ |
-
| `sms` | Opens SMS app, e.g., `sms:+123456789` | ✅ | ✅ |
-
| `https` / `http` | Opens web browser app, e.g., `https://expo.io` | ✅ | ✅ |
+
|Scheme|Description|iOS|Android|
+
|-|-|-|-|
+
|`mailto`|Opens mail app, e.g., `mailto:support@expo.io`|✅|✅|
+
|`tel`|Opens phone app, e.g., `tel:+123456789`|✅|✅|
+
|`sms`|Opens SMS app, e.g., `sms:+123456789`|✅|✅|
+
|`https` / `http`|Opens web browser app, e.g., `https://expo.io`|✅|✅|
### Enabling Deep Links
···
### Props
-
| Prop Name | Description | Type | Required |
-
| --- | --- | --- | --- |
-
| **`onPress`** | Handler called when the user taps the button. | `({nativeEvent: PressEvent})` | Yes |
-
| **`title`** | Text displayed inside the button. On Android, this title is converted to uppercase. | string | Yes |
-
| `accessibilityLabel` | Text for blindness accessibility features. | string | No |
-
| `accessibilityLanguage` | Language used by screen readers on iOS, following BCP 47 specification. | string | No |
-
| `accessibilityActions` | List of actions for assistive technologies to invoke programmatically. | array | No |
-
| `onAccessibilityAction` | Invoked when an accessibility action is performed by the user. | function | No |
-
| `color` | Text color on iOS, background color on Android. | color | No |
-
| | Default: | | |
-
| | - Android: `'#2196F3'` | | |
-
| | - iOS: `'#007AFF'` | | |
-
| `disabled` | Disables all interactions if set to true. | bool | No |
-
| | Default: | | |
-
| | - false | | |
-
| `hasTVPreferredFocus` | Indicates TV preferred focus. | bool | No |
-
| | Default: | | |
-
| | - false | | |
-
| `nextFocusDown` | Next view to receive focus when navigating down on Android TV. | number | No |
-
| `nextFocusForward` | Next view to receive focus when navigating forward on Android TV. | number | No |
-
| `nextFocusLeft` | Next view to receive focus when navigating left on Android TV. | number | No |
-
| `nextFocusRight` | Next view to receive focus when navigating right on Android TV. | number | No |
-
| `nextFocusUp` | Next view to receive focus when navigating up on Android TV. | number | No |
-
| `testID` | Identifier for locating this view in end-to-end tests. | string | No |
-
| `touchSoundDisabled` | Disables system sound on touch if set to true (Android only). | boolean | No |
-
| | Default: | | |
-
| | - false | | |
+
|Prop Name|Description|Type|Required|
+
|-|-|-|-|
+
|**`onPress`**|Handler called when the user taps the button.|`({nativeEvent: PressEvent})`|Yes|
+
|**`title`**|Text displayed inside the button. On Android, this title is converted to uppercase.|string|Yes|
+
|`accessibilityLabel`|Text for blindness accessibility features.|string|No|
+
|`accessibilityLanguage`|Language used by screen readers on iOS, following BCP 47 specification.|string|No|
+
|`accessibilityActions`|List of actions for assistive technologies to invoke programmatically.|array|No|
+
|`onAccessibilityAction`|Invoked when an accessibility action is performed by the user.|function|No|
+
|`color`|Text color on iOS, background color on Android.|color|No|
+
||Default:|||
+
||- Android: `'#2196F3'`|||
+
||- iOS: `'#007AFF'`|||
+
|`disabled`|Disables all interactions if set to true.|bool|No|
+
||Default:|||
+
||- false|||
+
|`hasTVPreferredFocus`|Indicates TV preferred focus.|bool|No|
+
||Default:|||
+
||- false|||
+
|`nextFocusDown`|Next view to receive focus when navigating down on Android TV.|number|No|
+
|`nextFocusForward`|Next view to receive focus when navigating forward on Android TV.|number|No|
+
|`nextFocusLeft`|Next view to receive focus when navigating left on Android TV.|number|No|
+
|`nextFocusRight`|Next view to receive focus when navigating right on Android TV.|number|No|
+
|`nextFocusUp`|Next view to receive focus when navigating up on Android TV.|number|No|
+
|`testID`|Identifier for locating this view in end-to-end tests.|string|No|
+
|`touchSoundDisabled`|Disables system sound on touch if set to true (Android only).|boolean|No|
+
||Default:|||
+
||- false|||
This table summarizes the properties available for the Button component, detailing their purpose and default values where applicable.
···
**Parameters:**
-
| Name | Type | Description |
-
| -------------- | ------ | ----------- |
-
| configRequired | object | Refer below |
+
|Name|Type|Description|
+
|-|-|-|
+
|configRequired|object|Refer below|
The `config` object provides enhanced versions of all responder callbacks, including the `PanResponder` gesture state. Replace `onResponder*` with `onPanResponder*`. For example:
···
- Click "Apply" to install.
-
#### 3. Configure the ANDROID_HOME Environment Variable
+
#### 3. Configure the ANDROID\_HOME Environment Variable
Set up necessary environment variables for React Native tools:
···
### Example Usage
-
_Example section would typically include a demonstration of how to implement the `<ImageBackground>` component._
+
*Example section would typically include a demonstration of how to implement the `<ImageBackground>` component.*
### Reference
-
_Reference section would provide additional resources or links for further information about the `<ImageBackground>` component._
+
*Reference section would provide additional resources or links for further information about the `<ImageBackground>` component.*
### Props
···
### Example
-
---
+
***
### Reference
···
Inherits properties from the View component.
-
---
+
***
#### `behavior`
Defines how the view should respond to the presence of the keyboard. Note that Android and iOS handle this prop differently, but setting `behavior` is recommended for both platforms.
-
| Type |
-
| ------------------------------------------- |
-
| enum(`'height'`, `'position'`, `'padding'`) |
+
|Type|
+
|-|
+
|enum(`'height'`, `'position'`, `'padding'`)|
-
---
+
***
#### `contentContainerStyle`
Specifies the style applied to the content container (View) when the behavior is set to `'position'`.
-
| Type |
-
| ---------- |
-
| View Style |
+
|Type|
+
|-|
+
|View Style|
-
---
+
***
#### `enabled`
Determines whether the `KeyboardAvoidingView` is active or inactive.
-
| Type | Default |
-
| ------- | ------- |
-
| boolean | `true` |
+
|Type|Default|
+
|-|-|
+
|boolean|`true`|
-
---
+
***
#### `keyboardVerticalOffset`
Represents the distance between the top of the user's screen and the React Native view. This value may be non-zero in certain scenarios.
-
| Type | Default |
-
| ------ | ------- |
-
| number | `0` |
+
|Type|Default|
+
|-|-|
+
|number|`0`|
## Modal Component
···
### Example
-
---
+
***
### Reference
···
Inherits properties from the View component.
-
---
+
***
#### `animationType`
···
- `fade`: Fades into view.
- `none`: Appears without any animation.
-
| Type | Default |
-
| ----------------------------------- | ------- |
-
| enum(`'none'`, `'slide'`, `'fade'`) | `none` |
+
|Type|Default|
+
|-|-|
+
|enum(`'none'`, `'slide'`, `'fade'`)|`none`|
-
---
+
***
#### `backdropColor`
Sets the background color of the modal's container. Defaults to `white` unless `transparent` is set to `true`.
-
| Type | Default |
-
| ----- | ------- |
-
| color | white |
+
|Type|Default|
+
|-|-|
+
|color|white|
-
---
+
***
#### `hardwareAccelerated` (Android)
Determines if hardware acceleration should be forced for the underlying window.
-
| Type | Default |
-
| ---- | ------- |
-
| bool | `false` |
+
|Type|Default|
+
|-|-|
+
|bool|`false`|
-
---
+
***
#### `navigationBarTranslucent` (Android)
Decides whether the modal appears under the system navigation bar. Requires `statusBarTranslucent` to also be `true`.
-
| Type | Default |
-
| ---- | ------- |
-
| bool | `false` |
+
|Type|Default|
+
|-|-|
+
|bool|`false`|
-
---
+
***
#### `onDismiss` (iOS)
Allows a function to be called when the modal is dismissed.
-
| Type |
-
| -------- |
-
| function |
+
|Type|
+
|-|
+
|function|
-
---
+
***
#### `onOrientationChange` (iOS)
Triggered when the orientation changes while the modal is displayed. The callback provides 'portrait' or 'landscape'. It also fires on initial render, regardless of current orientation.
-
| Type |
-
| -------- |
-
| function |
+
|Type|
+
|-|
+
|function|
-
---
+
***
#### `onRequestClose`
Invoked when the user presses the hardware back button on Android or the menu button on Apple TV. Note that `BackHandler` events are suppressed while the modal is open. On iOS, it's called during a drag gesture dismissal with `presentationStyle` set to `pageSheet` or `formSheet`.
-
| Type |
-
| ------------------------------------------ |
-
| functionRequiredAndroidTV\*\*\*functioniOS |
+
|Type|
+
|-|
+
|functionRequiredAndroidTV\*\*\*functioniOS|
-
---
+
***
#### `onShow`
Allows a function to be executed once the modal is displayed.
-
| Type |
-
| -------- |
-
| function |
+
|Type|
+
|-|
+
|function|
-
---
+
***
#### `presentationStyle` (iOS)
···
- `formSheet`: Centers a narrow-width view (on larger devices).
- `overFullScreen`: Covers the screen completely but allows transparency.
-
| Type | Default |
-
| --- | --- |
-
| enum(`'fullScreen'`, `'pageSheet'`, `'formSheet'`, `'overFullScreen'`) | `fullScreen` if `transparent={false}`\*\*\*`overFullScreen` if `transparent={true}` |
+
|Type|Default|
+
|-|-|
+
|enum(`'fullScreen'`, `'pageSheet'`, `'formSheet'`, `'overFullScreen'`)|`fullScreen` if `transparent={false}`\*\*\*`overFullScreen` if `transparent={true}`|
-
---
+
***
#### `statusBarTranslucent` (Android)
Determines whether the modal appears under the system status bar.
-
| Type | Default |
-
| ---- | ------- |
-
| bool | `false` |
+
|Type|Default|
+
|-|-|
+
|bool|`false`|
-
---
+
***
#### `supportedOrientations` (iOS)
···
> Ignored when using `presentationStyle` of `pageSheet` or `formSheet`.
-
| Type | Default |
-
| --- | --- |
-
| array of enums(`'portrait'`, `'portrait-upside-down'`, `'landscape'`, `'landscape-left'`, `'landscape-right'`) | `['portrait']` |
+
|Type|Default|
+
|-|-|
+
|array of enums(`'portrait'`, `'portrait-upside-down'`, `'landscape'`, `'landscape-left'`, `'landscape-right'`)|`['portrait']`|
-
---
+
***
#### `transparent`
Determines if the modal will cover the entire view with a transparent background.
-
| Type | Default |
-
| ---- | ------- |
-
| bool | `false` |
+
|Type|Default|
+
|-|-|
+
|bool|`false`|
-
---
+
***
#### `visible`
Controls whether the modal is visible or not.
-
| Type | Default |
-
| ---- | ------- |
-
| bool | `true` |
+
|Type|Default|
+
|-|-|
+
|bool|`true`|
To integrate React Native into an existing iOS application, follow these steps carefully. This guide assumes you have a basic understanding of both iOS development using Xcode and JavaScript/React Native.
···
Configuration object for the `android_ripple` property.
-
| Name | Type | Required | Description |
-
| --- | --- | --- | --- |
-
| color | color | No | Defines the color of the ripple effect. |
-
| borderless | boolean | No | Determines if the ripple effect should exclude borders. |
-
| radius | number | No | Sets the radius of the ripple effect. |
-
| foreground | boolean | No | If true, adds the ripple effect to the view's foreground instead of the background. Useful when child views have their own backgrounds or images are displayed, preventing the ripple from being obscured. |
+
|Name|Type|Required|Description|
+
|-|-|-|-|
+
|color|color|No|Defines the color of the ripple effect.|
+
|borderless|boolean|No|Determines if the ripple effect should exclude borders.|
+
|radius|number|No|Sets the radius of the ripple effect.|
+
|foreground|boolean|No|If true, adds the ripple effect to the view's foreground instead of the background. Useful when child views have their own backgrounds or images are displayed, preventing the ripple from being obscured.|
## RefreshControl Component
···
Support for TV devices, specifically Apple TV and Android TV, was integrated into React Native applications with the goal of enabling these apps to function on such platforms with minimal modifications required in their JavaScript code.
-
> **Deprecated Notice:** The support for TV devices has been transitioned to a separate repository named "React Native for TV." For detailed guidance on projects targeting Apple TV or Android TV, please refer to the _README_ file within that repository.
+
> **Deprecated Notice:** The support for TV devices has been transitioned to a separate repository named "React Native for TV." For detailed guidance on projects targeting Apple TV or Android TV, please refer to the *README* file within that repository.
The provided documentation outlines various properties and methods associated with a ScrollView component, likely from a mobile development framework such as React Native. Below is a summary of the key features:
···
### Props
-
| Prop Name | Type | Required | Default | Description |
-
| --- | --- | --- | --- | --- |
-
| `animated` | boolean | No | `false` | Determines if transitions between status bar property changes should be animated. Supported for `backgroundColor`, `barStyle`, and `hidden`. |
-
| `backgroundColor` (Android) | color | No | Default system StatusBar background color or `'black'` if not defined | The background color of the status bar. **Warning:** Deprecated in API level 35 due to edge-to-edge enforcement introduced in Android 15. |
-
| `barStyle` | StatusBarStyle | No | `'default'` | Sets the color of the status bar text. On Android, this affects only API versions 23 and above. |
-
| `hidden` | boolean | No | `false` | Determines if the status bar is hidden. |
-
| `networkActivityIndicatorVisible` (iOS) | boolean | No | `false` | Controls visibility of the network activity indicator. |
-
| `showHideTransition` (iOS) | StatusBarAnimation | No | `'fade'` | The transition effect when showing or hiding the status bar using the `hidden` prop. |
-
| `translucent` (Android) | boolean | No | `false` | Determines if the status bar is translucent, allowing the app to draw under it. Useful with a semi-transparent status bar color. |
+
|Prop Name|Type|Required|Default|Description|
+
|-|-|-|-|-|
+
|`animated`|boolean|No|`false`|Determines if transitions between status bar property changes should be animated. Supported for `backgroundColor`, `barStyle`, and `hidden`.|
+
|`backgroundColor` (Android)|color|No|Default system StatusBar background color or `'black'` if not defined|The background color of the status bar. **Warning:** Deprecated in API level 35 due to edge-to-edge enforcement introduced in Android 15.|
+
|`barStyle`|StatusBarStyle|No|`'default'`|Sets the color of the status bar text. On Android, this affects only API versions 23 and above.|
+
|`hidden`|boolean|No|`false`|Determines if the status bar is hidden.|
+
|`networkActivityIndicatorVisible` (iOS)|boolean|No|`false`|Controls visibility of the network activity indicator.|
+
|`showHideTransition` (iOS)|StatusBarAnimation|No|`'fade'`|The transition effect when showing or hiding the status bar using the `hidden` prop.|
+
|`translucent` (Android)|boolean|No|`false`|Determines if the status bar is translucent, allowing the app to draw under it. Useful with a semi-transparent status bar color.|
### Methods
···
**Parameters:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| **entry (Required)** | any | Entry returned from `pushStackEntry` to replace. |
-
| **props (Required)** | any | Object containing the `StatusBar` props for the replacement stack entry. |
+
|Name|Type|Description|
+
|-|-|-|
+
|**entry (Required)**|any|Entry returned from `pushStackEntry` to replace.|
+
|**props (Required)**|any|Object containing the `StatusBar` props for the replacement stack entry.|
#### `setBackgroundColor()` (Android)
···
**Parameters:**
-
| Name | Type | Description |
-
| -------------------- | ------- | ------------------------- |
-
| **color (Required)** | string | Background color. |
-
| animated | boolean | Animate the style change. |
+
|Name|Type|Description|
+
|-|-|-|
+
|**color (Required)**|string|Background color.|
+
|animated|boolean|Animate the style change.|
#### `setBarStyle()`
···
**Parameters:**
-
| Name | Type | Description |
-
| -------------------- | -------------- | ------------------------- |
-
| **style (Required)** | StatusBarStyle | Status bar style to set. |
-
| animated | boolean | Animate the style change. |
+
|Name|Type|Description|
+
|-|-|-|
+
|**style (Required)**|StatusBarStyle|Status bar style to set.|
+
|animated|boolean|Animate the style change.|
#### `setHidden()`
···
**Parameters:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| **hidden (Required)** | boolean | Hide the status bar. |
-
| animation (iOS) | StatusBarAnimation | Animation when changing the hidden property of the status bar. |
+
|Name|Type|Description|
+
|-|-|-|
+
|**hidden (Required)**|boolean|Hide the status bar.|
+
|animation (iOS)|StatusBarAnimation|Animation when changing the hidden property of the status bar.|
#### `setNetworkActivityIndicatorVisible()` (iOS)
···
Enum representing the status bar animation type for transitions on iOS.
-
| Value | Type | Description |
-
| --------- | ------ | ---------------- |
-
| `'fade'` | string | Fade animation. |
-
| `'slide'` | string | Slide animation. |
-
| `'none'` | string | No animation. |
+
|Value|Type|Description|
+
|-|-|-|
+
|`'fade'`|string|Fade animation.|
+
|`'slide'`|string|Slide animation.|
+
|`'none'`|string|No animation.|
#### StatusBarStyle
Enum representing the status bar style type.
-
| Value | Type | Description |
-
| --- | --- | --- |
-
| `'default'` | string | Default status bar style (dark for iOS, light for Android). |
-
| `'light-content'` | string | White texts and icons. |
-
| `'dark-content'` | string | Dark texts and icons (requires API>=23 on Android). |
+
|Value|Type|Description|
+
|-|-|-|
+
|`'default'`|string|Default status bar style (dark for iOS, light for Android).|
+
|`'light-content'`|string|White texts and icons.|
+
|`'dark-content'`|string|Dark texts and icons (requires API>=23 on Android).|
## Enabling USB Debugging on Android Devices
···
### Example
-
_Example usage of the Switch component is not provided here._
+
*Example usage of the Switch component is not provided here.*
### Reference
-
_Reference details for the Switch component are not included here._
+
*Reference details for the Switch component are not included here.*
### Props
···
#### `trackColor`
- **Description**: Defines custom colors for the switch track.
-
- _iOS_: When the switch is off (`false`), the track contracts into its border. To modify the color of the background revealed by this contracted track, use `ios_backgroundColor`.
+
- *iOS*: When the switch is off (`false`), the track contracts into its border. To modify the color of the background revealed by this contracted track, use `ios_backgroundColor`.
- **Type**: `object: { false: color, true: color }`
#### `value`
···
##### Specific to TouchableHighlight
-
| Prop Name | Description | Type |
-
| --- | --- | --- |
-
| `activeOpacity` | Sets the opacity of the wrapped view during touch interaction. Must be between 0 and 1. Defaults to 0.85. Requires `underlayColor`. | number |
-
| `onHideUnderlay` | Called immediately after the underlay is hidden. | function |
-
| `onShowUnderlay` | Called immediately after the underlay is shown. | function |
-
| `style` | Style properties for the view. | View\.style |
-
| `underlayColor` | The color of the underlay that appears when touch is active. | color |
+
|Prop Name|Description|Type|
+
|-|-|-|
+
|`activeOpacity`|Sets the opacity of the wrapped view during touch interaction. Must be between 0 and 1. Defaults to 0.85. Requires `underlayColor`.|number|
+
|`onHideUnderlay`|Called immediately after the underlay is hidden.|function|
+
|`onShowUnderlay`|Called immediately after the underlay is shown.|function|
+
|`style`|Style properties for the view.|View\.style|
+
|`underlayColor`|The color of the underlay that appears when touch is active.|color|
##### iOS Specific Props
-
- **hasTVPreferredFocus**: _(Apple TV only)_ Indicates TV preferred focus (refer to the View component documentation).
+
- **hasTVPreferredFocus**: *(Apple TV only)* Indicates TV preferred focus (refer to the View component documentation).
- Type: bool
##### Android Specific Props
···
##### Testing Prop
-
- **testOnly_pressed**: Useful for snapshot tests.
+
- **testOnly\_pressed**: Useful for snapshot tests.
- Type: bool
## TouchableOpacity Component
···
### Props
-
| Prop Name | Description | Type |
-
| --- | --- | --- |
-
| `accessibilityIgnoresInvertColors` (iOS) | Indicates whether the view should be inverted when color inversion is enabled. A value of `true` prevents inversion even if color inversion is turned on. See the Accessibility guide for more information. | Boolean |
-
| `accessible` | When set to `true`, marks the view as an accessibility element. By default, all touchable elements are accessible. | bool |
-
| `accessibilityLabel` | Overrides the text read by screen readers when interacting with the element. By default, it is constructed from all child `Text` nodes separated by spaces. | string |
-
| `accessibilityLanguage` (iOS) | Specifies the language used by the screen reader for this element, following the BCP 47 specification. See the iOS `accessibilityLanguage` documentation for more information. | string |
-
| `accessibilityHint` | Provides a hint to help users understand what will happen when they perform an action on the accessibility element if it's not clear from the label. | string |
-
| `accessibilityRole` | Communicates the purpose of a component to assistive technology users. Possible values include `'none'`, `'button'`, `'link'`, `'search'`, `'image'`, `'keyboardkey'`, `'text'`, `'adjustable'`, and more. | string |
-
| `accessibilityState` | Describes the current state of a component to assistive technology users. See the Accessibility guide for more information. | object: `{disabled, selected, checked, busy, expanded}` |
-
| `accessibilityActions` | Allows assistive technologies to programmatically invoke actions on a component. Each action should include a name and label. See the Accessibility guide for more details. | array |
-
| `aria-busy` | Indicates that an element is being modified and assistive technologies may want to wait until changes are complete before notifying the user. | boolean |
-
| `aria-checked` | Represents the state of a checkable element, which can be either a boolean or `'mixed'`. | boolean, 'mixed' |
-
| `aria-disabled` | Indicates that an element is perceivable but disabled and not editable or operable. | boolean |
-
| `aria-expanded` | Shows whether an expandable element is currently expanded or collapsed. | boolean |
-
| `aria-hidden` | Specifies if the accessibility elements within this element are hidden, affecting how assistive technologies like VoiceOver interact with sibling views. | boolean |
-
| `aria-label` | Provides a string value that labels an interactive element. | string |
-
| `aria-live` (Android) | Indicates updates to an element and describes the types of updates expected by user agents, assistive technologies, and users. Options include `'assertive'`, `'off'`, and `'polite'`. | enum: `'assertive'`, `'off'`, `'polite'` |
-
| `aria-modal` (iOS) | Boolean indicating whether VoiceOver should ignore sibling elements within views. Takes precedence over the `accessibilityViewIsModal` prop. | boolean |
-
| `aria-selected` | Indicates if a selectable element is currently selected. | boolean |
-
| `onAccessibilityAction` | Invoked when an accessibility action is performed by the user. The function receives an event containing the name of the action to perform. See the Accessibility guide for more information. | function |
-
| `accessibilityValue` | Represents a component's current value, either as a textual description or range information (min, max, now) for components like sliders and progress bars. | object: `{min, max, now, text}` |
-
| `aria-valuemax` | Specifies the maximum value for range-based components, taking precedence over the `max` value in the `accessibilityValue` prop. | number |
-
| `aria-valuemin` | Specifies the minimum value for range-based components, taking precedence over the `min` value in the `accessibilityValue` prop. | number |
-
| `aria-valuenow` | Represents the current value for range-based components, taking precedence over the `now` value in the `accessibilityValue` prop. | number |
-
| `aria-valuetext` | Provides a textual description of the component's value, taking precedence over the `text` value in the `accessibilityValue` prop. | string |
-
| `delayLongPress` | Duration (in milliseconds) from `onPressIn` before `onLongPress` is called. | number |
-
| `delayPressIn` | Duration (in milliseconds) from the start of a touch until `onPressIn` is invoked. | number |
-
| `delayPressOut` | Duration (in milliseconds) after releasing a touch before `onPressOut` is called. | number |
-
| `disabled` | If set to true, disables all interactions for this component. | bool |
-
| `hitSlop` | Defines how far from the button a touch can start. This value is added to `pressRetentionOffset` when moving off of the button. The touch area does not extend past parent view bounds and sibling views with higher Z-index take precedence if overlapping. | Rect or number |
-
| `id` | Used to locate this view from native code, taking precedence over the `nativeID` prop. | string |
-
| `onBlur` | Invoked when the item loses focus. | function |
-
| `onFocus` | Invoked when the item receives focus. | function |
-
| `onLayout` | Called on mount and during layout changes. | `({nativeEvent: LayoutEvent}) => void` |
-
| `onLongPress` | Triggered if the time after `onPressIn` exceeds 370 milliseconds, customizable with `delayLongPress`. | function |
-
| `onPress` | Called when a touch is released unless cancelled (e.g., by a scroll that steals the responder lock). The first argument is an event in form of PressEvent. | function |
-
| `onPressIn` | Invoked as soon as the touchable element is pressed, even before `onPress`. Useful for tasks like network requests. The first argument is an event in form of PressEvent. | function |
-
| `onPressOut` | Called immediately after a touch is released, prior to `onPress`. The first argument is an event in form of PressEvent. | function |
-
| `pressRetentionOffset` | Defines how far a touch may move off the button before deactivating it when the scroll view is disabled. Re-activation occurs upon moving back over the button. Pass a constant to reduce memory allocations. | Rect or number |
-
| `nativeID` | | string |
-
| `testID` | Used to locate this view in end-to-end tests. | string |
-
| `touchSoundDisabled` (Android) | If set to true, prevents the system sound from playing on touch. | Boolean |
+
|Prop Name|Description|Type|
+
|-|-|-|
+
|`accessibilityIgnoresInvertColors` (iOS)|Indicates whether the view should be inverted when color inversion is enabled. A value of `true` prevents inversion even if color inversion is turned on. See the Accessibility guide for more information.|Boolean|
+
|`accessible`|When set to `true`, marks the view as an accessibility element. By default, all touchable elements are accessible.|bool|
+
|`accessibilityLabel`|Overrides the text read by screen readers when interacting with the element. By default, it is constructed from all child `Text` nodes separated by spaces.|string|
+
|`accessibilityLanguage` (iOS)|Specifies the language used by the screen reader for this element, following the BCP 47 specification. See the iOS `accessibilityLanguage` documentation for more information.|string|
+
|`accessibilityHint`|Provides a hint to help users understand what will happen when they perform an action on the accessibility element if it's not clear from the label.|string|
+
|`accessibilityRole`|Communicates the purpose of a component to assistive technology users. Possible values include `'none'`, `'button'`, `'link'`, `'search'`, `'image'`, `'keyboardkey'`, `'text'`, `'adjustable'`, and more.|string|
+
|`accessibilityState`|Describes the current state of a component to assistive technology users. See the Accessibility guide for more information.|object: `{disabled, selected, checked, busy, expanded}`|
+
|`accessibilityActions`|Allows assistive technologies to programmatically invoke actions on a component. Each action should include a name and label. See the Accessibility guide for more details.|array|
+
|`aria-busy`|Indicates that an element is being modified and assistive technologies may want to wait until changes are complete before notifying the user.|boolean|
+
|`aria-checked`|Represents the state of a checkable element, which can be either a boolean or `'mixed'`.|boolean, 'mixed'|
+
|`aria-disabled`|Indicates that an element is perceivable but disabled and not editable or operable.|boolean|
+
|`aria-expanded`|Shows whether an expandable element is currently expanded or collapsed.|boolean|
+
|`aria-hidden`|Specifies if the accessibility elements within this element are hidden, affecting how assistive technologies like VoiceOver interact with sibling views.|boolean|
+
|`aria-label`|Provides a string value that labels an interactive element.|string|
+
|`aria-live` (Android)|Indicates updates to an element and describes the types of updates expected by user agents, assistive technologies, and users. Options include `'assertive'`, `'off'`, and `'polite'`.|enum: `'assertive'`, `'off'`, `'polite'`|
+
|`aria-modal` (iOS)|Boolean indicating whether VoiceOver should ignore sibling elements within views. Takes precedence over the `accessibilityViewIsModal` prop.|boolean|
+
|`aria-selected`|Indicates if a selectable element is currently selected.|boolean|
+
|`onAccessibilityAction`|Invoked when an accessibility action is performed by the user. The function receives an event containing the name of the action to perform. See the Accessibility guide for more information.|function|
+
|`accessibilityValue`|Represents a component's current value, either as a textual description or range information (min, max, now) for components like sliders and progress bars.|object: `{min, max, now, text}`|
+
|`aria-valuemax`|Specifies the maximum value for range-based components, taking precedence over the `max` value in the `accessibilityValue` prop.|number|
+
|`aria-valuemin`|Specifies the minimum value for range-based components, taking precedence over the `min` value in the `accessibilityValue` prop.|number|
+
|`aria-valuenow`|Represents the current value for range-based components, taking precedence over the `now` value in the `accessibilityValue` prop.|number|
+
|`aria-valuetext`|Provides a textual description of the component's value, taking precedence over the `text` value in the `accessibilityValue` prop.|string|
+
|`delayLongPress`|Duration (in milliseconds) from `onPressIn` before `onLongPress` is called.|number|
+
|`delayPressIn`|Duration (in milliseconds) from the start of a touch until `onPressIn` is invoked.|number|
+
|`delayPressOut`|Duration (in milliseconds) after releasing a touch before `onPressOut` is called.|number|
+
|`disabled`|If set to true, disables all interactions for this component.|bool|
+
|`hitSlop`|Defines how far from the button a touch can start. This value is added to `pressRetentionOffset` when moving off of the button. The touch area does not extend past parent view bounds and sibling views with higher Z-index take precedence if overlapping.|Rect or number|
+
|`id`|Used to locate this view from native code, taking precedence over the `nativeID` prop.|string|
+
|`onBlur`|Invoked when the item loses focus.|function|
+
|`onFocus`|Invoked when the item receives focus.|function|
+
|`onLayout`|Called on mount and during layout changes.|`({nativeEvent: LayoutEvent}) => void`|
+
|`onLongPress`|Triggered if the time after `onPressIn` exceeds 370 milliseconds, customizable with `delayLongPress`.|function|
+
|`onPress`|Called when a touch is released unless cancelled (e.g., by a scroll that steals the responder lock). The first argument is an event in form of PressEvent.|function|
+
|`onPressIn`|Invoked as soon as the touchable element is pressed, even before `onPress`. Useful for tasks like network requests. The first argument is an event in form of PressEvent.|function|
+
|`onPressOut`|Called immediately after a touch is released, prior to `onPress`. The first argument is an event in form of PressEvent.|function|
+
|`pressRetentionOffset`|Defines how far a touch may move off the button before deactivating it when the scroll view is disabled. Re-activation occurs upon moving back over the button. Pass a constant to reduce memory allocations.|Rect or number|
+
|`nativeID`||string|
+
|`testID`|Used to locate this view in end-to-end tests.|string|
+
|`touchSoundDisabled` (Android)|If set to true, prevents the system sound from playing on touch.|Boolean|
-
The provided text appears to be a detailed documentation of various properties and methods associated with a `View` component, likely from a mobile development framework such as React Native. Below is an organized summary of these properties and their descriptions:
+
## Text
#### Accessibility Properties
···
**Parameters:**
-
| Name | Type | Required | Description |
-
| -------------- | ------ | -------- | ----------------------- |
-
| imageSizeLimit | number | Yes | Image cache size limit. |
-
| totalCostLimit | number | Yes | Total cache cost limit. |
+
|Name|Type|Required|Description|
+
|-|-|-|-|
+
|imageSizeLimit|number|Yes|Image cache size limit.|
+
|totalCostLimit|number|Yes|Total cache cost limit.|
In the example above, the image size limit is set to 4 MB and the total cost limit to 200 MB.
···
### Why Not Automatically Size Everything?
-
_In the browser_, if no size is given to an image, the browser renders a 0x0 element, downloads the image, and then displays it with the correct size. The issue here is that your UI will jump around as images load, leading to a poor user experience known as Cumulative Layout Shift.
+
*In the browser*, if no size is given to an image, the browser renders a 0x0 element, downloads the image, and then displays it with the correct size. The issue here is that your UI will jump around as images load, leading to a poor user experience known as Cumulative Layout Shift.
-
_In React Native_, this behavior isn't implemented intentionally. It requires more work for developers to know the dimensions (or aspect ratio) of remote images in advance, but it leads to a better user experience. Static images loaded from the app bundle via `require('./my-icon.png')` can be automatically sized because their dimensions are available immediately at mounting time.
+
*In React Native*, this behavior isn't implemented intentionally. It requires more work for developers to know the dimensions (or aspect ratio) of remote images in advance, but it leads to a better user experience. Static images loaded from the app bundle via `require('./my-icon.png')` can be automatically sized because their dimensions are available immediately at mounting time.
For example, the result of `require('./my-icon.png')` might be:
···
**Parameters:**
-
| Name | Type | Required | Description |
-
| --- | --- | --- | --- |
-
| color | string | Yes | The ripple color |
-
| borderless | boolean | Yes | Determines if the ripple can render outside bounds |
-
| rippleRadius | ?number | No | Controls the radius of the ripple effect |
+
|Name|Type|Required|Description|
+
|-|-|-|-|
+
|color|string|Yes|The ripple color|
+
|borderless|boolean|Yes|Determines if the ripple can render outside bounds|
+
|rippleRadius|?number|No|Controls the radius of the ripple effect|
#### `canUseNativeForeground()`
···
##### `backgroundColor`
-
| Type |
-
| ----- |
-
| color |
+
|Type|
+
|-|
+
|color|
##### `nativeID`
A unique identifier used to associate this `InputAccessoryView` with specific TextInput(s).
-
| Type |
-
| ------ |
-
| string |
+
|Type|
+
|-|
+
|string|
##### `style`
-
| Type |
-
| ---------- |
-
| View Style |
+
|Type|
+
|-|
+
|View Style|
### Known Issues
···
This property specifies whether the back face of a rotated image should be visible.
-
| Type | Default |
-
| ----------------------------- | ----------- |
-
| enum(`'visible'`, `'hidden'`) | `'visible'` |
+
|Type|Default|
+
|-|-|
+
|enum(`'visible'`, `'hidden'`)|`'visible'`|
-
---
+
***
#### `backgroundColor`
-
| Type |
-
| ----- |
-
| color |
+
|Type|
+
|-|
+
|color|
-
---
+
***
#### `borderBottomLeftRadius`
-
| Type |
-
| ------ |
-
| number |
+
|Type|
+
|-|
+
|number|
-
---
+
***
#### `borderBottomRightRadius`
-
| Type |
-
| ------ |
-
| number |
+
|Type|
+
|-|
+
|number|
-
---
+
***
#### `borderColor`
-
| Type |
-
| ----- |
-
| color |
+
|Type|
+
|-|
+
|color|
-
---
+
***
#### `borderRadius`
-
| Type |
-
| ------ |
-
| number |
+
|Type|
+
|-|
+
|number|
-
---
+
***
#### `borderTopLeftRadius`
-
| Type |
-
| ------ |
-
| number |
+
|Type|
+
|-|
+
|number|
-
---
+
***
#### `borderTopRightRadius`
-
| Type |
-
| ------ |
-
| number |
+
|Type|
+
|-|
+
|number|
-
---
+
***
#### `borderWidth`
-
| Type |
-
| ------ |
-
| number |
+
|Type|
+
|-|
+
|number|
-
---
+
***
#### `opacity`
Sets the opacity level for the image, with values ranging from `0.0` to `1.0`.
-
| Type | Default |
-
| ------ | ------- |
-
| number | `1.0` |
+
|Type|Default|
+
|-|-|
+
|number|`1.0`|
-
---
+
***
#### `overflow`
-
| Type | Default |
-
| ----------------------------- | ----------- |
-
| enum(`'visible'`, `'hidden'`) | `'visible'` |
+
|Type|Default|
+
|-|-|
+
|enum(`'visible'`, `'hidden'`)|`'visible'`|
-
---
+
***
#### `overlayColor` (Android)
···
For more details, refer to the Fresco documentation.
-
| Type |
-
| ------ |
-
| string |
+
|Type|
+
|-|
+
|string|
-
---
+
***
#### `resizeMode`
···
- **`center`:** Center the image along both dimensions. If larger than the view, scale it down uniformly to fit within the view.
-
| Type | Default |
-
| --- | --- |
-
| enum(`'cover'`, `'contain'`, `'stretch'`, `'repeat'`, `'center'`) | `'cover'` |
+
|Type|Default|
+
|-|-|
+
|enum(`'cover'`, `'contain'`, `'stretch'`, `'repeat'`, `'center'`)|`'cover'`|
-
---
+
***
#### `objectFit`
Specifies how an image should be resized when its frame dimensions do not match the raw image dimensions.
-
| Type | Default |
-
| ------------------------------------------------------ | --------- |
-
| enum(`'cover'`, `'contain'`, `'fill'`, `'scale-down'`) | `'cover'` |
+
|Type|Default|
+
|-|-|
+
|enum(`'cover'`, `'contain'`, `'fill'`, `'scale-down'`)|`'cover'`|
-
---
+
***
#### `tintColor`
Alters the color of all non-transparent pixels to the specified `tintColor`.
-
| Type |
-
| ----- |
-
| color |
+
|Type|
+
|-|
+
|color|
## Shadow Properties in React Native
···
Sets the drop shadow color. This property functions only on Android API 28 and above. For similar effects on lower APIs, use the `elevation` property.
-
| Type |
-
| ----- |
-
| color |
+
|Type|
+
|-|
+
|color|
#### `shadowOffset` (iOS)
Defines the drop shadow offset.
-
| Type |
-
| ---------------------------------------- |
-
| object: `{width: number,height: number}` |
+
|Type|
+
|-|
+
|object: `{width: number,height: number}`|
#### `shadowOpacity` (iOS)
Determines the drop shadow opacity, factoring in the color's alpha component.
-
| Type |
-
| ------ |
-
| number |
+
|Type|
+
|-|
+
|number|
#### `shadowRadius` (iOS)
Specifies the drop shadow blur radius.
-
| Type |
-
| ------ |
-
| number |
+
|Type|
+
|-|
+
|number|
## Text Style Properties
···
#### `boxShadow`
**Note:**\
-
`boxShadow` is only available on the New Architecture. Outset shadows are supported on Android 9+, and inset shadows on Android 10+. This prop adds a shadow effect to an element, allowing control over position, color, size, and blurriness of the shadow. It can be either outside or inside the border box depending on whether it is _inset_. This implementation follows web standards.
+
`boxShadow` is only available on the New Architecture. Outset shadows are supported on Android 9+, and inset shadows on Android 10+. This prop adds a shadow effect to an element, allowing control over position, color, size, and blurriness of the shadow. It can be either outside or inside the border box depending on whether it is *inset*. This implementation follows web standards.
Multiple shadows can be combined into a single `boxShadow`.
···
The offset on the x-axis. This value can be either positive or negative, where a positive value indicates a rightward shift and a negative value indicates a leftward shift.
-
| Type | Optional |
-
| ---------------- | -------- |
-
| number \| string | No |
+
|Type|Optional|
+
|-|-|
+
|number \| string|No|
#### `offsetY`
The offset on the y-axis. Similar to `offsetX`, this value can be either positive or negative, with a positive value indicating an upward shift and a negative value indicating a downward shift.
-
| Type | Optional |
-
| ---------------- | -------- |
-
| number \| string | No |
+
|Type|Optional|
+
|-|-|
+
|number \| string|No|
#### `standardDeviation`
This represents the standard deviation used in the Gaussian blur algorithm. A larger value results in a blurrier shadow. Only non-negative values are valid, with the default being 0.
-
| Type | Optional |
-
| ---------------- | -------- |
-
| number \| string | Yes |
+
|Type|Optional|
+
|-|-|
+
|number \| string|Yes|
#### `color`
The color of the shadow. By default, this is set to `black`.
-
| Type | Optional |
-
| ----- | -------- |
-
| color | Yes |
+
|Type|Optional|
+
|-|-|
+
|color|Yes|
### Used by
···
Represents the component's height after a layout change.
-
| Type | Optional |
-
| ------ | -------- |
-
| number | No |
+
|Type|Optional|
+
|-|-|
+
|number|No|
#### `width`
Indicates the component's width following a layout change.
-
| Type | Optional |
-
| ------ | -------- |
-
| number | No |
+
|Type|Optional|
+
|-|-|
+
|number|No|
#### `x`
Specifies the X coordinate of the component within its parent component.
-
| Type | Optional |
-
| ------ | -------- |
-
| number | No |
+
|Type|Optional|
+
|-|-|
+
|number|No|
#### `y`
Denotes the Y coordinate of the component inside its parent component.
-
| Type | Optional |
-
| ------ | -------- |
-
| number | No |
+
|Type|Optional|
+
|-|-|
+
|number|No|
#### `target`
Identifies the node ID of the element that receives the PressEvent. It can be a number, or it may be `null` or `undefined`.
-
| Type | Optional |
-
| --------------------------- | -------- |
-
| number, `null`, `undefined` | No |
+
|Type|Optional|
+
|-|-|
+
|number, `null`, `undefined`|No|
### Components Utilizing LayoutEvent
···
An array containing all `PressEvents` that have changed since the last event.
-
| Type | Optional |
-
| -------------------- | -------- |
-
| Array of PressEvents | No |
+
|Type|Optional|
+
|-|-|
+
|Array of PressEvents|No|
#### `force` (iOS)
The amount of force used during a 3D Touch press, represented as a float value ranging from `0.0` to `1.0`.
-
| Type | Optional |
-
| ------ | -------- |
-
| number | Yes |
+
|Type|Optional|
+
|-|-|
+
|number|Yes|
#### `identifier`
A unique numeric identifier assigned to the event.
-
| Type | Optional |
-
| ------ | -------- |
-
| number | No |
+
|Type|Optional|
+
|-|-|
+
|number|No|
#### `locationX`
The X coordinate of the touch origin within the touchable area, relative to the element.
-
| Type | Optional |
-
| ------ | -------- |
-
| number | No |
+
|Type|Optional|
+
|-|-|
+
|number|No|
#### `locationY`
The Y coordinate of the touch origin within the touchable area, relative to the element.
-
| Type | Optional |
-
| ------ | -------- |
-
| number | No |
+
|Type|Optional|
+
|-|-|
+
|number|No|
#### `pageX`
The X coordinate of the touch origin on the screen, relative to the root view.
-
| Type | Optional |
-
| ------ | -------- |
-
| number | No |
+
|Type|Optional|
+
|-|-|
+
|number|No|
#### `pageY`
The Y coordinate of the touch origin on the screen, relative to the root view.
-
| Type | Optional |
-
| ------ | -------- |
-
| number | No |
+
|Type|Optional|
+
|-|-|
+
|number|No|
#### `target`
The node ID of the element receiving the `PressEvent`. It can be a number or `null`/`undefined`.
-
| Type | Optional |
-
| ----------------------- | -------- |
-
| number, null, undefined | No |
+
|Type|Optional|
+
|-|-|
+
|number, null, undefined|No|
#### `timestamp`
A timestamp value indicating when the `PressEvent` occurred, represented in milliseconds.
-
| Type | Optional |
-
| ------ | -------- |
-
| number | No |
+
|Type|Optional|
+
|-|-|
+
|number|No|
#### `touches`
An array containing all current `PressEvents` on the screen.
-
| Type | Optional |
-
| -------------------- | -------- |
-
| Array of PressEvents | No |
+
|Type|Optional|
+
|-|-|
+
|Array of PressEvents|No|
### Used By
···
#### `bottom`
-
| Type | Required |
-
| --------------------------- | -------- |
-
| number, `null`, `undefined` | No |
+
|Type|Required|
+
|-|-|
+
|number, `null`, `undefined`|No|
#### `left`
-
| Type | Required |
-
| --------------------------- | -------- |
-
| number, `null`, `undefined` | No |
+
|Type|Required|
+
|-|-|
+
|number, `null`, `undefined`|No|
#### `right`
-
| Type | Required |
-
| --------------------------- | -------- |
-
| number, `null`, `undefined` | No |
+
|Type|Required|
+
|-|-|
+
|number, `null`, `undefined`|No|
#### `top`
-
| Type | Required |
-
| --------------------------- | -------- |
-
| number, `null`, `undefined` | No |
+
|Type|Required|
+
|-|-|
+
|number, `null`, `undefined`|No|
### Used By
···
React Native includes numerous Core Components for various functionalities, from basic controls to activity indicators. These are documented in the API section. Key Core Components include:
-
| React Native UI Component | Android View | iOS View | Web Analog | Description |
-
| --- | --- | --- | --- | --- |
-
| `<View>` | `<ViewGroup>` | `<UIView>` | A non-scrolling `<div>` | Acts as a container supporting layout with flexbox, style, touch handling, and accessibility controls. |
-
| `<Text>` | `<TextView>` | `<UITextView>` | `<p>` | Displays, styles, nests text strings, and handles touch events. |
-
| `<Image>` | `<ImageView>` | `<UIImageView>` | `<img>` | Used for displaying various types of images. |
-
| `<ScrollView>` | `<ScrollView>` | `<UIScrollView>` | `<div>` | A generic scrolling container that can hold multiple components and views. |
-
| `<TextInput>` | `<EditText>` | `<UITextField>` | `<input type="text">` | Enables user text input. |
+
|React Native UI Component|Android View|iOS View|Web Analog|Description|
+
|-|-|-|-|-|
+
|`<View>`|`<ViewGroup>`|`<UIView>`|A non-scrolling `<div>`|Acts as a container supporting layout with flexbox, style, touch handling, and accessibility controls.|
+
|`<Text>`|`<TextView>`|`<UITextView>`|`<p>`|Displays, styles, nests text strings, and handles touch events.|
+
|`<Image>`|`<ImageView>`|`<UIImageView>`|`<img>`|Used for displaying various types of images.|
+
|`<ScrollView>`|`<ScrollView>`|`<UIScrollView>`|`<div>`|A generic scrolling container that can hold multiple components and views.|
+
|`<TextInput>`|`<EditText>`|`<UITextField>`|`<input type="text">`|Enables user text input.|
In the following sections, you will learn how to combine these Core Components to understand React's workings better.
···
> The `<>` and `</>` are JSX fragments. Adjacent JSX elements must be wrapped in an enclosing tag, which fragments allow without adding unnecessary wrapping elements like `View`.
-
---
+
***
Having covered React and React Native’s Core Components, let's explore handling `<TextInput>` further.
···
Async Storage is a community-maintained module for React Native that provides an asynchronous, unencrypted key-value store. Each app operates in its own sandbox environment, preventing cross-app data access.
-
| **Use Async Storage When** | **Avoid Using Async Storage For** |
-
| --- | --- |
-
| Persisting non-sensitive data across app runs | Token storage |
-
| Persisting Redux state | Secrets |
-
| Persisting GraphQL state | |
-
| Storing global app-wide variables | |
+
|**Use Async Storage When**|**Avoid Using Async Storage For**|
+
|-|-|
+
|Persisting non-sensitive data across app runs|Token storage|
+
|Persisting Redux state|Secrets|
+
|Persisting GraphQL state||
+
|Storing global app-wide variables||
##### Developer Notes
···
### Remote JavaScript Debugging (Removed)
-
_Note: This feature has been removed._
+
*Note: This feature has been removed.*
-
---
+
***
**Previous:** Debugging Release Builds\
**Next:** Testing
···
- [Appium](#)
- [Maestro](#)
-
_This guide was authored by Vojtech Novak._
+
*This guide was authored by Vojtech Novak.*
## Performance Overview
···
#### removeClippedSubviews
-
| Type | Default |
-
| ------- | ------- |
-
| Boolean | False |
+
|Type|Default|
+
|-|-|
+
|Boolean|False|
**Description:** When set to `true`, views outside of the viewport are detached from the native view hierarchy.
···
#### maxToRenderPerBatch
-
| Type | Default |
-
| ------ | ------- |
-
| Number | 10 |
+
|Type|Default|
+
|-|-|
+
|Number|10|
**Description:** Controls the number of items rendered per batch during scrolling.
···
#### updateCellsBatchingPeriod
-
| Type | Default |
-
| ------ | ------- |
-
| Number | 50 |
+
|Type|Default|
+
|-|-|
+
|Number|50|
**Description:** Sets the delay in milliseconds between batch renders for `VirtualizedList`.
···
#### initialNumToRender
-
| Type | Default |
-
| ------ | ------- |
-
| Number | 10 |
+
|Type|Default|
+
|-|-|
+
|Number|10|
**Description:** Specifies the number of items to render initially.
···
#### windowSize
-
| Type | Default |
-
| ------ | ------- |
-
| Number | 21 |
+
|Type|Default|
+
|-|-|
+
|Number|21|
**Description:** Measured in units where 1 equals the viewport height. The default is 21 (10 viewports above, 10 below, and one in between).
···
**Parameters:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| titleRequired | string | The dialog's title. Passing `null` or an empty string will hide the title. |
-
| message | string | An optional message displayed below the title. |
-
| buttons | AlertButton\[] | Optional array for button configurations. |
-
| options | AlertOptions | Optional configuration for the alert. |
+
|Name|Type|Description|
+
|-|-|-|
+
|titleRequired|string|The dialog's title. Passing `null` or an empty string will hide the title.|
+
|message|string|An optional message displayed below the title.|
+
|buttons|AlertButton\[]|Optional array for button configurations.|
+
|options|AlertOptions|Optional configuration for the alert.|
##### `prompt()` (iOS Only)
···
**Parameters:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| titleRequired | string | The dialog's title. |
-
| message | string | An optional message displayed above the text input. |
-
| callbackOrButtons | function \| AlertButton\[] | If a function, it is invoked with the prompt's value `(text: string) => void` when 'OK' is tapped.\*\*\*If an array, buttons are configured based on its content. |
-
| type | AlertType | Configures the text input. |
-
| defaultValue | string | Default text in the input field. |
-
| keyboardType | string | Keyboard type for the first text field (if present). One of `TextInput` keyboard types. |
-
| options | AlertOptions | Optional configuration for the alert. |
+
|Name|Type|Description|
+
|-|-|-|
+
|titleRequired|string|The dialog's title.|
+
|message|string|An optional message displayed above the text input.|
+
|callbackOrButtons|function \| AlertButton\[]|If a function, it is invoked with the prompt's value `(text: string) => void` when 'OK' is tapped.\*\*\*If an array, buttons are configured based on its content.|
+
|type|AlertType|Configures the text input.|
+
|defaultValue|string|Default text in the input field.|
+
|keyboardType|string|Keyboard type for the first text field (if present). One of `TextInput` keyboard types.|
+
|options|AlertOptions|Optional configuration for the alert.|
#### Type Definitions
···
**Constants:**
-
| Value | Description |
-
| --------------- | ------------------------- |
-
| `'default'` | Default button style. |
-
| `'cancel'` | Cancel button style. |
-
| `'destructive'` | Destructive button style. |
+
|Value|Description|
+
|-|-|
+
|`'default'`|Default button style.|
+
|`'cancel'`|Cancel button style.|
+
|`'destructive'`|Destructive button style.|
##### `AlertType` (iOS Only)
···
**Constants:**
-
| Value | Description |
-
| ------------------ | ---------------------------- |
-
| `'default'` | Default alert with no inputs |
-
| `'plain-text'` | Plain text input alert |
-
| `'secure-text'` | Secure text input alert |
-
| `'login-password'` | Login and password alert |
+
|Value|Description|
+
|-|-|
+
|`'default'`|Default alert with no inputs|
+
|`'plain-text'`|Plain text input alert|
+
|`'secure-text'`|Secure text input alert|
+
|`'login-password'`|Login and password alert|
##### `AlertButton`
···
**Properties:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| text | string | Button label. |
-
| onPress | function | Callback when the button is pressed. |
-
| styleiOS | AlertButtonStyle | Button style, ignored on Android. |
-
| isPreferrediOS | boolean | Whether to emphasize the button, ignored on Android. |
+
|Name|Type|Description|
+
|-|-|-|
+
|text|string|Button label.|
+
|onPress|function|Callback when the button is pressed.|
+
|styleiOS|AlertButtonStyle|Button style, ignored on Android.|
+
|isPreferrediOS|boolean|Whether to emphasize the button, ignored on Android.|
##### `AlertOptions`
···
**Properties:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| cancelableAndroid | boolean | Determines if the alert can be dismissed by tapping outside of it. |
-
| userInterfaceStyleiOS | string | Interface style for the alert, set to `light` or `dark`, otherwise defaults to system style. |
-
| onDismissAndroid | function | Callback fired when the alert is dismissed. |
+
|Name|Type|Description|
+
|-|-|-|
+
|cancelableAndroid|boolean|Determines if the alert can be dismissed by tapping outside of it.|
+
|userInterfaceStyleiOS|string|Interface style for the alert, set to `light` or `dark`, otherwise defaults to system style.|
+
|onDismissAndroid|function|Callback fired when the alert is dismissed.|
## Optimizing JavaScript Loading
···
1. **Fabric Native Components**
- Android & iOS
-
---
+
***
**Previous:** The Codegen CLI\
**Next:** Android and iOS
···
The **React Native Hooks** library offers a convenient `useBackHandler` hook that simplifies setting up event listeners.
-
---
+
***
## Reference Methods
···
- (instancetype)init { if (self = \[super init]) { \_localStorage = \[\[NSUserDefaults alloc] initWithSuiteName:RCTNativeLocalStorageKey]; } return self; }
-
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params { return std::make_shared<facebook::react::NativeLocalStorageSpecJSI>(params); }
+
- (std::shared\_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params { return std::make\_shared<facebook::react::NativeLocalStorageSpecJSI>(params); }
- (NSString \* \_Nullable)getItem:(NSString \*)key { return \[self.localStorage stringForKey:key]; }
···
The following table serves as a reference for supported types and their mappings across different platforms:
-
| Flow | TypeScript | Flow Nullable Support | TypeScript Nullable Support | Android (Java) | iOS (ObjC) |
-
| --- | --- | --- | --- | --- | --- |
-
| `string` | `string` | `?string` | `string \| null` | `string` | `NSString` |
-
| `boolean` | `boolean` | `?boolean` | `boolean \| null` | `Boolean` | `NSNumber` |
-
| Object Literal `{ foo: string, ...}` | `{ foo: string, ...} as const` | `?{ foo: string, ...}` | `?{ foo: string, ...} as const` | - | - |
-
| Object \[1] | Object \[1] | `?Object` | `Object \| null` | `ReadableMap` | `@` (untyped dictionary) |
-
| `Array<T>` | `Array<T>` | `?Array<T>` | `Array<T> \| null` | `ReadableArray` | `NSArray` (or `RCTConvertVecToArray` when used inside objects) |
-
| `Function` | `Function` | `?Function` | `Function \| null` | - | - |
-
| `Promise<T>` | `Promise<T>` | `?Promise<T>` | `Promise<T> \| null` | `com.facebook.react.bridge.Promise` | `RCTPromiseResolve` and `RCTPromiseRejectBlock` |
-
| Type Unions `'SUCCESS'\|'FAIL'` | Type Unions `'SUCCESS'\|'FAIL'` | Only as callbacks | | - | - |
-
| Callbacks `() =>` | Callbacks `() =>` | Yes | | `com.facebook.react.bridge.Callback` | `RCTResponseSenderBlock` |
-
| `number` | `number` | No | | `double` | `NSNumber` |
+
|Flow|TypeScript|Flow Nullable Support|TypeScript Nullable Support|Android (Java)|iOS (ObjC)|
+
|-|-|-|-|-|-|
+
|`string`|`string`|`?string`|`string \| null`|`string`|`NSString`|
+
|`boolean`|`boolean`|`?boolean`|`boolean \| null`|`Boolean`|`NSNumber`|
+
|Object Literal `{ foo: string, ...}`|`{ foo: string, ...} as const`|`?{ foo: string, ...}`|`?{ foo: string, ...} as const`|-|-|
+
|Object \[1]|Object \[1]|`?Object`|`Object \| null`|`ReadableMap`|`@` (untyped dictionary)|
+
|`Array<T>`|`Array<T>`|`?Array<T>`|`Array<T> \| null`|`ReadableArray`|`NSArray` (or `RCTConvertVecToArray` when used inside objects)|
+
|`Function`|`Function`|`?Function`|`Function \| null`|-|-|
+
|`Promise<T>`|`Promise<T>`|`?Promise<T>`|`Promise<T> \| null`|`com.facebook.react.bridge.Promise`|`RCTPromiseResolve` and `RCTPromiseRejectBlock`|
+
|Type Unions `'SUCCESS'\|'FAIL'`|Type Unions `'SUCCESS'\|'FAIL'`|Only as callbacks||-|-|
+
|Callbacks `() =>`|Callbacks `() =>`|Yes||`com.facebook.react.bridge.Callback`|`RCTResponseSenderBlock`|
+
|`number`|`number`|No||`double`|`NSNumber`|
#### Notes:
···
- A valid npm name (all lowercase, using `-` for word separation)
- A description for your package
-
1. Follow the interactive menu until you reach the question: _"What type of library do you want to develop?"_
+
1. Follow the interactive menu until you reach the question: *"What type of library do you want to develop?"*
-
1. Select _Turbo module_ for this guide. You can create libraries for both New and Legacy Architectures.
+
1. Select *Turbo module* for this guide. You can create libraries for both New and Legacy Architectures.
1. Choose whether your library will access platform-specific code (Kotlin & Objective-C) or use a shared C++ library.
···
Not all libraries require this step. Consider:
-
_Do I need to know the contents of the library at compile time?_
+
*Do I need to know the contents of the library at compile time?*
This means, are you using the library on the native side or only in JavaScript? If it's just JavaScript, no further action is needed.
···
##### Parameters:
-
| Name | Type | Required | Description |
-
| --- | --- | --- | --- |
-
| config | object | Yes | Configuration details (see below). |
-
| onAnimationDidEnd | function | No | Callback when the animation finishes. |
-
| onAnimationDidFail | function | No | Callback if the animation fails. |
+
|Name|Type|Required|Description|
+
|-|-|-|-|
+
|config|object|Yes|Configuration details (see below).|
+
|onAnimationDidEnd|function|No|Callback when the animation finishes.|
+
|onAnimationDidFail|function|No|Callback if the animation fails.|
The `config` parameter is an object with the following keys:
···
An enumeration of animation types used in the `create` method or within the `create`/`update`/`delete` configurations for `configureNext`.
-
| Type |
-
| ------------- |
-
| spring |
-
| linear |
-
| easeInEaseOut |
-
| easeIn |
-
| easeOut |
-
| keyboard |
+
|Type|
+
|-|
+
|spring|
+
|linear|
+
|easeInEaseOut|
+
|easeIn|
+
|easeOut|
+
|keyboard|
#### Properties
An enumeration of layout properties that can be animated, used in the `create` method or within the `create`/`update`/`delete` configurations for `configureNext`.
-
| Property |
-
| -------- |
-
| opacity |
-
| scaleX |
-
| scaleY |
-
| scaleXY |
+
|Property|
+
|-|
+
|opacity|
+
|scaleX|
+
|scaleY|
+
|scaleXY|
#### Presets
Predefined animation configurations to use with `configureNext`.
-
| Preset | Value |
-
| --- | --- |
-
| easeInEaseOut | `{ create: { type: 'easeInEaseOut', property: 'opacity' } }` |
-
| linear | `{ create: { type: 'linear', property: 'opacity' } }` |
-
| spring | `{ duration: 700, create: { type: 'linear', property: 'opacity' }, update: { type: 'spring', springDamping: 0.4 }, delete: { type: 'linear', property: 'opacity' } }` |
+
|Preset|Value|
+
|-|-|
+
|easeInEaseOut|`{ create: { type: 'easeInEaseOut', property: 'opacity' } }`|
+
|linear|`{ create: { type: 'linear', property: 'opacity' } }`|
+
|spring|`{ duration: 700, create: { type: 'linear', property: 'opacity' }, update: { type: 'spring', springDamping: 0.4 }, delete: { type: 'linear', property: 'opacity' } }`|
#### `easeInEaseOut`
···
- `'dark'`: User prefers a dark theme.
- `null`: No preference indicated.
-
_Note_: When debugging with Chrome, this method always returns `'light'`.
+
*Note*: When debugging with Chrome, this method always returns `'light'`.
##### `setColorScheme()`
···
- `'dark'`: Apply dark user interface.
- `null`: Follow the system's interface style.
-
_Note_: This change does not affect other applications or the system's overall settings.
+
*Note*: This change does not affect other applications or the system's overall settings.
##### `addChangeListener()`
···
**Parameters:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| **taskKey** | `string` | Required, the native ID for this task instance used when startHeadlessTask was called. |
-
| **taskProvider** | `TaskProvider` | Required, a promise-returning function that takes data from the native side as an argument. When resolved or rejected, the native side is notified and may destroy the JS context. |
-
| **taskCancelProvider** | `TaskCancelProvider` | Required, a void-returning function with no arguments; when cancellation is requested, the taskProvider should wrap up and return ASAP. |
+
|Name|Type|Description|
+
|-|-|-|
+
|**taskKey**|`string`|Required, the native ID for this task instance used when startHeadlessTask was called.|
+
|**taskProvider**|`TaskProvider`|Required, a promise-returning function that takes data from the native side as an argument. When resolved or rejected, the native side is notified and may destroy the JS context.|
+
|**taskCancelProvider**|`TaskCancelProvider`|Required, a void-returning function with no arguments; when cancellation is requested, the taskProvider should wrap up and return ASAP.|
##### `registerComponent()`
···
**Parameters:**
-
| Name | Type | |
-
| -------------------- | ------------------- | -------- |
-
| **appKey** | `string` | |
-
| **getComponentFunc** | `ComponentProvider` | Required |
-
| **section** | `boolean` | |
+
|Name|Type||
+
|-|-|-|
+
|**appKey**|`string`||
+
|**getComponentFunc**|`ComponentProvider`|Required|
+
|**section**|`boolean`||
##### `registerConfig()`
···
**Parameters:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| **taskKey** | `string` | Required, the native ID for this task instance used when startHeadlessTask was called. |
-
| **taskProvider** | `TaskProvider` | Required, a promise-returning function that takes data from the native side as an argument. When resolved or rejected, the native side is notified and may destroy the JS context. |
+
|Name|Type|Description|
+
|-|-|-|
+
|**taskKey**|`string`|Required, the native ID for this task instance used when startHeadlessTask was called.|
+
|**taskProvider**|`TaskProvider`|Required, a promise-returning function that takes data from the native side as an argument. When resolved or rejected, the native side is notified and may destroy the JS context.|
##### `registerRunnable()`
···
**Parameters:**
-
| Name | Type |
-
| ---------- | ---------- |
-
| **appKey** | `string` |
-
| **func** | `function` |
+
|Name|Type|
+
|-|-|
+
|**appKey**|`string`|
+
|**func**|`function`|
##### `registerSection()`
···
**Parameters:**
-
| Name | Type | |
-
| ------------- | ------------------- | -------- |
-
| **appKey** | `string` | |
-
| **component** | `ComponentProvider` | Required |
+
|Name|Type||
+
|-|-|-|
+
|**appKey**|`string`||
+
|**component**|`ComponentProvider`|Required|
##### `runApplication()`
···
**Parameters:**
-
| Name | Type |
-
| ----------------- | -------- |
-
| **appKey** | `string` |
-
| **appParameters** | `any` |
+
|Name|Type|
+
|-|-|
+
|**appKey**|`string`|
+
|**appParameters**|`any`|
##### `setComponentProviderInstrumentationHook()`
···
A valid `hook` function accepts the following as arguments:
-
| Name | Type | |
-
| --------------------------- | -------------------- | -------- |
-
| **component** | `ComponentProvider` | Required |
-
| **scopedPerformanceLogger** | `IPerformanceLogger` | Required |
+
|Name|Type||
+
|-|-|-|
+
|**component**|`ComponentProvider`|Required|
+
|**scopedPerformanceLogger**|`IPerformanceLogger`|Required|
The function must return a React Component.
···
**Parameters:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| **taskId** | `number` | Required, the native ID for this task instance to track its execution. |
-
| **taskKey** | `string` | Required, the key for the task to start. |
-
| **data** | `any` | Required, the data to pass to the task. |
+
|Name|Type|Description|
+
|-|-|-|
+
|**taskId**|`number`|Required, the native ID for this task instance to track its execution.|
+
|**taskKey**|`string`|Required, the key for the task to start.|
+
|**data**|`any`|Required, the data to pass to the task.|
##### `unmountApplicationComponentAtRootTag()`
···
**Properties:**
-
| Name | Type | |
-
| ---------- | ------------------- | -------- |
-
| **appKey** | `string` | Required |
-
| component | `ComponentProvider` | |
-
| run | `function` | |
-
| section | `boolean` | |
+
|Name|Type||
+
|-|-|-|
+
|**appKey**|`string`|Required|
+
|component|`ComponentProvider`||
+
|run|`function`||
+
|section|`boolean`||
> **Note:** Every config must set either the `component` or `run` function.
···
**Properties:**
-
| Name | Type |
-
| --------- | ------------------ |
-
| runnables | Array of Runnables |
-
| sections | Array of strings |
+
|Name|Type|
+
|-|-|
+
|runnables|Array of Runnables|
+
|sections|Array of strings|
#### Runnable
···
**Properties:**
-
| Name | Type |
-
| --------- | ------------------- |
-
| component | `ComponentProvider` |
-
| run | `function` |
+
|Name|Type|
+
|-|-|
+
|component|`ComponentProvider`|
+
|run|`function`|
#### Runnables
···
Default renderer for every item in every section. Can be overridden per-section. Should return a React element.
-
| Type |
-
| -------- |
-
| function |
+
|Type|
+
|-|
+
|function|
The render function receives an object with:
···
The data to render, similar to the `data` prop in `FlatList`.
-
| Type |
-
| ----------------- |
-
| array of Sections |
+
|Type|
+
|-|
+
|array of Sections|
##### `extraData`
A marker property for re-rendering since it implements `PureComponent`. Use this if your `renderItem`, Header, Footer, etc., depend on anything outside the `data` prop. Treat it immutably.
-
| Type |
-
| ---- |
-
| any |
+
|Type|
+
|-|
+
|any|
##### `initialNumToRender`
Number of items to render initially. Should fill the screen but not much more. These items won't be unmounted for improved scroll-to-top performance.
-
| Type | Default |
-
| ------ | ------- |
-
| number | `10` |
+
|Type|Default|
+
|-|-|
+
|number|`10`|
##### `inverted`
Reverses the direction of scroll using scale transforms of -1.
-
| Type | Default |
-
| ------- | ------- |
-
| boolean | `false` |
+
|Type|Default|
+
|-|-|
+
|boolean|`false`|
##### `ItemSeparatorComponent`
Rendered between each item, excluding top and bottom. By default, provides `highlighted`, `section`, and `[leading/trailing][Item/Section]` props. `renderItem` offers `separators.highlight`/`unhighlight` to update the `highlighted` prop, with custom props via `separators.updateProps`. Can be a React Component or element.
-
| Type |
-
| ---------------------------- |
-
| component, function, element |
+
|Type|
+
|-|
+
|component, function, element|
##### `keyExtractor`
Extracts a unique key for an item at a specified index. Used for caching and tracking item re-ordering. Defaults to checking `item.key`, then `item.id`, and falls back to the index.
-
| Type |
-
| --------------------------------------- |
-
| (item: object, index: number) => string |
+
|Type|
+
|-|
+
|(item: object, index: number) => string|
##### `ListEmptyComponent`
Rendered when the list is empty. Can be a React Component or element.
-
| Type |
-
| ------------------ |
-
| component, element |
+
|Type|
+
|-|
+
|component, element|
##### `ListFooterComponent`
Rendered at the end of the list. Can be a React Component or element.
-
| Type |
-
| ------------------ |
-
| component, element |
+
|Type|
+
|-|
+
|component, element|
##### `ListHeaderComponent`
Rendered at the beginning of the list. Can be a React Component or element.
-
| Type |
-
| ------------------ |
-
| component, element |
+
|Type|
+
|-|
+
|component, element|
##### `onRefresh`
Adds "Pull to Refresh" functionality if provided. Ensure the `refreshing` prop is set correctly. Use `progressViewOffset={100}` to offset from the top.
-
| Type |
-
| -------- |
-
| function |
+
|Type|
+
|-|
+
|function|
##### `onViewableItemsChanged`
Called when viewability of rows changes, as defined by the `viewabilityConfig` prop.
-
| Type |
-
| ------------------------------------------------------------------------ |
-
| `(callback: {changed: ViewToken[], viewableItems: ViewToken[]}) => void` |
+
|Type|
+
|-|
+
|`(callback: {changed: ViewToken[], viewableItems: ViewToken[]}) => void`|
##### `refreshing`
Set to true while waiting for new data from a refresh.
-
| Type | Default |
-
| ------- | ------- |
-
| boolean | `false` |
+
|Type|Default|
+
|-|-|
+
|boolean|`false`|
##### `removeClippedSubviews`
> Note: May have bugs (missing content) in some circumstances - use at your own risk. This may improve scroll performance for large lists.
-
| Type | Default |
-
| ------- | ------- |
-
| boolean | `false` |
+
|Type|Default|
+
|-|-|
+
|boolean|`false`|
##### `renderSectionFooter`
Rendered at the bottom of each section.
-
| Type |
-
| ----------------------------------------------- |
-
| `(info: {section: Section}) => element | null` |
+
|Type|
+
|-|
+
|`(info: {section: Section}) => element | null`|
##### `renderSectionHeader`
Rendered at the top of each section. Sticks to the top by default on iOS unless `stickySectionHeadersEnabled` is set otherwise.
-
| Type |
-
| ----------------------------------------------- |
-
| `(info: {section: Section}) => element | null` |
+
|Type|
+
|-|
+
|`(info: {section: Section}) => element | null`|
##### `SectionSeparatorComponent`
Rendered at the top and bottom of each section, different from `ItemSeparatorComponent`. Receives `highlighted`, `[leading/trailing][Item/Section]`, and custom props via `separators.updateProps`.
-
| Type |
-
| ------------------ |
-
| component, element |
+
|Type|
+
|-|
+
|component, element|
##### `stickySectionHeadersEnabled`
Makes section headers stick to the top of the screen until pushed off by the next one. Enabled by default on iOS.
-
| Type | Default |
-
| ------- | ----------------------------- |
-
| boolean | `false`Android\*\*\*`true`iOS |
+
|Type|Default|
+
|-|-|
+
|boolean|`false`Android\*\*\*`true`iOS|
### Methods
···
**Parameters:**
-
| Name | Type |
-
| -------------- | ------ |
-
| paramsRequired | object |
+
|Name|Type|
+
|-|-|
+
|paramsRequired|object|
Valid `params` keys:
···
An object identifying data to be rendered for a given section.
-
| Type |
-
| ---- |
-
| any |
+
|Type|
+
|-|
+
|any|
**Properties:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| dataRequired | array | Data for rendering items in this section. Array of objects, similar to `FlatList`'s data prop. |
-
| key | string | Optional key for tracking section re-ordering. Defaults to array index if not specified. |
-
| renderItem | function | Optionally define an arbitrary item renderer for this section, overriding the default `renderItem`. |
-
| ItemSeparatorComponent | component, element | Optionally define an arbitrary item separator for this section, overriding the default `ItemSeparatorComponent`. |
-
| keyExtractor | function | Optionally define a custom key extractor for this section, overriding the default `keyExtractor`. |
+
|Name|Type|Description|
+
|-|-|-|
+
|dataRequired|array|Data for rendering items in this section. Array of objects, similar to `FlatList`'s data prop.|
+
|key|string|Optional key for tracking section re-ordering. Defaults to array index if not specified.|
+
|renderItem|function|Optionally define an arbitrary item renderer for this section, overriding the default `renderItem`.|
+
|ItemSeparatorComponent|component, element|Optionally define an arbitrary item separator for this section, overriding the default `ItemSeparatorComponent`.|
+
|keyExtractor|function|Optionally define a custom key extractor for this section, overriding the default `keyExtractor`.|
## AccessibilityInfo
···
### Example
-
_Example content omitted._
+
*Example content omitted.*
### Reference
···
Adds an event handler for various accessibility-related events. Supported events include:
-
| Event Name | Description |
-
| --- | --- |
-
| `accessibilityServiceChanged` (Android) | Fires when any accessibility services, such as TalkBack or third-party apps, are enabled. The argument is a boolean: `true` if enabled, otherwise `false`. |
-
| `announcementFinished` (iOS) | Fires after the screen reader finishes an announcement. Argument includes: - `announcement`: The announced string.<br>- `success`: Boolean indicating success of the announcement. |
-
| `boldTextChanged` (iOS) | Fires when bold text toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`. |
-
| `grayscaleChanged` (iOS) | Fires when grayscale toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`. |
-
| `invertColorsChanged` (iOS) | Fires when invert colors toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`. |
-
| `reduceMotionChanged` | Fires when reduce motion toggle state changes. Argument is a boolean: `true` if enabled or "Animation off" in Developer options, otherwise `false`. |
-
| `reduceTransparencyChanged` (iOS) | Fires when reduce transparency toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`. |
-
| `screenReaderChanged` | Fires when the screen reader's state changes. Argument is a boolean: `true` if enabled, otherwise `false`. |
+
|Event Name|Description|
+
|-|-|
+
|`accessibilityServiceChanged` (Android)|Fires when any accessibility services, such as TalkBack or third-party apps, are enabled. The argument is a boolean: `true` if enabled, otherwise `false`.|
+
|`announcementFinished` (iOS)|Fires after the screen reader finishes an announcement. Argument includes: - `announcement`: The announced string.<br>- `success`: Boolean indicating success of the announcement.|
+
|`boldTextChanged` (iOS)|Fires when bold text toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`.|
+
|`grayscaleChanged` (iOS)|Fires when grayscale toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`.|
+
|`invertColorsChanged` (iOS)|Fires when invert colors toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`.|
+
|`reduceMotionChanged`|Fires when reduce motion toggle state changes. Argument is a boolean: `true` if enabled or "Animation off" in Developer options, otherwise `false`.|
+
|`reduceTransparencyChanged` (iOS)|Fires when reduce transparency toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`.|
+
|`screenReaderChanged`|Fires when the screen reader's state changes. Argument is a boolean: `true` if enabled, otherwise `false`.|
##### `announceForAccessibility()`
···
**Parameters:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| announcement | string | The string to be announced. |
-
| options | object | Contains `queue`: If set to `true`, queues the announcement behind existing speech on iOS. |
+
|Name|Type|Description|
+
|-|-|-|
+
|announcement|string|The string to be announced.|
+
|options|object|Contains `queue`: If set to `true`, queues the announcement behind existing speech on iOS.|
##### `getRecommendedTimeoutMillis()` (Android)
···
**Parameters:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| originalTimeout | number | The fallback timeout in milliseconds if no accessibility timeout is set. |
+
|Name|Type|Description|
+
|-|-|-|
+
|originalTimeout|number|The fallback timeout in milliseconds if no accessibility timeout is set.|
##### `isAccessibilityServiceEnabled()` (Android)
···
### Example
-
---
+
***
### Reference
···
**Properties:**
-
| Name | Type | Optional | Description |
-
| --- | --- | --- | --- |
-
| isTesting | boolean | No | |
-
| reactNativeVersion | object | No | Information about React Native version. Keys are `major`, `minor`, `patch` with optional `prerelease` and values are `number`s. |
-
| VersionAndroid | number | No | OS version constant specific to Android. |
-
| ReleaseAndroid | string | No | |
-
| SerialAndroid | string | No | Hardware serial number of an Android device. |
-
| FingerprintAndroid | string | No | A unique identifier for the build. |
-
| ModelAndroid | string | No | The end-user-visible name for the Android device. |
-
| BrandAndroid | string | No | The consumer-visible brand associated with the product/hardware. |
-
| ManufacturerAndroid | string | No | The manufacturer of the Android device. |
-
| ServerHostAndroid | string | Yes | |
-
| uiModeAndroid | string | No | Possible values: `'car'`, `'desk'`, `'normal'`,`'tv'`, `'watch'` and `'unknown'`. Read more about Android ModeType. |
-
| forceTouchAvailableiOS | boolean | No | Indicates the availability of 3D Touch on a device. |
-
| interfaceIdiomiOS | string | No | The interface type for the device. Read more about UIUserInterfaceIdiom. |
-
| osVersioniOS | string | No | OS version constant specific to iOS. |
-
| systemNameiOS | string | No | OS name constant specific to iOS. |
+
|Name|Type|Optional|Description|
+
|-|-|-|-|
+
|isTesting|boolean|No||
+
|reactNativeVersion|object|No|Information about React Native version. Keys are `major`, `minor`, `patch` with optional `prerelease` and values are `number`s.|
+
|VersionAndroid|number|No|OS version constant specific to Android.|
+
|ReleaseAndroid|string|No||
+
|SerialAndroid|string|No|Hardware serial number of an Android device.|
+
|FingerprintAndroid|string|No|A unique identifier for the build.|
+
|ModelAndroid|string|No|The end-user-visible name for the Android device.|
+
|BrandAndroid|string|No|The consumer-visible brand associated with the product/hardware.|
+
|ManufacturerAndroid|string|No|The manufacturer of the Android device.|
+
|ServerHostAndroid|string|Yes||
+
|uiModeAndroid|string|No|Possible values: `'car'`, `'desk'`, `'normal'`,`'tv'`, `'watch'` and `'unknown'`. Read more about Android ModeType.|
+
|forceTouchAvailableiOS|boolean|No|Indicates the availability of 3D Touch on a device.|
+
|interfaceIdiomiOS|string|No|The interface type for the device. Read more about UIUserInterfaceIdiom.|
+
|osVersioniOS|string|No|OS version constant specific to iOS.|
+
|systemNameiOS|string|No|OS name constant specific to iOS.|
-
---
+
***
#### `isPad`iOS
···
Returns a boolean indicating if the device is an iPad.
-
| Type |
-
| ------- |
-
| boolean |
+
|Type|
+
|-|
+
|boolean|
-
---
+
***
#### `isTV`
···
Returns a boolean indicating if the device is a TV.
-
| Type |
-
| ------- |
-
| boolean |
+
|Type|
+
|-|
+
|boolean|
-
---
+
***
#### `isVision`
···
Returns a boolean indicating if the device is an Apple Vision. Note that for Apple Vision Pro (Designed for iPad), `isVision` will be `false`, but `isPad` will be `true`.
-
| Type |
-
| ------- |
-
| boolean |
+
|Type|
+
|-|
+
|boolean|
-
---
+
***
#### `isTesting`
···
Returns a boolean indicating if the application is running in Developer Mode with the testing flag set.
-
| Type |
-
| ------- |
-
| boolean |
+
|Type|
+
|-|
+
|boolean|
-
---
+
***
#### `OS`
···
Returns a string representing the current operating system.
-
| Type |
-
| -------------------------- |
-
| enum(`'android'`, `'ios'`) |
+
|Type|
+
|-|
+
|enum(`'android'`, `'ios'`)|
-
---
+
***
#### `Version`
···
Returns the version of the OS, as either a number for Android or a string for iOS.
-
| Type |
-
| ---------------------------- |
-
| numberAndroid\*\*\*stringiOS |
+
|Type|
+
|-|
+
|numberAndroid\*\*\*stringiOS|
### Methods
···
##### Parameters:
-
| Name | Type | Required | Description |
-
| ------ | ------ | -------- | ------------------------------------ |
-
| config | object | Yes | See configuration description below. |
+
|Name|Type|Required|Description|
+
|-|-|-|-|
+
|config|object|Yes|See configuration description below.|
The `select` method returns the most appropriate value based on the current platform. If running on a phone, keys for `android` and `ios` take precedence. If these are not specified, the `native` key is used, followed by the `default` key.
···
**Parameters:**
-
| Name | Type |
-
| ------- | -------- |
-
| title | string |
-
| handler | function |
+
|Name|Type|
+
|-|-|
+
|title|string|
+
|handler|function|
**Example Usage:**
···
<Button title="Reload" onPress={() => DevSettings.reload()} />
```
-
---
+
***
### Related Modules
···
**Properties:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| contentRequired | object | - `message`: A message to share<br>- `url`: A URL to share<br>- iOS: `title`: Title of the message<br>- Android: At least one of `url` or `message` is required. |
-
| options | object | - Android: `dialogTitle`<br>- iOS: `excludedActivityTypes`, `subject` (a subject for email), `tintColor`, `anchor` (node to anchor the action sheet, used on iPad) |
+
|Name|Type|Description|
+
|-|-|-|
+
|contentRequired|object|- `message`: A message to share<br>- `url`: A URL to share<br>- iOS: `title`: Title of the message<br>- Android: At least one of `url` or `message` is required.|
+
|options|object|- Android: `dialogTitle`<br>- iOS: `excludedActivityTypes`, `subject` (a subject for email), `tintColor`, `anchor` (node to anchor the action sheet, used on iPad)|
### Properties
···
- A **React element**, which results from JSX.
- An array containing any of the above types, potentially nested.
-
---
+
***
### Related Object Types
···
- Rect Object Type
- ViewToken Object Type
-
---
+
***
#### Navigation
···
- `change`: Triggers when a property within the `Dimensions` object changes. The argument to the event handler is of type `DimensionsValue`.
-
---
+
***
#### `get()`
···
**Parameters:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| dimRequired | string | The name of the dimension as defined when calling `set`. Returns value for the dimension. |
+
|Name|Type|Description|
+
|-|-|-|
+
|dimRequired|string|The name of the dimension as defined when calling `set`. Returns value for the dimension.|
> Note: On Android, the `window` dimension excludes the size used by the status bar (if not translucent) and bottom navigation bar.
-
---
+
***
### Type Definitions
···
**Properties:**
-
| Name | Type | Description |
-
| ------ | ---------- | --------------------------------------- |
-
| window | ScaledSize | Size of the visible Application window. |
-
| screen | ScaledSize | Size of the device's screen. |
+
|Name|Type|Description|
+
|-|-|-|
+
|window|ScaledSize|Size of the visible Application window.|
+
|screen|ScaledSize|Size of the device's screen.|
#### ScaledSize
-
| Type |
-
| ------ |
-
| object |
+
|Type|
+
|-|
+
|object|
**Properties:**
-
| Name | Type |
-
| --------- | ------ |
-
| width | number |
-
| height | number |
-
| scale | number |
-
| fontScale | number |
+
|Name|Type|
+
|-|-|
+
|width|number|
+
|height|number|
+
|scale|number|
+
|fontScale|number|
## Props in React Native
···
**Parameters:**
-
- **value**: _number_ (Required) - The new value to set.
+
- **value**: *number* (Required) - The new value to set.
##### `setOffset()`
···
**Parameters:**
-
- **offset**: _number_ (Required) - The offset value to apply.
+
- **offset**: *number* (Required) - The offset value to apply.
##### `flattenOffset()`
···
**Parameters:**
-
- **callback**: _function_ (Required) - A function receiving an object with a `value` key set to the new value.
+
- **callback**: *function* (Required) - A function receiving an object with a `value` key set to the new value.
##### `removeListener()`
···
**Parameters:**
-
- **id**: _string_ (Required) - The identifier of the listener being removed.
+
- **id**: *string* (Required) - The identifier of the listener being removed.
##### `removeAllListeners()`
···
**Parameters:**
-
- **callback**: _function_ (Optional) - A function receiving the final value after stopping the animation.
+
- **callback**: *function* (Optional) - A function receiving the final value after stopping the animation.
##### `resetAnimation()`
···
**Parameters:**
-
- **callback**: _function_ (Optional) - A function receiving the original value after resetting the animation.
+
- **callback**: *function* (Optional) - A function receiving the original value after resetting the animation.
##### `interpolate()`
···
**Parameters:**
-
- **config**: _object_ (Required) - Configuration object with keys:
-
- **inputRange**: _array of numbers_
-
- **outputRange**: _array of numbers or strings_
-
- **easing** (optional): _function_ returning a number given an input number
-
- **extrapolate** (optional): _string_ such as 'extend', 'identity', or 'clamp'
-
- **extrapolateLeft** (optional): _string_ such as 'extend', 'identity', or 'clamp'
-
- **extrapolateRight** (optional): _string_ such as 'extend', 'identity', or 'clamp'
+
- **config**: *object* (Required) - Configuration object with keys:
+
- **inputRange**: *array of numbers*
+
- **outputRange**: *array of numbers or strings*
+
- **easing** (optional): *function* returning a number given an input number
+
- **extrapolate** (optional): *string* such as 'extend', 'identity', or 'clamp'
+
- **extrapolateLeft** (optional): *string* such as 'extend', 'identity', or 'clamp'
+
- **extrapolateRight** (optional): *string* such as 'extend', 'identity', or 'clamp'
##### `animate()`
···
**Parameters:**
-
| Name | Type | Required | Description |
-
| --------- | --------- | -------- | ------------------- |
-
| animation | Animation | Yes | See `Animation.js`. |
-
| callback | function | Yes | Callback function. |
+
|Name|Type|Required|Description|
+
|-|-|-|-|
+
|animation|Animation|Yes|See `Animation.js`.|
+
|callback|function|Yes|Callback function.|
## Systrace
···
On iOS devices, vibration functionality is achieved using the `AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)` method.
-
---
+
***
### Reference
···
This method stops any ongoing vibrations that were initiated with a repeating pattern by calling `vibrate()`.
-
---
+
***
##### `vibrate()`
···
**Parameters:**
-
| Name | Type | Default | Description |
-
| --- | --- | --- | --- |
-
| pattern | number \| number\[] | `400` | Specifies either a single duration for vibration in milliseconds or an array of times. |
-
| repeat | boolean | `false` | If true, the vibration pattern will continue until `cancel()` is called. |
+
|Name|Type|Default|Description|
+
|-|-|-|-|
+
|pattern|number \| number\[]|`400`|Specifies either a single duration for vibration in milliseconds or an array of times.|
+
|repeat|boolean|`false`|If true, the vibration pattern will continue until `cancel()` is called.|
## Animated.ValueXY
···
### Example
-
_Example content not provided._
+
*Example content not provided.*
### Reference
···
This property indicates the current font size scale. Some operating systems allow users to adjust their font sizes for better readability. This value reflects any such adjustments.
-
---
+
***
#### `height`
···
Represents the height in pixels of the window or screen that your application occupies.
-
---
+
***
#### `scale`
···
- `1`: One point equals one pixel (commonly PPI/DPI of 96, 76 on some platforms).
- `2` or `3`: Indicates a Retina or high DPI display.
-
---
+
***
#### `width`
···
**Parameters:**
-
| Name | Type | Description |
-
| --- | --- | --- |
-
| `eventType` | string | Identifies the event you're listening for. See list below. |
-
| `listener` | function | The callback function executed when the event occurs. |
+
|Name|Type|Description|
+
|-|-|-|
+
|`eventType`|string|Identifies the event you're listening for. See list below.|
+
|`listener`|function|The callback function executed when the event occurs.|
**Supported Events:**
···
**Parameters:**
-
| Name | Type | Required | Description |
-
| ---------- | ------ | -------- | ---------------------------- |
-
| permission | string | Yes | The permission to check for. |
+
|Name|Type|Required|Description|
+
|-|-|-|-|
+
|permission|string|Yes|The permission to check for.|
##### `request()`
···
**Parameters:**
-
| Name | Type | Required | Description |
-
| ---------- | ------ | -------- | -------------------------- |
-
| permission | string | Yes | The permission to request. |
-
| rationale | object | No | See `rationale` below. |
+
|Name|Type|Required|Description|
+
|-|-|-|-|
+
|permission|string|Yes|The permission to request.|
+
|rationale|object|No|See `rationale` below.|
**Rationale:**
-
| Name | Type | Required | Description |
-
| -------------- | ------ | -------- | -------------------------------- |
-
| title | string | Yes | The title of the dialog. |
-
| message | string | Yes | The message of the dialog. |
-
| buttonPositive | string | Yes | The text of the positive button. |
-
| buttonNegative | string | No | The text of the negative button. |
-
| buttonNeutral | string | No | The text of the neutral button. |
+
|Name|Type|Required|Description|
+
|-|-|-|-|
+
|title|string|Yes|The title of the dialog.|
+
|message|string|Yes|The message of the dialog.|
+
|buttonPositive|string|Yes|The text of the positive button.|
+
|buttonNegative|string|No|The text of the negative button.|
+
|buttonNeutral|string|No|The text of the neutral button.|
##### `requestMultiple()`
···
**Parameters:**
-
| Name | Type | Required | Description |
-
| ----------- | ----- | -------- | -------------------------------- |
-
| permissions | array | Yes | Array of permissions to request. |
+
|Name|Type|Required|Description|
+
|-|-|-|-|
+
|permissions|array|Yes|Array of permissions to request.|
## Signing Your Android Application for Distribution
+25 -2
src/prettier.ts
···
import { format } from 'prettier';
+
import { unified } from 'unified';
+
import remarkParse from 'remark-parse';
+
import remarkStringify from 'remark-stringify';
+
import remarkGfm from 'remark-gfm';
+
+
async function reformat(content: string): Promise<string> {
+
// NOTE: We reformat with remark again to get rid of prettier's
+
// table formatting mostly. This doesn't work well as LLM input
+
const md = await unified()
+
.use(remarkParse, { fragment: true })
+
.use(remarkGfm, {
+
tablePipeAlign: false,
+
tableCellPadding: false,
+
})
+
.use(remarkStringify, {
+
bullet: '-',
+
incrementListMarker: false,
+
ruleSpaces: false,
+
tightDefinitions: true,
+
})
+
.process(content);
+
return md.toString();
+
}
export async function formatMarkdown(input: string) {
-
return format(input, {
+
return reformat(await format(input, {
semi: false,
singleQuote: false,
trailingComma: 'es5',
proseWrap: 'never',
parser: 'markdown',
-
});
+
}));
}