···449449450450### Options
451451452452-| Option | Description | Default Value |
453453-| --- | --- | --- |
454454-| `output` | The relative path for the output file. Defaults to `<projectRoot>/node_modules/.cache/nativewind/`. | `<projectRoot>/node_modules/.cache/nativewind/` |
455455-| `projectRoot` | Absolute path to your project root, used only to set `output`. | N/A |
456456-| `inlineRem` | Numeric value for inlining the value of `rem` units on native. Set to `false` to disable this behavior. Defaults to `14`. | `14` |
457457-| `configPath` | Relative path to your `tailwind.config` file. Recommended to use `@config` instead. | `tailwind.config` |
458458-| `hotServerOptions` | Options for the hot server, with a default configuration of `{ port: 8089 }`. | `{ port: 8089 }` |
452452+|Option|Description|Default Value|
453453+|-|-|-|
454454+|`output`|The relative path for the output file. Defaults to `<projectRoot>/node_modules/.cache/nativewind/`.|`<projectRoot>/node_modules/.cache/nativewind/`|
455455+|`projectRoot`|Absolute path to your project root, used only to set `output`.|N/A|
456456+|`inlineRem`|Numeric value for inlining the value of `rem` units on native. Set to `false` to disable this behavior. Defaults to `14`.|`14`|
457457+|`configPath`|Relative path to your `tailwind.config` file. Recommended to use `@config` instead.|`tailwind.config`|
458458+|`hotServerOptions`|Options for the hot server, with a default configuration of `{ port: 8089 }`.|`{ port: 8089 }`|
459459460460#### Experimental Options
461461···471471472472### Compatibility
473473474474-| Class | Support |
475475-| ----------------- | --------------- |
476476-| `content-center` | ✅ Full Support |
477477-| `content-start` | ✅ Full Support |
478478-| `content-end` | ✅ Full Support |
479479-| `content-between` | ✅ Full Support |
480480-| `content-around` | ✅ Full Support |
481481-| `content-evenly` | ✅ Full Support |
474474+|Class|Support|
475475+|-|-|
476476+|`content-center`|✅ Full Support|
477477+|`content-start`|✅ Full Support|
478478+|`content-end`|✅ Full Support|
479479+|`content-between`|✅ Full Support|
480480+|`content-around`|✅ Full Support|
481481+|`content-evenly`|✅ Full Support|
482482483483## Text Decoration Color
484484···488488489489### Compatibility
490490491491-| Class | Support |
492492-| -------------------- | --------------- |
493493-| `decoration-{n}` | ✅ Full Support |
494494-| `decoration-[n]` | ✅ Full Support |
495495-| `decoration-inherit` | 🌐 Web only |
496496-| `decoration-current` | 🌐 Web only |
491491+|Class|Support|
492492+|-|-|
493493+|`decoration-{n}`|✅ Full Support|
494494+|`decoration-[n]`|✅ Full Support|
495495+|`decoration-inherit`|🌐 Web only|
496496+|`decoration-current`|🌐 Web only|
497497498498## Align Items
499499···503503504504### Compatibility
505505506506-| Class | Support |
507507-| ---------------- | --------------- |
508508-| `items-start` | ✅ Full Support |
509509-| `items-end` | ✅ Full Support |
510510-| `items-center` | ✅ Full Support |
511511-| `items-baseline` | ✅ Full Support |
512512-| `items-stretch` | ✅ Full Support |
506506+|Class|Support|
507507+|-|-|
508508+|`items-start`|✅ Full Support|
509509+|`items-end`|✅ Full Support|
510510+|`items-center`|✅ Full Support|
511511+|`items-baseline`|✅ Full Support|
512512+|`items-stretch`|✅ Full Support|
513513514514## Text Decoration Style
515515···519519520520### Compatibility
521521522522-| Class | Support |
523523-| ------------------- | --------------- |
524524-| `decoration-solid` | ✅ Full Support |
525525-| `decoration-double` | ✅ Full Support |
526526-| `decoration-dotted` | ✅ Full Support |
527527-| `decoration-dashed` | ✅ Full Support |
528528-| `decoration-wavy` | 🌐 Web only |
522522+|Class|Support|
523523+|-|-|
524524+|`decoration-solid`|✅ Full Support|
525525+|`decoration-double`|✅ Full Support|
526526+|`decoration-dotted`|✅ Full Support|
527527+|`decoration-dashed`|✅ Full Support|
528528+|`decoration-wavy`|🌐 Web only|
529529530530## Text Decoration Thickness
531531···535535536536### Compatibility
537537538538-| Class | Support |
539539-| ---------------------- | ----------- |
540540-| `decoration-auto` | 🌐 Web only |
541541-| `decoration-from-font` | 🌐 Web only |
542542-| `decoration-0` | 🌐 Web only |
543543-| `decoration-1` | 🌐 Web only |
544544-| `decoration-2` | 🌐 Web only |
545545-| `decoration-4` | 🌐 Web only |
546546-| `decoration-8` | 🌐 Web only |
538538+|Class|Support|
539539+|-|-|
540540+|`decoration-auto`|🌐 Web only|
541541+|`decoration-from-font`|🌐 Web only|
542542+|`decoration-0`|🌐 Web only|
543543+|`decoration-1`|🌐 Web only|
544544+|`decoration-2`|🌐 Web only|
545545+|`decoration-4`|🌐 Web only|
546546+|`decoration-8`|🌐 Web only|
547547548548## `vars()` Function Overview
549549···572572573573### Compatibility
574574575575-| Class | Support |
576576-| ------------ | ----------- |
577577-| `indent-[n]` | 🌐 Web only |
578578-| `indent-{n}` | 🌐 Web only |
575575+|Class|Support|
576576+|-|-|
577577+|`indent-[n]`|🌐 Web only|
578578+|`indent-{n}`|🌐 Web only|
579579580580## Align Self
581581···585585586586### Compatibility
587587588588-| Class | Support |
589589-| --------------- | --------------- |
590590-| `self-auto` | ✅ Full Support |
591591-| `self-start` | ✅ Full Support |
592592-| `self-end` | ✅ Full Support |
593593-| `self-center` | ✅ Full Support |
594594-| `self-stretch` | ✅ Full Support |
595595-| `self-baseline` | ✅ Full Support |
588588+|Class|Support|
589589+|-|-|
590590+|`self-auto`|✅ Full Support|
591591+|`self-start`|✅ Full Support|
592592+|`self-end`|✅ Full Support|
593593+|`self-center`|✅ Full Support|
594594+|`self-stretch`|✅ Full Support|
595595+|`self-baseline`|✅ Full Support|
596596597597## Text Overflow
598598···602602603603### Compatibility
604604605605-| Class | Support |
606606-| --------------- | ----------- |
607607-| `truncate` | 🌐 Web only |
608608-| `text-ellipsis` | 🌐 Web only |
609609-| `text-clip` | 🌐 Web only |
605605+|Class|Support|
606606+|-|-|
607607+|`truncate`|🌐 Web only|
608608+|`text-ellipsis`|🌐 Web only|
609609+|`text-clip`|🌐 Web only|
610610611611## Text Alignment
612612···616616617617### Compatibility Table
618618619619-| Class | Support |
620620-| -------------- | --------------- |
621621-| `text-left` | ✅ Full Support |
622622-| `text-center` | ✅ Full Support |
623623-| `text-right` | ✅ Full Support |
624624-| `text-justify` | ✅ Full Support |
625625-| `text-start` | ✅ Full Support |
626626-| `text-end` | ✅ Full Support |
619619+|Class|Support|
620620+|-|-|
621621+|`text-left`|✅ Full Support|
622622+|`text-center`|✅ Full Support|
623623+|`text-right`|✅ Full Support|
624624+|`text-justify`|✅ Full Support|
625625+|`text-start`|✅ Full Support|
626626+|`text-end`|✅ Full Support|
627627628628----
628628+***
629629630630## Accessing and Managing Device Color Scheme
631631632632The `useColorScheme()` function provides a way to access and manage the device's current color scheme.
633633634634-| Property | Description |
635635-| --- | --- |
636636-| `colorScheme` | Represents the current color scheme of the device. |
637637-| `setColorScheme` | Allows overriding the current color scheme with either `light`, `dark`, or `system`. |
638638-| `toggleColorScheme` | Switches the color scheme between `light` and `dark`. |
634634+|Property|Description|
635635+|-|-|
636636+|`colorScheme`|Represents the current color scheme of the device.|
637637+|`setColorScheme`|Allows overriding the current color scheme with either `light`, `dark`, or `system`.|
638638+|`toggleColorScheme`|Switches the color scheme between `light` and `dark`.|
639639640640Additionally, you can manually adjust the color scheme using `NativeWindStyleSheet.setColorScheme(colorScheme)`.
641641···664664665665### Compatibility
666666667667-| Class | Support |
668668-| -------------- | --------------- |
669669-| `flex-1` | ✅ Full Support |
670670-| `basis-[n]` | ✅ Full Support |
671671-| `flex-auto` | 🌐 Web only |
672672-| `flex-initial` | 🌐 Web only |
673673-| `flex-none` | 🌐 Web only |
667667+|Class|Support|
668668+|-|-|
669669+|`flex-1`|✅ Full Support|
670670+|`basis-[n]`|✅ Full Support|
671671+|`flex-auto`|🌐 Web only|
672672+|`flex-initial`|🌐 Web only|
673673+|`flex-none`|🌐 Web only|
674674675675## Text Underline Offset
676676···680680681681### Compatibility
682682683683-| Class | Support |
684684-| ----------------------- | ----------- |
685685-| `underline-offset-auto` | 🌐 Web only |
686686-| `underline-offset-0` | 🌐 Web only |
687687-| `underline-offset-1` | 🌐 Web only |
688688-| `underline-offset-2` | 🌐 Web only |
689689-| `underline-offset-4` | 🌐 Web only |
690690-| `underline-offset-8` | 🌐 Web only |
683683+|Class|Support|
684684+|-|-|
685685+|`underline-offset-auto`|🌐 Web only|
686686+|`underline-offset-0`|🌐 Web only|
687687+|`underline-offset-1`|🌐 Web only|
688688+|`underline-offset-2`|🌐 Web only|
689689+|`underline-offset-4`|🌐 Web only|
690690+|`underline-offset-8`|🌐 Web only|
691691692692## Vertical Align
693693···697697698698### Compatibility
699699700700-| Class | Support |
701701-| ------------------- | ----------- |
702702-| `align-baseline` | 🌐 Web only |
703703-| `align-top` | 🌐 Web only |
704704-| `align-middle` | 🌐 Web only |
705705-| `align-bottom` | 🌐 Web only |
706706-| `align-text-top` | 🌐 Web only |
707707-| `align-text-bottom` | 🌐 Web only |
708708-| `align-sub` | 🌐 Web only |
709709-| `align-super` | 🌐 Web only |
700700+|Class|Support|
701701+|-|-|
702702+|`align-baseline`|🌐 Web only|
703703+|`align-top`|🌐 Web only|
704704+|`align-middle`|🌐 Web only|
705705+|`align-bottom`|🌐 Web only|
706706+|`align-text-top`|🌐 Web only|
707707+|`align-text-bottom`|🌐 Web only|
708708+|`align-sub`|🌐 Web only|
709709+|`align-super`|🌐 Web only|
710710711711## Flex Basis
712712···716716717717### Compatibility
718718719719-| Class | Support |
720720-| ------------ | --------------- |
721721-| `basis-{n}` | ✅ Full Support |
722722-| `basis-[n]` | ✅ Full Support |
723723-| `basis-auto` | 🌐 Web only |
719719+|Class|Support|
720720+|-|-|
721721+|`basis-{n}`|✅ Full Support|
722722+|`basis-[n]`|✅ Full Support|
723723+|`basis-auto`|🌐 Web only|
724724725725## Whitespace
726726···730730731731### Compatibility
732732733733-| Class | Support |
734734-| ------------------------- | ----------- |
735735-| `whitespace-normal` | 🌐 Web only |
736736-| `whitespace-nowrap` | 🌐 Web only |
737737-| `whitespace-pre` | 🌐 Web only |
738738-| `whitespace-pre-line` | 🌐 Web only |
739739-| `whitespace-pre-wrap` | 🌐 Web only |
740740-| `whitespace-break-spaces` | 🌐 Web only |
733733+|Class|Support|
734734+|-|-|
735735+|`whitespace-normal`|🌐 Web only|
736736+|`whitespace-nowrap`|🌐 Web only|
737737+|`whitespace-pre`|🌐 Web only|
738738+|`whitespace-pre-line`|🌐 Web only|
739739+|`whitespace-pre-wrap`|🌐 Web only|
740740+|`whitespace-break-spaces`|🌐 Web only|
741741742742## Flex Direction
743743···749749750750### Compatibility
751751752752-| Class | Support |
753753-| ------------------ | --------------- |
754754-| `flex-row` | ✅ Full Support |
755755-| `flex-row-reverse` | ✅ Full Support |
756756-| `flex-col` | ✅ Full Support |
757757-| `flex-col-reverse` | ✅ Full Support |
752752+|Class|Support|
753753+|-|-|
754754+|`flex-row`|✅ Full Support|
755755+|`flex-row-reverse`|✅ Full Support|
756756+|`flex-col`|✅ Full Support|
757757+|`flex-col-reverse`|✅ Full Support|
758758759759```typescript
760760// Example TypeScript typings for flex direction classes
···776776777777### Compatibility
778778779779-| Class | Support |
780780-| -------------------- | ----------- |
781781-| `break-normal` | 🌐 Web only |
782782-| `word-break: normal` | 🌐 Web only |
783783-| `break-words` | 🌐 Web only |
784784-| `break-all` | 🌐 Web only |
785785-| `break-keep` | 🌐 Web only |
779779+|Class|Support|
780780+|-|-|
781781+|`break-normal`|🌐 Web only|
782782+|`word-break: normal`|🌐 Web only|
783783+|`break-words`|🌐 Web only|
784784+|`break-all`|🌐 Web only|
785785+|`break-keep`|🌐 Web only|
786786787787## Background Attachment
788788789789The following table outlines the support for various background attachment classes in web development:
790790791791-| Class | Support |
792792-| ----------- | -------- |
793793-| `bg-fixed` | Web only |
794794-| `bg-local` | Web only |
795795-| `bg-scroll` | Web only |
791791+|Class|Support|
792792+|-|-|
793793+|`bg-fixed`|Web only|
794794+|`bg-local`|Web only|
795795+|`bg-scroll`|Web only|
796796797797These classes are used to control how a background image is positioned relative to the viewport or its containing element.
798798···800800801801The following table outlines various CSS classes related to background clipping, along with their support status:
802802803803-| Class | Support |
804804-| ----------------- | ----------- |
805805-| `bg-clip-border` | 🌐 Web only |
806806-| `bg-clip-padding` | 🌐 Web only |
807807-| `bg-clip-content` | 🌐 Web only |
808808-| `bg-clip-text` | 🌐 Web only |
803803+|Class|Support|
804804+|-|-|
805805+|`bg-clip-border`|🌐 Web only|
806806+|`bg-clip-padding`|🌐 Web only|
807807+|`bg-clip-content`|🌐 Web only|
808808+|`bg-clip-text`|🌐 Web only|
809809810810These classes are used to define how the background of an element is clipped, with support limited to web browsers.
811811···861861862862### Compatibility
863863864864-| Class | Support |
865865-| -------- | --------------- |
866866-| `grow` | ✅ Full Support |
867867-| `grow-0` | ✅ Full Support |
864864+|Class|Support|
865865+|-|-|
866866+|`grow`|✅ Full Support|
867867+|`grow-0`|✅ Full Support|
868868869869## Background Color
870870871871-| Class | Support |
872872-| ------------ | --------------- |
873873-| `bg-{n}` | ✅ Full Support |
874874-| `bg-[n]` | ✅ Full Support |
875875-| `bg-inherit` | 🌐 Web only |
876876-| `bg-current` | 🌐 Web only |
871871+|Class|Support|
872872+|-|-|
873873+|`bg-{n}`|✅ Full Support|
874874+|`bg-[n]`|✅ Full Support|
875875+|`bg-inherit`|🌐 Web only|
876876+|`bg-current`|🌐 Web only|
877877878878### Background Opacity
879879···894894895895The following table outlines various classes used for background images, along with their support status:
896896897897-| Class | Support |
898898-| ------------------- | ----------- |
899899-| `bg-none` | 🌐 Web only |
900900-| `bg-gradient-to-t` | 🌐 Web only |
901901-| `bg-gradient-to-tr` | 🌐 Web only |
902902-| `bg-gradient-to-r` | 🌐 Web only |
903903-| `bg-gradient-to-br` | 🌐 Web only |
904904-| `bg-gradient-to-b` | 🌐 Web only |
905905-| `bg-gradient-to-bl` | 🌐 Web only |
906906-| `bg-gradient-to-l` | 🌐 Web only |
907907-| `bg-gradient-to-tl` | 🌐 Web only |
897897+|Class|Support|
898898+|-|-|
899899+|`bg-none`|🌐 Web only|
900900+|`bg-gradient-to-t`|🌐 Web only|
901901+|`bg-gradient-to-tr`|🌐 Web only|
902902+|`bg-gradient-to-r`|🌐 Web only|
903903+|`bg-gradient-to-br`|🌐 Web only|
904904+|`bg-gradient-to-b`|🌐 Web only|
905905+|`bg-gradient-to-bl`|🌐 Web only|
906906+|`bg-gradient-to-l`|🌐 Web only|
907907+|`bg-gradient-to-tl`|🌐 Web only|
908908909909These classes are specifically designed for use in web development to apply background styles.
910910···916916917917### Compatibility
918918919919-| Class | Support |
920920-| ---------- | --------------- |
921921-| `shrink` | ✅ Full Support |
922922-| `shrink-0` | ✅ Full Support |
919919+|Class|Support|
920920+|-|-|
921921+|`shrink`|✅ Full Support|
922922+|`shrink-0`|✅ Full Support|
923923924924## Background Origin
925925926926The following table outlines the support for different background origin classes in web development:
927927928928-| Class | Support |
929929-| ------------------- | -------- |
930930-| `bg-origin-border` | Web only |
931931-| `bg-origin-padding` | Web only |
932932-| `bg-origin-content` | Web only |
928928+|Class|Support|
929929+|-|-|
930930+|`bg-origin-border`|Web only|
931931+|`bg-origin-padding`|Web only|
932932+|`bg-origin-content`|Web only|
933933934934These 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:
935935···1004100410051005### Compatibility
1006100610071007-| Class | Support |
10081008-| ------------------- | --------------- |
10091009-| `flex-wrap` | ✅ Full Support |
10101010-| `flex-wrap-reverse` | ✅ Full Support |
10111011-| `flex-nowrap` | ✅ Full Support |
10071007+|Class|Support|
10081008+|-|-|
10091009+|`flex-wrap`|✅ Full Support|
10101010+|`flex-wrap-reverse`|✅ Full Support|
10111011+|`flex-nowrap`|✅ Full Support|
1012101210131013## Background Position
1014101410151015The following table outlines various CSS classes used for setting background positions, along with their support status:
1016101610171017-| Class | Support |
10181018-| ----------------- | ----------- |
10191019-| `bg-bottom` | 🌐 Web only |
10201020-| `bg-center` | 🌐 Web only |
10211021-| `bg-left` | 🌐 Web only |
10221022-| `bg-left-bottom` | 🌐 Web only |
10231023-| `bg-left-top` | 🌐 Web only |
10241024-| `bg-right` | 🌐 Web only |
10251025-| `bg-right-bottom` | 🌐 Web only |
10261026-| `bg-right-top` | 🌐 Web only |
10271027-| `bg-top` | 🌐 Web only |
10171017+|Class|Support|
10181018+|-|-|
10191019+|`bg-bottom`|🌐 Web only|
10201020+|`bg-center`|🌐 Web only|
10211021+|`bg-left`|🌐 Web only|
10221022+|`bg-left-bottom`|🌐 Web only|
10231023+|`bg-left-top`|🌐 Web only|
10241024+|`bg-right`|🌐 Web only|
10251025+|`bg-right-bottom`|🌐 Web only|
10261026+|`bg-right-top`|🌐 Web only|
10271027+|`bg-top`|🌐 Web only|
1028102810291029These classes are used to position background images in various locations within an element.
10301030···1032103210331033The following table outlines various CSS classes related to background repeat properties, along with their support status:
1034103410351035-| Class | Support |
10361036-| ----------------- | ----------- |
10371037-| `bg-repeat` | 🌐 Web only |
10381038-| `bg-no-repeat` | 🌐 Web only |
10391039-| `bg-repeat-x` | 🌐 Web only |
10401040-| `bg-repeat-y` | 🌐 Web only |
10411041-| `bg-repeat-round` | 🌐 Web only |
10421042-| `bg-repeat-space` | 🌐 Web only |
10351035+|Class|Support|
10361036+|-|-|
10371037+|`bg-repeat`|🌐 Web only|
10381038+|`bg-no-repeat`|🌐 Web only|
10391039+|`bg-repeat-x`|🌐 Web only|
10401040+|`bg-repeat-y`|🌐 Web only|
10411041+|`bg-repeat-round`|🌐 Web only|
10421042+|`bg-repeat-space`|🌐 Web only|
1043104310441044These classes are used to control how background images repeat within an element. Each class is supported exclusively on web platforms.
10451045···1047104710481048The following table outlines the support for various background size classes:
1049104910501050-| Class | Support |
10511051-| ------------ | ----------- |
10521052-| `bg-auto` | 🌐 Web only |
10531053-| `bg-cover` | 🌐 Web only |
10541054-| `bg-contain` | 🌐 Web only |
10501050+|Class|Support|
10511051+|-|-|
10521052+|`bg-auto`|🌐 Web only|
10531053+|`bg-cover`|🌐 Web only|
10541054+|`bg-contain`|🌐 Web only|
1055105510561056These classes are used to control the sizing of background images in web development.
10571057···10601060Nativewind offers two main strategies for integrating dark mode into your application:
10611061106210621. **System Preference (Automatic)**
10631063-2. **Manual Selection (User Toggle)**
10631063+1. **Manual Selection (User Toggle)**
1064106410651065Both 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.
10661066···1145114511461146### Compatibility
1147114711481148-| Class | Support |
11491149-| --------------- | --------------- |
11501150-| `aspect-auto` | ✅ Full Support |
11511151-| `aspect-video` | ✅ Full Support |
11521152-| `aspect-square` | ✅ Full Support |
11531153-| `aspect-[n]` | ✅ Full Support |
11541154-| `aspect-{n}` | ✅ Full Support |
11481148+|Class|Support|
11491149+|-|-|
11501150+|`aspect-auto`|✅ Full Support|
11511151+|`aspect-video`|✅ Full Support|
11521152+|`aspect-square`|✅ Full Support|
11531153+|`aspect-[n]`|✅ Full Support|
11541154+|`aspect-{n}`|✅ Full Support|
1155115511561156## Gap
11571157···1164116411651165### Compatibility
1166116611671167-| Class | Support |
11681168-| ----------- | --------------- |
11691169-| `gap-{n}` | ✅ Full Support |
11701170-| `gap-[n]` | ✅ Full Support |
11711171-| `gap-x-{n}` | ✅ Full Support |
11721172-| `gap-x-[n]` | ✅ Full Support |
11731173-| `gap-y-{n}` | ✅ Full Support |
11741174-| `gap-y-[n]` | ✅ Full Support |
11671167+|Class|Support|
11681168+|-|-|
11691169+|`gap-{n}`|✅ Full Support|
11701170+|`gap-[n]`|✅ Full Support|
11711171+|`gap-x-{n}`|✅ Full Support|
11721172+|`gap-x-[n]`|✅ Full Support|
11731173+|`gap-y-{n}`|✅ Full Support|
11741174+|`gap-y-[n]`|✅ Full Support|
1175117511761176## Gradient Color Stops
1177117711781178-| Class | Support |
11791179-| ------------------ | ----------- |
11801180-| `from-inherit` | 🌐 Web only |
11811181-| `from-current` | 🌐 Web only |
11821182-| `from-transparent` | 🌐 Web only |
11831183-| `from-black` | 🌐 Web only |
11841184-| `from-white` | 🌐 Web only |
11851185-| `from-{n}` | 🌐 Web only |
11861186-| `from-[n]` | 🌐 Web only |
11871187-| `via-inherit` | 🌐 Web only |
11881188-| `via-current` | 🌐 Web only |
11891189-| `via-transparent` | 🌐 Web only |
11901190-| `via-black` | 🌐 Web only |
11911191-| `via-white` | 🌐 Web only |
11921192-| `via-{n}` | 🌐 Web only |
11931193-| `via-[n]` | 🌐 Web only |
11941194-| `to-inherit` | 🌐 Web only |
11951195-| `to-current` | 🌐 Web only |
11961196-| `to-transparent` | 🌐 Web only |
11971197-| `to-black` | 🌐 Web only |
11981198-| `to-white` | 🌐 Web only |
11991199-| `to-{n}` | 🌐 Web only |
12001200-| `to-[n]` | 🌐 Web only |
11781178+|Class|Support|
11791179+|-|-|
11801180+|`from-inherit`|🌐 Web only|
11811181+|`from-current`|🌐 Web only|
11821182+|`from-transparent`|🌐 Web only|
11831183+|`from-black`|🌐 Web only|
11841184+|`from-white`|🌐 Web only|
11851185+|`from-{n}`|🌐 Web only|
11861186+|`from-[n]`|🌐 Web only|
11871187+|`via-inherit`|🌐 Web only|
11881188+|`via-current`|🌐 Web only|
11891189+|`via-transparent`|🌐 Web only|
11901190+|`via-black`|🌐 Web only|
11911191+|`via-white`|🌐 Web only|
11921192+|`via-{n}`|🌐 Web only|
11931193+|`via-[n]`|🌐 Web only|
11941194+|`to-inherit`|🌐 Web only|
11951195+|`to-current`|🌐 Web only|
11961196+|`to-transparent`|🌐 Web only|
11971197+|`to-black`|🌐 Web only|
11981198+|`to-white`|🌐 Web only|
11991199+|`to-{n}`|🌐 Web only|
12001200+|`to-[n]`|🌐 Web only|
1201120112021202## Border Color
12031203···1207120712081208### Compatibility
1209120912101210-| Class | Support |
12111211-| ---------------- | --------------- |
12121212-| `border-{n}` | ✅ Full Support |
12131213-| `border-[n]` | ✅ Full Support |
12141214-| `border-inherit` | 🌐 Web only |
12151215-| `border-current` | 🌐 Web only |
12101210+|Class|Support|
12111211+|-|-|
12121212+|`border-{n}`|✅ Full Support|
12131213+|`border-[n]`|✅ Full Support|
12141214+|`border-inherit`|🌐 Web only|
12151215+|`border-current`|🌐 Web only|
1216121612171217#### Border Opacity (Native Only)
12181218···1239123912401240### Compatibility
1241124112421242-| Class | Support |
12431243-| ---------------- | ----------- |
12441244-| `auto-cols-auto` | 🌐 Web only |
12451245-| `auto-cols-min` | 🌐 Web only |
12461246-| `auto-cols-max` | 🌐 Web only |
12471247-| `auto-cols-fr` | 🌐 Web only |
12421242+|Class|Support|
12431243+|-|-|
12441244+|`auto-cols-auto`|🌐 Web only|
12451245+|`auto-cols-min`|🌐 Web only|
12461246+|`auto-cols-max`|🌐 Web only|
12471247+|`auto-cols-fr`|🌐 Web only|
1248124812491249## Border Radius
12501250···1254125412551255### Compatibility
1256125612571257-| Class | Support |
12581258-| ----------------- | --------------- |
12591259-| `rounded-none` | ✅ Full Support |
12601260-| `rounded` | ✅ Full Support |
12611261-| `rounded-{n}` | ✅ Full Support |
12621262-| `rounded-[n]` | ✅ Full Support |
12631263-| `rounded-full` | ✅ Full Support |
12641264-| `rounded-t-none` | ✅ Full Support |
12651265-| `rounded-t-{n}` | ✅ Full Support |
12661266-| `rounded-t-[n]` | ✅ Full Support |
12671267-| `rounded-t-full` | ✅ Full Support |
12681268-| `rounded-r-none` | ✅ Full Support |
12691269-| `rounded-r-{n}` | ✅ Full Support |
12701270-| `rounded-r-[n]` | ✅ Full Support |
12711271-| `rounded-r-full` | ✅ Full Support |
12721272-| `rounded-b-none` | ✅ Full Support |
12731273-| `rounded-b-{n}` | ✅ Full Support |
12741274-| `rounded-b-[n]` | ✅ Full Support |
12751275-| `rounded-b-full` | ✅ Full Support |
12761276-| `rounded-l-none` | ✅ Full Support |
12771277-| `rounded-l-{n}` | ✅ Full Support |
12781278-| `rounded-l-[n]` | ✅ Full Support |
12791279-| `rounded-l-full` | ✅ Full Support |
12801280-| `rounded-tl-none` | ✅ Full Support |
12811281-| `rounded-tl-{n}` | ✅ Full Support |
12821282-| `rounded-tl-[n]` | ✅ Full Support |
12831283-| `rounded-tl-full` | ✅ Full Support |
12841284-| `rounded-tr-none` | ✅ Full Support |
12851285-| `rounded-tr-{n}` | ✅ Full Support |
12861286-| `rounded-tr-[n]` | ✅ Full Support |
12871287-| `rounded-tr-full` | ✅ Full Support |
12881288-| `rounded-br-none` | ✅ Full Support |
12891289-| `rounded-br-{n}` | ✅ Full Support |
12901290-| `rounded-br-[n]` | ✅ Full Support |
12911291-| `rounded-br-full` | ✅ Full Support |
12921292-| `rounded-bl-none` | ✅ Full Support |
12931293-| `rounded-bl-{n}` | ✅ Full Support |
12941294-| `rounded-bl-[n]` | ✅ Full Support |
12951295-| `rounded-bl-full` | ✅ Full Support |
12961296-| `border-inherit` | 🌐 Web only |
12971297-| `border-current` | 🌐 Web only |
12571257+|Class|Support|
12581258+|-|-|
12591259+|`rounded-none`|✅ Full Support|
12601260+|`rounded`|✅ Full Support|
12611261+|`rounded-{n}`|✅ Full Support|
12621262+|`rounded-[n]`|✅ Full Support|
12631263+|`rounded-full`|✅ Full Support|
12641264+|`rounded-t-none`|✅ Full Support|
12651265+|`rounded-t-{n}`|✅ Full Support|
12661266+|`rounded-t-[n]`|✅ Full Support|
12671267+|`rounded-t-full`|✅ Full Support|
12681268+|`rounded-r-none`|✅ Full Support|
12691269+|`rounded-r-{n}`|✅ Full Support|
12701270+|`rounded-r-[n]`|✅ Full Support|
12711271+|`rounded-r-full`|✅ Full Support|
12721272+|`rounded-b-none`|✅ Full Support|
12731273+|`rounded-b-{n}`|✅ Full Support|
12741274+|`rounded-b-[n]`|✅ Full Support|
12751275+|`rounded-b-full`|✅ Full Support|
12761276+|`rounded-l-none`|✅ Full Support|
12771277+|`rounded-l-{n}`|✅ Full Support|
12781278+|`rounded-l-[n]`|✅ Full Support|
12791279+|`rounded-l-full`|✅ Full Support|
12801280+|`rounded-tl-none`|✅ Full Support|
12811281+|`rounded-tl-{n}`|✅ Full Support|
12821282+|`rounded-tl-[n]`|✅ Full Support|
12831283+|`rounded-tl-full`|✅ Full Support|
12841284+|`rounded-tr-none`|✅ Full Support|
12851285+|`rounded-tr-{n}`|✅ Full Support|
12861286+|`rounded-tr-[n]`|✅ Full Support|
12871287+|`rounded-tr-full`|✅ Full Support|
12881288+|`rounded-br-none`|✅ Full Support|
12891289+|`rounded-br-{n}`|✅ Full Support|
12901290+|`rounded-br-[n]`|✅ Full Support|
12911291+|`rounded-br-full`|✅ Full Support|
12921292+|`rounded-bl-none`|✅ Full Support|
12931293+|`rounded-bl-{n}`|✅ Full Support|
12941294+|`rounded-bl-[n]`|✅ Full Support|
12951295+|`rounded-bl-full`|✅ Full Support|
12961296+|`border-inherit`|🌐 Web only|
12971297+|`border-current`|🌐 Web only|
1298129812991299## Box Decoration Break
13001300···1304130413051305### Compatibility
1306130613071307-| Class | Support |
13081308-| ---------------------- | ----------- |
13091309-| `box-decoration-clone` | 🌐 Web only |
13101310-| `box-decoration-slice` | 🌐 Web only |
13071307+|Class|Support|
13081308+|-|-|
13091309+|`box-decoration-clone`|🌐 Web only|
13101310+|`box-decoration-slice`|🌐 Web only|
1311131113121312## Grid Auto Flow
13131313···1317131713181318### Compatibility
1319131913201320-| Class | Support |
13211321-| --------------------- | ----------- |
13221322-| `grid-flow-row` | 🌐 Web only |
13231323-| `grid-flow-col` | 🌐 Web only |
13241324-| `grid-flow-dense` | 🌐 Web only |
13251325-| `grid-flow-row-dense` | 🌐 Web only |
13261326-| `grid-flow-col-dense` | 🌐 Web only |
13201320+|Class|Support|
13211321+|-|-|
13221322+|`grid-flow-row`|🌐 Web only|
13231323+|`grid-flow-col`|🌐 Web only|
13241324+|`grid-flow-dense`|🌐 Web only|
13251325+|`grid-flow-row-dense`|🌐 Web only|
13261326+|`grid-flow-col-dense`|🌐 Web only|
1327132713281328## Border Style
13291329···1335133513361336When 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:
1337133713381338-| Class | Support |
13391339-| --------------- | --------------- |
13401340-| `border-solid` | ✅ Full Support |
13411341-| `border-dashed` | ✅ Full Support |
13421342-| `border-dotted` | ✅ Full Support |
13431343-| `border-none` | 🌐 Web only |
13441344-| `border-double` | 🌐 Web only |
13451345-| `border-hidden` | 🌐 Web only |
13381338+|Class|Support|
13391339+|-|-|
13401340+|`border-solid`|✅ Full Support|
13411341+|`border-dashed`|✅ Full Support|
13421342+|`border-dotted`|✅ Full Support|
13431343+|`border-none`|🌐 Web only|
13441344+|`border-double`|🌐 Web only|
13451345+|`border-hidden`|🌐 Web only|
1346134613471347## Border Width
13481348···1354135413551355The following table outlines the support status for various border width classes:
1356135613571357-| Class | Support |
13581358-| -------------- | --------------- |
13591359-| `border` | ✅ Full Support |
13601360-| `border-{n}` | ✅ Full Support |
13611361-| `border-[n]` | ✅ Full Support |
13621362-| `border-x` | ✅ Full Support |
13631363-| `border-x-{n}` | ✅ Full Support |
13641364-| `border-x-[n]` | ✅ Full Support |
13651365-| `border-y` | ✅ Full Support |
13661366-| `border-y-{n}` | ✅ Full Support |
13671367-| `border-y-[n]` | ✅ Full Support |
13681368-| `border-t` | ✅ Full Support |
13691369-| `border-t-{n}` | ✅ Full Support |
13701370-| `border-t-[n]` | ✅ Full Support |
13711371-| `border-r` | ✅ Full Support |
13721372-| `border-r-{n}` | ✅ Full Support |
13731373-| `border-r-[n]` | ✅ Full Support |
13741374-| `border-b` | ✅ Full Support |
13751375-| `border-b-{n}` | ✅ Full Support |
13761376-| `border-b-[n]` | ✅ Full Support |
13771377-| `border-l` | ✅ Full Support |
13781378-| `border-l-{n}` | ✅ Full Support |
13791379-| `border-l-[n]` | ✅ Full Support |
13571357+|Class|Support|
13581358+|-|-|
13591359+|`border`|✅ Full Support|
13601360+|`border-{n}`|✅ Full Support|
13611361+|`border-[n]`|✅ Full Support|
13621362+|`border-x`|✅ Full Support|
13631363+|`border-x-{n}`|✅ Full Support|
13641364+|`border-x-[n]`|✅ Full Support|
13651365+|`border-y`|✅ Full Support|
13661366+|`border-y-{n}`|✅ Full Support|
13671367+|`border-y-[n]`|✅ Full Support|
13681368+|`border-t`|✅ Full Support|
13691369+|`border-t-{n}`|✅ Full Support|
13701370+|`border-t-[n]`|✅ Full Support|
13711371+|`border-r`|✅ Full Support|
13721372+|`border-r-{n}`|✅ Full Support|
13731373+|`border-r-[n]`|✅ Full Support|
13741374+|`border-b`|✅ Full Support|
13751375+|`border-b-{n}`|✅ Full Support|
13761376+|`border-b-[n]`|✅ Full Support|
13771377+|`border-l`|✅ Full Support|
13781378+|`border-l-{n}`|✅ Full Support|
13791379+|`border-l-[n]`|✅ Full Support|
1380138013811381## Grid Auto Rows
13821382···1386138613871387### Compatibility
1388138813891389-| Class | Support |
13901390-| ---------------- | ----------- |
13911391-| `auto-rows-auto` | 🌐 Web only |
13921392-| `auto-rows-min` | 🌐 Web only |
13931393-| `auto-rows-max` | 🌐 Web only |
13941394-| `auto-rows-fr` | 🌐 Web only |
13891389+|Class|Support|
13901390+|-|-|
13911391+|`auto-rows-auto`|🌐 Web only|
13921392+|`auto-rows-min`|🌐 Web only|
13931393+|`auto-rows-max`|🌐 Web only|
13941394+|`auto-rows-fr`|🌐 Web only|
1395139513961396## Divide Color
13971397···1404140414051405### Compatibility
1406140614071407-| Class | Support |
14081408-| ---------------- | ----------- |
14091409-| `divide-{n}` | 🌐 Web only |
14101410-| `divide-[n]` | 🌐 Web only |
14111411-| `divide-inherit` | 🌐 Web only |
14121412-| `divide-current` | 🌐 Web only |
14071407+|Class|Support|
14081408+|-|-|
14091409+|`divide-{n}`|🌐 Web only|
14101410+|`divide-[n]`|🌐 Web only|
14111411+|`divide-inherit`|🌐 Web only|
14121412+|`divide-current`|🌐 Web only|
1413141314141414#### divideOpacity (native only)
14151415···1437143714381438### Compatibility
1439143914401440-| Class | Support |
14411441-| --------------- | ----------- |
14421442-| `divide-solid` | 🌐 Web only |
14431443-| `divide-dashed` | 🌐 Web only |
14441444-| `divide-dotted` | 🌐 Web only |
14451445-| `divide-none` | 🌐 Web only |
14461446-| `divide-double` | 🌐 Web only |
14471447-| `divide-hidden` | 🌐 Web only |
14401440+|Class|Support|
14411441+|-|-|
14421442+|`divide-solid`|🌐 Web only|
14431443+|`divide-dashed`|🌐 Web only|
14441444+|`divide-dotted`|🌐 Web only|
14451445+|`divide-none`|🌐 Web only|
14461446+|`divide-double`|🌐 Web only|
14471447+|`divide-hidden`|🌐 Web only|
1448144814491449## Typescript
14501450···1676167616771677The following table outlines the compatibility of various grid column classes with web platforms:
1678167816791679-| Class | Support |
16801680-| ---------------- | ----------- |
16811681-| `col-auto` | 🌐 Web only |
16821682-| `col-span-1` | 🌐 Web only |
16831683-| `col-span-2` | 🌐 Web only |
16841684-| `col-span-3` | 🌐 Web only |
16851685-| `col-span-4` | 🌐 Web only |
16861686-| `col-span-5` | 🌐 Web only |
16871687-| `col-span-6` | 🌐 Web only |
16881688-| `col-span-7` | 🌐 Web only |
16891689-| `col-span-8` | 🌐 Web only |
16901690-| `col-span-9` | 🌐 Web only |
16911691-| `col-span-10` | 🌐 Web only |
16921692-| `col-span-11` | 🌐 Web only |
16931693-| `col-span-12` | 🌐 Web only |
16941694-| `col-span-full` | 🌐 Web only |
16951695-| `col-start-1` | 🌐 Web only |
16961696-| `col-start-2` | 🌐 Web only |
16971697-| `col-start-3` | 🌐 Web only |
16981698-| `col-start-4` | 🌐 Web only |
16991699-| `col-start-5` | 🌐 Web only |
17001700-| `col-start-6` | 🌐 Web only |
17011701-| `col-start-7` | 🌐 Web only |
17021702-| `col-start-8` | 🌐 Web only |
17031703-| `col-start-9` | 🌐 Web only |
17041704-| `col-start-10` | 🌐 Web only |
17051705-| `col-start-11` | 🌐 Web only |
17061706-| `col-start-12` | 🌐 Web only |
17071707-| `col-start-13` | 🌐 Web only |
17081708-| `col-start-auto` | 🌐 Web only |
17091709-| `col-end-1` | 🌐 Web only |
17101710-| `col-end-2` | 🌐 Web only |
17111711-| `col-end-3` | 🌐 Web only |
17121712-| `col-end-4` | 🌐 Web only |
17131713-| `col-end-5` | 🌐 Web only |
17141714-| `col-end-6` | 🌐 Web only |
17151715-| `col-end-7` | 🌐 Web only |
17161716-| `col-end-8` | 🌐 Web only |
17171717-| `col-end-9` | 🌐 Web only |
17181718-| `col-end-10` | 🌐 Web only |
17191719-| `col-end-11` | 🌐 Web only |
17201720-| `col-end-12` | 🌐 Web only |
17211721-| `col-end-13` | 🌐 Web only |
17221722-| `col-end-auto` | 🌐 Web only |
16791679+|Class|Support|
16801680+|-|-|
16811681+|`col-auto`|🌐 Web only|
16821682+|`col-span-1`|🌐 Web only|
16831683+|`col-span-2`|🌐 Web only|
16841684+|`col-span-3`|🌐 Web only|
16851685+|`col-span-4`|🌐 Web only|
16861686+|`col-span-5`|🌐 Web only|
16871687+|`col-span-6`|🌐 Web only|
16881688+|`col-span-7`|🌐 Web only|
16891689+|`col-span-8`|🌐 Web only|
16901690+|`col-span-9`|🌐 Web only|
16911691+|`col-span-10`|🌐 Web only|
16921692+|`col-span-11`|🌐 Web only|
16931693+|`col-span-12`|🌐 Web only|
16941694+|`col-span-full`|🌐 Web only|
16951695+|`col-start-1`|🌐 Web only|
16961696+|`col-start-2`|🌐 Web only|
16971697+|`col-start-3`|🌐 Web only|
16981698+|`col-start-4`|🌐 Web only|
16991699+|`col-start-5`|🌐 Web only|
17001700+|`col-start-6`|🌐 Web only|
17011701+|`col-start-7`|🌐 Web only|
17021702+|`col-start-8`|🌐 Web only|
17031703+|`col-start-9`|🌐 Web only|
17041704+|`col-start-10`|🌐 Web only|
17051705+|`col-start-11`|🌐 Web only|
17061706+|`col-start-12`|🌐 Web only|
17071707+|`col-start-13`|🌐 Web only|
17081708+|`col-start-auto`|🌐 Web only|
17091709+|`col-end-1`|🌐 Web only|
17101710+|`col-end-2`|🌐 Web only|
17111711+|`col-end-3`|🌐 Web only|
17121712+|`col-end-4`|🌐 Web only|
17131713+|`col-end-5`|🌐 Web only|
17141714+|`col-end-6`|🌐 Web only|
17151715+|`col-end-7`|🌐 Web only|
17161716+|`col-end-8`|🌐 Web only|
17171717+|`col-end-9`|🌐 Web only|
17181718+|`col-end-10`|🌐 Web only|
17191719+|`col-end-11`|🌐 Web only|
17201720+|`col-end-12`|🌐 Web only|
17211721+|`col-end-13`|🌐 Web only|
17221722+|`col-end-auto`|🌐 Web only|
1723172317241724## Divide Width
17251725···1733173317341734### Compatibility
1735173517361736-| Class | Support |
17371737-| -------------- | ----------- |
17381738-| `divide-x-{n}` | 🌐 Web only |
17391739-| `divide-x-[n]` | 🌐 Web only |
17401740-| `divide-y-{n}` | 🌐 Web only |
17411741-| `divide-y-[n]` | 🌐 Web only |
17361736+|Class|Support|
17371737+|-|-|
17381738+|`divide-x-{n}`|🌐 Web only|
17391739+|`divide-x-[n]`|🌐 Web only|
17401740+|`divide-y-{n}`|🌐 Web only|
17411741+|`divide-y-[n]`|🌐 Web only|
1742174217431743## Outline Color
17441744···1748174817491749### Compatibility
1750175017511751-| Class | Support |
17521752-| --------------------- | ----------- |
17531753-| `outline-inherit` | 🌐 Web only |
17541754-| `outline-current` | 🌐 Web only |
17551755-| `outline-transparent` | 🌐 Web only |
17561756-| `outline-black` | 🌐 Web only |
17571757-| `outline-white` | 🌐 Web only |
17581758-| `outline-{n}` | 🌐 Web only |
17591759-| `outline-[n]` | 🌐 Web only |
17511751+|Class|Support|
17521752+|-|-|
17531753+|`outline-inherit`|🌐 Web only|
17541754+|`outline-current`|🌐 Web only|
17551755+|`outline-transparent`|🌐 Web only|
17561756+|`outline-black`|🌐 Web only|
17571757+|`outline-white`|🌐 Web only|
17581758+|`outline-{n}`|🌐 Web only|
17591759+|`outline-[n]`|🌐 Web only|
1760176017611761## Outline Offset
17621762···1766176617671767### Compatibility
1768176817691769-| Class | Support |
17701770-| ------------------ | ----------- |
17711771-| `outline-offset-0` | 🌐 Web only |
17721772-| `outline-offset-1` | 🌐 Web only |
17731773-| `outline-offset-2` | 🌐 Web only |
17741774-| `outline-offset-4` | 🌐 Web only |
17751775-| `outline-offset-8` | 🌐 Web only |
17691769+|Class|Support|
17701770+|-|-|
17711771+|`outline-offset-0`|🌐 Web only|
17721772+|`outline-offset-1`|🌐 Web only|
17731773+|`outline-offset-2`|🌐 Web only|
17741774+|`outline-offset-4`|🌐 Web only|
17751775+|`outline-offset-8`|🌐 Web only|
1776177617771777## Box Sizing
17781778···1782178217831783### Compatibility
1784178417851785-| Class | Support |
17861786-| ------------- | ----------- |
17871787-| `box-border` | 🌐 Web only |
17881788-| `box-content` | 🌐 Web only |
17851785+|Class|Support|
17861786+|-|-|
17871787+|`box-border`|🌐 Web only|
17881788+|`box-content`|🌐 Web only|
1789178917901790## Grid Row Start / End
17911791···1797179717981798The following classes are supported exclusively on web platforms:
1799179918001800-| Class | Support |
18011801-| ---------------- | ----------- |
18021802-| `row-auto` | 🌐 Web only |
18031803-| `row-span-1` | 🌐 Web only |
18041804-| `row-span-2` | 🌐 Web only |
18051805-| `row-span-3` | 🌐 Web only |
18061806-| `row-span-4` | 🌐 Web only |
18071807-| `row-span-5` | 🌐 Web only |
18081808-| `row-span-6` | 🌐 Web only |
18091809-| `row-span-7` | 🌐 Web only |
18101810-| `row-span-8` | 🌐 Web only |
18111811-| `row-span-9` | 🌐 Web only |
18121812-| `row-span-10` | 🌐 Web only |
18131813-| `row-span-11` | 🌐 Web only |
18141814-| `row-span-12` | 🌐 Web only |
18151815-| `row-span-full` | 🌐 Web only |
18161816-| `row-start-1` | 🌐 Web only |
18171817-| `row-start-2` | 🌐 Web only |
18181818-| `row-start-3` | 🌐 Web only |
18191819-| `row-start-4` | 🌐 Web only |
18201820-| `row-start-5` | 🌐 Web only |
18211821-| `row-start-6` | 🌐 Web only |
18221822-| `row-start-7` | 🌐 Web only |
18231823-| `row-start-8` | 🌐 Web only |
18241824-| `row-start-9` | 🌐 Web only |
18251825-| `row-start-10` | 🌐 Web only |
18261826-| `row-start-11` | 🌐 Web only |
18271827-| `row-start-12` | 🌐 Web only |
18281828-| `row-start-13` | 🌐 Web only |
18291829-| `row-start-auto` | 🌐 Web only |
18301830-| `row-end-1` | 🌐 Web only |
18311831-| `row-end-2` | 🌐 Web only |
18321832-| `row-end-3` | 🌐 Web only |
18331833-| `row-end-4` | 🌐 Web only |
18341834-| `row-end-5` | 🌐 Web only |
18351835-| `row-end-6` | 🌐 Web only |
18361836-| `row-end-7` | 🌐 Web only |
18371837-| `row-end-8` | 🌐 Web only |
18381838-| `row-end-9` | 🌐 Web only |
18391839-| `row-end-10` | 🌐 Web only |
18401840-| `row-end-11` | 🌐 Web only |
18411841-| `row-end-12` | 🌐 Web only |
18421842-| `row-end-13` | 🌐 Web only |
18431843-| `row-end-auto` | 🌐 Web only |
18001800+|Class|Support|
18011801+|-|-|
18021802+|`row-auto`|🌐 Web only|
18031803+|`row-span-1`|🌐 Web only|
18041804+|`row-span-2`|🌐 Web only|
18051805+|`row-span-3`|🌐 Web only|
18061806+|`row-span-4`|🌐 Web only|
18071807+|`row-span-5`|🌐 Web only|
18081808+|`row-span-6`|🌐 Web only|
18091809+|`row-span-7`|🌐 Web only|
18101810+|`row-span-8`|🌐 Web only|
18111811+|`row-span-9`|🌐 Web only|
18121812+|`row-span-10`|🌐 Web only|
18131813+|`row-span-11`|🌐 Web only|
18141814+|`row-span-12`|🌐 Web only|
18151815+|`row-span-full`|🌐 Web only|
18161816+|`row-start-1`|🌐 Web only|
18171817+|`row-start-2`|🌐 Web only|
18181818+|`row-start-3`|🌐 Web only|
18191819+|`row-start-4`|🌐 Web only|
18201820+|`row-start-5`|🌐 Web only|
18211821+|`row-start-6`|🌐 Web only|
18221822+|`row-start-7`|🌐 Web only|
18231823+|`row-start-8`|🌐 Web only|
18241824+|`row-start-9`|🌐 Web only|
18251825+|`row-start-10`|🌐 Web only|
18261826+|`row-start-11`|🌐 Web only|
18271827+|`row-start-12`|🌐 Web only|
18281828+|`row-start-13`|🌐 Web only|
18291829+|`row-start-auto`|🌐 Web only|
18301830+|`row-end-1`|🌐 Web only|
18311831+|`row-end-2`|🌐 Web only|
18321832+|`row-end-3`|🌐 Web only|
18331833+|`row-end-4`|🌐 Web only|
18341834+|`row-end-5`|🌐 Web only|
18351835+|`row-end-6`|🌐 Web only|
18361836+|`row-end-7`|🌐 Web only|
18371837+|`row-end-8`|🌐 Web only|
18381838+|`row-end-9`|🌐 Web only|
18391839+|`row-end-10`|🌐 Web only|
18401840+|`row-end-11`|🌐 Web only|
18411841+|`row-end-12`|🌐 Web only|
18421842+|`row-end-13`|🌐 Web only|
18431843+|`row-end-auto`|🌐 Web only|
1844184418451845## Outline Style
18461846···1850185018511851### Compatibility
1852185218531853-| Class | Support |
18541854-| ---------------- | ----------- |
18551855-| `outline-none` | 🌐 Web only |
18561856-| `outline` | 🌐 Web only |
18571857-| `outline-dashed` | 🌐 Web only |
18581858-| `outline-dotted` | 🌐 Web only |
18591859-| `outline-double` | 🌐 Web only |
18531853+|Class|Support|
18541854+|-|-|
18551855+|`outline-none`|🌐 Web only|
18561856+|`outline`|🌐 Web only|
18571857+|`outline-dashed`|🌐 Web only|
18581858+|`outline-dotted`|🌐 Web only|
18591859+|`outline-double`|🌐 Web only|
1860186018611861## Grid Template Columns
18621862···1866186618671867### Compatibility
1868186818691869-| Class | Support |
18701870-| ---------------- | ----------- |
18711871-| `grid-cols-1` | 🌐 Web only |
18721872-| `grid-cols-2` | 🌐 Web only |
18731873-| `grid-cols-3` | 🌐 Web only |
18741874-| `grid-cols-4` | 🌐 Web only |
18751875-| `grid-cols-5` | 🌐 Web only |
18761876-| `grid-cols-6` | 🌐 Web only |
18771877-| `grid-cols-7` | 🌐 Web only |
18781878-| `grid-cols-8` | 🌐 Web only |
18791879-| `grid-cols-9` | 🌐 Web only |
18801880-| `grid-cols-10` | 🌐 Web only |
18811881-| `grid-cols-11` | 🌐 Web only |
18821882-| `grid-cols-12` | 🌐 Web only |
18831883-| `grid-cols-none` | 🌐 Web only |
18691869+|Class|Support|
18701870+|-|-|
18711871+|`grid-cols-1`|🌐 Web only|
18721872+|`grid-cols-2`|🌐 Web only|
18731873+|`grid-cols-3`|🌐 Web only|
18741874+|`grid-cols-4`|🌐 Web only|
18751875+|`grid-cols-5`|🌐 Web only|
18761876+|`grid-cols-6`|🌐 Web only|
18771877+|`grid-cols-7`|🌐 Web only|
18781878+|`grid-cols-8`|🌐 Web only|
18791879+|`grid-cols-9`|🌐 Web only|
18801880+|`grid-cols-10`|🌐 Web only|
18811881+|`grid-cols-11`|🌐 Web only|
18821882+|`grid-cols-12`|🌐 Web only|
18831883+|`grid-cols-none`|🌐 Web only|
1884188418851885## Outline Width
18861886···1890189018911891### Compatibility
1892189218931893-| Class | Support |
18941894-| ----------- | ----------- |
18951895-| `outline-0` | 🌐 Web only |
18961896-| `outline-1` | 🌐 Web only |
18971897-| `outline-2` | 🌐 Web only |
18981898-| `outline-4` | 🌐 Web only |
18991899-| `outline-8` | 🌐 Web only |
18931893+|Class|Support|
18941894+|-|-|
18951895+|`outline-0`|🌐 Web only|
18961896+|`outline-1`|🌐 Web only|
18971897+|`outline-2`|🌐 Web only|
18981898+|`outline-4`|🌐 Web only|
18991899+|`outline-8`|🌐 Web only|
1900190019011901## Ring Color
19021902···1906190619071907### Compatibility
1908190819091909-| Class | Support |
19101910-| ------------------ | ----------- |
19111911-| `ring-inherit` | 🌐 Web only |
19121912-| `ring-current` | 🌐 Web only |
19131913-| `ring-transparent` | 🌐 Web only |
19141914-| `ring-black` | 🌐 Web only |
19151915-| `ring-white` | 🌐 Web only |
19161916-| `ring-{n}` | 🌐 Web only |
19171917-| `ring-[n]` | 🌐 Web only |
19091909+|Class|Support|
19101910+|-|-|
19111911+|`ring-inherit`|🌐 Web only|
19121912+|`ring-current`|🌐 Web only|
19131913+|`ring-transparent`|🌐 Web only|
19141914+|`ring-black`|🌐 Web only|
19151915+|`ring-white`|🌐 Web only|
19161916+|`ring-{n}`|🌐 Web only|
19171917+|`ring-[n]`|🌐 Web only|
1918191819191919## Units
19201920···1922192219231923These units can be utilized within classes or in the `tailwind.config.js` file.
1924192419251925-| Unit | Name | Description |
19261926-| ---- | ----------- | -------------------------------------------- |
19271927-| vw | View Width | Implemented using `Dimensions.get('window')` |
19281928-| vh | View Height | Implemented using `Dimensions.get('window')` |
19251925+|Unit|Name|Description|
19261926+|-|-|-|
19271927+|vw|View Width|Implemented using `Dimensions.get('window')`|
19281928+|vh|View Height|Implemented using `Dimensions.get('window')`|
1929192919301930## Break After
19311931···1935193519361936### Compatibility
1937193719381938-| Class | Support |
19391939-| ------------------------ | ----------- |
19401940-| `break-after-auto` | 🌐 Web only |
19411941-| `break-after-avoid` | 🌐 Web only |
19421942-| `break-after-all` | 🌐 Web only |
19431943-| `break-after-avoid-page` | 🌐 Web only |
19441944-| `break-after-page` | 🌐 Web only |
19451945-| `break-after-left` | 🌐 Web only |
19461946-| `break-after-right` | 🌐 Web only |
19471947-| `break-after-column` | 🌐 Web only |
19381938+|Class|Support|
19391939+|-|-|
19401940+|`break-after-auto`|🌐 Web only|
19411941+|`break-after-avoid`|🌐 Web only|
19421942+|`break-after-all`|🌐 Web only|
19431943+|`break-after-avoid-page`|🌐 Web only|
19441944+|`break-after-page`|🌐 Web only|
19451945+|`break-after-left`|🌐 Web only|
19461946+|`break-after-right`|🌐 Web only|
19471947+|`break-after-column`|🌐 Web only|
1948194819491949## Ring Offset Color
19501950···1954195419551955### Compatibility
1956195619571957-| Class | Support |
19581958-| --------------- | ----------- |
19591959-| `ring-offset-0` | 🌐 Web only |
19601960-| `ring-offset-1` | 🌐 Web only |
19611961-| `ring-offset-2` | 🌐 Web only |
19621962-| `ring-offset-4` | 🌐 Web only |
19631963-| `ring-offset-8` | 🌐 Web only |
19571957+|Class|Support|
19581958+|-|-|
19591959+|`ring-offset-0`|🌐 Web only|
19601960+|`ring-offset-1`|🌐 Web only|
19611961+|`ring-offset-2`|🌐 Web only|
19621962+|`ring-offset-4`|🌐 Web only|
19631963+|`ring-offset-8`|🌐 Web only|
1964196419651965## Grid Template Rows
19661966···1970197019711971### Compatibility
1972197219731973-| Class | Support |
19741974-| ---------------- | ----------- |
19751975-| `grid-rows-1` | 🌐 Web only |
19761976-| `grid-rows-2` | 🌐 Web only |
19771977-| `grid-rows-3` | 🌐 Web only |
19781978-| `grid-rows-4` | 🌐 Web only |
19791979-| `grid-rows-5` | 🌐 Web only |
19801980-| `grid-rows-6` | 🌐 Web only |
19811981-| `grid-rows-7` | 🌐 Web only |
19821982-| `grid-rows-8` | 🌐 Web only |
19831983-| `grid-rows-9` | 🌐 Web only |
19841984-| `grid-rows-10` | 🌐 Web only |
19851985-| `grid-rows-11` | 🌐 Web only |
19861986-| `grid-rows-12` | 🌐 Web only |
19871987-| `grid-rows-none` | 🌐 Web only |
19731973+|Class|Support|
19741974+|-|-|
19751975+|`grid-rows-1`|🌐 Web only|
19761976+|`grid-rows-2`|🌐 Web only|
19771977+|`grid-rows-3`|🌐 Web only|
19781978+|`grid-rows-4`|🌐 Web only|
19791979+|`grid-rows-5`|🌐 Web only|
19801980+|`grid-rows-6`|🌐 Web only|
19811981+|`grid-rows-7`|🌐 Web only|
19821982+|`grid-rows-8`|🌐 Web only|
19831983+|`grid-rows-9`|🌐 Web only|
19841984+|`grid-rows-10`|🌐 Web only|
19851985+|`grid-rows-11`|🌐 Web only|
19861986+|`grid-rows-12`|🌐 Web only|
19871987+|`grid-rows-none`|🌐 Web only|
1988198819891989## Ring Offset Width
19901990···1994199419951995### Compatibility
1996199619971997-| Class | Support |
19981998-| --------------- | ----------- |
19991999-| `ring-offset-0` | 🌐 Web only |
20002000-| `ring-offset-1` | 🌐 Web only |
20012001-| `ring-offset-2` | 🌐 Web only |
20022002-| `ring-offset-4` | 🌐 Web only |
20032003-| `ring-offset-8` | 🌐 Web only |
19971997+|Class|Support|
19981998+|-|-|
19991999+|`ring-offset-0`|🌐 Web only|
20002000+|`ring-offset-1`|🌐 Web only|
20012001+|`ring-offset-2`|🌐 Web only|
20022002+|`ring-offset-4`|🌐 Web only|
20032003+|`ring-offset-8`|🌐 Web only|
2004200420052005## Ring Width
20062006···2010201020112011### Compatibility
2012201220132013-| Class | Support |
20142014-| ------------ | ----------- |
20152015-| `ring-0` | 🌐 Web only |
20162016-| `ring-1` | 🌐 Web only |
20172017-| `ring-2` | 🌐 Web only |
20182018-| `ring` | 🌐 Web only |
20192019-| `ring-4` | 🌐 Web only |
20202020-| `ring-8` | 🌐 Web only |
20212021-| `ring-inset` | 🌐 Web only |
20132013+|Class|Support|
20142014+|-|-|
20152015+|`ring-0`|🌐 Web only|
20162016+|`ring-1`|🌐 Web only|
20172017+|`ring-2`|🌐 Web only|
20182018+|`ring`|🌐 Web only|
20192019+|`ring-4`|🌐 Web only|
20202020+|`ring-8`|🌐 Web only|
20212021+|`ring-inset`|🌐 Web only|
2022202220232023## Break Before
20242024···2028202820292029### Compatibility
2030203020312031-| Class | Support |
20322032-| ------------------------- | ----------- |
20332033-| `break-before-auto` | 🌐 Web only |
20342034-| `break-before-avoid` | 🌐 Web only |
20352035-| `break-before-all` | 🌐 Web only |
20362036-| `break-before-avoid-page` | 🌐 Web only |
20372037-| `break-before-page` | 🌐 Web only |
20382038-| `break-before-left` | 🌐 Web only |
20392039-| `break-before-right` | 🌐 Web only |
20402040-| `break-before-column` | 🌐 Web only |
20312031+|Class|Support|
20322032+|-|-|
20332033+|`break-before-auto`|🌐 Web only|
20342034+|`break-before-avoid`|🌐 Web only|
20352035+|`break-before-all`|🌐 Web only|
20362036+|`break-before-avoid-page`|🌐 Web only|
20372037+|`break-before-page`|🌐 Web only|
20382038+|`break-before-left`|🌐 Web only|
20392039+|`break-before-right`|🌐 Web only|
20402040+|`break-before-column`|🌐 Web only|
2041204120422042## Justify Content
20432043···2047204720482048### Compatibility
2049204920502050-| Class | Support |
20512051-| ----------------- | --------------- |
20522052-| `justify-start` | ✅ Full Support |
20532053-| `justify-end` | ✅ Full Support |
20542054-| `justify-center` | ✅ Full Support |
20552055-| `justify-between` | ✅ Full Support |
20562056-| `justify-around` | ✅ Full Support |
20572057-| `justify-evenly` | ✅ Full Support |
20502050+|Class|Support|
20512051+|-|-|
20522052+|`justify-start`|✅ Full Support|
20532053+|`justify-end`|✅ Full Support|
20542054+|`justify-center`|✅ Full Support|
20552055+|`justify-between`|✅ Full Support|
20562056+|`justify-around`|✅ Full Support|
20572057+|`justify-evenly`|✅ Full Support|
2058205820592059## Background Blend Mode
20602060···2066206620672067The following table outlines the support status for various background blend mode classes:
2068206820692069-| Class | Support |
20702070-| ---------------------- | --------------- |
20712071-| `bg-blend-normal` | ✅ Full Support |
20722072-| `bg-blend-multiply` | ✅ Full Support |
20732073-| `bg-blend-screen` | ✅ Full Support |
20742074-| `bg-blend-overlay` | ✅ Full Support |
20752075-| `bg-blend-darken` | ✅ Full Support |
20762076-| `bg-blend-lighten` | ✅ Full Support |
20772077-| `bg-blend-color-dodge` | ✅ Full Support |
20782078-| `bg-blend-color-burn` | ✅ Full Support |
20792079-| `bg-blend-hard-light` | ✅ Full Support |
20802080-| `bg-blend-soft-light` | ✅ Full Support |
20812081-| `bg-blend-difference` | ✅ Full Support |
20822082-| `bg-blend-exclusion` | ✅ Full Support |
20832083-| `bg-blend-hue` | ✅ Full Support |
20842084-| `bg-blend-saturation` | ✅ Full Support |
20852085-| `bg-blend-color` | ✅ Full Support |
20862086-| `bg-blend-luminosity` | ✅ Full Support |
20692069+|Class|Support|
20702070+|-|-|
20712071+|`bg-blend-normal`|✅ Full Support|
20722072+|`bg-blend-multiply`|✅ Full Support|
20732073+|`bg-blend-screen`|✅ Full Support|
20742074+|`bg-blend-overlay`|✅ Full Support|
20752075+|`bg-blend-darken`|✅ Full Support|
20762076+|`bg-blend-lighten`|✅ Full Support|
20772077+|`bg-blend-color-dodge`|✅ Full Support|
20782078+|`bg-blend-color-burn`|✅ Full Support|
20792079+|`bg-blend-hard-light`|✅ Full Support|
20802080+|`bg-blend-soft-light`|✅ Full Support|
20812081+|`bg-blend-difference`|✅ Full Support|
20822082+|`bg-blend-exclusion`|✅ Full Support|
20832083+|`bg-blend-hue`|✅ Full Support|
20842084+|`bg-blend-saturation`|✅ Full Support|
20852085+|`bg-blend-color`|✅ Full Support|
20862086+|`bg-blend-luminosity`|✅ Full Support|
2087208720882088## Justify Items
20892089···2093209320942094### Compatibility
2095209520962096-| Class | Support |
20972097-| ----------------------- | ----------- |
20982098-| `justify-items-start` | 🌐 Web only |
20992099-| `justify-items-end` | 🌐 Web only |
21002100-| `justify-items-center` | 🌐 Web only |
21012101-| `justify-items-stretch` | 🌐 Web only |
20962096+|Class|Support|
20972097+|-|-|
20982098+|`justify-items-start`|🌐 Web only|
20992099+|`justify-items-end`|🌐 Web only|
21002100+|`justify-items-center`|🌐 Web only|
21012101+|`justify-items-stretch`|🌐 Web only|
2102210221032103## Box Shadow
21042104···2133213321342134### Compatibility
2135213521362136-| Class | Support |
21372137-| -------------- | --------------- |
21382138-| `shadow` | ✅ Full Support |
21392139-| `shadow-{n}` | ✅ Full Support |
21402140-| `shadow-none` | ✅ Full Support |
21412141-| `shadow-[n]` | 🌐 Web only |
21422142-| `shadow-inner` | 🌐 Web only |
21362136+|Class|Support|
21372137+|-|-|
21382138+|`shadow`|✅ Full Support|
21392139+|`shadow-{n}`|✅ Full Support|
21402140+|`shadow-none`|✅ Full Support|
21412141+|`shadow-[n]`|🌐 Web only|
21422142+|`shadow-inner`|🌐 Web only|
2143214321442144## Box Shadow Color
21452145···2149214921502150### Compatibility
2151215121522152-| Class | Support |
21532153-| ------------ | --------------- |
21542154-| `shadow-{n}` | ✅ Full Support |
21552155-| `shadow-[n]` | ✅ Full Support |
21522152+|Class|Support|
21532153+|-|-|
21542154+|`shadow-{n}`|✅ Full Support|
21552155+|`shadow-[n]`|✅ Full Support|
2156215621572157## Working with Third-Party Components in Nativewind
21582158···2368236823692369### Compatibility
2370237023712371-| Class | Support |
23722372-| --------------------------- | ----------- |
23732373-| `break-inside-auto` | 🌐 Web only |
23742374-| `break-inside-avoid` | 🌐 Web only |
23752375-| `break-inside-avoid-page` | 🌐 Web only |
23762376-| `break-inside-avoid-column` | 🌐 Web only |
23712371+|Class|Support|
23722372+|-|-|
23732373+|`break-inside-auto`|🌐 Web only|
23742374+|`break-inside-avoid`|🌐 Web only|
23752375+|`break-inside-avoid-page`|🌐 Web only|
23762376+|`break-inside-avoid-column`|🌐 Web only|
2377237723782378## Justify Self
23792379···2383238323842384### Compatibility
2385238523862386-| Class | Support |
23872387-| ---------------------- | ----------- |
23882388-| `justify-self-auto` | 🌐 Web only |
23892389-| `justify-self-start` | 🌐 Web only |
23902390-| `justify-self-end` | 🌐 Web only |
23912391-| `justify-self-center` | 🌐 Web only |
23922392-| `justify-self-stretch` | 🌐 Web only |
23862386+|Class|Support|
23872387+|-|-|
23882388+|`justify-self-auto`|🌐 Web only|
23892389+|`justify-self-start`|🌐 Web only|
23902390+|`justify-self-end`|🌐 Web only|
23912391+|`justify-self-center`|🌐 Web only|
23922392+|`justify-self-stretch`|🌐 Web only|
2393239323942394## Mix Blend Mode
23952395···2399239924002400### Compatibility
2401240124022402-| Class | Support |
24032403-| ------------------------ | ----------- |
24042404-| `mix-blend-normal` | 🌐 Web only |
24052405-| `mix-blend-multiply` | 🌐 Web only |
24062406-| `mix-blend-screen` | 🌐 Web only |
24072407-| `mix-blend-overlay` | 🌐 Web only |
24082408-| `mix-blend-darken` | 🌐 Web only |
24092409-| `mix-blend-lighten` | 🌐 Web only |
24102410-| `mix-blend-color-dodge` | 🌐 Web only |
24112411-| `mix-blend-color-burn` | 🌐 Web only |
24122412-| `mix-blend-hard-light` | 🌐 Web only |
24132413-| `mix-blend-soft-light` | 🌐 Web only |
24142414-| `mix-blend-difference` | 🌐 Web only |
24152415-| `mix-blend-exclusion` | 🌐 Web only |
24162416-| `mix-blend-hue` | 🌐 Web only |
24172417-| `mix-blend-saturation` | 🌐 Web only |
24182418-| `mix-blend-color` | 🌐 Web only |
24192419-| `mix-blend-luminosity` | 🌐 Web only |
24202420-| `mix-blend-plus-lighter` | 🌐 Web only |
24022402+|Class|Support|
24032403+|-|-|
24042404+|`mix-blend-normal`|🌐 Web only|
24052405+|`mix-blend-multiply`|🌐 Web only|
24062406+|`mix-blend-screen`|🌐 Web only|
24072407+|`mix-blend-overlay`|🌐 Web only|
24082408+|`mix-blend-darken`|🌐 Web only|
24092409+|`mix-blend-lighten`|🌐 Web only|
24102410+|`mix-blend-color-dodge`|🌐 Web only|
24112411+|`mix-blend-color-burn`|🌐 Web only|
24122412+|`mix-blend-hard-light`|🌐 Web only|
24132413+|`mix-blend-soft-light`|🌐 Web only|
24142414+|`mix-blend-difference`|🌐 Web only|
24152415+|`mix-blend-exclusion`|🌐 Web only|
24162416+|`mix-blend-hue`|🌐 Web only|
24172417+|`mix-blend-saturation`|🌐 Web only|
24182418+|`mix-blend-color`|🌐 Web only|
24192419+|`mix-blend-luminosity`|🌐 Web only|
24202420+|`mix-blend-plus-lighter`|🌐 Web only|
2421242124222422## Opacity
24232423···2427242724282428### Compatibility
2429242924302430-| Class | Support |
24312431-| ------------- | --------------- |
24322432-| `opacity-{n}` | ✅ Full Support |
24332433-| `opacity-[n]` | ✅ Full Support |
24302430+|Class|Support|
24312431+|-|-|
24322432+|`opacity-{n}`|✅ Full Support|
24332433+|`opacity-[n]`|✅ Full Support|
2434243424352435## Animation
24362436···2444244424452445### Compatibility
2446244624472447-| Class | Support |
24482448-| ---------------- | ----------------------- |
24492449-| `animate-none` | 🧪 Experimental Support |
24502450-| `animate-spin` | 🧪 Experimental Support |
24512451-| `animate-ping` | 🧪 Experimental Support |
24522452-| `animate-bounce` | 🧪 Experimental Support |
24532453-| `animate-[n]` | 🧪 Experimental Support |
24472447+|Class|Support|
24482448+|-|-|
24492449+|`animate-none`|🧪 Experimental Support|
24502450+|`animate-spin`|🧪 Experimental Support|
24512451+|`animate-ping`|🧪 Experimental Support|
24522452+|`animate-bounce`|🧪 Experimental Support|
24532453+|`animate-[n]`|🧪 Experimental Support|
2454245424552455### Contributors
24562456···2468246824692469### Compatibility
2470247024712471-| Class | Support |
24722472-| ------------- | ----------- |
24732473-| `order-1` | 🌐 Web only |
24742474-| `order-2` | 🌐 Web only |
24752475-| `order-3` | 🌐 Web only |
24762476-| `order-4` | 🌐 Web only |
24772477-| `order-5` | 🌐 Web only |
24782478-| `order-6` | 🌐 Web only |
24792479-| `order-7` | 🌐 Web only |
24802480-| `order-8` | 🌐 Web only |
24812481-| `order-9` | 🌐 Web only |
24822482-| `order-10` | 🌐 Web only |
24832483-| `order-11` | 🌐 Web only |
24842484-| `order-12` | 🌐 Web only |
24852485-| `order-first` | 🌐 Web only |
24862486-| `order-last` | 🌐 Web only |
24872487-| `order-none` | 🌐 Web only |
24712471+|Class|Support|
24722472+|-|-|
24732473+|`order-1`|🌐 Web only|
24742474+|`order-2`|🌐 Web only|
24752475+|`order-3`|🌐 Web only|
24762476+|`order-4`|🌐 Web only|
24772477+|`order-5`|🌐 Web only|
24782478+|`order-6`|🌐 Web only|
24792479+|`order-7`|🌐 Web only|
24802480+|`order-8`|🌐 Web only|
24812481+|`order-9`|🌐 Web only|
24822482+|`order-10`|🌐 Web only|
24832483+|`order-11`|🌐 Web only|
24842484+|`order-12`|🌐 Web only|
24852485+|`order-first`|🌐 Web only|
24862486+|`order-last`|🌐 Web only|
24872487+|`order-none`|🌐 Web only|
2488248824892489## Transition Delay
24902490···2498249824992499### Compatibility
2500250025012501-| Class | Support |
25022502-| ----------- | ----------------------- |
25032503-| `delay-{n}` | 🧪 Experimental Support |
25042504-| `delay-[n]` | 🧪 Experimental Support |
25012501+|Class|Support|
25022502+|-|-|
25032503+|`delay-{n}`|🧪 Experimental Support|
25042504+|`delay-[n]`|🧪 Experimental Support|
2505250525062506## Transition Duration
25072507···2515251525162516### Compatibility
2517251725182518-| Class | Support |
25192519-| -------------- | ----------------------- |
25202520-| `duration-{n}` | 🧪 Experimental Support |
25212521-| `duration-[n]` | 🧪 Experimental Support |
25182518+|Class|Support|
25192519+|-|-|
25202520+|`duration-{n}`|🧪 Experimental Support|
25212521+|`duration-[n]`|🧪 Experimental Support|
2522252225232523## Place Items
25242524···2528252825292529### Compatibility
2530253025312531-| Class | Support |
25322532-| ---------------------- | ----------- |
25332533-| `place-items-start` | 🌐 Web only |
25342534-| `place-items-end` | 🌐 Web only |
25352535-| `place-items-center` | 🌐 Web only |
25362536-| `place-items-baseline` | 🌐 Web only |
25372537-| `place-items-stretch` | 🌐 Web only |
25312531+|Class|Support|
25322532+|-|-|
25332533+|`place-items-start`|🌐 Web only|
25342534+|`place-items-end`|🌐 Web only|
25352535+|`place-items-center`|🌐 Web only|
25362536+|`place-items-baseline`|🌐 Web only|
25372537+|`place-items-stretch`|🌐 Web only|
2538253825392539## Transition Property
25402540···2548254825492549### Compatibility
2550255025512551-| Class | Support |
25522552-| ---------------------- | ----------------------- |
25532553-| `transition` | 🧪 Experimental Support |
25542554-| `transition-all` | 🧪 Experimental Support |
25552555-| `transition-colors` | 🧪 Experimental Support |
25562556-| `transition-opacity` | 🧪 Experimental Support |
25572557-| `transition-transform` | 🧪 Experimental Support |
25582558-| `transition-{n}` | 🧪 Experimental Support |
25592559-| `transition-[n]` | 🧪 Experimental Support |
25602560-| `transition-shadow` | 🌐 Web only |
25512551+|Class|Support|
25522552+|-|-|
25532553+|`transition`|🧪 Experimental Support|
25542554+|`transition-all`|🧪 Experimental Support|
25552555+|`transition-colors`|🧪 Experimental Support|
25562556+|`transition-opacity`|🧪 Experimental Support|
25572557+|`transition-transform`|🧪 Experimental Support|
25582558+|`transition-{n}`|🧪 Experimental Support|
25592559+|`transition-[n]`|🧪 Experimental Support|
25602560+|`transition-shadow`|🌐 Web only|
2561256125622562## Platform Differences
25632563···2613261326142614### Compatibility
2615261526162616-| Class | Support |
26172617-| ------------- | ----------- |
26182618-| `clear-left` | 🌐 Web only |
26192619-| `clear-right` | 🌐 Web only |
26202620-| `clear-both` | 🌐 Web only |
26212621-| `clear-none` | 🌐 Web only |
26162616+|Class|Support|
26172617+|-|-|
26182618+|`clear-left`|🌐 Web only|
26192619+|`clear-right`|🌐 Web only|
26202620+|`clear-both`|🌐 Web only|
26212621+|`clear-none`|🌐 Web only|
2622262226232623## Place Content
26242624···2630263026312631The following table outlines the compatibility of various place content classes:
2632263226332633-| Class | Support |
26342634-| ------------------------ | ----------- |
26352635-| `place-content-center` | 🌐 Web only |
26362636-| `place-content-start` | 🌐 Web only |
26372637-| `place-content-end` | 🌐 Web only |
26382638-| `place-content-between` | 🌐 Web only |
26392639-| `place-content-around` | 🌐 Web only |
26402640-| `place-content-evenly` | 🌐 Web only |
26412641-| `place-content-baseline` | 🌐 Web only |
26422642-| `place-content-stretch` | 🌐 Web only |
26332633+|Class|Support|
26342634+|-|-|
26352635+|`place-content-center`|🌐 Web only|
26362636+|`place-content-start`|🌐 Web only|
26372637+|`place-content-end`|🌐 Web only|
26382638+|`place-content-between`|🌐 Web only|
26392639+|`place-content-around`|🌐 Web only|
26402640+|`place-content-evenly`|🌐 Web only|
26412641+|`place-content-baseline`|🌐 Web only|
26422642+|`place-content-stretch`|🌐 Web only|
2643264326442644## Transition Timing Function
26452645···2652265226532653### Compatibility
2654265426552655-| Class | Support |
26562656-| ---------- | ----------------------- |
26572657-| `ease-{n}` | 🧪 Experimental Support |
26582658-| `ease-[n]` | 🧪 Experimental Support |
26552655+|Class|Support|
26562656+|-|-|
26572657+|`ease-{n}`|🧪 Experimental Support|
26582658+|`ease-[n]`|🧪 Experimental Support|
2659265926602660## Rotate
26612661···2665266526662666### Compatibility
2667266726682668-| Class | Support |
26692669-| ------------ | --------------- |
26702670-| `rotate-{n}` | ✅ Full Support |
26712671-| `rotate-[n]` | ✅ Full Support |
26682668+|Class|Support|
26692669+|-|-|
26702670+|`rotate-{n}`|✅ Full Support|
26712671+|`rotate-[n]`|✅ Full Support|
2672267226732673When using arbitrary styles or defining rotation values in your theme, always specify the `deg` unit. For example: `rotate-[90deg]`.
26742674···2682268226832683### Compatibility
2684268426852685-| Class | Support |
26862686-| ------------- | --------------- |
26872687-| `scale-{n}` | ✅ Full Support |
26882688-| `scale-[n]` | ✅ Full Support |
26892689-| `scale-x-{n}` | ✅ Full Support |
26902690-| `scale-x-[n]` | ✅ Full Support |
26912691-| `scale-y-{n}` | ✅ Full Support |
26922692-| `scale-y-[n]` | ✅ Full Support |
26852685+|Class|Support|
26862686+|-|-|
26872687+|`scale-{n}`|✅ Full Support|
26882688+|`scale-[n]`|✅ Full Support|
26892689+|`scale-x-{n}`|✅ Full Support|
26902690+|`scale-x-[n]`|✅ Full Support|
26912691+|`scale-y-{n}`|✅ Full Support|
26922692+|`scale-y-[n]`|✅ Full Support|
2693269326942694## Columns
26952695···2699269927002700### Compatibility
2701270127022702-| Class | Support |
27032703-| ------------- | ----------- |
27042704-| `columns-[n]` | 🌐 Web only |
27052705-| `columns-{n}` | 🌐 Web only |
27022702+|Class|Support|
27032703+|-|-|
27042704+|`columns-[n]`|🌐 Web only|
27052705+|`columns-{n}`|🌐 Web only|
2706270627072707## Place Self
27082708···2712271227132713### Compatibility
2714271427152715-| Class | Support |
27162716-| -------------------- | ----------- |
27172717-| `place-self-auto` | 🌐 Web only |
27182718-| `place-self-start` | 🌐 Web only |
27192719-| `place-self-end` | 🌐 Web only |
27202720-| `place-self-center` | 🌐 Web only |
27212721-| `place-self-stretch` | 🌐 Web only |
27152715+|Class|Support|
27162716+|-|-|
27172717+|`place-self-auto`|🌐 Web only|
27182718+|`place-self-start`|🌐 Web only|
27192719+|`place-self-end`|🌐 Web only|
27202720+|`place-self-center`|🌐 Web only|
27212721+|`place-self-stretch`|🌐 Web only|
2722272227232723## Skew
27242724···2728272827292729### Compatibility
2730273027312731-| Class | Support |
27322732-| ------------ | --------------- |
27332733-| `skew-x-{n}` | ✅ Full Support |
27342734-| `skew-x-[n]` | ✅ Full Support |
27352735-| `skew-y-{n}` | ✅ Full Support |
27362736-| `skew-y-[n]` | ✅ Full Support |
27312731+|Class|Support|
27322732+|-|-|
27332733+|`skew-x-{n}`|✅ Full Support|
27342734+|`skew-x-[n]`|✅ Full Support|
27352735+|`skew-y-{n}`|✅ Full Support|
27362736+|`skew-y-[n]`|✅ Full Support|
2737273727382738## Transform Origin
27392739···2743274327442744### Compatibility
2745274527462746-| Class | Support |
27472747-| --------------------- | ----------- |
27482748-| `origin-center` | 🌐 Web only |
27492749-| `origin-top` | 🌐 Web only |
27502750-| `origin-top-right` | 🌐 Web only |
27512751-| `origin-right` | 🌐 Web only |
27522752-| `origin-bottom-right` | 🌐 Web only |
27532753-| `origin-bottom` | 🌐 Web only |
27542754-| `origin-bottom-left` | 🌐 Web only |
27552755-| `origin-left` | 🌐 Web only |
27562756-| `origin-top-left` | 🌐 Web only |
27462746+|Class|Support|
27472747+|-|-|
27482748+|`origin-center`|🌐 Web only|
27492749+|`origin-top`|🌐 Web only|
27502750+|`origin-top-right`|🌐 Web only|
27512751+|`origin-right`|🌐 Web only|
27522752+|`origin-bottom-right`|🌐 Web only|
27532753+|`origin-bottom`|🌐 Web only|
27542754+|`origin-bottom-left`|🌐 Web only|
27552755+|`origin-left`|🌐 Web only|
27562756+|`origin-top-left`|🌐 Web only|
2757275727582758### Contributors
27592759···2777277727782778The following table outlines the support status for various margin classes:
2779277927802780-| Class | Support |
27812781-| --------- | --------------- |
27822782-| `m-{n}` | ✅ Full Support |
27832783-| `m-[n]` | ✅ Full Support |
27842784-| `mx-{n}` | ✅ Full Support |
27852785-| `mx-[n]` | ✅ Full Support |
27862786-| `my-{n}` | ✅ Full Support |
27872787-| `my-[n]` | ✅ Full Support |
27882788-| `mt-{n}` | ✅ Full Support |
27892789-| `mt-[n]` | ✅ Full Support |
27902790-| `mr-{n}` | ✅ Full Support |
27912791-| `mr-[n]` | ✅ Full Support |
27922792-| `mb-{n}` | ✅ Full Support |
27932793-| `mb-[n]` | ✅ Full Support |
27942794-| `ml-{n}` | ✅ Full Support |
27952795-| `ml-[n]` | ✅ Full Support |
27962796-| `m-auto` | ✅ Full Support |
27972797-| `mx-auto` | ✅ Full Support |
27982798-| `my-auto` | ✅ Full Support |
27992799-| `mt-auto` | ✅ Full Support |
28002800-| `mr-auto` | ✅ Full Support |
28012801-| `mb-auto` | ✅ Full Support |
28022802-| `ml-auto` | ✅ Full Support |
27802780+|Class|Support|
27812781+|-|-|
27822782+|`m-{n}`|✅ Full Support|
27832783+|`m-[n]`|✅ Full Support|
27842784+|`mx-{n}`|✅ Full Support|
27852785+|`mx-[n]`|✅ Full Support|
27862786+|`my-{n}`|✅ Full Support|
27872787+|`my-[n]`|✅ Full Support|
27882788+|`mt-{n}`|✅ Full Support|
27892789+|`mt-[n]`|✅ Full Support|
27902790+|`mr-{n}`|✅ Full Support|
27912791+|`mr-[n]`|✅ Full Support|
27922792+|`mb-{n}`|✅ Full Support|
27932793+|`mb-[n]`|✅ Full Support|
27942794+|`ml-{n}`|✅ Full Support|
27952795+|`ml-[n]`|✅ Full Support|
27962796+|`m-auto`|✅ Full Support|
27972797+|`mx-auto`|✅ Full Support|
27982798+|`my-auto`|✅ Full Support|
27992799+|`mt-auto`|✅ Full Support|
28002800+|`mr-auto`|✅ Full Support|
28012801+|`mb-auto`|✅ Full Support|
28022802+|`ml-auto`|✅ Full Support|
2803280328042804## Translate
28052805···2809280928102810### Compatibility
2811281128122812-| Class | Support |
28132813-| ----------------- | --------------- |
28142814-| `translate-x-{n}` | ✅ Full Support |
28152815-| `translate-x-[n]` | ✅ Full Support |
28162816-| `translate-y-{n}` | ✅ Full Support |
28172817-| `translate-y-[n]` | ✅ Full Support |
28122812+|Class|Support|
28132813+|-|-|
28142814+|`translate-x-{n}`|✅ Full Support|
28152815+|`translate-x-[n]`|✅ Full Support|
28162816+|`translate-y-{n}`|✅ Full Support|
28172817+|`translate-y-[n]`|✅ Full Support|
2818281828192819## Other Bundlers
2820282028212821Nativewind 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:
28222822282328231. Tailwind CSS must be configured using the Nativewind preset.
28242824-2. React Native should be set up, specifically utilizing React Native Web version 0.17 or higher.
28252825-3. The JSX runtime needs to be adjusted to `'automatic'`, and `jsxImportSource` should be assigned to `'nativewind'`.
28242824+1. React Native should be set up, specifically utilizing React Native Web version 0.17 or higher.
28252825+1. The JSX runtime needs to be adjusted to `'automatic'`, and `jsxImportSource` should be assigned to `'nativewind'`.
2826282628272827### Troubleshooting for Web Bundlers
28282828···32553255Nativewind defines the following specificity order from highest to lowest:
32563256325732571. Styles marked as important (following CSS specificity rules)
32583258-2. Inline & remapped styles (applied in right-to-left order)
32593259-3. `className` styles (following CSS specificity rules)
32583258+1. Inline & remapped styles (applied in right-to-left order)
32593259+1. `className` styles (following CSS specificity rules)
3260326032613261### Concept of Remapped Styles
32623262···3292329232933293The following table outlines the support for various padding classes:
3294329432953295-| Class | Support |
32963296-| --------- | --------------- |
32973297-| `p-{n}` | ✅ Full Support |
32983298-| `p-[n]` | ✅ Full Support |
32993299-| `px-{n}` | ✅ Full Support |
33003300-| `px-[n]` | ✅ Full Support |
33013301-| `py-{n}` | ✅ Full Support |
33023302-| `py-[n]` | ✅ Full Support |
33033303-| `pt-{n}` | ✅ Full Support |
33043304-| `pt-[n]` | ✅ Full Support |
33053305-| `pr-{n}` | ✅ Full Support |
33063306-| `pr-[n]` | ✅ Full Support |
33073307-| `pb-{n}` | ✅ Full Support |
33083308-| `pb-[n]` | ✅ Full Support |
33093309-| `pl-{n}` | ✅ Full Support |
33103310-| `pl-[n]` | ✅ Full Support |
33113311-| `p-auto` | 🌐 Web only |
33123312-| `px-auto` | 🌐 Web only |
33133313-| `py-auto` | 🌐 Web only |
33143314-| `pt-auto` | 🌐 Web only |
33153315-| `pr-auto` | 🌐 Web only |
33163316-| `pb-auto` | 🌐 Web only |
33173317-| `pl-auto` | 🌐 Web only |
32953295+|Class|Support|
32963296+|-|-|
32973297+|`p-{n}`|✅ Full Support|
32983298+|`p-[n]`|✅ Full Support|
32993299+|`px-{n}`|✅ Full Support|
33003300+|`px-[n]`|✅ Full Support|
33013301+|`py-{n}`|✅ Full Support|
33023302+|`py-[n]`|✅ Full Support|
33033303+|`pt-{n}`|✅ Full Support|
33043304+|`pt-[n]`|✅ Full Support|
33053305+|`pr-{n}`|✅ Full Support|
33063306+|`pr-[n]`|✅ Full Support|
33073307+|`pb-{n}`|✅ Full Support|
33083308+|`pb-[n]`|✅ Full Support|
33093309+|`pl-{n}`|✅ Full Support|
33103310+|`pl-[n]`|✅ Full Support|
33113311+|`p-auto`|🌐 Web only|
33123312+|`px-auto`|🌐 Web only|
33133313+|`py-auto`|🌐 Web only|
33143314+|`pt-auto`|🌐 Web only|
33153315+|`pr-auto`|🌐 Web only|
33163316+|`pb-auto`|🌐 Web only|
33173317+|`pl-auto`|🌐 Web only|
3318331833193319## Accent Color
33203320···3326332633273327The following table outlines the compatibility of various accent classes with different platforms:
3328332833293329-| Class | Support |
33303330-| -------------------- | -------- |
33313331-| `accent-{n}` | Web only |
33323332-| `accent-[n]` | Web only |
33333333-| `accent-black` | Web only |
33343334-| `accent-white` | Web only |
33353335-| `accent-transparent` | Web only |
33363336-| `accent-inherit` | Web only |
33373337-| `accent-current` | Web only |
33293329+|Class|Support|
33303330+|-|-|
33313331+|`accent-{n}`|Web only|
33323332+|`accent-[n]`|Web only|
33333333+|`accent-black`|Web only|
33343334+|`accent-white`|Web only|
33353335+|`accent-transparent`|Web only|
33363336+|`accent-inherit`|Web only|
33373337+|`accent-current`|Web only|
3338333833393339### Contributors
33403340···3352335233533353### Compatibility
3354335433553355-| Class | Support |
33563356-| ----------------- | ----------- |
33573357-| `appearance-none` | 🌐 Web only |
33553355+|Class|Support|
33563356+|-|-|
33573357+|`appearance-none`|🌐 Web only|
3358335833593359----
33593359+***
3360336033613361This reformatted content maintains the original structure and intent while ensuring clarity and adherence to markdown formatting standards.
33623362···3368336833693369### Compatibility
3370337033713371-| Class | Support |
33723372-| ------------------- | --------------- |
33733373-| `caret-{n}` | ✅ Full Support |
33743374-| `caret-[n]` | ✅ Full Support |
33753375-| `caret-black` | ✅ Full Support |
33763376-| `caret-white` | ✅ Full Support |
33773377-| `caret-transparent` | ✅ Full Support |
33783378-| `caret-inherit` | 🌐 Web only |
33793379-| `caret-current` | 🌐 Web only |
33713371+|Class|Support|
33723372+|-|-|
33733373+|`caret-{n}`|✅ Full Support|
33743374+|`caret-[n]`|✅ Full Support|
33753375+|`caret-black`|✅ Full Support|
33763376+|`caret-white`|✅ Full Support|
33773377+|`caret-transparent`|✅ Full Support|
33783378+|`caret-inherit`|🌐 Web only|
33793379+|`caret-current`|🌐 Web only|
3380338033813381### Contributors
33823382···3394339433953395### Compatibility
3396339633973397-| Class | Support |
33983398-| ------------ | ----------- |
33993399-| `cursor-{n}` | 🌐 Web only |
34003400-| `cursor-[n]` | 🌐 Web only |
33973397+|Class|Support|
33983398+|-|-|
33993399+|`cursor-{n}`|🌐 Web only|
34003400+|`cursor-[n]`|🌐 Web only|
3401340134023402## Container
34033403···3409340934103410### Compatibility
3411341134123412-| Class | Support |
34133413-| ----------- | --------------- |
34143414-| `container` | ✅ Full Support |
34123412+|Class|Support|
34133413+|-|-|
34143414+|`container`|✅ Full Support|
3415341534163416## Space Between
34173417···3424342434253425### Compatibility
3426342634273427-| Class | Support |
34283428-| ----------------- | ----------- |
34293429-| `space-{n}` | 🌐 Web only |
34303430-| `space-[n]` | 🌐 Web only |
34313431-| `space-x-{n}` | 🌐 Web only |
34323432-| `space-x-[n]` | 🌐 Web only |
34333433-| `space-y-{n}` | 🌐 Web only |
34343434-| `space-y-[n]` | 🌐 Web only |
34353435-| `space-x-reverse` | 🌐 Web only |
34363436-| `space-y-reverse` | 🌐 Web only |
34273427+|Class|Support|
34283428+|-|-|
34293429+|`space-{n}`|🌐 Web only|
34303430+|`space-[n]`|🌐 Web only|
34313431+|`space-x-{n}`|🌐 Web only|
34323432+|`space-x-[n]`|🌐 Web only|
34333433+|`space-y-{n}`|🌐 Web only|
34343434+|`space-y-[n]`|🌐 Web only|
34353435+|`space-x-reverse`|🌐 Web only|
34363436+|`space-y-reverse`|🌐 Web only|
3437343734383438## Pointer Events
34393439···3443344334443444### Compatibility
3445344534463446-| Class | Support |
34473447-| ------------------------- | --------------- |
34483448-| `pointer-events-none` | ✅ Full Support |
34493449-| `pointer-events-auto` | ✅ Full Support |
34503450-| `pointer-events-box-none` | 📱 Native only |
34513451-| `pointer-events-box-only` | 📱 Native only |
34463446+|Class|Support|
34473447+|-|-|
34483448+|`pointer-events-none`|✅ Full Support|
34493449+|`pointer-events-auto`|✅ Full Support|
34503450+|`pointer-events-box-none`|📱 Native only|
34513451+|`pointer-events-box-only`|📱 Native only|
3452345234533453## Height
34543454···3458345834593459### Compatibility
3460346034613461-| Class | Support |
34623462-| ---------- | --------------- |
34633463-| `h-{n}` | ✅ Full Support |
34643464-| `h-[n]` | ✅ Full Support |
34653465-| `h-full` | ✅ Full Support |
34663466-| `h-screen` | ✅ Full Support |
34673467-| `h-auto` | 🌐 Web only |
34683468-| `h-min` | 🌐 Web only |
34693469-| `h-max` | 🌐 Web only |
34703470-| `h-fit` | 🌐 Web only |
34613461+|Class|Support|
34623462+|-|-|
34633463+|`h-{n}`|✅ Full Support|
34643464+|`h-[n]`|✅ Full Support|
34653465+|`h-full`|✅ Full Support|
34663466+|`h-screen`|✅ Full Support|
34673467+|`h-auto`|🌐 Web only|
34683468+|`h-min`|🌐 Web only|
34693469+|`h-max`|🌐 Web only|
34703470+|`h-fit`|🌐 Web only|
3471347134723472## Resize
34733473···3477347734783478### Compatibility
3479347934803480-| Class | Support |
34813481-| ------------- | ----------- |
34823482-| `resize-none` | 🌐 Web only |
34833483-| `resize-y` | 🌐 Web only |
34843484-| `resize-x` | 🌐 Web only |
34853485-| `resize` | 🌐 Web only |
34803480+|Class|Support|
34813481+|-|-|
34823482+|`resize-none`|🌐 Web only|
34833483+|`resize-y`|🌐 Web only|
34843484+|`resize-x`|🌐 Web only|
34853485+|`resize`|🌐 Web only|
3486348634873487## Scroll Behavior
34883488···3492349234933493### Compatibility
3494349434953495-| Class | Support |
34963496-| --------------- | ----------- |
34973497-| `scroll-auto` | 🌐 Web only |
34983498-| `scroll-smooth` | 🌐 Web only |
34953495+|Class|Support|
34963496+|-|-|
34973497+|`scroll-auto`|🌐 Web only|
34983498+|`scroll-smooth`|🌐 Web only|
3499349935003500## Safe Area Insets
35013501···3549354935503550### Compatibility
3551355135523552-| Class | Support | Comments |
35533553-| --- | --- | --- |
35543554-| `m-safe` | ✅ Full Support | Applies margins using safe area insets: `margin-top`, `margin-bottom`, `margin-left`, and `margin-right`. |
35553555-| `p-safe` | ✅ Full Support | Applies padding using safe area insets: `padding-top`, `padding-bottom`, `padding-left`, and `padding-right`. |
35563556-| `mx-safe` | ✅ Full Support | Sets horizontal margins with safe area insets. |
35573557-| `px-safe` | ✅ Full Support | Sets horizontal padding with safe area insets. |
35583558-| `my-safe` | ✅ Full Support | Sets vertical margins using safe area insets. |
35593559-| `py-safe` | ✅ Full Support | Sets vertical padding using safe area insets. |
35603560-| `mt-safe` | ✅ Full Support | Applies top margin with a safe area inset. |
35613561-| `pt-safe` | ✅ Full Support | Applies top padding with a safe area inset. |
35623562-| `mr-safe` | ✅ Full Support | Sets right margin using a safe area inset. |
35633563-| `pr-safe` | ✅ Full Support | Sets right padding using a safe area inset. |
35643564-| `mb-safe` | ✅ Full Support | Applies bottom margin with a safe area inset. |
35653565-| `pb-safe` | ✅ Full Support | Applies bottom padding with a safe area inset. |
35663566-| `ml-safe` | ✅ Full Support | Sets left margin using a safe area inset. |
35673567-| `pl-safe` | ✅ Full Support | Sets left padding using a safe area inset. |
35683568-| `*-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);`. |
35693569-| `h-screen-safe` | 🌐 Web only | Adjusts height using safe area insets: `height: calc(100vh - (env(safe-area-inset-top) + env(safe-area-inset-bottom)))`. |
35703570-| `*-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);`. |
35523552+|Class|Support|Comments|
35533553+|-|-|-|
35543554+|`m-safe`|✅ Full Support|Applies margins using safe area insets: `margin-top`, `margin-bottom`, `margin-left`, and `margin-right`.|
35553555+|`p-safe`|✅ Full Support|Applies padding using safe area insets: `padding-top`, `padding-bottom`, `padding-left`, and `padding-right`.|
35563556+|`mx-safe`|✅ Full Support|Sets horizontal margins with safe area insets.|
35573557+|`px-safe`|✅ Full Support|Sets horizontal padding with safe area insets.|
35583558+|`my-safe`|✅ Full Support|Sets vertical margins using safe area insets.|
35593559+|`py-safe`|✅ Full Support|Sets vertical padding using safe area insets.|
35603560+|`mt-safe`|✅ Full Support|Applies top margin with a safe area inset.|
35613561+|`pt-safe`|✅ Full Support|Applies top padding with a safe area inset.|
35623562+|`mr-safe`|✅ Full Support|Sets right margin using a safe area inset.|
35633563+|`pr-safe`|✅ Full Support|Sets right padding using a safe area inset.|
35643564+|`mb-safe`|✅ Full Support|Applies bottom margin with a safe area inset.|
35653565+|`pb-safe`|✅ Full Support|Applies bottom padding with a safe area inset.|
35663566+|`ml-safe`|✅ Full Support|Sets left margin using a safe area inset.|
35673567+|`pl-safe`|✅ Full Support|Sets left padding using a safe area inset.|
35683568+|`*-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);`.|
35693569+|`h-screen-safe`|🌐 Web only|Adjusts height using safe area insets: `height: calc(100vh - (env(safe-area-inset-top) + env(safe-area-inset-bottom)))`.|
35703570+|`*-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);`.|
3571357135723572## Display
35733573···3577357735783578### Compatibility
3579357935803580-| Class | Support |
35813581-| -------------------- | --------------- |
35823582-| `flex` | ✅ Full Support |
35833583-| `hidden` | ✅ Full Support |
35843584-| `block` | 🌐 Web only |
35853585-| `inline-block` | 🌐 Web only |
35863586-| `inline` | 🌐 Web only |
35873587-| `inline-flex` | 🌐 Web only |
35883588-| `table` | 🌐 Web only |
35893589-| `inline-table` | 🌐 Web only |
35903590-| `table-caption` | 🌐 Web only |
35913591-| `table-cell` | 🌐 Web only |
35923592-| `table-column` | 🌐 Web only |
35933593-| `table-column-group` | 🌐 Web only |
35943594-| `table-footer-group` | 🌐 Web only |
35953595-| `table-header-group` | 🌐 Web only |
35963596-| `table-row-group` | 🌐 Web only |
35973597-| `table-row` | 🌐 Web only |
35983598-| `flow-root` | 🌐 Web only |
35993599-| `grid` | 🌐 Web only |
36003600-| `inline-grid` | 🌐 Web only |
36013601-| `contents` | 🌐 Web only |
36023602-| `list-item` | 🌐 Web only |
35803580+|Class|Support|
35813581+|-|-|
35823582+|`flex`|✅ Full Support|
35833583+|`hidden`|✅ Full Support|
35843584+|`block`|🌐 Web only|
35853585+|`inline-block`|🌐 Web only|
35863586+|`inline`|🌐 Web only|
35873587+|`inline-flex`|🌐 Web only|
35883588+|`table`|🌐 Web only|
35893589+|`inline-table`|🌐 Web only|
35903590+|`table-caption`|🌐 Web only|
35913591+|`table-cell`|🌐 Web only|
35923592+|`table-column`|🌐 Web only|
35933593+|`table-column-group`|🌐 Web only|
35943594+|`table-footer-group`|🌐 Web only|
35953595+|`table-header-group`|🌐 Web only|
35963596+|`table-row-group`|🌐 Web only|
35973597+|`table-row`|🌐 Web only|
35983598+|`flow-root`|🌐 Web only|
35993599+|`grid`|🌐 Web only|
36003600+|`inline-grid`|🌐 Web only|
36013601+|`contents`|🌐 Web only|
36023602+|`list-item`|🌐 Web only|
3603360336043604## Max-Height
36053605···3609360936103610### Compatibility
3611361136123612-| Class | Support |
36133613-| -------------- | --------------- |
36143614-| `max-h-0` | ✅ Full Support |
36153615-| `max-h-[n]` | ✅ Full Support |
36163616-| `max-h-{n}` | ✅ Full Support |
36173617-| `max-h-full` | ✅ Full Support |
36183618-| `max-h-screen` | ✅ Full Support |
36193619-| `max-h-min` | 🌐 Web only |
36203620-| `max-h-max` | 🌐 Web only |
36213621-| `max-h-fit` | 🌐 Web only |
36123612+|Class|Support|
36133613+|-|-|
36143614+|`max-h-0`|✅ Full Support|
36153615+|`max-h-[n]`|✅ Full Support|
36163616+|`max-h-{n}`|✅ Full Support|
36173617+|`max-h-full`|✅ Full Support|
36183618+|`max-h-screen`|✅ Full Support|
36193619+|`max-h-min`|🌐 Web only|
36203620+|`max-h-max`|🌐 Web only|
36213621+|`max-h-fit`|🌐 Web only|
3622362236233623## Scroll Margin
36243624···3630363036313631The following classes are supported exclusively on web platforms:
3632363236333633-| Class | Support |
36343634-| --------------- | ----------- |
36353635-| `scroll-m-{n}` | 🌐 Web only |
36363636-| `scroll-m-[n]` | 🌐 Web only |
36373637-| `scroll-mx-{n}` | 🌐 Web only |
36383638-| `scroll-mx-[n]` | 🌐 Web only |
36393639-| `scroll-my-{n}` | 🌐 Web only |
36403640-| `scroll-my-[n]` | 🌐 Web only |
36413641-| `scroll-mt-{n}` | 🌐 Web only |
36423642-| `scroll-mt-[n]` | 🌐 Web only |
36433643-| `scroll-mr-{n}` | 🌐 Web only |
36443644-| `scroll-mr-[n]` | 🌐 Web only |
36453645-| `scroll-mb-{n}` | 🌐 Web only |
36463646-| `scroll-mb-[n]` | 🌐 Web only |
36473647-| `scroll-ml-{n}` | 🌐 Web only |
36483648-| `scroll-ml-[n]` | 🌐 Web only |
36333633+|Class|Support|
36343634+|-|-|
36353635+|`scroll-m-{n}`|🌐 Web only|
36363636+|`scroll-m-[n]`|🌐 Web only|
36373637+|`scroll-mx-{n}`|🌐 Web only|
36383638+|`scroll-mx-[n]`|🌐 Web only|
36393639+|`scroll-my-{n}`|🌐 Web only|
36403640+|`scroll-my-[n]`|🌐 Web only|
36413641+|`scroll-mt-{n}`|🌐 Web only|
36423642+|`scroll-mt-[n]`|🌐 Web only|
36433643+|`scroll-mr-{n}`|🌐 Web only|
36443644+|`scroll-mr-[n]`|🌐 Web only|
36453645+|`scroll-mb-{n}`|🌐 Web only|
36463646+|`scroll-mb-[n]`|🌐 Web only|
36473647+|`scroll-ml-{n}`|🌐 Web only|
36483648+|`scroll-ml-[n]`|🌐 Web only|
3649364936503650## Max-Width
36513651···3655365536563656### Compatibility
3657365736583658-| Class | Support |
36593659-| ------------------ | --------------- |
36603660-| `max-w-0` | ✅ Full Support |
36613661-| `max-w-[n]` | ✅ Full Support |
36623662-| `max-w-{n}` | ✅ Full Support |
36633663-| `max-w-full` | ✅ Full Support |
36643664-| `max-w-screen-sm` | ✅ Full Support |
36653665-| `max-w-screen-md` | ✅ Full Support |
36663666-| `max-w-screen-lg` | ✅ Full Support |
36673667-| `max-w-screen-xl` | ✅ Full Support |
36683668-| `max-w-screen-2xl` | ✅ Full Support |
36693669-| `max-w-min` | 🌐 Web only |
36703670-| `max-w-max` | 🌐 Web only |
36713671-| `max-w-fit` | 🌐 Web only |
36723672-| `max-w-prose` | 🌐 Web only |
36583658+|Class|Support|
36593659+|-|-|
36603660+|`max-w-0`|✅ Full Support|
36613661+|`max-w-[n]`|✅ Full Support|
36623662+|`max-w-{n}`|✅ Full Support|
36633663+|`max-w-full`|✅ Full Support|
36643664+|`max-w-screen-sm`|✅ Full Support|
36653665+|`max-w-screen-md`|✅ Full Support|
36663666+|`max-w-screen-lg`|✅ Full Support|
36673667+|`max-w-screen-xl`|✅ Full Support|
36683668+|`max-w-screen-2xl`|✅ Full Support|
36693669+|`max-w-min`|🌐 Web only|
36703670+|`max-w-max`|🌐 Web only|
36713671+|`max-w-fit`|🌐 Web only|
36723672+|`max-w-prose`|🌐 Web only|
3673367336743674## Scroll Padding
36753675···3681368136823682The following classes are supported exclusively on web platforms:
3683368336843684-| Class | Support |
36853685-| --------------- | ----------- |
36863686-| `scroll-p-{n}` | 🌐 Web only |
36873687-| `scroll-p-[n]` | 🌐 Web only |
36883688-| `scroll-px-{n}` | 🌐 Web only |
36893689-| `scroll-px-[n]` | 🌐 Web only |
36903690-| `scroll-py-{n}` | 🌐 Web only |
36913691-| `scroll-py-[n]` | 🌐 Web only |
36923692-| `scroll-pt-{n}` | 🌐 Web only |
36933693-| `scroll-pt-[n]` | 🌐 Web only |
36943694-| `scroll-pr-{n}` | 🌐 Web only |
36953695-| `scroll-pr-[n]` | 🌐 Web only |
36963696-| `scroll-pb-{n}` | 🌐 Web only |
36973697-| `scroll-pb-[n]` | 🌐 Web only |
36983698-| `scroll-pl-{n}` | 🌐 Web only |
36993699-| `scroll-pl-[n]` | 🌐 Web only |
36843684+|Class|Support|
36853685+|-|-|
36863686+|`scroll-p-{n}`|🌐 Web only|
36873687+|`scroll-p-[n]`|🌐 Web only|
36883688+|`scroll-px-{n}`|🌐 Web only|
36893689+|`scroll-px-[n]`|🌐 Web only|
36903690+|`scroll-py-{n}`|🌐 Web only|
36913691+|`scroll-py-[n]`|🌐 Web only|
36923692+|`scroll-pt-{n}`|🌐 Web only|
36933693+|`scroll-pt-[n]`|🌐 Web only|
36943694+|`scroll-pr-{n}`|🌐 Web only|
36953695+|`scroll-pr-[n]`|🌐 Web only|
36963696+|`scroll-pb-{n}`|🌐 Web only|
36973697+|`scroll-pb-[n]`|🌐 Web only|
36983698+|`scroll-pl-{n}`|🌐 Web only|
36993699+|`scroll-pl-[n]`|🌐 Web only|
3700370037013701## Scroll Snap Align
37023702···3706370637073707### Compatibility
3708370837093709-| Class | Support |
37103710-| ----------------- | ----------- |
37113711-| `snap-start` | 🌐 Web only |
37123712-| `snap-end` | 🌐 Web only |
37133713-| `snap-center` | 🌐 Web only |
37143714-| `snap-align-none` | 🌐 Web only |
37093709+|Class|Support|
37103710+|-|-|
37113711+|`snap-start`|🌐 Web only|
37123712+|`snap-end`|🌐 Web only|
37133713+|`snap-center`|🌐 Web only|
37143714+|`snap-align-none`|🌐 Web only|
3715371537163716## Floats
37173717···3721372137223722### Compatibility
3723372337243724-| Class | Support |
37253725-| ------------- | ----------- |
37263726-| `float-right` | 🌐 Web only |
37273727-| `float-left` | 🌐 Web only |
37283728-| `float-none` | 🌐 Web only |
37243724+|Class|Support|
37253725+|-|-|
37263726+|`float-right`|🌐 Web only|
37273727+|`float-left`|🌐 Web only|
37283728+|`float-none`|🌐 Web only|
3729372937303730## Scroll Snap Stop
37313731···3735373537363736### Compatibility
3737373737383738-| Class | Support |
37393739-| ------------- | ----------- |
37403740-| `snap-normal` | 🌐 Web only |
37413741-| `snap-always` | 🌐 Web only |
37383738+|Class|Support|
37393739+|-|-|
37403740+|`snap-normal`|🌐 Web only|
37413741+|`snap-always`|🌐 Web only|
3742374237433743## Min-Height
37443744···3748374837493749### Compatibility
3750375037513751-| Class | Support |
37523752-| ------------ | --------------- |
37533753-| `min-h-0` | ✅ Full Support |
37543754-| `min-h-[n]` | ✅ Full Support |
37553755-| `min-h-full` | ✅ Full Support |
37563756-| `min-h-min` | 🌐 Web only |
37573757-| `min-h-max` | 🌐 Web only |
37583758-| `min-h-fit` | 🌐 Web only |
37513751+|Class|Support|
37523752+|-|-|
37533753+|`min-h-0`|✅ Full Support|
37543754+|`min-h-[n]`|✅ Full Support|
37553755+|`min-h-full`|✅ Full Support|
37563756+|`min-h-min`|🌐 Web only|
37573757+|`min-h-max`|🌐 Web only|
37583758+|`min-h-fit`|🌐 Web only|
3759375937603760```typescript
37613761type MinHeightClasses = {
···3776377637773777### Compatibility
3778377837793779-| Class | Support |
37803780-| ---------------- | ----------- |
37813781-| `snap-none` | 🌐 Web only |
37823782-| `snap-x` | 🌐 Web only |
37833783-| `snap-y` | 🌐 Web only |
37843784-| `snap-both` | 🌐 Web only |
37853785-| `snap-mandatory` | 🌐 Web only |
37863786-| `snap-proximity` | 🌐 Web only |
37793779+|Class|Support|
37803780+|-|-|
37813781+|`snap-none`|🌐 Web only|
37823782+|`snap-x`|🌐 Web only|
37833783+|`snap-y`|🌐 Web only|
37843784+|`snap-both`|🌐 Web only|
37853785+|`snap-mandatory`|🌐 Web only|
37863786+|`snap-proximity`|🌐 Web only|
3787378737883788## Touch Action
37893789···3795379537963796The following table outlines the support for various touch action classes:
3797379737983798-| Class | Support |
37993799-| -------------------- | ----------- |
38003800-| `touch-auto` | 🌐 Web only |
38013801-| `touch-none` | 🌐 Web only |
38023802-| `touch-pan-x` | 🌐 Web only |
38033803-| `touch-pan-left` | 🌐 Web only |
38043804-| `touch-pan-right` | 🌐 Web only |
38053805-| `touch-pan-y` | 🌐 Web only |
38063806-| `touch-pan-up` | 🌐 Web only |
38073807-| `touch-pan-down` | 🌐 Web only |
38083808-| `touch-pinch-zoom` | 🌐 Web only |
38093809-| `touch-manipulation` | 🌐 Web only |
37983798+|Class|Support|
37993799+|-|-|
38003800+|`touch-auto`|🌐 Web only|
38013801+|`touch-none`|🌐 Web only|
38023802+|`touch-pan-x`|🌐 Web only|
38033803+|`touch-pan-left`|🌐 Web only|
38043804+|`touch-pan-right`|🌐 Web only|
38053805+|`touch-pan-y`|🌐 Web only|
38063806+|`touch-pan-up`|🌐 Web only|
38073807+|`touch-pan-down`|🌐 Web only|
38083808+|`touch-pinch-zoom`|🌐 Web only|
38093809+|`touch-manipulation`|🌐 Web only|
3810381038113811## Configuration
38123812···3864386438653865### Compatibility
3866386638673867-| Class | Support |
38683868-| ---------------- | ----------- |
38693869-| `isolate` | 🌐 Web only |
38703870-| `isolation-auto` | 🌐 Web only |
38673867+|Class|Support|
38683868+|-|-|
38693869+|`isolate`|🌐 Web only|
38703870+|`isolation-auto`|🌐 Web only|
3871387138723872## Min-Width
38733873···3877387738783878### Compatibility
3879387938803880-| Class | Support |
38813881-| ------------ | --------------- |
38823882-| `min-w-0` | ✅ Full Support |
38833883-| `min-w-[n]` | ✅ Full Support |
38843884-| `min-w-full` | ✅ Full Support |
38853885-| `min-w-min` | 🌐 Web only |
38863886-| `min-w-max` | 🌐 Web only |
38873887-| `min-w-fit` | 🌐 Web only |
38803880+|Class|Support|
38813881+|-|-|
38823882+|`min-w-0`|✅ Full Support|
38833883+|`min-w-[n]`|✅ Full Support|
38843884+|`min-w-full`|✅ Full Support|
38853885+|`min-w-min`|🌐 Web only|
38863886+|`min-w-max`|🌐 Web only|
38873887+|`min-w-fit`|🌐 Web only|
3888388838893889```typescript
38903890// TypeScript typings for min-width classes
···3906390639073907### Compatibility
3908390839093909-| Class | Support |
39103910-| ------------- | ----------- |
39113911-| `select-none` | 🌐 Web only |
39123912-| `select-text` | 🌐 Web only |
39133913-| `select-all` | 🌐 Web only |
39143914-| `select-auto` | 🌐 Web only |
39093909+|Class|Support|
39103910+|-|-|
39113911+|`select-none`|🌐 Web only|
39123912+|`select-text`|🌐 Web only|
39133913+|`select-all`|🌐 Web only|
39143914+|`select-auto`|🌐 Web only|
3915391539163916### Contributors
39173917···3929392939303930### Compatibility
3931393139323932-| Class | Support |
39333933-| ---------- | --------------- |
39343934-| `w-{n}` | ✅ Full Support |
39353935-| `w-[n]` | ✅ Full Support |
39363936-| `w-full` | ✅ Full Support |
39373937-| `w-screen` | ✅ Full Support |
39383938-| `w-auto` | 🌐 Web only |
39393939-| `w-min` | 🌐 Web only |
39403940-| `w-max` | 🌐 Web only |
39413941-| `w-fit` | 🌐 Web only |
39323932+|Class|Support|
39333933+|-|-|
39343934+|`w-{n}`|✅ Full Support|
39353935+|`w-[n]`|✅ Full Support|
39363936+|`w-full`|✅ Full Support|
39373937+|`w-screen`|✅ Full Support|
39383938+|`w-auto`|🌐 Web only|
39393939+|`w-min`|🌐 Web only|
39403940+|`w-max`|🌐 Web only|
39413941+|`w-fit`|🌐 Web only|
3942394239433943## Will Change
39443944···3948394839493949### Compatibility
3950395039513951-| Class | Support |
39523952-| ----------------------- | ----------- |
39533953-| `will-change-auto` | 🌐 Web only |
39543954-| `will-change-scroll` | 🌐 Web only |
39553955-| `will-change-contents` | 🌐 Web only |
39563956-| `will-change-transform` | 🌐 Web only |
39513951+|Class|Support|
39523952+|-|-|
39533953+|`will-change-auto`|🌐 Web only|
39543954+|`will-change-scroll`|🌐 Web only|
39553955+|`will-change-contents`|🌐 Web only|
39563956+|`will-change-transform`|🌐 Web only|
3957395739583958### Contributors
39593959···3975397539763976### Compatibility
3977397739783978-| Class | Support |
39793979-| -------------- | --------------- |
39803980-| `fill-{n}` | ✅ Full Support |
39813981-| `fill-[n]` | ✅ Full Support |
39823982-| `fill-inherit` | 🌐 Web only |
39833983-| `fill-current` | 🌐 Web only |
39783978+|Class|Support|
39793979+|-|-|
39803980+|`fill-{n}`|✅ Full Support|
39813981+|`fill-[n]`|✅ Full Support|
39823982+|`fill-inherit`|🌐 Web only|
39833983+|`fill-current`|🌐 Web only|
3984398439853985## Content
39863986···3990399039913991### Compatibility
3992399239933993-| Class | Support |
39943994-| -------------- | ----------- |
39953995-| `content-none` | 🌐 Web only |
39933993+|Class|Support|
39943994+|-|-|
39953995+|`content-none`|🌐 Web only|
3996399639973997## Stroke
39983998···4004400440054005### Compatibility
4006400640074007-| Class | Support |
40084008-| ---------------- | --------------- |
40094009-| `stroke-{n}` | ✅ Full Support |
40104010-| `stroke-[n]` | ✅ Full Support |
40114011-| `stroke-inherit` | 🌐 Web only |
40124012-| `stroke-current` | 🌐 Web only |
40074007+|Class|Support|
40084008+|-|-|
40094009+|`stroke-{n}`|✅ Full Support|
40104010+|`stroke-[n]`|✅ Full Support|
40114011+|`stroke-inherit`|🌐 Web only|
40124012+|`stroke-current`|🌐 Web only|
4013401340144014```typescript
40154015// Example TypeScript typings for stroke classes
···4031403140324032### Compatibility
4033403340344034-| Class | Support |
40354035-| ------------ | --------------- |
40364036-| `stroke-{n}` | ✅ Full Support |
40374037-| `stroke-[n]` | ✅ Full Support |
40344034+|Class|Support|
40354035+|-|-|
40364036+|`stroke-{n}`|✅ Full Support|
40374037+|`stroke-[n]`|✅ Full Support|
4038403840394039## Object Fit
40404040···4044404440454045### Compatibility
4046404640474047-| Class | Support |
40484048-| ------------------- | ----------- |
40494049-| `object-contain` | 🌐 Web only |
40504050-| `object-cover` | 🌐 Web only |
40514051-| `object-fill` | 🌐 Web only |
40524052-| `object-none` | 🌐 Web only |
40534053-| `object-scale-down` | 🌐 Web only |
40474047+|Class|Support|
40484048+|-|-|
40494049+|`object-contain`|🌐 Web only|
40504050+|`object-cover`|🌐 Web only|
40514051+|`object-fill`|🌐 Web only|
40524052+|`object-none`|🌐 Web only|
40534053+|`object-scale-down`|🌐 Web only|
4054405440554055### Contributors
40564056···4095409540964096### Compatibility
4097409740984098-| Class | Support |
40994099-| ------------ | --------------- |
41004100-| `font-sans` | ✅ Full Support |
41014101-| `font-serif` | ✅ Full Support |
41024102-| `font-mono` | ✅ Full Support |
41034103-| `font-[n]` | ✅ Full Support |
41044104-| `font-{n}` | ✅ Full Support |
40984098+|Class|Support|
40994099+|-|-|
41004100+|`font-sans`|✅ Full Support|
41014101+|`font-serif`|✅ Full Support|
41024102+|`font-mono`|✅ Full Support|
41034103+|`font-[n]`|✅ Full Support|
41044104+|`font-{n}`|✅ Full Support|
4105410541064106## Font Size
41074107···4202420242034203### Compatibility
4204420442054205-| Class | Support |
42064206-| ----------- | --------------- |
42074207-| `text-{n}` | ✅ Full Support |
42084208-| `text-[n]` | ✅ Full Support |
42094209-| `text-base` | ✅ Full Support |
42054205+|Class|Support|
42064206+|-|-|
42074207+|`text-{n}`|✅ Full Support|
42084208+|`text-[n]`|✅ Full Support|
42094209+|`text-base`|✅ Full Support|
4210421042114211## Object Position
42124212···4218421842194219The following table outlines the compatibility of various classes:
4220422042214221-| Class | Support |
42224222-| --------------------- | ----------- |
42234223-| `object-bottom` | 🌐 Web only |
42244224-| `object-center` | 🌐 Web only |
42254225-| `object-left` | 🌐 Web only |
42264226-| `object-left-bottom` | 🌐 Web only |
42274227-| `object-left-top` | 🌐 Web only |
42284228-| `object-right` | 🌐 Web only |
42294229-| `object-right-bottom` | 🌐 Web only |
42304230-| `object-right-top` | 🌐 Web only |
42314231-| `object-top` | 🌐 Web only |
42214221+|Class|Support|
42224222+|-|-|
42234223+|`object-bottom`|🌐 Web only|
42244224+|`object-center`|🌐 Web only|
42254225+|`object-left`|🌐 Web only|
42264226+|`object-left-bottom`|🌐 Web only|
42274227+|`object-left-top`|🌐 Web only|
42284228+|`object-right`|🌐 Web only|
42294229+|`object-right-bottom`|🌐 Web only|
42304230+|`object-right-top`|🌐 Web only|
42314231+|`object-top`|🌐 Web only|
4232423242334233## Font Smoothing
42344234···4238423842394239### Compatibility
4240424042414241-| Class | Support |
42424242-| ---------------------- | --------------- |
42434243-| `antialiased` | ✅ Full Support |
42444244-| `subpixel-antialiased` | ✅ Full Support |
42414241+|Class|Support|
42424242+|-|-|
42434243+|`antialiased`|✅ Full Support|
42444244+|`subpixel-antialiased`|✅ Full Support|
4245424542464246## Editor Setup
42474247···4279427942804280### Compatibility
4281428142824282-| Class | Support |
42834283-| -------------------- | --------------- |
42844284-| `visible` | ✅ Full Support |
42854285-| `hidden` | ✅ Full Support |
42864286-| `scroll` | ✅ Full Support |
42874287-| `overflow-auto` | 🌐 Web only |
42884288-| `overflow-clip` | 🌐 Web only |
42894289-| `overflow-x-auto` | 🌐 Web only |
42904290-| `overflow-y-auto` | 🌐 Web only |
42914291-| `overflow-x-hidden` | 🌐 Web only |
42924292-| `overflow-y-hidden` | 🌐 Web only |
42934293-| `overflow-x-clip` | 🌐 Web only |
42944294-| `overflow-y-clip` | 🌐 Web only |
42954295-| `overflow-x-visible` | 🌐 Web only |
42964296-| `overflow-y-visible` | 🌐 Web only |
42974297-| `overflow-x-scroll` | 🌐 Web only |
42984298-| `overflow-y-scroll` | 🌐 Web only |
42824282+|Class|Support|
42834283+|-|-|
42844284+|`visible`|✅ Full Support|
42854285+|`hidden`|✅ Full Support|
42864286+|`scroll`|✅ Full Support|
42874287+|`overflow-auto`|🌐 Web only|
42884288+|`overflow-clip`|🌐 Web only|
42894289+|`overflow-x-auto`|🌐 Web only|
42904290+|`overflow-y-auto`|🌐 Web only|
42914291+|`overflow-x-hidden`|🌐 Web only|
42924292+|`overflow-y-hidden`|🌐 Web only|
42934293+|`overflow-x-clip`|🌐 Web only|
42944294+|`overflow-y-clip`|🌐 Web only|
42954295+|`overflow-x-visible`|🌐 Web only|
42964296+|`overflow-y-visible`|🌐 Web only|
42974297+|`overflow-x-scroll`|🌐 Web only|
42984298+|`overflow-y-scroll`|🌐 Web only|
4299429943004300## Font Style
43014301···4305430543064306### Compatibility
4307430743084308-| Class | Support |
43094309-| ------------ | --------------- |
43104310-| `italic` | ✅ Full Support |
43114311-| `not-italic` | ✅ Full Support |
43084308+|Class|Support|
43094309+|-|-|
43104310+|`italic`|✅ Full Support|
43114311+|`not-italic`|✅ Full Support|
4312431243134313## Font Variant Numeric
43144314···4318431843194319### Compatibility
4320432043214321-| Class | Support |
43224322-| -------------------- | --------------- |
43234323-| `normal-nums` | ✅ Full Support |
43244324-| `ordinal` | ✅ Full Support |
43254325-| `slashed-zero` | ✅ Full Support |
43264326-| `lining-nums` | ✅ Full Support |
43274327-| `oldstyle-nums` | ✅ Full Support |
43284328-| `proportional-nums` | ✅ Full Support |
43294329-| `tabular-nums` | ✅ Full Support |
43304330-| `diagonal-fractions` | ✅ Full Support |
43314331-| `stacked-fractions` | ✅ Full Support |
43214321+|Class|Support|
43224322+|-|-|
43234323+|`normal-nums`|✅ Full Support|
43244324+|`ordinal`|✅ Full Support|
43254325+|`slashed-zero`|✅ Full Support|
43264326+|`lining-nums`|✅ Full Support|
43274327+|`oldstyle-nums`|✅ Full Support|
43284328+|`proportional-nums`|✅ Full Support|
43294329+|`tabular-nums`|✅ Full Support|
43304330+|`diagonal-fractions`|✅ Full Support|
43314331+|`stacked-fractions`|✅ Full Support|
4332433243334333## Font Weight
43344334···4338433843394339### Compatibility
4340434043414341-| Class | Support |
43424342-| ----------------- | --------------- |
43434343-| `font-thin` | ✅ Full Support |
43444344-| `font-extralight` | ✅ Full Support |
43454345-| `font-light` | ✅ Full Support |
43464346-| `font-normal` | ✅ Full Support |
43474347-| `font-medium` | ✅ Full Support |
43484348-| `font-semibold` | ✅ Full Support |
43494349-| `font-bold` | ✅ Full Support |
43504350-| `font-extrabold` | ✅ Full Support |
43514351-| `font-black` | ✅ Full Support |
43414341+|Class|Support|
43424342+|-|-|
43434343+|`font-thin`|✅ Full Support|
43444344+|`font-extralight`|✅ Full Support|
43454345+|`font-light`|✅ Full Support|
43464346+|`font-normal`|✅ Full Support|
43474347+|`font-medium`|✅ Full Support|
43484348+|`font-semibold`|✅ Full Support|
43494349+|`font-bold`|✅ Full Support|
43504350+|`font-extrabold`|✅ Full Support|
43514351+|`font-black`|✅ Full Support|
4352435243534353## Theme
43544354···4541454145424542The following table outlines the support for various overscroll behavior classes:
4543454345444544-| Class | Support |
45454545-| ---------------------- | ----------- |
45464546-| `overscroll-auto` | 🌐 Web only |
45474547-| `overscroll-contain` | 🌐 Web only |
45484548-| `overscroll-none` | 🌐 Web only |
45494549-| `overscroll-y-auto` | 🌐 Web only |
45504550-| `overscroll-y-contain` | 🌐 Web only |
45514551-| `overscroll-y-none` | 🌐 Web only |
45524552-| `overscroll-x-auto` | 🌐 Web only |
45534553-| `overscroll-x-contain` | 🌐 Web only |
45544554-| `overscroll-x-none` | 🌐 Web only |
45444544+|Class|Support|
45454545+|-|-|
45464546+|`overscroll-auto`|🌐 Web only|
45474547+|`overscroll-contain`|🌐 Web only|
45484548+|`overscroll-none`|🌐 Web only|
45494549+|`overscroll-y-auto`|🌐 Web only|
45504550+|`overscroll-y-contain`|🌐 Web only|
45514551+|`overscroll-y-none`|🌐 Web only|
45524552+|`overscroll-x-auto`|🌐 Web only|
45534553+|`overscroll-x-contain`|🌐 Web only|
45544554+|`overscroll-x-none`|🌐 Web only|
4555455545564556## Hyphens
45574557···4561456145624562### Compatibility
4563456345644564-| Class | Support |
45654565-| ---------------- | ----------- |
45664566-| `hyphens-none` | 🌐 Web only |
45674567-| `hyphens-manual` | 🌐 Web only |
45684568-| `hyphens-auto` | 🌐 Web only |
45644564+|Class|Support|
45654565+|-|-|
45664566+|`hyphens-none`|🌐 Web only|
45674567+|`hyphens-manual`|🌐 Web only|
45684568+|`hyphens-auto`|🌐 Web only|
4569456945704570## Letter Spacing
45714571···4575457545764576### Compatibility
4577457745784578-| Class | Support |
45794579-| ------------------ | --------------- |
45804580-| `tracking-tighter` | ✅ Full Support |
45814581-| `tracking-tight` | ✅ Full Support |
45824582-| `tracking-normal` | ✅ Full Support |
45834583-| `tracking-wide` | ✅ Full Support |
45844584-| `tracking-wider` | ✅ Full Support |
45854585-| `tracking-widest` | ✅ Full Support |
45784578+|Class|Support|
45794579+|-|-|
45804580+|`tracking-tighter`|✅ Full Support|
45814581+|`tracking-tight`|✅ Full Support|
45824582+|`tracking-normal`|✅ Full Support|
45834583+|`tracking-wide`|✅ Full Support|
45844584+|`tracking-wider`|✅ Full Support|
45854585+|`tracking-widest`|✅ Full Support|
4586458645874587## Position
45884588···4592459245934593### Compatibility
4594459445954595-| Class | Support |
45964596-| ---------- | --------------- |
45974597-| `absolute` | ✅ Full Support |
45984598-| `relative` | ✅ Full Support |
45994599-| `fixed` | 🌐 Web only |
46004600-| `sticky` | 🌐 Web only |
45954595+|Class|Support|
45964596+|-|-|
45974597+|`absolute`|✅ Full Support|
45984598+|`relative`|✅ Full Support|
45994599+|`fixed`|🌐 Web only|
46004600+|`sticky`|🌐 Web only|
4601460146024602## Line Clamp
46034603···4607460746084608### Compatibility
4609460946104610-| Class | Support |
46114611-| ----------------- | --------------- |
46124612-| `line-clamp-1` | ✅ Full Support |
46134613-| `line-clamp-2` | ✅ Full Support |
46144614-| `line-clamp-3` | ✅ Full Support |
46154615-| `line-clamp-4` | ✅ Full Support |
46164616-| `line-clamp-5` | ✅ Full Support |
46174617-| `line-clamp-6` | ✅ Full Support |
46184618-| `line-clamp-none` | ✅ Full Support |
46104610+|Class|Support|
46114611+|-|-|
46124612+|`line-clamp-1`|✅ Full Support|
46134613+|`line-clamp-2`|✅ Full Support|
46144614+|`line-clamp-3`|✅ Full Support|
46154615+|`line-clamp-4`|✅ Full Support|
46164616+|`line-clamp-5`|✅ Full Support|
46174617+|`line-clamp-6`|✅ Full Support|
46184618+|`line-clamp-none`|✅ Full Support|
4619461946204620## Line Height
46214621···4627462746284628React Native does not support relative line height utilities due to its lack of `em` unit support.
4629462946304630-| Class | Support |
46314631-| ----------------- | --------------- |
46324632-| `leading-{n}` | ✅ Full Support |
46334633-| `leading-[n]` | ✅ Full Support |
46344634-| `leading-none` | 🌐 Web only |
46354635-| `leading-tight` | 🌐 Web only |
46364636-| `leading-snug` | 🌐 Web only |
46374637-| `leading-normal` | 🌐 Web only |
46384638-| `leading-relaxed` | 🌐 Web only |
46394639-| `leading-loose` | 🌐 Web only |
46304630+|Class|Support|
46314631+|-|-|
46324632+|`leading-{n}`|✅ Full Support|
46334633+|`leading-[n]`|✅ Full Support|
46344634+|`leading-none`|🌐 Web only|
46354635+|`leading-tight`|🌐 Web only|
46364636+|`leading-snug`|🌐 Web only|
46374637+|`leading-normal`|🌐 Web only|
46384638+|`leading-relaxed`|🌐 Web only|
46394639+|`leading-loose`|🌐 Web only|
4640464046414641## Using Nativewind with Monorepos
46424642···4711471147124712### Compatibility
4713471347144714-| Class | Support |
47154715-| -------------- | --------------- |
47164716-| `inset-{n}` | ✅ Full Support |
47174717-| `inset-[n]` | ✅ Full Support |
47184718-| `inset-x-{n}` | ✅ Full Support |
47194719-| `inset-y-[n]` | ✅ Full Support |
47204720-| `top-{n}` | ✅ Full Support |
47214721-| `top-[n]` | ✅ Full Support |
47224722-| `bottom-{n}` | ✅ Full Support |
47234723-| `bottom-[n]` | ✅ Full Support |
47244724-| `left-{n}` | ✅ Full Support |
47254725-| `left-[n]` | ✅ Full Support |
47264726-| `right-{n}` | ✅ Full Support |
47274727-| `right-[n]` | ✅ Full Support |
47284728-| `inset-auto` | 🌐 Web only |
47294729-| `inset-x-auto` | 🌐 Web only |
47304730-| `inset-y-auto` | 🌐 Web only |
47314731-| `top-auto` | 🌐 Web only |
47324732-| `bottom-auto` | 🌐 Web only |
47334733-| `left-auto` | 🌐 Web only |
47344734-| `right-auto` | 🌐 Web only |
47144714+|Class|Support|
47154715+|-|-|
47164716+|`inset-{n}`|✅ Full Support|
47174717+|`inset-[n]`|✅ Full Support|
47184718+|`inset-x-{n}`|✅ Full Support|
47194719+|`inset-y-[n]`|✅ Full Support|
47204720+|`top-{n}`|✅ Full Support|
47214721+|`top-[n]`|✅ Full Support|
47224722+|`bottom-{n}`|✅ Full Support|
47234723+|`bottom-[n]`|✅ Full Support|
47244724+|`left-{n}`|✅ Full Support|
47254725+|`left-[n]`|✅ Full Support|
47264726+|`right-{n}`|✅ Full Support|
47274727+|`right-[n]`|✅ Full Support|
47284728+|`inset-auto`|🌐 Web only|
47294729+|`inset-x-auto`|🌐 Web only|
47304730+|`inset-y-auto`|🌐 Web only|
47314731+|`top-auto`|🌐 Web only|
47324732+|`bottom-auto`|🌐 Web only|
47334733+|`left-auto`|🌐 Web only|
47344734+|`right-auto`|🌐 Web only|
4735473547364736## List Style Image
47374737···4741474147424742### Compatibility
4743474347444744-| Class | Support |
47454745-| ----------------- | --------------- |
47464746-| `list-image-none` | ✅ Full Support |
47444744+|Class|Support|
47454745+|-|-|
47464746+|`list-image-none`|✅ Full Support|
4747474747484748----
47484748+***
4749474947504750This reformatted content maintains the original structure and information while ensuring clarity and consistency in presentation.
47514751···4759475947604760### Compatibility
4761476147624762-| Class | Support |
47634763-| ----------- | --------------- |
47644764-| `visible` | ✅ Full Support |
47654765-| `invisible` | ✅ Full Support |
47664766-| `collapse` | 🌐 Web only |
47624762+|Class|Support|
47634763+|-|-|
47644764+|`visible`|✅ Full Support|
47654765+|`invisible`|✅ Full Support|
47664766+|`collapse`|🌐 Web only|
4767476747684768```typescript
47694769// Example TypeScript typings for visibility classes
···4780478047814781### Compatibility
4782478247834783-| Class | Support |
47844784-| -------------- | --------------- |
47854785-| `list-inside` | ✅ Full Support |
47864786-| `list-outside` | ✅ Full Support |
47834783+|Class|Support|
47844784+|-|-|
47854785+|`list-inside`|✅ Full Support|
47864786+|`list-outside`|✅ Full Support|
4787478747884788## List Style Type
47894789···4793479347944794### Compatibility
4795479547964796-| Class | Support |
47974797-| -------------- | --------------- |
47984798-| `list-none` | ✅ Full Support |
47994799-| `list-disc` | ✅ Full Support |
48004800-| `list-decimal` | ✅ Full Support |
47964796+|Class|Support|
47974797+|-|-|
47984798+|`list-none`|✅ Full Support|
47994799+|`list-disc`|✅ Full Support|
48004800+|`list-decimal`|✅ Full Support|
4801480148024802## Built on Tailwind CSS
48034803···4825482548264826### Compatibility
4827482748284828-| Class | Support |
48294829-| ------------- | --------------- |
48304830-| `uppercase` | ✅ Full Support |
48314831-| `lowercase` | ✅ Full Support |
48324832-| `capitalize` | ✅ Full Support |
48334833-| `normal-case` | 🌐 Web only |
48284828+|Class|Support|
48294829+|-|-|
48304830+|`uppercase`|✅ Full Support|
48314831+|`lowercase`|✅ Full Support|
48324832+|`capitalize`|✅ Full Support|
48334833+|`normal-case`|🌐 Web only|
4834483448354835## Z-Index
48364836···4840484048414841### Compatibility
4842484248434843-| Class | Support |
48444844-| -------- | --------------- |
48454845-| `z-{n}` | ✅ Full Support |
48464846-| `z-[n]` | ✅ Full Support |
48474847-| `z-auto` | 🌐 Web only |
48434843+|Class|Support|
48444844+|-|-|
48454845+|`z-{n}`|✅ Full Support|
48464846+|`z-[n]`|✅ Full Support|
48474847+|`z-auto`|🌐 Web only|
4848484848494849## Text Color
48504850···4854485448554855### Compatibility
4856485648574857-| Class | Support |
48584858-| -------------- | --------------- |
48594859-| `text-{n}` | ✅ Full Support |
48604860-| `text-[n]` | ✅ Full Support |
48614861-| `text-inherit` | 🌐 Web only |
48624862-| `text-current` | 🌐 Web only |
48574857+|Class|Support|
48584858+|-|-|
48594859+|`text-{n}`|✅ Full Support|
48604860+|`text-[n]`|✅ Full Support|
48614861+|`text-inherit`|🌐 Web only|
48624862+|`text-current`|🌐 Web only|
4863486348644864### textOpacity (Native Only)
48654865···4884488448854885### Compatibility
4886488648874887-| Class | Support |
48884888-| -------------- | --------------- |
48894889-| `underline` | ✅ Full Support |
48904890-| `line-through` | ✅ Full Support |
48914891-| `no-underline` | ✅ Full Support |
48924892-| `overline` | 🌐 Web only |
48874887+|Class|Support|
48884888+|-|-|
48894889+|`underline`|✅ Full Support|
48904890+|`line-through`|✅ Full Support|
48914891+|`no-underline`|✅ Full Support|
48924892+|`overline`|🌐 Web only|
+204-208
out/llms-full-react-native-gesture-handler.txt
···28282929The `react-native-gesture-handler` library supports the three most recent minor versions of `react-native`. Below is a compatibility table:
30303131-| Gesture Handler Version | React Native Version |
3232-| ----------------------- | -------------------- |
3333-| 2.24.0+ | 0.75.0+ |
3434-| 2.21.0+ | 0.74.0+ |
3535-| 2.18.0+ | 0.73.0+ |
3636-| 2.16.0+ | 0.68.0+ |
3737-| 2.14.0+ | 0.67.0+ |
3838-| 2.10.0+ | 0.64.0+ |
3939-| 2.0.0+ | 0.63.0+ |
3131+|Gesture Handler Version|React Native Version|
3232+|-|-|
3333+|2.24.0+|0.75.0+|
3434+|2.21.0+|0.74.0+|
3535+|2.18.0+|0.73.0+|
3636+|2.16.0+|0.68.0+|
3737+|2.14.0+|0.67.0+|
3838+|2.10.0+|0.64.0+|
3939+|2.0.0+|0.63.0+|
40404141To fully leverage touch events, ensure you are using `react-native-reanimated` version 2.3.0 or newer.
4242···356356357357#### Properties Common to All Gestures:
358358359359-| Property | Description |
360360-| --- | --- |
361361-| `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`. |
362362-| `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`. |
363363-| `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. |
364364-| `withRef(ref)` | Sets a ref to the gesture object for interoperability with older APIs. |
365365-| `withTestId(testID)` | Assigns a `testID` property for querying in tests. |
366366-| `cancelsTouchesInView(value)` (**iOS only**) | When `true`, cancels touches for native UI components when active. Default is `true`. |
367367-| `runOnJS(value: boolean)` | Determines if callbacks run on the JS thread (`true`) or UI thread (`false`). Defaults to `false` with `react-native-reanimated`. |
368368-| `simultaneousWithExternalGesture(otherGesture1, otherGesture2, ...)` | Marks gestures for simultaneous recognition without composing them. Requires additional detectors for recognition. |
369369-| `requireExternalGestureToFail(otherGesture1, otherGesture2, ...)` | Adds a relation requiring another gesture to fail before activation. Does not compose gestures; requires additional detectors. |
370370-| `blocksExternalGesture(otherGesture1, otherGesture2, ...)` | Makes other gestures wait until this one fails or doesn't start. Marks relations without composing gestures; requires additional detectors. |
371371-| `activeCursor(value)` (**Web only**) | Specifies the cursor when the gesture activates. Supports CSS cursor values (e.g., `"grab"`, `"zoom-in"`). Default is `"auto"`. |
359359+|Property|Description|
360360+|-|-|
361361+|`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`.|
362362+|`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`.|
363363+|`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.|
364364+|`withRef(ref)`|Sets a ref to the gesture object for interoperability with older APIs.|
365365+|`withTestId(testID)`|Assigns a `testID` property for querying in tests.|
366366+|`cancelsTouchesInView(value)` (**iOS only**)|When `true`, cancels touches for native UI components when active. Default is `true`.|
367367+|`runOnJS(value: boolean)`|Determines if callbacks run on the JS thread (`true`) or UI thread (`false`). Defaults to `false` with `react-native-reanimated`.|
368368+|`simultaneousWithExternalGesture(otherGesture1, otherGesture2, ...)`|Marks gestures for simultaneous recognition without composing them. Requires additional detectors for recognition.|
369369+|`requireExternalGestureToFail(otherGesture1, otherGesture2, ...)`|Adds a relation requiring another gesture to fail before activation. Does not compose gestures; requires additional detectors.|
370370+|`blocksExternalGesture(otherGesture1, otherGesture2, ...)`|Makes other gestures wait until this one fails or doesn't start. Marks relations without composing gestures; requires additional detectors.|
371371+|`activeCursor(value)` (**Web only**)|Specifies the cursor when the gesture activates. Supports CSS cursor values (e.g., `"grab"`, `"zoom-in"`). Default is `"auto"`.|
372372373373#### Properties Common to All Continuous Gestures:
374374···378378379379#### Callbacks Common to All Gestures:
380380381381-| Callback | Description |
382382-| --- | --- |
383383-| `onBegin(callback)` | Called when the gesture handler starts receiving touches but is not yet active. |
384384-| `onStart(callback)` | Called when the gesture is recognized and transitions to an active state. |
385385-| `onEnd(callback)` | Called when a recognized gesture finishes, provided it was previously active. |
386386-| `onFinalize(callback)` | Called when handling finalizes—either recognition completes or fails. |
387387-| `onTouchesDown(callback)` | Triggered every time a finger is placed on the screen. |
388388-| `onTouchesMove(callback)` | Triggered every time a finger moves on the screen. |
389389-| `onTouchesUp(callback)` | Triggered every time a finger is lifted from the screen. |
390390-| `onTouchesCancelled(callback)` | Triggered when a finger stops being tracked, such as when a gesture finishes. |
381381+|Callback|Description|
382382+|-|-|
383383+|`onBegin(callback)`|Called when the gesture handler starts receiving touches but is not yet active.|
384384+|`onStart(callback)`|Called when the gesture is recognized and transitions to an active state.|
385385+|`onEnd(callback)`|Called when a recognized gesture finishes, provided it was previously active.|
386386+|`onFinalize(callback)`|Called when handling finalizes—either recognition completes or fails.|
387387+|`onTouchesDown(callback)`|Triggered every time a finger is placed on the screen.|
388388+|`onTouchesMove(callback)`|Triggered every time a finger moves on the screen.|
389389+|`onTouchesUp(callback)`|Triggered every time a finger is lifted from the screen.|
390390+|`onTouchesCancelled(callback)`|Triggered when a finger stops being tracked, such as when a gesture finishes.|
391391392392#### Callbacks Common to All Continuous Gestures:
393393···398398399399#### Attributes Specific to `PinchGesture`:
400400401401-| Attribute | Description |
402402-| --- | --- |
403403-| `scale` | Scale factor relative to touch points in screen coordinates. |
404404-| `velocity` | Velocity of the gesture at the current moment, expressed as scale factor per second. |
405405-| `focalX` | X-axis position of the center anchor point of the gesture in points. |
406406-| `focalY` | Y-axis position of the center anchor point of the gesture in points. |
401401+|Attribute|Description|
402402+|-|-|
403403+|`scale`|Scale factor relative to touch points in screen coordinates.|
404404+|`velocity`|Velocity of the gesture at the current moment, expressed as scale factor per second.|
405405+|`focalX`|X-axis position of the center anchor point of the gesture in points.|
406406+|`focalY`|Y-axis position of the center anchor point of the gesture in points.|
407407408408#### Attributes Common to All Gestures:
409409410410-| Attribute | Description |
411411-| --- | --- |
412412-| `state` | Current state of the handler, expressed as a constant from the `State` object. |
413413-| `numberOfPointers` | Number of pointers (fingers) currently on the screen. |
414414-| `pointerType` | Type of pointer device in use, represented by the `PointerType` enum: `TOUCH`, `STYLUS`, `MOUSE`, `KEY`, or `OTHER`. |
410410+|Attribute|Description|
411411+|-|-|
412412+|`state`|Current state of the handler, expressed as a constant from the `State` object.|
413413+|`numberOfPointers`|Number of pointers (fingers) currently on the screen.|
414414+|`pointerType`|Type of pointer device in use, represented by the `PointerType` enum: `TOUCH`, `STYLUS`, `MOUSE`, `KEY`, or `OTHER`.|
415415416416## Force Touch Gesture
417417···441441442442#### Properties Specific to `ForceTouchGesture`:
443443444444-| Property | Description |
445445-| --- | --- |
446446-| `minForce(value: number)` | Minimal pressure required for activation. Range `[0.0, 1.0]`. Default is `0.2`. |
447447-| `maxForce(value: number)` | Maximal pressure before gesture fails. Range `[0.0, 1.0]`. |
448448-| `feedbackOnActivation(value: boolean)` | Defines if haptic feedback occurs on activation. |
444444+|Property|Description|
445445+|-|-|
446446+|`minForce(value: number)`|Minimal pressure required for activation. Range `[0.0, 1.0]`. Default is `0.2`.|
447447+|`maxForce(value: number)`|Maximal pressure before gesture fails. Range `[0.0, 1.0]`.|
448448+|`feedbackOnActivation(value: boolean)`|Defines if haptic feedback occurs on activation.|
449449450450#### Properties Common to All Gestures:
451451452452-| Property | Description |
453453-| --- | --- |
454454-| `enabled(value: boolean)` | Indicates whether the handler analyzes touch events. Default is `true`. |
455455-| `shouldCancelWhenOutside(value: boolean)` | Cancels recognition if finger leaves view area. Defaults vary by handler type. |
456456-| `hitSlop(settings)` | Controls gesture activation area within the view. Supports negative values for reduction. |
457457-| `withRef(ref)` | Sets a ref to the gesture object for interoperability with old API. |
458458-| `withTestId(testID)` | Sets a `testID` property for querying in tests. |
459459-| `cancelsTouchesInView(value)` (**iOS only**) | Cancels touches for native UI components when active. Default is `true`. |
460460-| `runOnJS(value: boolean)` | Runs callbacks on JS thread if true, otherwise on the UI thread. Defaults to `false`. |
461461-| `simultaneousWithExternalGesture(otherGesture1, otherGesture2, ...)` | Marks relation for simultaneous recognition with other gestures. |
462462-| `requireExternalGestureToFail(otherGesture1, otherGesture2, ...)` | Requires another gesture to fail before activation. |
463463-| `blocksExternalGesture(otherGesture1, otherGesture2, ...)` | Makes other gestures wait until this one fails or doesn't start. |
464464-| `activeCursor(value)` (**Web only**) | Specifies cursor when gesture activates. Supports CSS cursor values. Default is `"auto"`. |
452452+|Property|Description|
453453+|-|-|
454454+|`enabled(value: boolean)`|Indicates whether the handler analyzes touch events. Default is `true`.|
455455+|`shouldCancelWhenOutside(value: boolean)`|Cancels recognition if finger leaves view area. Defaults vary by handler type.|
456456+|`hitSlop(settings)`|Controls gesture activation area within the view. Supports negative values for reduction.|
457457+|`withRef(ref)`|Sets a ref to the gesture object for interoperability with old API.|
458458+|`withTestId(testID)`|Sets a `testID` property for querying in tests.|
459459+|`cancelsTouchesInView(value)` (**iOS only**)|Cancels touches for native UI components when active. Default is `true`.|
460460+|`runOnJS(value: boolean)`|Runs callbacks on JS thread if true, otherwise on the UI thread. Defaults to `false`.|
461461+|`simultaneousWithExternalGesture(otherGesture1, otherGesture2, ...)`|Marks relation for simultaneous recognition with other gestures.|
462462+|`requireExternalGestureToFail(otherGesture1, otherGesture2, ...)`|Requires another gesture to fail before activation.|
463463+|`blocksExternalGesture(otherGesture1, otherGesture2, ...)`|Makes other gestures wait until this one fails or doesn't start.|
464464+|`activeCursor(value)` (**Web only**)|Specifies cursor when gesture activates. Supports CSS cursor values. Default is `"auto"`.|
465465466466#### Properties Common to All Continuous Gestures:
467467468468-| Property | Description |
469469-| --- | --- |
470470-| `manualActivation(value: boolean)` | When true, the handler does not activate automatically; state must be manipulated manually. |
468468+|Property|Description|
469469+|-|-|
470470+|`manualActivation(value: boolean)`|When true, the handler does not activate automatically; state must be manipulated manually.|
471471472472### Callbacks
473473474474#### Callbacks Common to All Gestures:
475475476476-| Callback | Description |
477477-| --- | --- |
478478-| `onBegin(callback)` | Called when gesture handling starts receiving touches. |
479479-| `onStart(callback)` | Called when the gesture is recognized and transitions to active state. |
480480-| `onEnd(callback)` | Called when a recognized gesture finishes, if previously in active state. |
481481-| `onFinalize(callback)` | Called when gesture handling finalizes (recognized or failed). |
482482-| `onTouchesDown(callback)` | Called every time a finger is placed on the screen. |
483483-| `onTouchesMove(callback)` | Called every time a finger moves on the screen. |
484484-| `onTouchesUp(callback)` | Called every time a finger is lifted from the screen. |
485485-| `onTouchesCancelled(callback)` | Called when a finger stops being tracked, e.g., gesture finishes. |
476476+|Callback|Description|
477477+|-|-|
478478+|`onBegin(callback)`|Called when gesture handling starts receiving touches.|
479479+|`onStart(callback)`|Called when the gesture is recognized and transitions to active state.|
480480+|`onEnd(callback)`|Called when a recognized gesture finishes, if previously in active state.|
481481+|`onFinalize(callback)`|Called when gesture handling finalizes (recognized or failed).|
482482+|`onTouchesDown(callback)`|Called every time a finger is placed on the screen.|
483483+|`onTouchesMove(callback)`|Called every time a finger moves on the screen.|
484484+|`onTouchesUp(callback)`|Called every time a finger is lifted from the screen.|
485485+|`onTouchesCancelled(callback)`|Called when a finger stops being tracked, e.g., gesture finishes.|
486486487487#### Callbacks Common to All Continuous Gestures:
488488489489-| Callback | Description |
490490-| --- | --- |
491491-| `onUpdate(callback)` | Called every time the gesture receives an update while active. |
492492-| `onChange(callback)` | Called with information about changes in value relative to the last event. |
489489+|Callback|Description|
490490+|-|-|
491491+|`onUpdate(callback)`|Called every time the gesture receives an update while active.|
492492+|`onChange(callback)`|Called with information about changes in value relative to the last event.|
493493494494### Event Data
495495496496#### Attributes Specific to `ForceTouchGesture`:
497497498498-| Attribute | Description |
499499-| --------- | ------------------------ |
500500-| `force` | The pressure of a touch. |
498498+|Attribute|Description|
499499+|-|-|
500500+|`force`|The pressure of a touch.|
501501502502#### Attributes Common to All Gestures:
503503504504-| Attribute | Description |
505505-| --- | --- |
506506-| `state` | Current state of the handler, expressed as one of the constants in the `State` object. |
507507-| `numberOfPointers` | Number of pointers (fingers) currently on the screen. |
508508-| `pointerType` | Type of pointer device in use, represented by the `PointerType` enum (`TOUCH`, `STYLUS`, etc.). |
504504+|Attribute|Description|
505505+|-|-|
506506+|`state`|Current state of the handler, expressed as one of the constants in the `State` object.|
507507+|`numberOfPointers`|Number of pointers (fingers) currently on the screen.|
508508+|`pointerType`|Type of pointer device in use, represented by the `PointerType` enum (`TOUCH`, `STYLUS`, etc.).|
509509510510## Buttons
511511···1482148214831483#### Properties Specific to `FlingGesture`:
1484148414851485-| Property | Description | | |
14861486-| --- | --- | --- | --- |
14871487-| `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);\` |
14881488-| `numberOfPointers(value: number)` | Sets the exact number of pointers required for gesture recognition. | | |
14891489-| `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\`. | |
14851485+|Property|Description|||
14861486+|-|-|-|-|
14871487+|`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);\`|
14881488+|`numberOfPointers(value: number)`|Sets the exact number of pointers required for gesture recognition.|||
14891489+|`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\`.||
1490149014911491#### Properties Common to All Gestures:
1492149214931493-| Property | Description |
14941494-| --- | --- |
14951495-| `enabled(value: boolean)` | Determines if the handler analyzes touch events. Default is `true`. Disabling during recognition changes state to `FAILED` or `CANCELLED`. |
14961496-| `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`. |
14971497-| `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. |
14981498-| `withRef(ref)` | Sets a ref for interoperability with older APIs. |
14991499-| `withTestId(testID)` | Assigns a `testID` for querying in tests. |
15001500-| `cancelsTouchesInView(value)` (**iOS only**) | When `true`, cancels touches for native UI components when active. Default is `true`. |
15011501-| `runOnJS(value: boolean)` | Determines if callbacks run on the JS thread (`true`) or UI thread (`false`). Defaults to `false` with `react-native-reanimated`. |
15021502-| `simultaneousWithExternalGesture(otherGesture1, otherGesture2, ...)` | Marks gestures for simultaneous recognition without composing them. Requires separate detectors. |
15031503-| `requireExternalGestureToFail(otherGesture1, otherGesture2, ...)` | Requires another gesture to fail before activation. Does not compose gestures; requires separate detectors. |
15041504-| `blocksExternalGesture(otherGesture1, otherGesture2, ...)` | Delays other gestures until this one fails or doesn't start. Marks relations without composing; requires separate detectors. |
14931493+|Property|Description|
14941494+|-|-|
14951495+|`enabled(value: boolean)`|Determines if the handler analyzes touch events. Default is `true`. Disabling during recognition changes state to `FAILED` or `CANCELLED`.|
14961496+|`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`.|
14971497+|`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.|
14981498+|`withRef(ref)`|Sets a ref for interoperability with older APIs.|
14991499+|`withTestId(testID)`|Assigns a `testID` for querying in tests.|
15001500+|`cancelsTouchesInView(value)` (**iOS only**)|When `true`, cancels touches for native UI components when active. Default is `true`.|
15011501+|`runOnJS(value: boolean)`|Determines if callbacks run on the JS thread (`true`) or UI thread (`false`). Defaults to `false` with `react-native-reanimated`.|
15021502+|`simultaneousWithExternalGesture(otherGesture1, otherGesture2, ...)`|Marks gestures for simultaneous recognition without composing them. Requires separate detectors.|
15031503+|`requireExternalGestureToFail(otherGesture1, otherGesture2, ...)`|Requires another gesture to fail before activation. Does not compose gestures; requires separate detectors.|
15041504+|`blocksExternalGesture(otherGesture1, otherGesture2, ...)`|Delays other gestures until this one fails or doesn't start. Marks relations without composing; requires separate detectors.|
1505150515061506### Callbacks
1507150715081508#### Common to All Gestures:
1509150915101510-| Callback | Description |
15111511-| --- | --- |
15121512-| `onBegin(callback)` | Called when the gesture handler starts receiving touches but hasn't yet recognized the gesture. |
15131513-| `onStart(callback)` | Triggered when the gesture is recognized and transitions to active state. |
15141514-| `onEnd(callback)` | Invoked when a recognized gesture finishes, only if previously active. |
15151515-| `onFinalize(callback)` | Called upon finalizing gesture handling—either recognition or failure. |
15161516-| `onTouchesDown(callback)` | Executed every time a finger touches the screen. |
15171517-| `onTouchesMove(callback)` | Triggered with each finger movement on the screen. |
15181518-| `onTouchesUp(callback)` | Invoked when a finger is lifted from the screen. |
15191519-| `onTouchesCancelled(callback)` | Called when a finger stops being tracked, such as gesture completion. |
15101510+|Callback|Description|
15111511+|-|-|
15121512+|`onBegin(callback)`|Called when the gesture handler starts receiving touches but hasn't yet recognized the gesture.|
15131513+|`onStart(callback)`|Triggered when the gesture is recognized and transitions to active state.|
15141514+|`onEnd(callback)`|Invoked when a recognized gesture finishes, only if previously active.|
15151515+|`onFinalize(callback)`|Called upon finalizing gesture handling—either recognition or failure.|
15161516+|`onTouchesDown(callback)`|Executed every time a finger touches the screen.|
15171517+|`onTouchesMove(callback)`|Triggered with each finger movement on the screen.|
15181518+|`onTouchesUp(callback)`|Invoked when a finger is lifted from the screen.|
15191519+|`onTouchesCancelled(callback)`|Called when a finger stops being tracked, such as gesture completion.|
1520152015211521### Event Data
1522152215231523#### Specific to `FlingGesture`:
1524152415251525-| Attribute | Description |
15261526-| --- | --- |
15271527-| `x` | X coordinate of the pointer relative to the attached view (in points). |
15281528-| `y` | Y coordinate of the pointer relative to the attached view (in points). |
15291529-| `absoluteX` | X coordinate of the pointer relative to the window, recommended for transformed views. |
15301530-| `absoluteY` | Y coordinate of the pointer relative to the window, recommended for transformed views. |
15251525+|Attribute|Description|
15261526+|-|-|
15271527+|`x`|X coordinate of the pointer relative to the attached view (in points).|
15281528+|`y`|Y coordinate of the pointer relative to the attached view (in points).|
15291529+|`absoluteX`|X coordinate of the pointer relative to the window, recommended for transformed views.|
15301530+|`absoluteY`|Y coordinate of the pointer relative to the window, recommended for transformed views.|
1531153115321532#### Common to All Gestures:
1533153315341534-| Attribute | Description |
15351535-| --- | --- |
15361536-| `state` | Current handler state, expressed as constants from the `State` object. |
15371537-| `numberOfPointers` | Number of pointers currently on the screen. |
15381538-| `pointerType` | Type of pointer device, using `PointerType`: `TOUCH`, `STYLUS`, `MOUSE`, `KEY`, `OTHER`. |
15341534+|Attribute|Description|
15351535+|-|-|
15361536+|`state`|Current handler state, expressed as constants from the `State` object.|
15371537+|`numberOfPointers`|Number of pointers currently on the screen.|
15381538+|`pointerType`|Type of pointer device, using `PointerType`: `TOUCH`, `STYLUS`, `MOUSE`, `KEY`, `OTHER`.|
1539153915401540## Common Handler Properties
15411541···3092309230933093- **Description:** Represents the number of pointers (fingers) currently on the screen.
3094309430953095-````markdown
30963096-# Gestures (Version: 2.x)
30953095+## Gestures (Version: 2.x)
3097309630983098-## GestureDetector
30973097+### GestureDetector
3099309831003099The `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.
3101310031023102-## Gesture
31013101+### Gesture
3103310231043103A `Gesture` object facilitates the creation and combination of various gestures, enabling more complex interactions.
3105310431063106-## Pan Gesture
31053105+### Pan Gesture
3107310631083107```typescript
31093108<InteractiveExample />
31103109```
31113111-````
3112311031133111### Tap Gesture
31143112···3170316831713169The `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.
3172317031733173-````
31713171+## Touch Events
3174317231753175-# Touch Events
31763176-31773177-## Touch Event Attributes
31733173+### Touch Event Attributes
3178317431793175- **eventType**: Indicates the type of event, such as finger placement on the screen, movement, lifting, or cancellation.
31803176···3186318231873183> **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.
3188318431893189-## PointerData Attributes
31853185+### PointerData Attributes
3190318631913187- **id**: A unique number representing the touch's ID, used for tracking the touch between events since the ID remains constant while being tracked.
31923188···3198319431993195- **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.
3200319632013201-# Gesture State Manager
31973197+## Gesture State Manager
3202319832033199The `GestureStateManager` provides manual control over gesture states, requiring `react-native-reanimated` for synchronous execution of methods within worklets.
3204320032053205-## Methods Overview
32013201+### Methods Overview
3206320232073207-### `begin()`
32033203+#### `begin()`
3208320432093205- **Purpose**: Transition the gesture to the `BEGAN` state.
32103206- **Effectiveness**: Ineffective if the gesture is already active or has finished.
3211320732123212-### `activate()`
32083208+#### `activate()`
3213320932143210- **Purpose**: Transition the gesture to the `ACTIVE` state.
32153211- **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.
3216321232173217-### `end()`
32133213+#### `end()`
3218321432193215- **Purpose**: Transition the gesture to the `END` state.
32203216- **Effectiveness**: Ineffective if the handler has already completed its process.
3221321732223222-### `fail()`
32183218+#### `fail()`
3223321932243220- **Purpose**: Transition the gesture to the `FAILED` state.
32253221- **Effectiveness**: Ineffective if the handler has already finished.
3226322232273227-# Touch Events
32233223+## Touch Events
3228322432293229-## Touch Event Attributes
32253225+### Touch Event Attributes
3230322632313227- **eventType**: Indicates the type of event, such as finger placement on the screen, movement, lifting, or cancellation.
32323228···3238323432393235> **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.
3240323632413241-## PointerData Attributes
32373237+### PointerData Attributes
3242323832433239- **id**: A unique number representing the touch's ID, used for tracking the touch between events since the ID remains constant while being tracked.
32443240···3250324632513247- **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.
3252324832533253-# Gesture State Manager
32493249+## Gesture State Manager
3254325032553251The `GestureStateManager` provides manual control over gesture states, requiring `react-native-reanimated` for synchronous execution of methods within worklets.
3256325232573257-## Methods Overview
32533253+### Methods Overview
3258325432593259-### `begin()`
32553255+#### `begin()`
3260325632613257- **Purpose**: Transition the gesture to the `BEGAN` state.
32623258- **Effectiveness**: Ineffective if the gesture is already active or has finished.
3263325932643264-### `activate()`
32603260+#### `activate()`
3265326132663262- **Purpose**: Transition the gesture to the `ACTIVE` state.
32673263- **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.
3268326432693269-### `end()`
32653265+#### `end()`
3270326632713267- **Purpose**: Transition the gesture to the `END` state.
32723268- **Effectiveness**: Ineffective if the handler has already completed its process.
3273326932743274-### `fail()`
32703270+#### `fail()`
3275327132763272- **Purpose**: Transition the gesture to the `FAILED` state.
32773273- **Effectiveness**: Ineffective if the handler has already finished.
3278327432793279-# GestureDetector
32753275+## GestureDetector
3280327632813277The `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.
3282327832833283-## Reference
32793279+### Reference
3284328032853281```typescript
32863282import { Gesture, GestureDetector } from 'react-native-gesture-handler';
···32933289 </GestureDetector>
32943290 );
32953291}
32963296-````
32923292+```
3297329332983294### Properties
32993295···3807380338083804### Properties
3809380538103810-| Property | Description |
38113811-| --- | --- |
38123812-| `children` | Accepts either children or a render function that receives a boolean indicating if the component is currently pressed. |
38133813-| `style` | Can be view styles or a function receiving a boolean reflecting the press state and returning view styles. |
38143814-| `onPress` | Triggered after `onPressOut` when a single tap gesture is detected. |
38153815-| `onPressIn` | Called before `onPress` when a touch is engaged. |
38163816-| `onPressOut` | Called before `onPress` when a touch is released. |
38173817-| `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. |
38183818-| `cancelable` | Determines if a press gesture can be interrupted by a parent gesture like scrolling. Defaults to `true`. |
38193819-| `onHoverIn` (Web only) | Called when the pointer hovers over the element. |
38203820-| `onHoverOut` (Web only) | Triggered when the pointer stops hovering over the element. |
38213821-| `delayHoverIn` (Web only) | Duration to wait after hover in before calling `onHoverIn`. |
38223822-| `delayHoverOut` (Web only) | Duration to wait after hover out before calling `onHoverOut`. |
38233823-| `delayLongPress` | Time in milliseconds from `onPressIn` before `onLongPress` is called. |
38243824-| `disabled` | Disables the `Pressable` behavior if set to true. |
38253825-| `hitSlop` (Android & iOS only) | Additional distance outside of the view where a press is detected and `onPressIn` is triggered. Accepts `number` or `Rect`. |
38263826-| `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`. |
38273827-| `android_disableSound` (Android only) | If true, prevents system sound on touch. |
38283828-| `android_ripple` (Android only) | Enables the Android ripple effect and configures its color, radius, etc. Accepts `RippleConfig`. |
38293829-| `testOnly_pressed` | Used for documentation or testing purposes (e.g., snapshot testing). |
38303830-| `unstable_pressDelay` | Duration in milliseconds to wait after press down before calling `onPressIn`. |
38063806+|Property|Description|
38073807+|-|-|
38083808+|`children`|Accepts either children or a render function that receives a boolean indicating if the component is currently pressed.|
38093809+|`style`|Can be view styles or a function receiving a boolean reflecting the press state and returning view styles.|
38103810+|`onPress`|Triggered after `onPressOut` when a single tap gesture is detected.|
38113811+|`onPressIn`|Called before `onPress` when a touch is engaged.|
38123812+|`onPressOut`|Called before `onPress` when a touch is released.|
38133813+|`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.|
38143814+|`cancelable`|Determines if a press gesture can be interrupted by a parent gesture like scrolling. Defaults to `true`.|
38153815+|`onHoverIn` (Web only)|Called when the pointer hovers over the element.|
38163816+|`onHoverOut` (Web only)|Triggered when the pointer stops hovering over the element.|
38173817+|`delayHoverIn` (Web only)|Duration to wait after hover in before calling `onHoverIn`.|
38183818+|`delayHoverOut` (Web only)|Duration to wait after hover out before calling `onHoverOut`.|
38193819+|`delayLongPress`|Time in milliseconds from `onPressIn` before `onLongPress` is called.|
38203820+|`disabled`|Disables the `Pressable` behavior if set to true.|
38213821+|`hitSlop` (Android & iOS only)|Additional distance outside of the view where a press is detected and `onPressIn` is triggered. Accepts `number` or `Rect`.|
38223822+|`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`.|
38233823+|`android_disableSound` (Android only)|If true, prevents system sound on touch.|
38243824+|`android_ripple` (Android only)|Enables the Android ripple effect and configures its color, radius, etc. Accepts `RippleConfig`.|
38253825+|`testOnly_pressed`|Used for documentation or testing purposes (e.g., snapshot testing).|
38263826+|`unstable_pressDelay`|Duration in milliseconds to wait after press down before calling `onPressIn`.|
3831382738323828### Example
38333829···42234219- **`BACK`**: Drawer appears below the content view, revealed by sliding away the content view.
42244220- **`SLIDE`**: Drawer slides with the content view.
4225422142264226-| `FRONT` | `BACK` | `SLIDE` |
42274227-| ------- | ------ | ------- |
42224222+|`FRONT`|`BACK`|`SLIDE`|
42234223+|-|-|-|
4228422442294225#### `edgeWidth`
42304226···4683467946844680### Properties
4685468146864686-| Property | Description |
46874687-| --- | --- |
46884688-| `friction` | A number specifying the delay in visual interaction relative to gesture distance. E.g., `1` means no delay, `2` doubles it. |
46894689-| `leftThreshold` | Distance from the left edge for panel animation to open or close state. Defaults to half of the panel's width. |
46904690-| `rightThreshold` | Distance from the right edge for panel animation to open or close state. Defaults to half of the panel's width. |
46914691-| `dragOffsetFromLeftEdge` | Minimum drag distance from the left edge to consider a swipe (default: 10). |
46924692-| `dragOffsetFromRightEdge` | Minimum drag distance from the right edge to consider a swipe (default: 10). |
46934693-| `overshootLeft` | Boolean indicating if swiping beyond the left action panel's width is allowed. Defaults to `true` if `renderLeftActions` is provided. |
46944694-| `overshootRight` | Boolean indicating if swiping beyond the right action panel's width is allowed. Defaults to `true` if `renderRightActions` is provided. |
46954695-| `overshootFriction` | Number specifying delay in visual interaction at overshoot (default: 1). For a native feel, try `8` or above. |
46824682+|Property|Description|
46834683+|-|-|
46844684+|`friction`|A number specifying the delay in visual interaction relative to gesture distance. E.g., `1` means no delay, `2` doubles it.|
46854685+|`leftThreshold`|Distance from the left edge for panel animation to open or close state. Defaults to half of the panel's width.|
46864686+|`rightThreshold`|Distance from the right edge for panel animation to open or close state. Defaults to half of the panel's width.|
46874687+|`dragOffsetFromLeftEdge`|Minimum drag distance from the left edge to consider a swipe (default: 10).|
46884688+|`dragOffsetFromRightEdge`|Minimum drag distance from the right edge to consider a swipe (default: 10).|
46894689+|`overshootLeft`|Boolean indicating if swiping beyond the left action panel's width is allowed. Defaults to `true` if `renderLeftActions` is provided.|
46904690+|`overshootRight`|Boolean indicating if swiping beyond the right action panel's width is allowed. Defaults to `true` if `renderRightActions` is provided.|
46914691+|`overshootFriction`|Number specifying delay in visual interaction at overshoot (default: 1). For a native feel, try `8` or above.|
4696469246974693### Callbacks
46984694···4829482548304826### Properties
4831482748324832-| Property | Description |
48334833-| --- | --- |
48344834-| `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". |
48354835-| `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. |
48364836-| `rightThreshold` | Distance from the right edge for similar behavior as `leftThreshold`. Default is also half of the panel's width. |
48374837-| `dragOffsetFromLeftEdge` | Minimum distance that must be dragged from the left edge to consider it a swipe. Default value: `10`. |
48384838-| `dragOffsetFromRightEdge` | Similar to `dragOffsetFromLeftEdge`, but for the right edge. Default value: `10`. |
48394839-| `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. |
48404840-| `overshootRight` | Similar to `overshootLeft`, but for the right side. Defaults to `true` if a right panel render method is present. |
48414841-| `overshootFriction` | Number specifying visual interaction delay at overshoot. Default value: `1`. For a native feel, try `8` or above. |
48284828+|Property|Description|
48294829+|-|-|
48304830+|`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".|
48314831+|`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.|
48324832+|`rightThreshold`|Distance from the right edge for similar behavior as `leftThreshold`. Default is also half of the panel's width.|
48334833+|`dragOffsetFromLeftEdge`|Minimum distance that must be dragged from the left edge to consider it a swipe. Default value: `10`.|
48344834+|`dragOffsetFromRightEdge`|Similar to `dragOffsetFromLeftEdge`, but for the right edge. Default value: `10`.|
48354835+|`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.|
48364836+|`overshootRight`|Similar to `overshootLeft`, but for the right side. Defaults to `true` if a right panel render method is present.|
48374837+|`overshootFriction`|Number specifying visual interaction delay at overshoot. Default value: `1`. For a native feel, try `8` or above.|
4842483848434839**Deprecated Callbacks:**
4844484048454841- `onSwipeableLeftOpen`: Deprecated; use `onSwipeableOpen(direction)`.
48464842- `onSwipeableRightOpen`: Deprecated; use `onSwipeableOpen(direction)`.
4847484348484848-| Property | Description |
48494849-| --- | --- |
48504850-| `onSwipeableOpen` | Called when an action panel gets open (either right or left). Takes swipe direction as an argument. |
48514851-| `onSwipeableClose` | Called when the action panel is closed, with swipe direction as an argument. |
48524852-| `onSwipeableWillOpen` | Called when an action panel starts animating on open (either right or left), taking swipe direction as an argument. |
48534853-| `onSwipeableWillClose` | Called when an action panel starts animating on close, with swipe direction as an argument. |
48444844+|Property|Description|
48454845+|-|-|
48464846+|`onSwipeableOpen`|Called when an action panel gets open (either right or left). Takes swipe direction as an argument.|
48474847+|`onSwipeableClose`|Called when the action panel is closed, with swipe direction as an argument.|
48484848+|`onSwipeableWillOpen`|Called when an action panel starts animating on open (either right or left), taking swipe direction as an argument.|
48494849+|`onSwipeableWillClose`|Called when an action panel starts animating on close, with swipe direction as an argument.|
4854485048554851**Rendering Methods:**
48564852···4888488448894885Using a reference to `Swipeable`, you can trigger actions:
4890488648914891-| Method | Description |
48924892-| ----------- | ------------------------------------------------------- |
48934893-| `close` | Closes the component with animation. |
48944894-| `openLeft` | Opens the component on the left side. |
48954895-| `openRight` | Opens the component on the right side. |
48964896-| `reset` | Resets swiping states without triggering any animation. |
48874887+|Method|Description|
48884888+|-|-|
48894889+|`close`|Closes the component with animation.|
48904890+|`openLeft`|Opens the component on the left side.|
48914891+|`openRight`|Opens the component on the right side.|
48924892+|`reset`|Resets swiping states without triggering any animation.|
4897489348984894### Example
48994895
+307-307
out/llms-full-react-native-reanimated.txt
···217217218218### Platform Compatibility
219219220220-| Android | iOS | Web |
221221-| ------- | --- | --- |
222222-| ✅ | ✅ | ✅ |
220220+|Android|iOS|Web|
221221+|-|-|-|
222222+|✅|✅|✅|
223223224224## useAnimatedScrollHandler
225225···281281282282### Platform Compatibility
283283284284-| Android | iOS | Web |
285285-| ------- | --- | --- |
286286-| ✅ | ✅ | ✅ |
284284+|Android|iOS|Web|
285285+|-|-|-|
286286+|✅|✅|✅|
287287288288## useEvent Hook Overview
289289···338338339339### Platform Compatibility
340340341341-| Android | iOS | Web |
342342-| ------- | --- | --- |
343343-| ✅ | ✅ | ✅ |
341341+|Android|iOS|Web|
342342+|-|-|-|
343343+|✅|✅|✅|
344344345345This overview provides a concise guide to using the `useEvent` hook effectively within React Native Reanimated projects.
346346···406406407407### Platform Compatibility
408408409409-| Android | iOS | Web |
410410-| ------- | --- | --- |
411411-| ✅ | ✅ | ✅ |
409409+|Android|iOS|Web|
410410+|-|-|-|
411411+|✅|✅|✅|
412412413413This documentation provides a comprehensive overview of how to utilize the `useHandler` hook within React Native Reanimated for creating custom event handlers.
414414···480480481481### Platform Compatibility
482482483483-| Android | iOS | Web |
484484-| ------- | --- | --- |
485485-| ✅ | ✅ | ✅ |
483483+|Android|iOS|Web|
484484+|-|-|-|
485485+|✅|✅|✅|
486486487487## Troubleshooting
488488···904904905905### Platform Compatibility
906906907907-| Android | iOS | Web |
908908-| ------- | --- | --- |
909909-| ✅ | ✅ | ❌ |
907907+|Android|iOS|Web|
908908+|-|-|-|
909909+|✅|✅|❌|
910910911911## useAnimatedScrollHandler
912912···968968969969### Platform Compatibility
970970971971-| Android | iOS | Web |
972972-| ------- | --- | --- |
973973-| ✅ | ✅ | ✅ |
971971+|Android|iOS|Web|
972972+|-|-|-|
973973+|✅|✅|✅|
974974975975## scrollTo Function in React Native Reanimated
976976···1018101810191019### Platform Compatibility
1020102010211021-| Android | iOS | Web |
10221022-| ------- | --- | --- |
10231023-| ✅ | ✅ | ✅ |
10211021+|Android|iOS|Web|
10221022+|-|-|-|
10231023+|✅|✅|✅|
1024102410251025## getRelativeCoords Functionality
10261026···1071107110721072### Platform Compatibility
1073107310741074-| Android | iOS | Web |
10751075-| ------- | --- | --- |
10761076-| ✅ | ✅ | ✅ |
10741074+|Android|iOS|Web|
10751075+|-|-|-|
10761076+|✅|✅|✅|
1077107710781078## useAnimatedGestureHandler
10791079···1132113211331133### Platform Compatibility
1134113411351135-| Android | iOS | Web |
11361136-| ------- | --- | --- |
11371137-| ✅ | ✅ | ⚠️ |
11351135+|Android|iOS|Web|
11361136+|-|-|-|
11371137+|✅|✅|⚠️|
1138113811391139- On the Web, it is necessary to pass the returned handler object to both `onGestureEvent` and `onHandlerStateChange` parameters.
11401140···1183118311841184### Platform Compatibility
1185118511861186-| Android | iOS | Web |
11871187-| ------- | --- | --- |
11881188-| ✅ | ✅ | ✅ |
11861186+|Android|iOS|Web|
11871187+|-|-|-|
11881188+|✅|✅|✅|
1189118911901190```markdown
11911191# Advanced APIs - Version 3.x
···1417141714181418### Platform Compatibility
1419141914201420-| Android | iOS | Web |
14211421-| ------- | --- | --- |
14221422-| ✅ | ✅ | ✅ |
14201420+|Android|iOS|Web|
14211421+|-|-|-|
14221422+|✅|✅|✅|
1423142314241424## Measure Functionality in React Native Reanimated
14251425···1455145514561456The `measure` function returns an object containing:
1457145714581458-| Field | Description |
14591459-| --- | --- |
14601460-| `x` | A number representing the X coordinate relative to the parent component. |
14611461-| `y` | A number representing the Y coordinate relative to the parent component. |
14621462-| `width` | A number representing the width of the component. |
14631463-| `height` | A number representing the height of the component. |
14641464-| `pageX` | A number representing the X coordinate relative to the screen. |
14651465-| `pageY` | A number representing the Y coordinate relative to the screen. |
14581458+|Field|Description|
14591459+|-|-|
14601460+|`x`|A number representing the X coordinate relative to the parent component.|
14611461+|`y`|A number representing the Y coordinate relative to the parent component.|
14621462+|`width`|A number representing the width of the component.|
14631463+|`height`|A number representing the height of the component.|
14641464+|`pageX`|A number representing the X coordinate relative to the screen.|
14651465+|`pageY`|A number representing the Y coordinate relative to the screen.|
1466146614671467Alternatively, it returns `null` if the measurement could not be performed.
14681468···1510151015111511### Platform Compatibility
1512151215131513-| Android | iOS | Web |
15141514-| ------- | --- | --- |
15151515-| ✅ | ✅ | ✅ |
15131513+|Android|iOS|Web|
15141514+|-|-|-|
15151515+|✅|✅|✅|
1516151615171517## useAnimatedReaction
15181518···1601160116021602### Platform Compatibility
1603160316041604-| Android | iOS | Web |
16051605-| ------- | --- | --- |
16061606-| ✅ | ✅ | ✅ |
16041604+|Android|iOS|Web|
16051605+|-|-|-|
16061606+|✅|✅|✅|
1607160716081608````markdown
16091609# withSequence
···1640164016411641### Platform Compatibility
1642164216431643-| Android | iOS | Web |
16441644-| ------- | --- | --- |
16451645-| ✅ | ✅ | ✅ |
16431643+|Android|iOS|Web|
16441644+|-|-|-|
16451645+|✅|✅|✅|
1646164616471647````
16481648···1700170017011701### Platform Compatibility
1702170217031703-| Android | iOS | Web |
17041704-| ------- | --- | --- |
17051705-| ✅ | ✅ | ✅ |
17031703+|Android|iOS|Web|
17041704+|-|-|-|
17051705+|✅|✅|✅|
1706170617071707- Reference
17081708 - Arguments
···1909190919101910- **`delayedAnimation`**: The animation that will be delayed.
1911191119121912-- **`reduceMotion`** _(Optional)_: Determines how the animation responds to the device's reduced motion accessibility setting.
19121912+- **`reduceMotion`** *(Optional)*: Determines how the animation responds to the device's reduced motion accessibility setting.
1913191319141914#### Returns
19151915···1917191719181918### Example
1919191919201920-_(Example content would go here)_
19201920+*(Example content would go here)*
1921192119221922### Platform Compatibility
1923192319241924-| Android | iOS | Web |
19251925-| ------- | --- | --- |
19261926-| ✅ | ✅ | ✅ |
19241924+|Android|iOS|Web|
19251925+|-|-|-|
19261926+|✅|✅|✅|
1927192719281928----
19281928+***
1929192919301930## useAnimatedKeyboard in React Native Reanimated (Version: 3.x)
19311931···1963196319641964The `useAnimatedKeyboard` hook returns an object with the following fields:
1965196519661966-| Name | Type | Description |
19671967-| --- | --- | --- |
19681968-| height | `SharedValue<number>` | A shared value representing the current height of the keyboard. |
19691969-| state | `SharedValue<KeyboardState>` | A shared value indicating the current state of the keyboard. Possible states: `{ CLOSED, OPEN, CLOSING, OPENING }` |
19661966+|Name|Type|Description|
19671967+|-|-|-|
19681968+|height|`SharedValue<number>`|A shared value representing the current height of the keyboard.|
19691969+|state|`SharedValue<KeyboardState>`|A shared value indicating the current state of the keyboard. Possible states: `{ CLOSED, OPEN, CLOSING, OPENING }`|
1970197019711971### Remarks
19721972···1990199019911991### Platform Compatibility
1992199219931993-| Android | iOS | Web |
19941994-| ------- | --- | --- |
19951995-| ✅ | ✅ | ❌ |
19931993+|Android|iOS|Web|
19941994+|-|-|-|
19951995+|✅|✅|❌|
1996199619971997- **Reference**
19981998···2060206020612061### Platform Compatibility
2062206220632063-| Android | iOS | Web |
20642064-| ------- | --- | --- |
20652065-| ✅ | ✅ | ✅ |
20632063+|Android|iOS|Web|
20642064+|-|-|-|
20652065+|✅|✅|✅|
2066206620672067## dispatchCommand
20682068···2114211421152115### Platform Compatibility
2116211621172117-| Android | iOS | Web |
21182118-| ------- | --- | --- |
21192119-| ✅ | ✅ | ❌ |
21172117+|Android|iOS|Web|
21182118+|-|-|-|
21192119+|✅|✅|❌|
2120212021212121## withClamp
21222122···2139213921402140An object containing the following properties:
2141214121422142-| Name | Type | Description |
21432143-| ---- | ------ | ----------------------------------------------------- |
21442144-| min | number | Optional. The lowest value your animation can reach. |
21452145-| max | number | Optional. The highest value your animation can reach. |
21422142+|Name|Type|Description|
21432143+|-|-|-|
21442144+|min|number|Optional. The lowest value your animation can reach.|
21452145+|max|number|Optional. The highest value your animation can reach.|
2146214621472147##### `animation`
21482148···2160216021612161`withClamp` returns an animation object. This can be directly assigned to a shared value or used as a style value in `useAnimatedStyle`.
2162216221632163-| Platform | Supported |
21642164-| -------- | --------- |
21652165-| Android | ✅ |
21662166-| iOS | ✅ |
21672167-| Web | ✅ |
21632163+|Platform|Supported|
21642164+|-|-|
21652165+|Android|✅|
21662166+|iOS|✅|
21672167+|Web|✅|
2168216821692169## useAnimatedSensor
21702170···2206220622072207##### `config` (Optional)
2208220822092209-| Name | Type | Default | Description |
22102210-| --- | --- | --- | --- |
22112211-| interval | `number \| "auto"` | `"auto"` | Time between sensor readings in milliseconds. `"auto"` matches the device's screen refresh rate. |
22122212-| adjustToInterfaceOrientation | `boolean` | `true` | Adjusts measurements to the current interface orientation. |
22132213-| iosReferenceFrame | `IOSReferenceFrame` | `IOSReferenceFrame.Auto` | Frame of reference for iOS sensors. |
22092209+|Name|Type|Default|Description|
22102210+|-|-|-|-|
22112211+|interval|`number \| "auto"`|`"auto"`|Time between sensor readings in milliseconds. `"auto"` matches the device's screen refresh rate.|
22122212+|adjustToInterfaceOrientation|`boolean`|`true`|Adjusts measurements to the current interface orientation.|
22132213+|iosReferenceFrame|`IOSReferenceFrame`|`IOSReferenceFrame.Auto`|Frame of reference for iOS sensors.|
2214221422152215Available `IOSReferenceFrame` options:
22162216···2224222422252225`useAnimatedSensor` returns an object:
2226222622272227-| Name | Type | Description |
22282228-| --- | --- | --- |
22292229-| sensor | `SharedValue<Value3D \| ValueRotation>` | Shared value with sensor measurements. |
22302230-| unregister | `() => void` | Stops listening to sensor updates when called. |
22312231-| isAvailable | `boolean` | Indicates if the sensor is available for use. |
22322232-| config | `SensorConfig` | Contains sensor configuration details. |
22272227+|Name|Type|Description|
22282228+|-|-|-|
22292229+|sensor|`SharedValue<Value3D \| ValueRotation>`|Shared value with sensor measurements.|
22302230+|unregister|`() => void`|Stops listening to sensor updates when called.|
22312231+|isAvailable|`boolean`|Indicates if the sensor is available for use.|
22322232+|config|`SensorConfig`|Contains sensor configuration details.|
2233223322342234The shared value from the **rotation sensor** includes:
22352235···2278227822792279### Platform Compatibility
2280228022812281-| Android | iOS | Web |
22822282-| ------- | --- | --- |
22832283-| ✅ | ✅ | ✅ |
22812281+|Android|iOS|Web|
22822282+|-|-|-|
22832283+|✅|✅|✅|
2284228422852285## setNativeProps
22862286···2325232523262326### Platform Compatibility
2327232723282328-| Android | iOS | Web |
23292329-| ------- | --- | --- |
23302330-| ✅ | ✅ | ✅ |
23282328+|Android|iOS|Web|
23292329+|-|-|-|
23302330+|✅|✅|✅|
2331233123322332----
23322332+***
2333233323342334## React Native Reanimated: useReducedMotion Hook (Version 3.x)
23352335···2382238223832383### Platform Compatibility
2384238423852385-| Android | iOS | Web |
23862386-| ------- | --- | --- |
23872387-| ✅ | ✅ | ✅ |
23852385+|Android|iOS|Web|
23862386+|-|-|-|
23872387+|✅|✅|✅|
2388238823892389This hook is compatible across Android, iOS, and Web platforms.
23902390···2418241824192419### Remarks
2420242024212421-**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.
24212421+**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.
2422242224232423- All remarks applicable to the `useSharedValue` hook are relevant to `makeMutable`.
24242424- Avoid invoking `makeMutable` directly within component scope. Component re-renders will generate a new object, potentially resetting the initial value and losing previous state.
···2477247724782478#### Comparison with `useSharedValue`
2479247924802480-| Feature | `makeMutable` | `useSharedValue` |
24812481-| --- | --- | --- |
24822482-| Object Creation | Creates a new object on each call | Reuses the same object on each call |
24832483-| Initial Value Change | A new object is created if `initial` changes | The initially created object remains unchanged if `initialValue` changes |
24842484-| Scope Usage | Can be used outside of component scope | Limited to use within component scope |
24852485-| Loop Usage | Usable in loops with variable iterations | Usable in loops only if the number of hooks (`useSharedValue` calls) is constant |
24862486-| Animation Cancellation | Does not automatically cancel animations on unmount | Automatically cancels animations when the component unmounts |
24802480+|Feature|`makeMutable`|`useSharedValue`|
24812481+|-|-|-|
24822482+|Object Creation|Creates a new object on each call|Reuses the same object on each call|
24832483+|Initial Value Change|A new object is created if `initial` changes|The initially created object remains unchanged if `initialValue` changes|
24842484+|Scope Usage|Can be used outside of component scope|Limited to use within component scope|
24852485+|Loop Usage|Usable in loops with variable iterations|Usable in loops only if the number of hooks (`useSharedValue` calls) is constant|
24862486+|Animation Cancellation|Does not automatically cancel animations on unmount|Automatically cancels animations when the component unmounts|
2487248724882488### Platform Compatibility
2489248924902490-| Android | iOS | Web |
24912491-| ------- | --- | --- |
24922492-| ✅ | ✅ | ✅ |
24902490+|Android|iOS|Web|
24912491+|-|-|-|
24922492+|✅|✅|✅|
2493249324942494## Accurate Call Stacks
24952495···25022502}
25032503```
2504250425052505-| Aspect | Description |
25062506-| --- | --- |
25072507-| **Issue** | Misleading call stacks in error or warning messages. |
25082508-| **Cause** | Call stacks often highlight Reanimated's internal code rather than API misuse. |
25092509-| **Impact** | Difficulty in identifying the true source of problems during debugging. |
25052505+|Aspect|Description|
25062506+|-|-|
25072507+|**Issue**|Misleading call stacks in error or warning messages.|
25082508+|**Cause**|Call stacks often highlight Reanimated's internal code rather than API misuse.|
25092509+|**Impact**|Difficulty in identifying the true source of problems during debugging.|
2510251025112511Understanding this behavior is crucial for effectively diagnosing and resolving issues within Reanimated projects.
25122512···2700270027012701### Platform Compatibility
2702270227032703-| Android | iOS | Web |
27042704-| ------- | --- | --- |
27052705-| ✅ | ✅ | ✅ |
27032703+|Android|iOS|Web|
27042704+|-|-|-|
27052705+|✅|✅|✅|
2706270627072707- Reference
27082708 - Arguments
···2734273427352735The 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.
2736273627372737-| Before | After |
27382738-| ------ | ----- |
27392739-| | |
27372737+|Before|After|
27382738+|-|-|
27392739+|||
2740274027412741### Remarks
2742274227432743- `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**.
2744274427452745-| Collapsed | Expanded |
27462746-| --------- | -------- |
27472747-| | |
27452745+|Collapsed|Expanded|
27462746+|-|-|
27472747+|||
2748274827492749- 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.
27502750···2787278727882788### Platform Compatibility
2789278927902790-| Android | iOS | Web |
27912791-| ------- | --- | --- |
27922792-| ✅ | ✅ | ✅ |
27902790+|Android|iOS|Web|
27912791+|-|-|-|
27922792+|✅|✅|✅|
2793279327942794```markdown
27952795# Guides
···33153315- **Expo SDK**: Match major and minor versions with Expo SDK.
33163316 - Example: Expo SDK 52 supports `~3.16.x`. Update to the latest patch, e.g., `3.16.7`.
3317331733183318-| Expo SDK Version | Reanimated Version |
33193319-| ---------------- | ------------------ |
33203320-| `52` | `~3.16.1` |
33213321-| `51` | `~3.10.1` |
33223322-| `50` | `~3.6.2` |
33183318+|Expo SDK Version|Reanimated Version|
33193319+|-|-|
33203320+|`52`|`~3.16.1`|
33213321+|`51`|`~3.10.1`|
33223322+|`50`|`~3.6.2`|
3323332333243324- **Expo Prebuild or React Native without Framework**: Use a version compatible with your React Native version according to the Compatibility table.
33253325···3370337033713371### Currently Supported React Native Versions (Paper)
3372337233733373-| 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 |
33743374-| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
33753375-| 3.18.0 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | yes | yes |
33763376-| 3.17.4 - 3.17.5 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | yes | no |
33773377-| 3.17.1 – 3.17.3 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | no | no |
33783378-| 3.17.0 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | no | no | no |
33793379-| 3.16.7 | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | no | no | no |
33803380-| 3.16.0 – 3.16.6 | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | no | no | no | no |
33813381-| 3.15.x | no | no | no | no | no | no | no | no | no | no | no | yes | yes | no | no | no | no | no |
33823382-| 3.9.x – 3.14.x | no | no | no | no | no | no | no | no | no | no | no | yes | no | no | no | no | no | no |
33833383-| 3.6.x – 3.8.x | no | no | no | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no |
33843384-| 3.5.x | no | no | no | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no |
33853385-| 3.3.x – 3.4.x | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no |
33863386-| 3.0.x – 3.2.x | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no |
33873387-| 2.14.x – 2.17.x | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no |
33883388-| 2.11.x – 2.13.x | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no |
33893389-| 2.10.x | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no | no |
33903390-| 2.5.x – 2.9.x | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no | no | no |
33913391-| 2.3.x – 2.4.x | yes | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no | no | no | no |
33733373+|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|
33743374+|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
33753375+|3.18.0|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|yes|yes|
33763376+|3.17.4 - 3.17.5|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|yes|no|
33773377+|3.17.1 – 3.17.3|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|no|no|
33783378+|3.17.0|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|no|no|no|
33793379+|3.16.7|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|no|no|no|
33803380+|3.16.0 – 3.16.6|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|no|no|no|no|
33813381+|3.15.x|no|no|no|no|no|no|no|no|no|no|no|yes|yes|no|no|no|no|no|
33823382+|3.9.x – 3.14.x|no|no|no|no|no|no|no|no|no|no|no|yes|no|no|no|no|no|no|
33833383+|3.6.x – 3.8.x|no|no|no|yes|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|
33843384+|3.5.x|no|no|no|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|
33853385+|3.3.x – 3.4.x|yes|yes|yes|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|
33863386+|3.0.x – 3.2.x|yes|yes|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|no|
33873387+|2.14.x – 2.17.x|yes|yes|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|no|
33883388+|2.11.x – 2.13.x|yes|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|no|no|
33893389+|2.10.x|yes|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|no|no|no|
33903390+|2.5.x – 2.9.x|yes|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|no|no|no|no|
33913391+|2.3.x – 2.4.x|yes|yes|yes|yes|yes|no|no|no|no|no|no|no|no|no|no|no|no|no|
3392339233933393**Note:** Reanimated 2 will not receive support for the newest React Native versions. To access the latest features and updates, upgrade to Reanimated 3.
33943394···3398339833993399Reanimated supports bridgeless mode.
3400340034013401-| 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 |
34023402-| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
34033403-| 3.18.0 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | yes | yes |
34043404-| 3.17.4 - 3.17.5 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | yes | no |
34053405-| 3.17.1 – 3.17.3 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | no | no |
34063406-| 3.17.0 | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | no | no | no |
34073407-| 3.16.7 | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes | no | no | no |
34083408-| 3.16.0 – 3.16.6 | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | no | no | no | no |
34093409-| 3.15.x | no | no | no | no | no | no | no | no | no | no | no | yes | yes | no | no | no | no | no |
34103410-| 3.9.x – 3.14.x | no | no | no | no | no | no | no | no | no | no | no | yes | no | no | no | no | no | no |
34113411-| 3.6.x – 3.8.x | no | no | no | no | no | no | no | no | no | yes | yes | no | no | no | no | no | no | no |
34123412-| 3.1.x – 3.5.x | no | no | no | no | no | no | no | no | no | yes | no | no | no | no | no | no | no | no |
34133413-| 3.0.x | no | no | no | no | no | no | no | no | yes | no | no | no | no | no | no | no | no | no |
34013401+|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|
34023402+|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
34033403+|3.18.0|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|yes|yes|
34043404+|3.17.4 - 3.17.5|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|yes|no|
34053405+|3.17.1 – 3.17.3|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|no|no|
34063406+|3.17.0|no|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|no|no|no|
34073407+|3.16.7|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|yes|no|no|no|
34083408+|3.16.0 – 3.16.6|no|no|no|no|no|no|no|no|no|no|no|yes|yes|yes|no|no|no|no|
34093409+|3.15.x|no|no|no|no|no|no|no|no|no|no|no|yes|yes|no|no|no|no|no|
34103410+|3.9.x – 3.14.x|no|no|no|no|no|no|no|no|no|no|no|yes|no|no|no|no|no|no|
34113411+|3.6.x – 3.8.x|no|no|no|no|no|no|no|no|no|yes|yes|no|no|no|no|no|no|no|
34123412+|3.1.x – 3.5.x|no|no|no|no|no|no|no|no|no|yes|no|no|no|no|no|no|no|no|
34133413+|3.0.x|no|no|no|no|no|no|no|no|yes|no|no|no|no|no|no|no|no|no|
3414341434153415## Animating Styles and Props
34163416···3579357935803580### Platform Compatibility
3581358135823582-| Android | iOS | Web |
35833583-| ------- | --- | --- |
35843584-| ✅ | ✅ | ✅ |
35823582+|Android|iOS|Web|
35833583+|-|-|-|
35843584+|✅|✅|✅|
3585358535863586## Contributing Guide for Reanimated
35873587···3982398239833983#### Platform Compatibility
3984398439853985-| Android | iOS | Web |
39863986-| ------- | --- | --- |
39873987-| ✅ | ✅ | ✅ |
39853985+|Android|iOS|Web|
39863986+|-|-|-|
39873987+|✅|✅|✅|
3988398839893989This table indicates that all predefined transitions are compatible across Android, iOS, and web platforms.
39903990···4018401840194019### Compatibility Summary
4020402040214021-| Tool | Platform | JSC | Hermes | V8 |
40224022-| ------------------------- | -------- | ------ | ------ | ------ |
40234023-| Chrome Debugger | Android | ⚛️ ✅¹ | ⚛️ ✅¹ | ⚛️ ✅¹ |
40244024-| | iOS | ⚛️ ✅¹ | ⚛️ ✅¹ | N/A |
40254025-| Chrome DevTools | Android | N/A | ⚛️ ✅² | ⚛️ |
40264026-| | iOS | N/A | ⚛️ ✅² | N/A |
40274027-| Flipper (Hermes debugger) | Android | N/A | ⚛️ ✅² | ⚛️ |
40284028-| | iOS | N/A | ⚛️ ✅² | N/A |
40294029-| Safari DevTools | Android | N/A | N/A | N/A |
40304030-| | iOS | ⚛️ ✅ | N/A | N/A |
40314031-| React Developer Tools | Android | ⚛️ | ⚛️ | ⚛️ |
40324032-| | iOS | ⚛️ | ⚛️ | N/A |
40214021+|Tool|Platform|JSC|Hermes|V8|
40224022+|-|-|-|-|-|
40234023+|Chrome Debugger|Android|⚛️ ✅¹|⚛️ ✅¹|⚛️ ✅¹|
40244024+||iOS|⚛️ ✅¹|⚛️ ✅¹|N/A|
40254025+|Chrome DevTools|Android|N/A|⚛️ ✅²|⚛️|
40264026+||iOS|N/A|⚛️ ✅²|N/A|
40274027+|Flipper (Hermes debugger)|Android|N/A|⚛️ ✅²|⚛️|
40284028+||iOS|N/A|⚛️ ✅²|N/A|
40294029+|Safari DevTools|Android|N/A|N/A|N/A|
40304030+||iOS|⚛️ ✅|N/A|N/A|
40314031+|React Developer Tools|Android|⚛️|⚛️|⚛️|
40324032+||iOS|⚛️|⚛️|N/A|
4033403340344034¹ - Functions use web implementations, running worklets on the JS thread. Measure and Layout Animations are unavailable. ² - Experimental feature.
40354035···4045404540464046#### Chrome Debugger
4047404740484048-| Platform | JSC | Hermes | V8 |
40494049-| -------- | ----- | ------ | ----- |
40504050-| Android | ⚛️ ✅ | ⚛️ ✅ | ⚛️ ✅ |
40514051-| iOS | ⚛️ ✅ | ⚛️ ✅ | N/A |
40484048+|Platform|JSC|Hermes|V8|
40494049+|-|-|-|-|
40504050+|Android|⚛️ ✅|⚛️ ✅|⚛️ ✅|
40514051+|iOS|⚛️ ✅|⚛️ ✅|N/A|
4052405240534053**Summary:** Functions use web implementations, running on the JS thread. Measure and Layout Animations are unavailable.
4054405440554055#### Chrome DevTools
4056405640574057-| Platform | JSC | Hermes | V8 |
40584058-| -------- | --- | ------ | --- |
40594059-| Android | N/A | ⚛️ ✅² | ⚛️ |
40604060-| iOS | N/A | ⚛️ ✅² | N/A |
40574057+|Platform|JSC|Hermes|V8|
40584058+|-|-|-|-|
40594059+|Android|N/A|⚛️ ✅²|⚛️|
40604060+|iOS|N/A|⚛️ ✅²|N/A|
4061406140624062**Summary:** Both contexts can be debugged. This is an experimental feature.
4063406340644064#### Flipper (Hermes Debugger)
4065406540664066-| Platform | JSC | Hermes | V8 |
40674067-| -------- | --- | ------ | --- |
40684068-| Android | N/A | ⚛️ ✅² | ⚛️ |
40694069-| iOS | N/A | ⚛️ ✅² | N/A |
40664066+|Platform|JSC|Hermes|V8|
40674067+|-|-|-|-|
40684068+|Android|N/A|⚛️ ✅²|⚛️|
40694069+|iOS|N/A|⚛️ ✅²|N/A|
4070407040714071**Summary:** Both contexts can be debugged. This is an experimental feature.
4072407240734073#### Safari DevTools
4074407440754075-| Platform | JSC | Hermes | V8 |
40764076-| -------- | ----- | ------ | --- |
40774077-| Android | N/A | N/A | N/A |
40784078-| iOS | ⚛️ ✅ | N/A | N/A |
40754075+|Platform|JSC|Hermes|V8|
40764076+|-|-|-|-|
40774077+|Android|N/A|N/A|N/A|
40784078+|iOS|⚛️ ✅|N/A|N/A|
4079407940804080**Summary:** Available only on iOS devices with the JSC engine. Worklet debugging is supported.
4081408140824082#### React Developer Tools
4083408340844084-| Platform | JSC | Hermes | V8 |
40854085-| -------- | --- | ------ | --- |
40864086-| Android | ⚛️ | ⚛️ | ⚛️ |
40874087-| iOS | ⚛️ | ⚛️ | N/A |
40844084+|Platform|JSC|Hermes|V8|
40854085+|-|-|-|-|
40864086+|Android|⚛️|⚛️|⚛️|
40874087+|iOS|⚛️|⚛️|N/A|
4088408840894089**Summary:** Functions as expected, with profiler and layout inspector available.
40904090···4094409440954095- **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.
4096409640974097-_Efforts are ongoing to enhance debugging experiences with Chrome DevTools and Flipper on Hermes._
40974097+*Efforts are ongoing to enhance debugging experiences with Chrome DevTools and Flipper on Hermes.*
4098409840994099## Incremental Migration from Reanimated 1 to Reanimated 2
41004100···4114411441154115## Getting Started
4116411641174117-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.
41174117+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.
4118411841194119### What is React Native Reanimated?
41204120···4577457745784578### Platform Compatibility
4579457945804580-| Android | iOS | Web |
45814581-| ------- | --- | --- |
45824582-| ✅ | ✅ | ❌ |
45804580+|Android|iOS|Web|
45814581+|-|-|-|
45824582+|✅|✅|❌|
4583458345844584## useAnimatedProps
45854585···4682468246834683### Platform Compatibility
4684468446854685-| Android | iOS | Web |
46864686-| ------- | --- | --- |
46874687-| ✅ | ✅ | ✅ |
46854685+|Android|iOS|Web|
46864686+|-|-|-|
46874687+|✅|✅|✅|
4688468846894689## React Native Reanimated: LayoutAnimationConfig (Version 3.x)
46904690···4748474847494749### Platform Compatibility
4750475047514751-| Android | iOS | Web |
47524752-| ------- | --- | --- |
47534753-| ✅ | ✅ | ❌ |
47514751+|Android|iOS|Web|
47524752+|-|-|-|
47534753+|✅|✅|❌|
4754475447554755- **Reference**
47564756 - Arguments
···5019501950205020### Platform Compatibility
5021502150225022-| Android | iOS | Web |
50235023-| ------- | --- | --- |
50245024-| ✅ | ✅ | ✅ |
50225022+|Android|iOS|Web|
50235023+|-|-|-|
50245024+|✅|✅|✅|
5025502550265026- **Example**
50275027- **Remarks**
···5067506750685068The configuration for timing animations. Available properties:
5069506950705070-| Name | Type | Default | Description |
50715071-| --- | --- | --- | --- |
50725072-| duration | `number` | 300 | Length of the animation in milliseconds. |
50735073-| easing | `Easing` | `Easing.inOut(Easing.quad)` | An easing function defining the animation curve. |
50745074-| reduceMotion | `ReduceMotion` | `ReduceMotion.System` | Determines how the animation responds to reduced motion settings on devices. |
50705070+|Name|Type|Default|Description|
50715071+|-|-|-|-|
50725072+|duration|`number`|300|Length of the animation in milliseconds.|
50735073+|easing|`Easing`|`Easing.inOut(Easing.quad)`|An easing function defining the animation curve.|
50745074+|reduceMotion|`ReduceMotion`|`ReduceMotion.System`|Determines how the animation responds to reduced motion settings on devices.|
5075507550765076###### `Easing`
50775077···5126512651275127### Platform Compatibility
5128512851295129-| Android | iOS | Web |
51305130-| ------- | --- | --- |
51315131-| ✅ | ✅ | ✅ |
51295129+|Android|iOS|Web|
51305130+|-|-|-|
51315131+|✅|✅|✅|
5132513251335133## Getting Started
5134513451355135-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.
51355135+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.
5136513651375137### What is React Native Reanimated?
51385138···5340534053415341### Platform Compatibility
5342534253435343-| Android | iOS | Web |
53445344-| ------- | --- | --- |
53455345-| ✅ | ✅ | ✅ |
53435343+|Android|iOS|Web|
53445344+|-|-|-|
53455345+|✅|✅|✅|
5346534653475347```markdown
53485348# Overview
···5387538753885388Unlike `withTiming`, `withSpring` is physics-based and simulates real-world spring dynamics, making animations appear more realistic.
5389538953905390-When adjusting springs, focus on these three properties: `mass`, `stiffness` (also known as _tension_), and `damping` (also known as _friction_).
53905390+When adjusting springs, focus on these three properties: `mass`, `stiffness` (also known as *tension*), and `damping` (also known as *friction*).
5391539153925392```typescript
53935393import { withSpring } from "react-native-reanimated"
···5467546754685468**Physics-based Spring Configuration:**
5469546954705470-| Name | Type | Default | Description |
54715471-| --- | --- | --- | --- |
54725472-| mass (optional) | `number` | 1 | The weight of the spring. Lower values make the animation faster. |
54735473-| damping (optional) | `number` | 10 | Controls how quickly a spring slows down; higher values result in quicker rest. |
54705470+|Name|Type|Default|Description|
54715471+|-|-|-|-|
54725472+|mass (optional)|`number`|1|The weight of the spring. Lower values make the animation faster.|
54735473+|damping (optional)|`number`|10|Controls how quickly a spring slows down; higher values result in quicker rest.|
5474547454755475**Duration-based Spring Configuration:**
5476547654775477-| Name | Type | Default | Description |
54785478-| --- | --- | --- | --- |
54795479-| duration (optional) | `number` | 2000 | Length of the animation in milliseconds. Available in Reanimated ≥ 3.2.x. |
54805480-| 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. |
54775477+|Name|Type|Default|Description|
54785478+|-|-|-|-|
54795479+|duration (optional)|`number`|2000|Length of the animation in milliseconds. Available in Reanimated ≥ 3.2.x.|
54805480+|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.|
5481548154825482**Note**: The `mass` and `damping` properties cannot be used simultaneously with `duration` and `dampingRatio`. When both are provided, `duration` and `dampingRatio` take precedence.
5483548354845484**Common Spring Configuration:**
5485548554865486-| Name | Type | Default | Description |
54875487-| --- | --- | --- | --- |
54885488-| stiffness (optional) | `number` | 100 | Determines the bounciness of the spring. |
54895489-| velocity (optional) | `number` | 0 | Initial velocity applied to the spring equation. |
54905490-| overshootClamping (optional) | `boolean` | false | Prevents the spring from bouncing over the `toValue`. |
54915491-| restDisplacementThreshold (optional) | `number` | 0.01 | Displacement below which the spring will settle at `toValue`. |
54925492-| restSpeedThreshold (optional) | `number` | 2 | Speed threshold in pixels per second for settling at `toValue`. |
54935493-| reduceMotion (optional) | `ReduceMotion` | `ReduceMotion.System` | Determines animation response to reduced motion settings. Available in Reanimated ≥ 3.5.x. |
54945494-| clamp (optional) | `[number, number]` | `undefined` | Limits the movement scope; reduces bounciness if exceeded. Available in Reanimated ≥ 3.6.x. |
54865486+|Name|Type|Default|Description|
54875487+|-|-|-|-|
54885488+|stiffness (optional)|`number`|100|Determines the bounciness of the spring.|
54895489+|velocity (optional)|`number`|0|Initial velocity applied to the spring equation.|
54905490+|overshootClamping (optional)|`boolean`|false|Prevents the spring from bouncing over the `toValue`.|
54915491+|restDisplacementThreshold (optional)|`number`|0.01|Displacement below which the spring will settle at `toValue`.|
54925492+|restSpeedThreshold (optional)|`number`|2|Speed threshold in pixels per second for settling at `toValue`.|
54935493+|reduceMotion (optional)|`ReduceMotion`|`ReduceMotion.System`|Determines animation response to reduced motion settings. Available in Reanimated ≥ 3.5.x.|
54945494+|clamp (optional)|`[number, number]`|`undefined`|Limits the movement scope; reduces bounciness if exceeded. Available in Reanimated ≥ 3.6.x.|
5495549554965496##### `callback` (Optional)
54975497···5509550955105510### Platform Compatibility
5511551155125512-| Android | iOS | Web |
55135513-| ------- | --- | --- |
55145514-| ✅ | ✅ | ✅ |
55125512+|Android|iOS|Web|
55135513+|-|-|-|
55145514+|✅|✅|✅|
5515551555165516## useAnimatedRef
55175517···5588558855895589### Platform Compatibility
5590559055915591-| Android | iOS | Web |
55925592-| ------- | --- | --- |
55935593-| ✅ | ✅ | ✅ |
55915591+|Android|iOS|Web|
55925592+|-|-|-|
55935593+|✅|✅|✅|
5594559455955595## createWorkletRuntime
55965596···5790579057915791### Platform Compatibility
5792579257935793-| Android | iOS | Web |
57945794-| ------- | --- | --- |
57955795-| ✅ | ✅ | ✅ |
57935793+|Android|iOS|Web|
57945794+|-|-|-|
57955795+|✅|✅|✅|
5796579657975797## Run On JS
57985798···5845584558465846### Platform Compatibility
5847584758485848-| Android | iOS | Web |
58495849-| ------- | --- | --- |
58505850-| ✅ | ✅ | ✅ |
58485848+|Android|iOS|Web|
58495849+|-|-|-|
58505850+|✅|✅|✅|
5851585158525852## runOnUI
58535853···5894589458955895### Platform Compatibility
5896589658975897-| Android | iOS | Web |
58985898-| ------- | --- | --- |
58995899-| ✅ | ✅ | ✅ |
58975897+|Android|iOS|Web|
58985898+|-|-|-|
58995899+|✅|✅|✅|
5900590059015901## Your First Animation
59025902···6058605860596059Configuration for the decay animation. The following properties are available:
6060606060616061-| Name | Type | Default | Description |
60626062-| --- | --- | --- | --- |
60636063-| `velocity` (optional) | `number` | 0 | Initial velocity of the animation. |
60646064-| `deceleration` (optional) | `number` | 0.998 | Rate at which the velocity decreases over time. |
60656065-| `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. |
60666066-| `velocityFactor` (optional) | `number` | 1 | Multiplier for velocity. |
60676067-| `rubberBandEffect` (optional) | `boolean` | false | Enables bouncing over the limit specified in `clamp`. |
60686068-| `rubberBandFactor` (optional) | `number` | 0.6 | Determines the strength of the rubber band effect. |
60696069-| `reduceMotion` (optional) | `ReduceMotion` | `ReduceMotion.System` | Controls how the animation responds to the device's reduced motion accessibility setting. |
60616061+|Name|Type|Default|Description|
60626062+|-|-|-|-|
60636063+|`velocity` (optional)|`number`|0|Initial velocity of the animation.|
60646064+|`deceleration` (optional)|`number`|0.998|Rate at which the velocity decreases over time.|
60656065+|`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.|
60666066+|`velocityFactor` (optional)|`number`|1|Multiplier for velocity.|
60676067+|`rubberBandEffect` (optional)|`boolean`|false|Enables bouncing over the limit specified in `clamp`.|
60686068+|`rubberBandFactor` (optional)|`number`|0.6|Determines the strength of the rubber band effect.|
60696069+|`reduceMotion` (optional)|`ReduceMotion`|`ReduceMotion.System`|Controls how the animation responds to the device's reduced motion accessibility setting.|
6070607060716071##### `callback` (Optional)
60726072···6078607860796079### Example
6080608060816081-_Note: An example section is mentioned but not provided in the original content._
60816081+*Note: An example section is mentioned but not provided in the original content.*
6082608260836083### Remarks
60846084···6086608660876087### Platform Compatibility
6088608860896089-| Android | iOS | Web |
60906090-| ------- | --- | --- |
60916091-| ✅ | ✅ | ✅ |
60896089+|Android|iOS|Web|
60906090+|-|-|-|
60916091+|✅|✅|✅|
6092609260936093## createAnimatedComponent
60946094···6127612761286128### Platform Compatibility
6129612961306130-| Android | iOS | Web |
61316131-| ------- | --- | --- |
61326132-| ✅ | ✅ | ✅ |
61306130+|Android|iOS|Web|
61316131+|-|-|-|
61326132+|✅|✅|✅|
6133613361346134## runOnRuntime
61356135···6180618061816181### Platform Compatibility
6182618261836183-| Android | iOS | Web |
61846184-| ------- | --- | --- |
61856185-| ✅ | ✅ | ❌ |
61836183+|Android|iOS|Web|
61846184+|-|-|-|
61856185+|✅|✅|❌|
6186618661876187## Canceling Animations with `cancelAnimation`
61886188···6220622062216221### Platform Compatibility
6222622262236223-| Android | iOS | Web |
62246224-| ------- | --- | --- |
62256225-| ✅ | ✅ | ✅ |
62236223+|Android|iOS|Web|
62246224+|-|-|-|
62256225+|✅|✅|✅|
6226622662276227This function is compatible across Android, iOS, and web platforms.
62286228···6276627662776277### Platform Compatibility
6278627862796279-| Android | iOS | Web |
62806280-| ------- | --- | --- |
62816281-| ✅ | ✅ | ❌ |
62796279+|Android|iOS|Web|
62806280+|-|-|-|
62816281+|✅|✅|❌|
6282628262836283```markdown
62846284# `useAnimatedGestureHandler`
···6547654765486548### Platform Compatibility
6549654965506550-| Android | iOS | Web |
65516551-| ------- | --- | --- |
65526552-| ✅ | ✅ | ✅ |
65506550+|Android|iOS|Web|
65516551+|-|-|-|
65526552+|✅|✅|✅|
6553655365546554## Clamp Function in React Native Reanimated
65556555···6589658965906590### Platform Compatibility
6591659165926592-| Android | iOS | Web |
65936593-| ------- | --- | --- |
65946594-| ✅ | ✅ | ✅ |
65926592+|Android|iOS|Web|
65936593+|-|-|-|
65946594+|✅|✅|✅|
6595659565966596This function is compatible across Android, iOS, and Web platforms.
65976597···6631663166326632- **`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.
6633663366346634-- **`colorSpace`** _(Optional)_: Specifies the color space for interpolation, either `'HSV'` or `'RGB'`. Defaults to `'RGB'`.
66346634+- **`colorSpace`** *(Optional)*: Specifies the color space for interpolation, either `'HSV'` or `'RGB'`. Defaults to `'RGB'`.
6635663566366636-- **`options`** _(Optional)_: Additional parameters for color interpolation:
66366636+- **`options`** *(Optional)*: Additional parameters for color interpolation:
6637663766386638- | Options | Type | Default | Description |
66396639- | --- | --- | --- | --- |
66406640- | `gamma` | `number` | 2.2 | Gamma parameter used in gamma correction. |
66416641- | `useCorrectedHSVInterpolation` | `boolean` | true | Reduces the number of hues during interpolation by treating HSV as circular. |
66386638+ |Options|Type|Default|Description|
66396639+ |-|-|-|-|
66406640+ |`gamma`|`number`|2.2|Gamma parameter used in gamma correction.|
66416641+ |`useCorrectedHSVInterpolation`|`boolean`|true|Reduces the number of hues during interpolation by treating HSV as circular.|
6642664266436643#### Options Explanation
66446644···6656665666576657### Platform Compatibility
6658665866596659-| Android | iOS | Web |
66606660-| ------- | --- | --- |
66616661-| ✅ | ✅ | ✅ |
66596659+|Android|iOS|Web|
66606660+|-|-|-|
66616661+|✅|✅|✅|
6662666266636663This function is versatile and compatible across major platforms, making it ideal for cross-platform applications.
+737-737
out/llms-full-react-native.txt
···40404141Menu paths are presented in bold and utilize carets for navigating submenus. Example: **Android Studio > Preferences**
42424343----
4343+***
44444545With an understanding of how to navigate these guides, it's time to explore the foundation of React Native: Native Components.
4646···169169170170Certain URL schemes are universally recognized across platforms:
171171172172-| Scheme | Description | iOS | Android |
173173-| --- | --- | --- | --- |
174174-| `mailto` | Opens mail app, e.g., `mailto:support@expo.io` | ✅ | ✅ |
175175-| `tel` | Opens phone app, e.g., `tel:+123456789` | ✅ | ✅ |
176176-| `sms` | Opens SMS app, e.g., `sms:+123456789` | ✅ | ✅ |
177177-| `https` / `http` | Opens web browser app, e.g., `https://expo.io` | ✅ | ✅ |
172172+|Scheme|Description|iOS|Android|
173173+|-|-|-|-|
174174+|`mailto`|Opens mail app, e.g., `mailto:support@expo.io`|✅|✅|
175175+|`tel`|Opens phone app, e.g., `tel:+123456789`|✅|✅|
176176+|`sms`|Opens SMS app, e.g., `sms:+123456789`|✅|✅|
177177+|`https` / `http`|Opens web browser app, e.g., `https://expo.io`|✅|✅|
178178179179### Enabling Deep Links
180180···941941942942### Props
943943944944-| Prop Name | Description | Type | Required |
945945-| --- | --- | --- | --- |
946946-| **`onPress`** | Handler called when the user taps the button. | `({nativeEvent: PressEvent})` | Yes |
947947-| **`title`** | Text displayed inside the button. On Android, this title is converted to uppercase. | string | Yes |
948948-| `accessibilityLabel` | Text for blindness accessibility features. | string | No |
949949-| `accessibilityLanguage` | Language used by screen readers on iOS, following BCP 47 specification. | string | No |
950950-| `accessibilityActions` | List of actions for assistive technologies to invoke programmatically. | array | No |
951951-| `onAccessibilityAction` | Invoked when an accessibility action is performed by the user. | function | No |
952952-| `color` | Text color on iOS, background color on Android. | color | No |
953953-| | Default: | | |
954954-| | - Android: `'#2196F3'` | | |
955955-| | - iOS: `'#007AFF'` | | |
956956-| `disabled` | Disables all interactions if set to true. | bool | No |
957957-| | Default: | | |
958958-| | - false | | |
959959-| `hasTVPreferredFocus` | Indicates TV preferred focus. | bool | No |
960960-| | Default: | | |
961961-| | - false | | |
962962-| `nextFocusDown` | Next view to receive focus when navigating down on Android TV. | number | No |
963963-| `nextFocusForward` | Next view to receive focus when navigating forward on Android TV. | number | No |
964964-| `nextFocusLeft` | Next view to receive focus when navigating left on Android TV. | number | No |
965965-| `nextFocusRight` | Next view to receive focus when navigating right on Android TV. | number | No |
966966-| `nextFocusUp` | Next view to receive focus when navigating up on Android TV. | number | No |
967967-| `testID` | Identifier for locating this view in end-to-end tests. | string | No |
968968-| `touchSoundDisabled` | Disables system sound on touch if set to true (Android only). | boolean | No |
969969-| | Default: | | |
970970-| | - false | | |
944944+|Prop Name|Description|Type|Required|
945945+|-|-|-|-|
946946+|**`onPress`**|Handler called when the user taps the button.|`({nativeEvent: PressEvent})`|Yes|
947947+|**`title`**|Text displayed inside the button. On Android, this title is converted to uppercase.|string|Yes|
948948+|`accessibilityLabel`|Text for blindness accessibility features.|string|No|
949949+|`accessibilityLanguage`|Language used by screen readers on iOS, following BCP 47 specification.|string|No|
950950+|`accessibilityActions`|List of actions for assistive technologies to invoke programmatically.|array|No|
951951+|`onAccessibilityAction`|Invoked when an accessibility action is performed by the user.|function|No|
952952+|`color`|Text color on iOS, background color on Android.|color|No|
953953+||Default:|||
954954+||- Android: `'#2196F3'`|||
955955+||- iOS: `'#007AFF'`|||
956956+|`disabled`|Disables all interactions if set to true.|bool|No|
957957+||Default:|||
958958+||- false|||
959959+|`hasTVPreferredFocus`|Indicates TV preferred focus.|bool|No|
960960+||Default:|||
961961+||- false|||
962962+|`nextFocusDown`|Next view to receive focus when navigating down on Android TV.|number|No|
963963+|`nextFocusForward`|Next view to receive focus when navigating forward on Android TV.|number|No|
964964+|`nextFocusLeft`|Next view to receive focus when navigating left on Android TV.|number|No|
965965+|`nextFocusRight`|Next view to receive focus when navigating right on Android TV.|number|No|
966966+|`nextFocusUp`|Next view to receive focus when navigating up on Android TV.|number|No|
967967+|`testID`|Identifier for locating this view in end-to-end tests.|string|No|
968968+|`touchSoundDisabled`|Disables system sound on touch if set to true (Android only).|boolean|No|
969969+||Default:|||
970970+||- false|||
971971972972This table summarizes the properties available for the Button component, detailing their purpose and default values where applicable.
973973···1153115311541154**Parameters:**
1155115511561156-| Name | Type | Description |
11571157-| -------------- | ------ | ----------- |
11581158-| configRequired | object | Refer below |
11561156+|Name|Type|Description|
11571157+|-|-|-|
11581158+|configRequired|object|Refer below|
1159115911601160The `config` object provides enhanced versions of all responder callbacks, including the `PanResponder` gesture state. Replace `onResponder*` with `onPanResponder*`. For example:
11611161···1234123412351235- Click "Apply" to install.
1236123612371237-#### 3. Configure the ANDROID_HOME Environment Variable
12371237+#### 3. Configure the ANDROID\_HOME Environment Variable
1238123812391239Set up necessary environment variables for React Native tools:
12401240···1336133613371337### Example Usage
1338133813391339-_Example section would typically include a demonstration of how to implement the `<ImageBackground>` component._
13391339+*Example section would typically include a demonstration of how to implement the `<ImageBackground>` component.*
1340134013411341### Reference
1342134213431343-_Reference section would provide additional resources or links for further information about the `<ImageBackground>` component._
13431343+*Reference section would provide additional resources or links for further information about the `<ImageBackground>` component.*
1344134413451345### Props
13461346···1369136913701370### Example
1371137113721372----
13721372+***
1373137313741374### Reference
13751375···1379137913801380Inherits properties from the View component.
1381138113821382----
13821382+***
1383138313841384#### `behavior`
1385138513861386Defines 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.
1387138713881388-| Type |
13891389-| ------------------------------------------- |
13901390-| enum(`'height'`, `'position'`, `'padding'`) |
13881388+|Type|
13891389+|-|
13901390+|enum(`'height'`, `'position'`, `'padding'`)|
1391139113921392----
13921392+***
1393139313941394#### `contentContainerStyle`
1395139513961396Specifies the style applied to the content container (View) when the behavior is set to `'position'`.
1397139713981398-| Type |
13991399-| ---------- |
14001400-| View Style |
13981398+|Type|
13991399+|-|
14001400+|View Style|
1401140114021402----
14021402+***
1403140314041404#### `enabled`
1405140514061406Determines whether the `KeyboardAvoidingView` is active or inactive.
1407140714081408-| Type | Default |
14091409-| ------- | ------- |
14101410-| boolean | `true` |
14081408+|Type|Default|
14091409+|-|-|
14101410+|boolean|`true`|
1411141114121412----
14121412+***
1413141314141414#### `keyboardVerticalOffset`
1415141514161416Represents the distance between the top of the user's screen and the React Native view. This value may be non-zero in certain scenarios.
1417141714181418-| Type | Default |
14191419-| ------ | ------- |
14201420-| number | `0` |
14181418+|Type|Default|
14191419+|-|-|
14201420+|number|`0`|
1421142114221422## Modal Component
14231423···1425142514261426### Example
1427142714281428----
14281428+***
1429142914301430### Reference
14311431···1435143514361436Inherits properties from the View component.
1437143714381438----
14381438+***
1439143914401440#### `animationType`
14411441···14471447- `fade`: Fades into view.
14481448- `none`: Appears without any animation.
1449144914501450-| Type | Default |
14511451-| ----------------------------------- | ------- |
14521452-| enum(`'none'`, `'slide'`, `'fade'`) | `none` |
14501450+|Type|Default|
14511451+|-|-|
14521452+|enum(`'none'`, `'slide'`, `'fade'`)|`none`|
1453145314541454----
14541454+***
1455145514561456#### `backdropColor`
1457145714581458Sets the background color of the modal's container. Defaults to `white` unless `transparent` is set to `true`.
1459145914601460-| Type | Default |
14611461-| ----- | ------- |
14621462-| color | white |
14601460+|Type|Default|
14611461+|-|-|
14621462+|color|white|
1463146314641464----
14641464+***
1465146514661466#### `hardwareAccelerated` (Android)
1467146714681468Determines if hardware acceleration should be forced for the underlying window.
1469146914701470-| Type | Default |
14711471-| ---- | ------- |
14721472-| bool | `false` |
14701470+|Type|Default|
14711471+|-|-|
14721472+|bool|`false`|
1473147314741474----
14741474+***
1475147514761476#### `navigationBarTranslucent` (Android)
1477147714781478Decides whether the modal appears under the system navigation bar. Requires `statusBarTranslucent` to also be `true`.
1479147914801480-| Type | Default |
14811481-| ---- | ------- |
14821482-| bool | `false` |
14801480+|Type|Default|
14811481+|-|-|
14821482+|bool|`false`|
1483148314841484----
14841484+***
1485148514861486#### `onDismiss` (iOS)
1487148714881488Allows a function to be called when the modal is dismissed.
1489148914901490-| Type |
14911491-| -------- |
14921492-| function |
14901490+|Type|
14911491+|-|
14921492+|function|
1493149314941494----
14941494+***
1495149514961496#### `onOrientationChange` (iOS)
1497149714981498Triggered 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.
1499149915001500-| Type |
15011501-| -------- |
15021502-| function |
15001500+|Type|
15011501+|-|
15021502+|function|
1503150315041504----
15041504+***
1505150515061506#### `onRequestClose`
1507150715081508Invoked 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`.
1509150915101510-| Type |
15111511-| ------------------------------------------ |
15121512-| functionRequiredAndroidTV\*\*\*functioniOS |
15101510+|Type|
15111511+|-|
15121512+|functionRequiredAndroidTV\*\*\*functioniOS|
1513151315141514----
15141514+***
1515151515161516#### `onShow`
1517151715181518Allows a function to be executed once the modal is displayed.
1519151915201520-| Type |
15211521-| -------- |
15221522-| function |
15201520+|Type|
15211521+|-|
15221522+|function|
1523152315241524----
15241524+***
1525152515261526#### `presentationStyle` (iOS)
15271527···15341534- `formSheet`: Centers a narrow-width view (on larger devices).
15351535- `overFullScreen`: Covers the screen completely but allows transparency.
1536153615371537-| Type | Default |
15381538-| --- | --- |
15391539-| enum(`'fullScreen'`, `'pageSheet'`, `'formSheet'`, `'overFullScreen'`) | `fullScreen` if `transparent={false}`\*\*\*`overFullScreen` if `transparent={true}` |
15371537+|Type|Default|
15381538+|-|-|
15391539+|enum(`'fullScreen'`, `'pageSheet'`, `'formSheet'`, `'overFullScreen'`)|`fullScreen` if `transparent={false}`\*\*\*`overFullScreen` if `transparent={true}`|
1540154015411541----
15411541+***
1542154215431543#### `statusBarTranslucent` (Android)
1544154415451545Determines whether the modal appears under the system status bar.
1546154615471547-| Type | Default |
15481548-| ---- | ------- |
15491549-| bool | `false` |
15471547+|Type|Default|
15481548+|-|-|
15491549+|bool|`false`|
1550155015511551----
15511551+***
1552155215531553#### `supportedOrientations` (iOS)
15541554···1556155615571557> Ignored when using `presentationStyle` of `pageSheet` or `formSheet`.
1558155815591559-| Type | Default |
15601560-| --- | --- |
15611561-| array of enums(`'portrait'`, `'portrait-upside-down'`, `'landscape'`, `'landscape-left'`, `'landscape-right'`) | `['portrait']` |
15591559+|Type|Default|
15601560+|-|-|
15611561+|array of enums(`'portrait'`, `'portrait-upside-down'`, `'landscape'`, `'landscape-left'`, `'landscape-right'`)|`['portrait']`|
1562156215631563----
15631563+***
1564156415651565#### `transparent`
1566156615671567Determines if the modal will cover the entire view with a transparent background.
1568156815691569-| Type | Default |
15701570-| ---- | ------- |
15711571-| bool | `false` |
15691569+|Type|Default|
15701570+|-|-|
15711571+|bool|`false`|
1572157215731573----
15731573+***
1574157415751575#### `visible`
1576157615771577Controls whether the modal is visible or not.
1578157815791579-| Type | Default |
15801580-| ---- | ------- |
15811581-| bool | `true` |
15791579+|Type|Default|
15801580+|-|-|
15811581+|bool|`true`|
1582158215831583To 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.
15841584···1853185318541854Configuration object for the `android_ripple` property.
1855185518561856-| Name | Type | Required | Description |
18571857-| --- | --- | --- | --- |
18581858-| color | color | No | Defines the color of the ripple effect. |
18591859-| borderless | boolean | No | Determines if the ripple effect should exclude borders. |
18601860-| radius | number | No | Sets the radius of the ripple effect. |
18611861-| 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. |
18561856+|Name|Type|Required|Description|
18571857+|-|-|-|-|
18581858+|color|color|No|Defines the color of the ripple effect.|
18591859+|borderless|boolean|No|Determines if the ripple effect should exclude borders.|
18601860+|radius|number|No|Sets the radius of the ripple effect.|
18611861+|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.|
1862186218631863## RefreshControl Component
18641864···2105210521062106Support 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.
2107210721082108-> **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.
21082108+> **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.
2109210921102110The 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:
21112111···2237223722382238### Props
2239223922402240-| Prop Name | Type | Required | Default | Description |
22412241-| --- | --- | --- | --- | --- |
22422242-| `animated` | boolean | No | `false` | Determines if transitions between status bar property changes should be animated. Supported for `backgroundColor`, `barStyle`, and `hidden`. |
22432243-| `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. |
22442244-| `barStyle` | StatusBarStyle | No | `'default'` | Sets the color of the status bar text. On Android, this affects only API versions 23 and above. |
22452245-| `hidden` | boolean | No | `false` | Determines if the status bar is hidden. |
22462246-| `networkActivityIndicatorVisible` (iOS) | boolean | No | `false` | Controls visibility of the network activity indicator. |
22472247-| `showHideTransition` (iOS) | StatusBarAnimation | No | `'fade'` | The transition effect when showing or hiding the status bar using the `hidden` prop. |
22482248-| `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. |
22402240+|Prop Name|Type|Required|Default|Description|
22412241+|-|-|-|-|-|
22422242+|`animated`|boolean|No|`false`|Determines if transitions between status bar property changes should be animated. Supported for `backgroundColor`, `barStyle`, and `hidden`.|
22432243+|`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.|
22442244+|`barStyle`|StatusBarStyle|No|`'default'`|Sets the color of the status bar text. On Android, this affects only API versions 23 and above.|
22452245+|`hidden`|boolean|No|`false`|Determines if the status bar is hidden.|
22462246+|`networkActivityIndicatorVisible` (iOS)|boolean|No|`false`|Controls visibility of the network activity indicator.|
22472247+|`showHideTransition` (iOS)|StatusBarAnimation|No|`'fade'`|The transition effect when showing or hiding the status bar using the `hidden` prop.|
22482248+|`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.|
2249224922502250### Methods
22512251···2286228622872287**Parameters:**
2288228822892289-| Name | Type | Description |
22902290-| --- | --- | --- |
22912291-| **entry (Required)** | any | Entry returned from `pushStackEntry` to replace. |
22922292-| **props (Required)** | any | Object containing the `StatusBar` props for the replacement stack entry. |
22892289+|Name|Type|Description|
22902290+|-|-|-|
22912291+|**entry (Required)**|any|Entry returned from `pushStackEntry` to replace.|
22922292+|**props (Required)**|any|Object containing the `StatusBar` props for the replacement stack entry.|
2293229322942294#### `setBackgroundColor()` (Android)
22952295···2303230323042304**Parameters:**
2305230523062306-| Name | Type | Description |
23072307-| -------------------- | ------- | ------------------------- |
23082308-| **color (Required)** | string | Background color. |
23092309-| animated | boolean | Animate the style change. |
23062306+|Name|Type|Description|
23072307+|-|-|-|
23082308+|**color (Required)**|string|Background color.|
23092309+|animated|boolean|Animate the style change.|
2310231023112311#### `setBarStyle()`
23122312···2318231823192319**Parameters:**
2320232023212321-| Name | Type | Description |
23222322-| -------------------- | -------------- | ------------------------- |
23232323-| **style (Required)** | StatusBarStyle | Status bar style to set. |
23242324-| animated | boolean | Animate the style change. |
23212321+|Name|Type|Description|
23222322+|-|-|-|
23232323+|**style (Required)**|StatusBarStyle|Status bar style to set.|
23242324+|animated|boolean|Animate the style change.|
2325232523262326#### `setHidden()`
23272327···2333233323342334**Parameters:**
2335233523362336-| Name | Type | Description |
23372337-| --- | --- | --- |
23382338-| **hidden (Required)** | boolean | Hide the status bar. |
23392339-| animation (iOS) | StatusBarAnimation | Animation when changing the hidden property of the status bar. |
23362336+|Name|Type|Description|
23372337+|-|-|-|
23382338+|**hidden (Required)**|boolean|Hide the status bar.|
23392339+|animation (iOS)|StatusBarAnimation|Animation when changing the hidden property of the status bar.|
2340234023412341#### `setNetworkActivityIndicatorVisible()` (iOS)
23422342···2368236823692369Enum representing the status bar animation type for transitions on iOS.
2370237023712371-| Value | Type | Description |
23722372-| --------- | ------ | ---------------- |
23732373-| `'fade'` | string | Fade animation. |
23742374-| `'slide'` | string | Slide animation. |
23752375-| `'none'` | string | No animation. |
23712371+|Value|Type|Description|
23722372+|-|-|-|
23732373+|`'fade'`|string|Fade animation.|
23742374+|`'slide'`|string|Slide animation.|
23752375+|`'none'`|string|No animation.|
2376237623772377#### StatusBarStyle
2378237823792379Enum representing the status bar style type.
2380238023812381-| Value | Type | Description |
23822382-| --- | --- | --- |
23832383-| `'default'` | string | Default status bar style (dark for iOS, light for Android). |
23842384-| `'light-content'` | string | White texts and icons. |
23852385-| `'dark-content'` | string | Dark texts and icons (requires API>=23 on Android). |
23812381+|Value|Type|Description|
23822382+|-|-|-|
23832383+|`'default'`|string|Default status bar style (dark for iOS, light for Android).|
23842384+|`'light-content'`|string|White texts and icons.|
23852385+|`'dark-content'`|string|Dark texts and icons (requires API>=23 on Android).|
2386238623872387## Enabling USB Debugging on Android Devices
23882388···2521252125222522### Example
2523252325242524-_Example usage of the Switch component is not provided here._
25242524+*Example usage of the Switch component is not provided here.*
2525252525262526### Reference
2527252725282528-_Reference details for the Switch component are not included here._
25282528+*Reference details for the Switch component are not included here.*
2529252925302530### Props
25312531···25622562#### `trackColor`
2563256325642564- **Description**: Defines custom colors for the switch track.
25652565- - _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`.
25652565+ - *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`.
25662566- **Type**: `object: { false: color, true: color }`
2567256725682568#### `value`
···3010301030113011##### Specific to TouchableHighlight
3012301230133013-| Prop Name | Description | Type |
30143014-| --- | --- | --- |
30153015-| `activeOpacity` | Sets the opacity of the wrapped view during touch interaction. Must be between 0 and 1. Defaults to 0.85. Requires `underlayColor`. | number |
30163016-| `onHideUnderlay` | Called immediately after the underlay is hidden. | function |
30173017-| `onShowUnderlay` | Called immediately after the underlay is shown. | function |
30183018-| `style` | Style properties for the view. | View\.style |
30193019-| `underlayColor` | The color of the underlay that appears when touch is active. | color |
30133013+|Prop Name|Description|Type|
30143014+|-|-|-|
30153015+|`activeOpacity`|Sets the opacity of the wrapped view during touch interaction. Must be between 0 and 1. Defaults to 0.85. Requires `underlayColor`.|number|
30163016+|`onHideUnderlay`|Called immediately after the underlay is hidden.|function|
30173017+|`onShowUnderlay`|Called immediately after the underlay is shown.|function|
30183018+|`style`|Style properties for the view.|View\.style|
30193019+|`underlayColor`|The color of the underlay that appears when touch is active.|color|
3020302030213021##### iOS Specific Props
3022302230233023-- **hasTVPreferredFocus**: _(Apple TV only)_ Indicates TV preferred focus (refer to the View component documentation).
30233023+- **hasTVPreferredFocus**: *(Apple TV only)* Indicates TV preferred focus (refer to the View component documentation).
30243024 - Type: bool
3025302530263026##### Android Specific Props
···3038303830393039##### Testing Prop
3040304030413041-- **testOnly_pressed**: Useful for snapshot tests.
30413041+- **testOnly\_pressed**: Useful for snapshot tests.
30423042 - Type: bool
3043304330443044## TouchableOpacity Component
···3180318031813181### Props
3182318231833183-| Prop Name | Description | Type |
31843184-| --- | --- | --- |
31853185-| `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 |
31863186-| `accessible` | When set to `true`, marks the view as an accessibility element. By default, all touchable elements are accessible. | bool |
31873187-| `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 |
31883188-| `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 |
31893189-| `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 |
31903190-| `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 |
31913191-| `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}` |
31923192-| `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 |
31933193-| `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 |
31943194-| `aria-checked` | Represents the state of a checkable element, which can be either a boolean or `'mixed'`. | boolean, 'mixed' |
31953195-| `aria-disabled` | Indicates that an element is perceivable but disabled and not editable or operable. | boolean |
31963196-| `aria-expanded` | Shows whether an expandable element is currently expanded or collapsed. | boolean |
31973197-| `aria-hidden` | Specifies if the accessibility elements within this element are hidden, affecting how assistive technologies like VoiceOver interact with sibling views. | boolean |
31983198-| `aria-label` | Provides a string value that labels an interactive element. | string |
31993199-| `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'` |
32003200-| `aria-modal` (iOS) | Boolean indicating whether VoiceOver should ignore sibling elements within views. Takes precedence over the `accessibilityViewIsModal` prop. | boolean |
32013201-| `aria-selected` | Indicates if a selectable element is currently selected. | boolean |
32023202-| `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 |
32033203-| `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}` |
32043204-| `aria-valuemax` | Specifies the maximum value for range-based components, taking precedence over the `max` value in the `accessibilityValue` prop. | number |
32053205-| `aria-valuemin` | Specifies the minimum value for range-based components, taking precedence over the `min` value in the `accessibilityValue` prop. | number |
32063206-| `aria-valuenow` | Represents the current value for range-based components, taking precedence over the `now` value in the `accessibilityValue` prop. | number |
32073207-| `aria-valuetext` | Provides a textual description of the component's value, taking precedence over the `text` value in the `accessibilityValue` prop. | string |
32083208-| `delayLongPress` | Duration (in milliseconds) from `onPressIn` before `onLongPress` is called. | number |
32093209-| `delayPressIn` | Duration (in milliseconds) from the start of a touch until `onPressIn` is invoked. | number |
32103210-| `delayPressOut` | Duration (in milliseconds) after releasing a touch before `onPressOut` is called. | number |
32113211-| `disabled` | If set to true, disables all interactions for this component. | bool |
32123212-| `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 |
32133213-| `id` | Used to locate this view from native code, taking precedence over the `nativeID` prop. | string |
32143214-| `onBlur` | Invoked when the item loses focus. | function |
32153215-| `onFocus` | Invoked when the item receives focus. | function |
32163216-| `onLayout` | Called on mount and during layout changes. | `({nativeEvent: LayoutEvent}) => void` |
32173217-| `onLongPress` | Triggered if the time after `onPressIn` exceeds 370 milliseconds, customizable with `delayLongPress`. | function |
32183218-| `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 |
32193219-| `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 |
32203220-| `onPressOut` | Called immediately after a touch is released, prior to `onPress`. The first argument is an event in form of PressEvent. | function |
32213221-| `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 |
32223222-| `nativeID` | | string |
32233223-| `testID` | Used to locate this view in end-to-end tests. | string |
32243224-| `touchSoundDisabled` (Android) | If set to true, prevents the system sound from playing on touch. | Boolean |
31833183+|Prop Name|Description|Type|
31843184+|-|-|-|
31853185+|`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|
31863186+|`accessible`|When set to `true`, marks the view as an accessibility element. By default, all touchable elements are accessible.|bool|
31873187+|`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|
31883188+|`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|
31893189+|`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|
31903190+|`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|
31913191+|`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}`|
31923192+|`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|
31933193+|`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|
31943194+|`aria-checked`|Represents the state of a checkable element, which can be either a boolean or `'mixed'`.|boolean, 'mixed'|
31953195+|`aria-disabled`|Indicates that an element is perceivable but disabled and not editable or operable.|boolean|
31963196+|`aria-expanded`|Shows whether an expandable element is currently expanded or collapsed.|boolean|
31973197+|`aria-hidden`|Specifies if the accessibility elements within this element are hidden, affecting how assistive technologies like VoiceOver interact with sibling views.|boolean|
31983198+|`aria-label`|Provides a string value that labels an interactive element.|string|
31993199+|`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'`|
32003200+|`aria-modal` (iOS)|Boolean indicating whether VoiceOver should ignore sibling elements within views. Takes precedence over the `accessibilityViewIsModal` prop.|boolean|
32013201+|`aria-selected`|Indicates if a selectable element is currently selected.|boolean|
32023202+|`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|
32033203+|`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}`|
32043204+|`aria-valuemax`|Specifies the maximum value for range-based components, taking precedence over the `max` value in the `accessibilityValue` prop.|number|
32053205+|`aria-valuemin`|Specifies the minimum value for range-based components, taking precedence over the `min` value in the `accessibilityValue` prop.|number|
32063206+|`aria-valuenow`|Represents the current value for range-based components, taking precedence over the `now` value in the `accessibilityValue` prop.|number|
32073207+|`aria-valuetext`|Provides a textual description of the component's value, taking precedence over the `text` value in the `accessibilityValue` prop.|string|
32083208+|`delayLongPress`|Duration (in milliseconds) from `onPressIn` before `onLongPress` is called.|number|
32093209+|`delayPressIn`|Duration (in milliseconds) from the start of a touch until `onPressIn` is invoked.|number|
32103210+|`delayPressOut`|Duration (in milliseconds) after releasing a touch before `onPressOut` is called.|number|
32113211+|`disabled`|If set to true, disables all interactions for this component.|bool|
32123212+|`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|
32133213+|`id`|Used to locate this view from native code, taking precedence over the `nativeID` prop.|string|
32143214+|`onBlur`|Invoked when the item loses focus.|function|
32153215+|`onFocus`|Invoked when the item receives focus.|function|
32163216+|`onLayout`|Called on mount and during layout changes.|`({nativeEvent: LayoutEvent}) => void`|
32173217+|`onLongPress`|Triggered if the time after `onPressIn` exceeds 370 milliseconds, customizable with `delayLongPress`.|function|
32183218+|`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|
32193219+|`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|
32203220+|`onPressOut`|Called immediately after a touch is released, prior to `onPress`. The first argument is an event in form of PressEvent.|function|
32213221+|`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|
32223222+|`nativeID`||string|
32233223+|`testID`|Used to locate this view in end-to-end tests.|string|
32243224+|`touchSoundDisabled` (Android)|If set to true, prevents the system sound from playing on touch.|Boolean|
3225322532263226-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:
32263226+## Text
3227322732283228#### Accessibility Properties
32293229···3743374337443744**Parameters:**
3745374537463746-| Name | Type | Required | Description |
37473747-| -------------- | ------ | -------- | ----------------------- |
37483748-| imageSizeLimit | number | Yes | Image cache size limit. |
37493749-| totalCostLimit | number | Yes | Total cache cost limit. |
37463746+|Name|Type|Required|Description|
37473747+|-|-|-|-|
37483748+|imageSizeLimit|number|Yes|Image cache size limit.|
37493749+|totalCostLimit|number|Yes|Total cache cost limit.|
3750375037513751In the example above, the image size limit is set to 4 MB and the total cost limit to 200 MB.
37523752···3782378237833783### Why Not Automatically Size Everything?
3784378437853785-_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.
37853785+*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.
3786378637873787-_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.
37873787+*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.
3788378837893789For example, the result of `require('./my-icon.png')` might be:
37903790···3907390739083908**Parameters:**
3909390939103910-| Name | Type | Required | Description |
39113911-| --- | --- | --- | --- |
39123912-| color | string | Yes | The ripple color |
39133913-| borderless | boolean | Yes | Determines if the ripple can render outside bounds |
39143914-| rippleRadius | ?number | No | Controls the radius of the ripple effect |
39103910+|Name|Type|Required|Description|
39113911+|-|-|-|-|
39123912+|color|string|Yes|The ripple color|
39133913+|borderless|boolean|Yes|Determines if the ripple can render outside bounds|
39143914+|rippleRadius|?number|No|Controls the radius of the ripple effect|
3915391539163916#### `canUseNativeForeground()`
39173917···3933393339343934##### `backgroundColor`
3935393539363936-| Type |
39373937-| ----- |
39383938-| color |
39363936+|Type|
39373937+|-|
39383938+|color|
3939393939403940##### `nativeID`
3941394139423942A unique identifier used to associate this `InputAccessoryView` with specific TextInput(s).
3943394339443944-| Type |
39453945-| ------ |
39463946-| string |
39443944+|Type|
39453945+|-|
39463946+|string|
3947394739483948##### `style`
3949394939503950-| Type |
39513951-| ---------- |
39523952-| View Style |
39503950+|Type|
39513951+|-|
39523952+|View Style|
3953395339543954### Known Issues
39553955···3994399439953995This property specifies whether the back face of a rotated image should be visible.
3996399639973997-| Type | Default |
39983998-| ----------------------------- | ----------- |
39993999-| enum(`'visible'`, `'hidden'`) | `'visible'` |
39973997+|Type|Default|
39983998+|-|-|
39993999+|enum(`'visible'`, `'hidden'`)|`'visible'`|
4000400040014001----
40014001+***
4002400240034003#### `backgroundColor`
4004400440054005-| Type |
40064006-| ----- |
40074007-| color |
40054005+|Type|
40064006+|-|
40074007+|color|
4008400840094009----
40094009+***
4010401040114011#### `borderBottomLeftRadius`
4012401240134013-| Type |
40144014-| ------ |
40154015-| number |
40134013+|Type|
40144014+|-|
40154015+|number|
4016401640174017----
40174017+***
4018401840194019#### `borderBottomRightRadius`
4020402040214021-| Type |
40224022-| ------ |
40234023-| number |
40214021+|Type|
40224022+|-|
40234023+|number|
4024402440254025----
40254025+***
4026402640274027#### `borderColor`
4028402840294029-| Type |
40304030-| ----- |
40314031-| color |
40294029+|Type|
40304030+|-|
40314031+|color|
4032403240334033----
40334033+***
4034403440354035#### `borderRadius`
4036403640374037-| Type |
40384038-| ------ |
40394039-| number |
40374037+|Type|
40384038+|-|
40394039+|number|
4040404040414041----
40414041+***
4042404240434043#### `borderTopLeftRadius`
4044404440454045-| Type |
40464046-| ------ |
40474047-| number |
40454045+|Type|
40464046+|-|
40474047+|number|
4048404840494049----
40494049+***
4050405040514051#### `borderTopRightRadius`
4052405240534053-| Type |
40544054-| ------ |
40554055-| number |
40534053+|Type|
40544054+|-|
40554055+|number|
4056405640574057----
40574057+***
4058405840594059#### `borderWidth`
4060406040614061-| Type |
40624062-| ------ |
40634063-| number |
40614061+|Type|
40624062+|-|
40634063+|number|
4064406440654065----
40654065+***
4066406640674067#### `opacity`
4068406840694069Sets the opacity level for the image, with values ranging from `0.0` to `1.0`.
4070407040714071-| Type | Default |
40724072-| ------ | ------- |
40734073-| number | `1.0` |
40714071+|Type|Default|
40724072+|-|-|
40734073+|number|`1.0`|
4074407440754075----
40754075+***
4076407640774077#### `overflow`
4078407840794079-| Type | Default |
40804080-| ----------------------------- | ----------- |
40814081-| enum(`'visible'`, `'hidden'`) | `'visible'` |
40794079+|Type|Default|
40804080+|-|-|
40814081+|enum(`'visible'`, `'hidden'`)|`'visible'`|
4082408240834083----
40834083+***
4084408440854085#### `overlayColor` (Android)
40864086···4090409040914091For more details, refer to the Fresco documentation.
4092409240934093-| Type |
40944094-| ------ |
40954095-| string |
40934093+|Type|
40944094+|-|
40954095+|string|
4096409640974097----
40974097+***
4098409840994099#### `resizeMode`
41004100···4113411341144114- **`center`:** Center the image along both dimensions. If larger than the view, scale it down uniformly to fit within the view.
4115411541164116-| Type | Default |
41174117-| --- | --- |
41184118-| enum(`'cover'`, `'contain'`, `'stretch'`, `'repeat'`, `'center'`) | `'cover'` |
41164116+|Type|Default|
41174117+|-|-|
41184118+|enum(`'cover'`, `'contain'`, `'stretch'`, `'repeat'`, `'center'`)|`'cover'`|
4119411941204120----
41204120+***
4121412141224122#### `objectFit`
4123412341244124Specifies how an image should be resized when its frame dimensions do not match the raw image dimensions.
4125412541264126-| Type | Default |
41274127-| ------------------------------------------------------ | --------- |
41284128-| enum(`'cover'`, `'contain'`, `'fill'`, `'scale-down'`) | `'cover'` |
41264126+|Type|Default|
41274127+|-|-|
41284128+|enum(`'cover'`, `'contain'`, `'fill'`, `'scale-down'`)|`'cover'`|
4129412941304130----
41304130+***
4131413141324132#### `tintColor`
4133413341344134Alters the color of all non-transparent pixels to the specified `tintColor`.
4135413541364136-| Type |
41374137-| ----- |
41384138-| color |
41364136+|Type|
41374137+|-|
41384138+|color|
4139413941404140## Shadow Properties in React Native
41414141···4187418741884188Sets the drop shadow color. This property functions only on Android API 28 and above. For similar effects on lower APIs, use the `elevation` property.
4189418941904190-| Type |
41914191-| ----- |
41924192-| color |
41904190+|Type|
41914191+|-|
41924192+|color|
4193419341944194#### `shadowOffset` (iOS)
4195419541964196Defines the drop shadow offset.
4197419741984198-| Type |
41994199-| ---------------------------------------- |
42004200-| object: `{width: number,height: number}` |
41984198+|Type|
41994199+|-|
42004200+|object: `{width: number,height: number}`|
4201420142024202#### `shadowOpacity` (iOS)
4203420342044204Determines the drop shadow opacity, factoring in the color's alpha component.
4205420542064206-| Type |
42074207-| ------ |
42084208-| number |
42064206+|Type|
42074207+|-|
42084208+|number|
4209420942104210#### `shadowRadius` (iOS)
4211421142124212Specifies the drop shadow blur radius.
4213421342144214-| Type |
42154215-| ------ |
42164216-| number |
42144214+|Type|
42154215+|-|
42164216+|number|
4217421742184218## Text Style Properties
42194219···45204520#### `boxShadow`
4521452145224522**Note:**\
45234523-`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.
45234523+`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.
4524452445254525Multiple shadows can be combined into a single `boxShadow`.
45264526···4751475147524752The 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.
4753475347544754-| Type | Optional |
47554755-| ---------------- | -------- |
47564756-| number \| string | No |
47544754+|Type|Optional|
47554755+|-|-|
47564756+|number \| string|No|
4757475747584758#### `offsetY`
4759475947604760The 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.
4761476147624762-| Type | Optional |
47634763-| ---------------- | -------- |
47644764-| number \| string | No |
47624762+|Type|Optional|
47634763+|-|-|
47644764+|number \| string|No|
4765476547664766#### `standardDeviation`
4767476747684768This 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.
4769476947704770-| Type | Optional |
47714771-| ---------------- | -------- |
47724772-| number \| string | Yes |
47704770+|Type|Optional|
47714771+|-|-|
47724772+|number \| string|Yes|
4773477347744774#### `color`
4775477547764776The color of the shadow. By default, this is set to `black`.
4777477747784778-| Type | Optional |
47794779-| ----- | -------- |
47804780-| color | Yes |
47784778+|Type|Optional|
47794779+|-|-|
47804780+|color|Yes|
4781478147824782### Used by
47834783···4807480748084808Represents the component's height after a layout change.
4809480948104810-| Type | Optional |
48114811-| ------ | -------- |
48124812-| number | No |
48104810+|Type|Optional|
48114811+|-|-|
48124812+|number|No|
4813481348144814#### `width`
4815481548164816Indicates the component's width following a layout change.
4817481748184818-| Type | Optional |
48194819-| ------ | -------- |
48204820-| number | No |
48184818+|Type|Optional|
48194819+|-|-|
48204820+|number|No|
4821482148224822#### `x`
4823482348244824Specifies the X coordinate of the component within its parent component.
4825482548264826-| Type | Optional |
48274827-| ------ | -------- |
48284828-| number | No |
48264826+|Type|Optional|
48274827+|-|-|
48284828+|number|No|
4829482948304830#### `y`
4831483148324832Denotes the Y coordinate of the component inside its parent component.
4833483348344834-| Type | Optional |
48354835-| ------ | -------- |
48364836-| number | No |
48344834+|Type|Optional|
48354835+|-|-|
48364836+|number|No|
4837483748384838#### `target`
4839483948404840Identifies the node ID of the element that receives the PressEvent. It can be a number, or it may be `null` or `undefined`.
4841484148424842-| Type | Optional |
48434843-| --------------------------- | -------- |
48444844-| number, `null`, `undefined` | No |
48424842+|Type|Optional|
48434843+|-|-|
48444844+|number, `null`, `undefined`|No|
4845484548464846### Components Utilizing LayoutEvent
48474847···4879487948804880An array containing all `PressEvents` that have changed since the last event.
4881488148824882-| Type | Optional |
48834883-| -------------------- | -------- |
48844884-| Array of PressEvents | No |
48824882+|Type|Optional|
48834883+|-|-|
48844884+|Array of PressEvents|No|
4885488548864886#### `force` (iOS)
4887488748884888The amount of force used during a 3D Touch press, represented as a float value ranging from `0.0` to `1.0`.
4889488948904890-| Type | Optional |
48914891-| ------ | -------- |
48924892-| number | Yes |
48904890+|Type|Optional|
48914891+|-|-|
48924892+|number|Yes|
4893489348944894#### `identifier`
4895489548964896A unique numeric identifier assigned to the event.
4897489748984898-| Type | Optional |
48994899-| ------ | -------- |
49004900-| number | No |
48984898+|Type|Optional|
48994899+|-|-|
49004900+|number|No|
4901490149024902#### `locationX`
4903490349044904The X coordinate of the touch origin within the touchable area, relative to the element.
4905490549064906-| Type | Optional |
49074907-| ------ | -------- |
49084908-| number | No |
49064906+|Type|Optional|
49074907+|-|-|
49084908+|number|No|
4909490949104910#### `locationY`
4911491149124912The Y coordinate of the touch origin within the touchable area, relative to the element.
4913491349144914-| Type | Optional |
49154915-| ------ | -------- |
49164916-| number | No |
49144914+|Type|Optional|
49154915+|-|-|
49164916+|number|No|
4917491749184918#### `pageX`
4919491949204920The X coordinate of the touch origin on the screen, relative to the root view.
4921492149224922-| Type | Optional |
49234923-| ------ | -------- |
49244924-| number | No |
49224922+|Type|Optional|
49234923+|-|-|
49244924+|number|No|
4925492549264926#### `pageY`
4927492749284928The Y coordinate of the touch origin on the screen, relative to the root view.
4929492949304930-| Type | Optional |
49314931-| ------ | -------- |
49324932-| number | No |
49304930+|Type|Optional|
49314931+|-|-|
49324932+|number|No|
4933493349344934#### `target`
4935493549364936The node ID of the element receiving the `PressEvent`. It can be a number or `null`/`undefined`.
4937493749384938-| Type | Optional |
49394939-| ----------------------- | -------- |
49404940-| number, null, undefined | No |
49384938+|Type|Optional|
49394939+|-|-|
49404940+|number, null, undefined|No|
4941494149424942#### `timestamp`
4943494349444944A timestamp value indicating when the `PressEvent` occurred, represented in milliseconds.
4945494549464946-| Type | Optional |
49474947-| ------ | -------- |
49484948-| number | No |
49464946+|Type|Optional|
49474947+|-|-|
49484948+|number|No|
4949494949504950#### `touches`
4951495149524952An array containing all current `PressEvents` on the screen.
4953495349544954-| Type | Optional |
49554955-| -------------------- | -------- |
49564956-| Array of PressEvents | No |
49544954+|Type|Optional|
49554955+|-|-|
49564956+|Array of PressEvents|No|
4957495749584958### Used By
49594959···4988498849894989#### `bottom`
4990499049914991-| Type | Required |
49924992-| --------------------------- | -------- |
49934993-| number, `null`, `undefined` | No |
49914991+|Type|Required|
49924992+|-|-|
49934993+|number, `null`, `undefined`|No|
4994499449954995#### `left`
4996499649974997-| Type | Required |
49984998-| --------------------------- | -------- |
49994999-| number, `null`, `undefined` | No |
49974997+|Type|Required|
49984998+|-|-|
49994999+|number, `null`, `undefined`|No|
5000500050015001#### `right`
5002500250035003-| Type | Required |
50045004-| --------------------------- | -------- |
50055005-| number, `null`, `undefined` | No |
50035003+|Type|Required|
50045004+|-|-|
50055005+|number, `null`, `undefined`|No|
5006500650075007#### `top`
5008500850095009-| Type | Required |
50105010-| --------------------------- | -------- |
50115011-| number, `null`, `undefined` | No |
50095009+|Type|Required|
50105010+|-|-|
50115011+|number, `null`, `undefined`|No|
5012501250135013### Used By
50145014···5483548354845484React 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:
5485548554865486-| React Native UI Component | Android View | iOS View | Web Analog | Description |
54875487-| --- | --- | --- | --- | --- |
54885488-| `<View>` | `<ViewGroup>` | `<UIView>` | A non-scrolling `<div>` | Acts as a container supporting layout with flexbox, style, touch handling, and accessibility controls. |
54895489-| `<Text>` | `<TextView>` | `<UITextView>` | `<p>` | Displays, styles, nests text strings, and handles touch events. |
54905490-| `<Image>` | `<ImageView>` | `<UIImageView>` | `<img>` | Used for displaying various types of images. |
54915491-| `<ScrollView>` | `<ScrollView>` | `<UIScrollView>` | `<div>` | A generic scrolling container that can hold multiple components and views. |
54925492-| `<TextInput>` | `<EditText>` | `<UITextField>` | `<input type="text">` | Enables user text input. |
54865486+|React Native UI Component|Android View|iOS View|Web Analog|Description|
54875487+|-|-|-|-|-|
54885488+|`<View>`|`<ViewGroup>`|`<UIView>`|A non-scrolling `<div>`|Acts as a container supporting layout with flexbox, style, touch handling, and accessibility controls.|
54895489+|`<Text>`|`<TextView>`|`<UITextView>`|`<p>`|Displays, styles, nests text strings, and handles touch events.|
54905490+|`<Image>`|`<ImageView>`|`<UIImageView>`|`<img>`|Used for displaying various types of images.|
54915491+|`<ScrollView>`|`<ScrollView>`|`<UIScrollView>`|`<div>`|A generic scrolling container that can hold multiple components and views.|
54925492+|`<TextInput>`|`<EditText>`|`<UITextField>`|`<input type="text">`|Enables user text input.|
5493549354945494In the following sections, you will learn how to combine these Core Components to understand React's workings better.
54955495···5669566956705670> 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`.
5671567156725672----
56725672+***
5673567356745674Having covered React and React Native’s Core Components, let's explore handling `<TextInput>` further.
56755675···5796579657975797Async 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.
5798579857995799-| **Use Async Storage When** | **Avoid Using Async Storage For** |
58005800-| --- | --- |
58015801-| Persisting non-sensitive data across app runs | Token storage |
58025802-| Persisting Redux state | Secrets |
58035803-| Persisting GraphQL state | |
58045804-| Storing global app-wide variables | |
57995799+|**Use Async Storage When**|**Avoid Using Async Storage For**|
58005800+|-|-|
58015801+|Persisting non-sensitive data across app runs|Token storage|
58025802+|Persisting Redux state|Secrets|
58035803+|Persisting GraphQL state||
58045804+|Storing global app-wide variables||
5805580558065806##### Developer Notes
58075807···6456645664576457### Remote JavaScript Debugging (Removed)
6458645864596459-_Note: This feature has been removed._
64596459+*Note: This feature has been removed.*
6460646064616461----
64616461+***
6462646264636463**Previous:** Debugging Release Builds\
64646464**Next:** Testing
···65366536- [Appium](#)
65376537- [Maestro](#)
6538653865396539-_This guide was authored by Vojtech Novak._
65396539+*This guide was authored by Vojtech Novak.*
6540654065416541## Performance Overview
65426542···6761676167626762#### removeClippedSubviews
6763676367646764-| Type | Default |
67656765-| ------- | ------- |
67666766-| Boolean | False |
67646764+|Type|Default|
67656765+|-|-|
67666766+|Boolean|False|
6767676767686768**Description:** When set to `true`, views outside of the viewport are detached from the native view hierarchy.
67696769···6773677367746774#### maxToRenderPerBatch
6775677567766776-| Type | Default |
67776777-| ------ | ------- |
67786778-| Number | 10 |
67766776+|Type|Default|
67776777+|-|-|
67786778+|Number|10|
6779677967806780**Description:** Controls the number of items rendered per batch during scrolling.
67816781···6785678567866786#### updateCellsBatchingPeriod
6787678767886788-| Type | Default |
67896789-| ------ | ------- |
67906790-| Number | 50 |
67886788+|Type|Default|
67896789+|-|-|
67906790+|Number|50|
6791679167926792**Description:** Sets the delay in milliseconds between batch renders for `VirtualizedList`.
67936793···6797679767986798#### initialNumToRender
6799679968006800-| Type | Default |
68016801-| ------ | ------- |
68026802-| Number | 10 |
68006800+|Type|Default|
68016801+|-|-|
68026802+|Number|10|
6803680368046804**Description:** Specifies the number of items to render initially.
68056805···6809680968106810#### windowSize
6811681168126812-| Type | Default |
68136813-| ------ | ------- |
68146814-| Number | 21 |
68126812+|Type|Default|
68136813+|-|-|
68146814+|Number|21|
6815681568166816**Description:** Measured in units where 1 equals the viewport height. The default is 21 (10 viewports above, 10 below, and one in between).
68176817···6916691669176917**Parameters:**
6918691869196919-| Name | Type | Description |
69206920-| --- | --- | --- |
69216921-| titleRequired | string | The dialog's title. Passing `null` or an empty string will hide the title. |
69226922-| message | string | An optional message displayed below the title. |
69236923-| buttons | AlertButton\[] | Optional array for button configurations. |
69246924-| options | AlertOptions | Optional configuration for the alert. |
69196919+|Name|Type|Description|
69206920+|-|-|-|
69216921+|titleRequired|string|The dialog's title. Passing `null` or an empty string will hide the title.|
69226922+|message|string|An optional message displayed below the title.|
69236923+|buttons|AlertButton\[]|Optional array for button configurations.|
69246924+|options|AlertOptions|Optional configuration for the alert.|
6925692569266926##### `prompt()` (iOS Only)
69276927···6940694069416941**Parameters:**
6942694269436943-| Name | Type | Description |
69446944-| --- | --- | --- |
69456945-| titleRequired | string | The dialog's title. |
69466946-| message | string | An optional message displayed above the text input. |
69476947-| 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. |
69486948-| type | AlertType | Configures the text input. |
69496949-| defaultValue | string | Default text in the input field. |
69506950-| keyboardType | string | Keyboard type for the first text field (if present). One of `TextInput` keyboard types. |
69516951-| options | AlertOptions | Optional configuration for the alert. |
69436943+|Name|Type|Description|
69446944+|-|-|-|
69456945+|titleRequired|string|The dialog's title.|
69466946+|message|string|An optional message displayed above the text input.|
69476947+|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.|
69486948+|type|AlertType|Configures the text input.|
69496949+|defaultValue|string|Default text in the input field.|
69506950+|keyboardType|string|Keyboard type for the first text field (if present). One of `TextInput` keyboard types.|
69516951+|options|AlertOptions|Optional configuration for the alert.|
6952695269536953#### Type Definitions
69546954···6958695869596959**Constants:**
6960696069616961-| Value | Description |
69626962-| --------------- | ------------------------- |
69636963-| `'default'` | Default button style. |
69646964-| `'cancel'` | Cancel button style. |
69656965-| `'destructive'` | Destructive button style. |
69616961+|Value|Description|
69626962+|-|-|
69636963+|`'default'`|Default button style.|
69646964+|`'cancel'`|Cancel button style.|
69656965+|`'destructive'`|Destructive button style.|
6966696669676967##### `AlertType` (iOS Only)
69686968···6970697069716971**Constants:**
6972697269736973-| Value | Description |
69746974-| ------------------ | ---------------------------- |
69756975-| `'default'` | Default alert with no inputs |
69766976-| `'plain-text'` | Plain text input alert |
69776977-| `'secure-text'` | Secure text input alert |
69786978-| `'login-password'` | Login and password alert |
69736973+|Value|Description|
69746974+|-|-|
69756975+|`'default'`|Default alert with no inputs|
69766976+|`'plain-text'`|Plain text input alert|
69776977+|`'secure-text'`|Secure text input alert|
69786978+|`'login-password'`|Login and password alert|
6979697969806980##### `AlertButton`
69816981···6983698369846984**Properties:**
6985698569866986-| Name | Type | Description |
69876987-| --- | --- | --- |
69886988-| text | string | Button label. |
69896989-| onPress | function | Callback when the button is pressed. |
69906990-| styleiOS | AlertButtonStyle | Button style, ignored on Android. |
69916991-| isPreferrediOS | boolean | Whether to emphasize the button, ignored on Android. |
69866986+|Name|Type|Description|
69876987+|-|-|-|
69886988+|text|string|Button label.|
69896989+|onPress|function|Callback when the button is pressed.|
69906990+|styleiOS|AlertButtonStyle|Button style, ignored on Android.|
69916991+|isPreferrediOS|boolean|Whether to emphasize the button, ignored on Android.|
6992699269936993##### `AlertOptions`
69946994···6996699669976997**Properties:**
6998699869996999-| Name | Type | Description |
70007000-| --- | --- | --- |
70017001-| cancelableAndroid | boolean | Determines if the alert can be dismissed by tapping outside of it. |
70027002-| userInterfaceStyleiOS | string | Interface style for the alert, set to `light` or `dark`, otherwise defaults to system style. |
70037003-| onDismissAndroid | function | Callback fired when the alert is dismissed. |
69996999+|Name|Type|Description|
70007000+|-|-|-|
70017001+|cancelableAndroid|boolean|Determines if the alert can be dismissed by tapping outside of it.|
70027002+|userInterfaceStyleiOS|string|Interface style for the alert, set to `light` or `dark`, otherwise defaults to system style.|
70037003+|onDismissAndroid|function|Callback fired when the alert is dismissed.|
7004700470057005## Optimizing JavaScript Loading
70067006···804280421. **Fabric Native Components**
80438043 - Android & iOS
8044804480458045----
80458045+***
8046804680478047**Previous:** The Codegen CLI\
80488048**Next:** Android and iOS
···8095809580968096The **React Native Hooks** library offers a convenient `useBackHandler` hook that simplifies setting up event listeners.
8097809780988098----
80988098+***
8099809981008100## Reference Methods
81018101···8283828382848284- (instancetype)init { if (self = \[super init]) { \_localStorage = \[\[NSUserDefaults alloc] initWithSuiteName:RCTNativeLocalStorageKey]; } return self; }
8285828582868286-- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params { return std::make_shared<facebook::react::NativeLocalStorageSpecJSI>(params); }
82868286+- (std::shared\_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params { return std::make\_shared<facebook::react::NativeLocalStorageSpecJSI>(params); }
8287828782888288- (NSString \* \_Nullable)getItem:(NSString \*)key { return \[self.localStorage stringForKey:key]; }
82898289···8948894889498949The following table serves as a reference for supported types and their mappings across different platforms:
8950895089518951-| Flow | TypeScript | Flow Nullable Support | TypeScript Nullable Support | Android (Java) | iOS (ObjC) |
89528952-| --- | --- | --- | --- | --- | --- |
89538953-| `string` | `string` | `?string` | `string \| null` | `string` | `NSString` |
89548954-| `boolean` | `boolean` | `?boolean` | `boolean \| null` | `Boolean` | `NSNumber` |
89558955-| Object Literal `{ foo: string, ...}` | `{ foo: string, ...} as const` | `?{ foo: string, ...}` | `?{ foo: string, ...} as const` | - | - |
89568956-| Object \[1] | Object \[1] | `?Object` | `Object \| null` | `ReadableMap` | `@` (untyped dictionary) |
89578957-| `Array<T>` | `Array<T>` | `?Array<T>` | `Array<T> \| null` | `ReadableArray` | `NSArray` (or `RCTConvertVecToArray` when used inside objects) |
89588958-| `Function` | `Function` | `?Function` | `Function \| null` | - | - |
89598959-| `Promise<T>` | `Promise<T>` | `?Promise<T>` | `Promise<T> \| null` | `com.facebook.react.bridge.Promise` | `RCTPromiseResolve` and `RCTPromiseRejectBlock` |
89608960-| Type Unions `'SUCCESS'\|'FAIL'` | Type Unions `'SUCCESS'\|'FAIL'` | Only as callbacks | | - | - |
89618961-| Callbacks `() =>` | Callbacks `() =>` | Yes | | `com.facebook.react.bridge.Callback` | `RCTResponseSenderBlock` |
89628962-| `number` | `number` | No | | `double` | `NSNumber` |
89518951+|Flow|TypeScript|Flow Nullable Support|TypeScript Nullable Support|Android (Java)|iOS (ObjC)|
89528952+|-|-|-|-|-|-|
89538953+|`string`|`string`|`?string`|`string \| null`|`string`|`NSString`|
89548954+|`boolean`|`boolean`|`?boolean`|`boolean \| null`|`Boolean`|`NSNumber`|
89558955+|Object Literal `{ foo: string, ...}`|`{ foo: string, ...} as const`|`?{ foo: string, ...}`|`?{ foo: string, ...} as const`|-|-|
89568956+|Object \[1]|Object \[1]|`?Object`|`Object \| null`|`ReadableMap`|`@` (untyped dictionary)|
89578957+|`Array<T>`|`Array<T>`|`?Array<T>`|`Array<T> \| null`|`ReadableArray`|`NSArray` (or `RCTConvertVecToArray` when used inside objects)|
89588958+|`Function`|`Function`|`?Function`|`Function \| null`|-|-|
89598959+|`Promise<T>`|`Promise<T>`|`?Promise<T>`|`Promise<T> \| null`|`com.facebook.react.bridge.Promise`|`RCTPromiseResolve` and `RCTPromiseRejectBlock`|
89608960+|Type Unions `'SUCCESS'\|'FAIL'`|Type Unions `'SUCCESS'\|'FAIL'`|Only as callbacks||-|-|
89618961+|Callbacks `() =>`|Callbacks `() =>`|Yes||`com.facebook.react.bridge.Callback`|`RCTResponseSenderBlock`|
89628962+|`number`|`number`|No||`double`|`NSNumber`|
8963896389648964#### Notes:
89658965···89958995 - A valid npm name (all lowercase, using `-` for word separation)
89968996 - A description for your package
8997899789988998-1. Follow the interactive menu until you reach the question: _"What type of library do you want to develop?"_
89988998+1. Follow the interactive menu until you reach the question: *"What type of library do you want to develop?"*
8999899990009000-1. Select _Turbo module_ for this guide. You can create libraries for both New and Legacy Architectures.
90009000+1. Select *Turbo module* for this guide. You can create libraries for both New and Legacy Architectures.
90019001900290021. Choose whether your library will access platform-specific code (Kotlin & Objective-C) or use a shared C++ library.
90039003···9417941794189418Not all libraries require this step. Consider:
9419941994209420-_Do I need to know the contents of the library at compile time?_
94209420+*Do I need to know the contents of the library at compile time?*
9421942194229422This means, are you using the library on the native side or only in JavaScript? If it's just JavaScript, no further action is needed.
94239423···9669966996709670##### Parameters:
9671967196729672-| Name | Type | Required | Description |
96739673-| --- | --- | --- | --- |
96749674-| config | object | Yes | Configuration details (see below). |
96759675-| onAnimationDidEnd | function | No | Callback when the animation finishes. |
96769676-| onAnimationDidFail | function | No | Callback if the animation fails. |
96729672+|Name|Type|Required|Description|
96739673+|-|-|-|-|
96749674+|config|object|Yes|Configuration details (see below).|
96759675+|onAnimationDidEnd|function|No|Callback when the animation finishes.|
96769676+|onAnimationDidFail|function|No|Callback if the animation fails.|
9677967796789678The `config` parameter is an object with the following keys:
96799679···9707970797089708An enumeration of animation types used in the `create` method or within the `create`/`update`/`delete` configurations for `configureNext`.
9709970997109710-| Type |
97119711-| ------------- |
97129712-| spring |
97139713-| linear |
97149714-| easeInEaseOut |
97159715-| easeIn |
97169716-| easeOut |
97179717-| keyboard |
97109710+|Type|
97119711+|-|
97129712+|spring|
97139713+|linear|
97149714+|easeInEaseOut|
97159715+|easeIn|
97169716+|easeOut|
97179717+|keyboard|
9718971897199719#### Properties
9720972097219721An enumeration of layout properties that can be animated, used in the `create` method or within the `create`/`update`/`delete` configurations for `configureNext`.
9722972297239723-| Property |
97249724-| -------- |
97259725-| opacity |
97269726-| scaleX |
97279727-| scaleY |
97289728-| scaleXY |
97239723+|Property|
97249724+|-|
97259725+|opacity|
97269726+|scaleX|
97279727+|scaleY|
97289728+|scaleXY|
9729972997309730#### Presets
9731973197329732Predefined animation configurations to use with `configureNext`.
9733973397349734-| Preset | Value |
97359735-| --- | --- |
97369736-| easeInEaseOut | `{ create: { type: 'easeInEaseOut', property: 'opacity' } }` |
97379737-| linear | `{ create: { type: 'linear', property: 'opacity' } }` |
97389738-| spring | `{ duration: 700, create: { type: 'linear', property: 'opacity' }, update: { type: 'spring', springDamping: 0.4 }, delete: { type: 'linear', property: 'opacity' } }` |
97349734+|Preset|Value|
97359735+|-|-|
97369736+|easeInEaseOut|`{ create: { type: 'easeInEaseOut', property: 'opacity' } }`|
97379737+|linear|`{ create: { type: 'linear', property: 'opacity' } }`|
97389738+|spring|`{ duration: 700, create: { type: 'linear', property: 'opacity' }, update: { type: 'spring', springDamping: 0.4 }, delete: { type: 'linear', property: 'opacity' } }`|
9739973997409740#### `easeInEaseOut`
97419741···97949794- `'dark'`: User prefers a dark theme.
97959795- `null`: No preference indicated.
9796979697979797-_Note_: When debugging with Chrome, this method always returns `'light'`.
97979797+*Note*: When debugging with Chrome, this method always returns `'light'`.
9798979897999799##### `setColorScheme()`
98009800···98109810- `'dark'`: Apply dark user interface.
98119811- `null`: Follow the system's interface style.
9812981298139813-_Note_: This change does not affect other applications or the system's overall settings.
98139813+*Note*: This change does not affect other applications or the system's overall settings.
9814981498159815##### `addChangeListener()`
98169816···9908990899099909**Parameters:**
9910991099119911-| Name | Type | Description |
99129912-| --- | --- | --- |
99139913-| **taskKey** | `string` | Required, the native ID for this task instance used when startHeadlessTask was called. |
99149914-| **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. |
99159915-| **taskCancelProvider** | `TaskCancelProvider` | Required, a void-returning function with no arguments; when cancellation is requested, the taskProvider should wrap up and return ASAP. |
99119911+|Name|Type|Description|
99129912+|-|-|-|
99139913+|**taskKey**|`string`|Required, the native ID for this task instance used when startHeadlessTask was called.|
99149914+|**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.|
99159915+|**taskCancelProvider**|`TaskCancelProvider`|Required, a void-returning function with no arguments; when cancellation is requested, the taskProvider should wrap up and return ASAP.|
9916991699179917##### `registerComponent()`
99189918···9926992699279927**Parameters:**
9928992899299929-| Name | Type | |
99309930-| -------------------- | ------------------- | -------- |
99319931-| **appKey** | `string` | |
99329932-| **getComponentFunc** | `ComponentProvider` | Required |
99339933-| **section** | `boolean` | |
99299929+|Name|Type||
99309930+|-|-|-|
99319931+|**appKey**|`string`||
99329932+|**getComponentFunc**|`ComponentProvider`|Required|
99339933+|**section**|`boolean`||
9934993499359935##### `registerConfig()`
99369936···9955995599569956**Parameters:**
9957995799589958-| Name | Type | Description |
99599959-| --- | --- | --- |
99609960-| **taskKey** | `string` | Required, the native ID for this task instance used when startHeadlessTask was called. |
99619961-| **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. |
99589958+|Name|Type|Description|
99599959+|-|-|-|
99609960+|**taskKey**|`string`|Required, the native ID for this task instance used when startHeadlessTask was called.|
99619961+|**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.|
9962996299639963##### `registerRunnable()`
99649964···9968996899699969**Parameters:**
9970997099719971-| Name | Type |
99729972-| ---------- | ---------- |
99739973-| **appKey** | `string` |
99749974-| **func** | `function` |
99719971+|Name|Type|
99729972+|-|-|
99739973+|**appKey**|`string`|
99749974+|**func**|`function`|
9975997599769976##### `registerSection()`
99779977···9984998499859985**Parameters:**
9986998699879987-| Name | Type | |
99889988-| ------------- | ------------------- | -------- |
99899989-| **appKey** | `string` | |
99909990-| **component** | `ComponentProvider` | Required |
99879987+|Name|Type||
99889988+|-|-|-|
99899989+|**appKey**|`string`||
99909990+|**component**|`ComponentProvider`|Required|
9991999199929992##### `runApplication()`
99939993···999999991000010000**Parameters:**
10001100011000210002-| Name | Type |
1000310003-| ----------------- | -------- |
1000410004-| **appKey** | `string` |
1000510005-| **appParameters** | `any` |
1000210002+|Name|Type|
1000310003+|-|-|
1000410004+|**appKey**|`string`|
1000510005+|**appParameters**|`any`|
10006100061000710007##### `setComponentProviderInstrumentationHook()`
1000810008···10018100181001910019A valid `hook` function accepts the following as arguments:
10020100201002110021-| Name | Type | |
1002210022-| --------------------------- | -------------------- | -------- |
1002310023-| **component** | `ComponentProvider` | Required |
1002410024-| **scopedPerformanceLogger** | `IPerformanceLogger` | Required |
1002110021+|Name|Type||
1002210022+|-|-|-|
1002310023+|**component**|`ComponentProvider`|Required|
1002410024+|**scopedPerformanceLogger**|`IPerformanceLogger`|Required|
10025100251002610026The function must return a React Component.
1002710027···10051100511005210052**Parameters:**
10053100531005410054-| Name | Type | Description |
1005510055-| --- | --- | --- |
1005610056-| **taskId** | `number` | Required, the native ID for this task instance to track its execution. |
1005710057-| **taskKey** | `string` | Required, the key for the task to start. |
1005810058-| **data** | `any` | Required, the data to pass to the task. |
1005410054+|Name|Type|Description|
1005510055+|-|-|-|
1005610056+|**taskId**|`number`|Required, the native ID for this task instance to track its execution.|
1005710057+|**taskKey**|`string`|Required, the key for the task to start.|
1005810058+|**data**|`any`|Required, the data to pass to the task.|
10059100591006010060##### `unmountApplicationComponentAtRootTag()`
1006110061···10079100791008010080**Properties:**
10081100811008210082-| Name | Type | |
1008310083-| ---------- | ------------------- | -------- |
1008410084-| **appKey** | `string` | Required |
1008510085-| component | `ComponentProvider` | |
1008610086-| run | `function` | |
1008710087-| section | `boolean` | |
1008210082+|Name|Type||
1008310083+|-|-|-|
1008410084+|**appKey**|`string`|Required|
1008510085+|component|`ComponentProvider`||
1008610086+|run|`function`||
1008710087+|section|`boolean`||
10088100881008910089> **Note:** Every config must set either the `component` or `run` function.
1009010090···10094100941009510095**Properties:**
10096100961009710097-| Name | Type |
1009810098-| --------- | ------------------ |
1009910099-| runnables | Array of Runnables |
1010010100-| sections | Array of strings |
1009710097+|Name|Type|
1009810098+|-|-|
1009910099+|runnables|Array of Runnables|
1010010100+|sections|Array of strings|
10101101011010210102#### Runnable
1010310103···10105101051010610106**Properties:**
10107101071010810108-| Name | Type |
1010910109-| --------- | ------------------- |
1011010110-| component | `ComponentProvider` |
1011110111-| run | `function` |
1010810108+|Name|Type|
1010910109+|-|-|
1011010110+|component|`ComponentProvider`|
1011110111+|run|`function`|
10112101121011310113#### Runnables
1011410114···10279102791028010280Default renderer for every item in every section. Can be overridden per-section. Should return a React element.
10281102811028210282-| Type |
1028310283-| -------- |
1028410284-| function |
1028210282+|Type|
1028310283+|-|
1028410284+|function|
10285102851028610286The render function receives an object with:
1028710287···10299102991030010300The data to render, similar to the `data` prop in `FlatList`.
10301103011030210302-| Type |
1030310303-| ----------------- |
1030410304-| array of Sections |
1030210302+|Type|
1030310303+|-|
1030410304+|array of Sections|
10305103051030610306##### `extraData`
10307103071030810308A 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.
10309103091031010310-| Type |
1031110311-| ---- |
1031210312-| any |
1031010310+|Type|
1031110311+|-|
1031210312+|any|
10313103131031410314##### `initialNumToRender`
10315103151031610316Number 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.
10317103171031810318-| Type | Default |
1031910319-| ------ | ------- |
1032010320-| number | `10` |
1031810318+|Type|Default|
1031910319+|-|-|
1032010320+|number|`10`|
10321103211032210322##### `inverted`
10323103231032410324Reverses the direction of scroll using scale transforms of -1.
10325103251032610326-| Type | Default |
1032710327-| ------- | ------- |
1032810328-| boolean | `false` |
1032610326+|Type|Default|
1032710327+|-|-|
1032810328+|boolean|`false`|
10329103291033010330##### `ItemSeparatorComponent`
10331103311033210332Rendered 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.
10333103331033410334-| Type |
1033510335-| ---------------------------- |
1033610336-| component, function, element |
1033410334+|Type|
1033510335+|-|
1033610336+|component, function, element|
10337103371033810338##### `keyExtractor`
10339103391034010340Extracts 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.
10341103411034210342-| Type |
1034310343-| --------------------------------------- |
1034410344-| (item: object, index: number) => string |
1034210342+|Type|
1034310343+|-|
1034410344+|(item: object, index: number) => string|
10345103451034610346##### `ListEmptyComponent`
10347103471034810348Rendered when the list is empty. Can be a React Component or element.
10349103491035010350-| Type |
1035110351-| ------------------ |
1035210352-| component, element |
1035010350+|Type|
1035110351+|-|
1035210352+|component, element|
10353103531035410354##### `ListFooterComponent`
10355103551035610356Rendered at the end of the list. Can be a React Component or element.
10357103571035810358-| Type |
1035910359-| ------------------ |
1036010360-| component, element |
1035810358+|Type|
1035910359+|-|
1036010360+|component, element|
10361103611036210362##### `ListHeaderComponent`
10363103631036410364Rendered at the beginning of the list. Can be a React Component or element.
10365103651036610366-| Type |
1036710367-| ------------------ |
1036810368-| component, element |
1036610366+|Type|
1036710367+|-|
1036810368+|component, element|
10369103691037010370##### `onRefresh`
10371103711037210372Adds "Pull to Refresh" functionality if provided. Ensure the `refreshing` prop is set correctly. Use `progressViewOffset={100}` to offset from the top.
10373103731037410374-| Type |
1037510375-| -------- |
1037610376-| function |
1037410374+|Type|
1037510375+|-|
1037610376+|function|
10377103771037810378##### `onViewableItemsChanged`
10379103791038010380Called when viewability of rows changes, as defined by the `viewabilityConfig` prop.
10381103811038210382-| Type |
1038310383-| ------------------------------------------------------------------------ |
1038410384-| `(callback: {changed: ViewToken[], viewableItems: ViewToken[]}) => void` |
1038210382+|Type|
1038310383+|-|
1038410384+|`(callback: {changed: ViewToken[], viewableItems: ViewToken[]}) => void`|
10385103851038610386##### `refreshing`
10387103871038810388Set to true while waiting for new data from a refresh.
10389103891039010390-| Type | Default |
1039110391-| ------- | ------- |
1039210392-| boolean | `false` |
1039010390+|Type|Default|
1039110391+|-|-|
1039210392+|boolean|`false`|
10393103931039410394##### `removeClippedSubviews`
10395103951039610396> Note: May have bugs (missing content) in some circumstances - use at your own risk. This may improve scroll performance for large lists.
10397103971039810398-| Type | Default |
1039910399-| ------- | ------- |
1040010400-| boolean | `false` |
1039810398+|Type|Default|
1039910399+|-|-|
1040010400+|boolean|`false`|
10401104011040210402##### `renderSectionFooter`
10403104031040410404Rendered at the bottom of each section.
10405104051040610406-| Type |
1040710407-| ----------------------------------------------- |
1040810408-| `(info: {section: Section}) => element | null` |
1040610406+|Type|
1040710407+|-|
1040810408+|`(info: {section: Section}) => element | null`|
10409104091041010410##### `renderSectionHeader`
10411104111041210412Rendered at the top of each section. Sticks to the top by default on iOS unless `stickySectionHeadersEnabled` is set otherwise.
10413104131041410414-| Type |
1041510415-| ----------------------------------------------- |
1041610416-| `(info: {section: Section}) => element | null` |
1041410414+|Type|
1041510415+|-|
1041610416+|`(info: {section: Section}) => element | null`|
10417104171041810418##### `SectionSeparatorComponent`
10419104191042010420Rendered at the top and bottom of each section, different from `ItemSeparatorComponent`. Receives `highlighted`, `[leading/trailing][Item/Section]`, and custom props via `separators.updateProps`.
10421104211042210422-| Type |
1042310423-| ------------------ |
1042410424-| component, element |
1042210422+|Type|
1042310423+|-|
1042410424+|component, element|
10425104251042610426##### `stickySectionHeadersEnabled`
10427104271042810428Makes section headers stick to the top of the screen until pushed off by the next one. Enabled by default on iOS.
10429104291043010430-| Type | Default |
1043110431-| ------- | ----------------------------- |
1043210432-| boolean | `false`Android\*\*\*`true`iOS |
1043010430+|Type|Default|
1043110431+|-|-|
1043210432+|boolean|`false`Android\*\*\*`true`iOS|
10433104331043410434### Methods
1043510435···10459104591046010460**Parameters:**
10461104611046210462-| Name | Type |
1046310463-| -------------- | ------ |
1046410464-| paramsRequired | object |
1046210462+|Name|Type|
1046310463+|-|-|
1046410464+|paramsRequired|object|
10465104651046610466Valid `params` keys:
1046710467···10477104771047810478An object identifying data to be rendered for a given section.
10479104791048010480-| Type |
1048110481-| ---- |
1048210482-| any |
1048010480+|Type|
1048110481+|-|
1048210482+|any|
10483104831048410484**Properties:**
10485104851048610486-| Name | Type | Description |
1048710487-| --- | --- | --- |
1048810488-| dataRequired | array | Data for rendering items in this section. Array of objects, similar to `FlatList`'s data prop. |
1048910489-| key | string | Optional key for tracking section re-ordering. Defaults to array index if not specified. |
1049010490-| renderItem | function | Optionally define an arbitrary item renderer for this section, overriding the default `renderItem`. |
1049110491-| ItemSeparatorComponent | component, element | Optionally define an arbitrary item separator for this section, overriding the default `ItemSeparatorComponent`. |
1049210492-| keyExtractor | function | Optionally define a custom key extractor for this section, overriding the default `keyExtractor`. |
1048610486+|Name|Type|Description|
1048710487+|-|-|-|
1048810488+|dataRequired|array|Data for rendering items in this section. Array of objects, similar to `FlatList`'s data prop.|
1048910489+|key|string|Optional key for tracking section re-ordering. Defaults to array index if not specified.|
1049010490+|renderItem|function|Optionally define an arbitrary item renderer for this section, overriding the default `renderItem`.|
1049110491+|ItemSeparatorComponent|component, element|Optionally define an arbitrary item separator for this section, overriding the default `ItemSeparatorComponent`.|
1049210492+|keyExtractor|function|Optionally define a custom key extractor for this section, overriding the default `keyExtractor`.|
10493104931049410494## AccessibilityInfo
1049510495···10497104971049810498### Example
10499104991050010500-_Example content omitted._
1050010500+*Example content omitted.*
10501105011050210502### Reference
1050310503···10516105161051710517Adds an event handler for various accessibility-related events. Supported events include:
10518105181051910519-| Event Name | Description |
1052010520-| --- | --- |
1052110521-| `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`. |
1052210522-| `announcementFinished` (iOS) | Fires after the screen reader finishes an announcement. Argument includes: - `announcement`: The announced string.<br>- `success`: Boolean indicating success of the announcement. |
1052310523-| `boldTextChanged` (iOS) | Fires when bold text toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`. |
1052410524-| `grayscaleChanged` (iOS) | Fires when grayscale toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`. |
1052510525-| `invertColorsChanged` (iOS) | Fires when invert colors toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`. |
1052610526-| `reduceMotionChanged` | Fires when reduce motion toggle state changes. Argument is a boolean: `true` if enabled or "Animation off" in Developer options, otherwise `false`. |
1052710527-| `reduceTransparencyChanged` (iOS) | Fires when reduce transparency toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`. |
1052810528-| `screenReaderChanged` | Fires when the screen reader's state changes. Argument is a boolean: `true` if enabled, otherwise `false`. |
1051910519+|Event Name|Description|
1052010520+|-|-|
1052110521+|`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`.|
1052210522+|`announcementFinished` (iOS)|Fires after the screen reader finishes an announcement. Argument includes: - `announcement`: The announced string.<br>- `success`: Boolean indicating success of the announcement.|
1052310523+|`boldTextChanged` (iOS)|Fires when bold text toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`.|
1052410524+|`grayscaleChanged` (iOS)|Fires when grayscale toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`.|
1052510525+|`invertColorsChanged` (iOS)|Fires when invert colors toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`.|
1052610526+|`reduceMotionChanged`|Fires when reduce motion toggle state changes. Argument is a boolean: `true` if enabled or "Animation off" in Developer options, otherwise `false`.|
1052710527+|`reduceTransparencyChanged` (iOS)|Fires when reduce transparency toggle state changes. Argument is a boolean: `true` if enabled, otherwise `false`.|
1052810528+|`screenReaderChanged`|Fires when the screen reader's state changes. Argument is a boolean: `true` if enabled, otherwise `false`.|
10529105291053010530##### `announceForAccessibility()`
1053110531···10548105481054910549**Parameters:**
10550105501055110551-| Name | Type | Description |
1055210552-| --- | --- | --- |
1055310553-| announcement | string | The string to be announced. |
1055410554-| options | object | Contains `queue`: If set to `true`, queues the announcement behind existing speech on iOS. |
1055110551+|Name|Type|Description|
1055210552+|-|-|-|
1055310553+|announcement|string|The string to be announced.|
1055410554+|options|object|Contains `queue`: If set to `true`, queues the announcement behind existing speech on iOS.|
10555105551055610556##### `getRecommendedTimeoutMillis()` (Android)
1055710557···10563105631056410564**Parameters:**
10565105651056610566-| Name | Type | Description |
1056710567-| --- | --- | --- |
1056810568-| originalTimeout | number | The fallback timeout in milliseconds if no accessibility timeout is set. |
1056610566+|Name|Type|Description|
1056710567+|-|-|-|
1056810568+|originalTimeout|number|The fallback timeout in milliseconds if no accessibility timeout is set.|
10569105691057010570##### `isAccessibilityServiceEnabled()` (Android)
1057110571···10699106991070010700### Example
10701107011070210702----
1070210702+***
10703107031070410704### Reference
1070510705···10715107151071610716**Properties:**
10717107171071810718-| Name | Type | Optional | Description |
1071910719-| --- | --- | --- | --- |
1072010720-| isTesting | boolean | No | |
1072110721-| reactNativeVersion | object | No | Information about React Native version. Keys are `major`, `minor`, `patch` with optional `prerelease` and values are `number`s. |
1072210722-| VersionAndroid | number | No | OS version constant specific to Android. |
1072310723-| ReleaseAndroid | string | No | |
1072410724-| SerialAndroid | string | No | Hardware serial number of an Android device. |
1072510725-| FingerprintAndroid | string | No | A unique identifier for the build. |
1072610726-| ModelAndroid | string | No | The end-user-visible name for the Android device. |
1072710727-| BrandAndroid | string | No | The consumer-visible brand associated with the product/hardware. |
1072810728-| ManufacturerAndroid | string | No | The manufacturer of the Android device. |
1072910729-| ServerHostAndroid | string | Yes | |
1073010730-| uiModeAndroid | string | No | Possible values: `'car'`, `'desk'`, `'normal'`,`'tv'`, `'watch'` and `'unknown'`. Read more about Android ModeType. |
1073110731-| forceTouchAvailableiOS | boolean | No | Indicates the availability of 3D Touch on a device. |
1073210732-| interfaceIdiomiOS | string | No | The interface type for the device. Read more about UIUserInterfaceIdiom. |
1073310733-| osVersioniOS | string | No | OS version constant specific to iOS. |
1073410734-| systemNameiOS | string | No | OS name constant specific to iOS. |
1071810718+|Name|Type|Optional|Description|
1071910719+|-|-|-|-|
1072010720+|isTesting|boolean|No||
1072110721+|reactNativeVersion|object|No|Information about React Native version. Keys are `major`, `minor`, `patch` with optional `prerelease` and values are `number`s.|
1072210722+|VersionAndroid|number|No|OS version constant specific to Android.|
1072310723+|ReleaseAndroid|string|No||
1072410724+|SerialAndroid|string|No|Hardware serial number of an Android device.|
1072510725+|FingerprintAndroid|string|No|A unique identifier for the build.|
1072610726+|ModelAndroid|string|No|The end-user-visible name for the Android device.|
1072710727+|BrandAndroid|string|No|The consumer-visible brand associated with the product/hardware.|
1072810728+|ManufacturerAndroid|string|No|The manufacturer of the Android device.|
1072910729+|ServerHostAndroid|string|Yes||
1073010730+|uiModeAndroid|string|No|Possible values: `'car'`, `'desk'`, `'normal'`,`'tv'`, `'watch'` and `'unknown'`. Read more about Android ModeType.|
1073110731+|forceTouchAvailableiOS|boolean|No|Indicates the availability of 3D Touch on a device.|
1073210732+|interfaceIdiomiOS|string|No|The interface type for the device. Read more about UIUserInterfaceIdiom.|
1073310733+|osVersioniOS|string|No|OS version constant specific to iOS.|
1073410734+|systemNameiOS|string|No|OS name constant specific to iOS.|
10735107351073610736----
1073610736+***
10737107371073810738#### `isPad`iOS
1073910739···10743107431074410744Returns a boolean indicating if the device is an iPad.
10745107451074610746-| Type |
1074710747-| ------- |
1074810748-| boolean |
1074610746+|Type|
1074710747+|-|
1074810748+|boolean|
10749107491075010750----
1075010750+***
10751107511075210752#### `isTV`
1075310753···10757107571075810758Returns a boolean indicating if the device is a TV.
10759107591076010760-| Type |
1076110761-| ------- |
1076210762-| boolean |
1076010760+|Type|
1076110761+|-|
1076210762+|boolean|
10763107631076410764----
1076410764+***
10765107651076610766#### `isVision`
1076710767···10771107711077210772Returns 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`.
10773107731077410774-| Type |
1077510775-| ------- |
1077610776-| boolean |
1077410774+|Type|
1077510775+|-|
1077610776+|boolean|
10777107771077810778----
1077810778+***
10779107791078010780#### `isTesting`
1078110781···10785107851078610786Returns a boolean indicating if the application is running in Developer Mode with the testing flag set.
10787107871078810788-| Type |
1078910789-| ------- |
1079010790-| boolean |
1078810788+|Type|
1078910789+|-|
1079010790+|boolean|
10791107911079210792----
1079210792+***
10793107931079410794#### `OS`
1079510795···10799107991080010800Returns a string representing the current operating system.
10801108011080210802-| Type |
1080310803-| -------------------------- |
1080410804-| enum(`'android'`, `'ios'`) |
1080210802+|Type|
1080310803+|-|
1080410804+|enum(`'android'`, `'ios'`)|
10805108051080610806----
1080610806+***
10807108071080810808#### `Version`
1080910809···10813108131081410814Returns the version of the OS, as either a number for Android or a string for iOS.
10815108151081610816-| Type |
1081710817-| ---------------------------- |
1081810818-| numberAndroid\*\*\*stringiOS |
1081610816+|Type|
1081710817+|-|
1081810818+|numberAndroid\*\*\*stringiOS|
10819108191082010820### Methods
1082110821···10829108291083010830##### Parameters:
10831108311083210832-| Name | Type | Required | Description |
1083310833-| ------ | ------ | -------- | ------------------------------------ |
1083410834-| config | object | Yes | See configuration description below. |
1083210832+|Name|Type|Required|Description|
1083310833+|-|-|-|-|
1083410834+|config|object|Yes|See configuration description below.|
10835108351083610836The `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.
1083710837···11453114531145411454**Parameters:**
11455114551145611456-| Name | Type |
1145711457-| ------- | -------- |
1145811458-| title | string |
1145911459-| handler | function |
1145611456+|Name|Type|
1145711457+|-|-|
1145811458+|title|string|
1145911459+|handler|function|
11460114601146111461**Example Usage:**
1146211462···1148011480<Button title="Reload" onPress={() => DevSettings.reload()} />
1148111481```
11482114821148311483----
1148311483+***
11484114841148511485### Related Modules
1148611486···11555115551155611556**Properties:**
11557115571155811558-| Name | Type | Description |
1155911559-| --- | --- | --- |
1156011560-| 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. |
1156111561-| options | object | - Android: `dialogTitle`<br>- iOS: `excludedActivityTypes`, `subject` (a subject for email), `tintColor`, `anchor` (node to anchor the action sheet, used on iPad) |
1155811558+|Name|Type|Description|
1155911559+|-|-|-|
1156011560+|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.|
1156111561+|options|object|- Android: `dialogTitle`<br>- iOS: `excludedActivityTypes`, `subject` (a subject for email), `tintColor`, `anchor` (node to anchor the action sheet, used on iPad)|
11562115621156311563### Properties
1156411564···1158911589- A **React element**, which results from JSX.
1159011590- An array containing any of the above types, potentially nested.
11591115911159211592----
1159211592+***
11593115931159411594### Related Object Types
1159511595···1160011600- Rect Object Type
1160111601- ViewToken Object Type
11602116021160311603----
1160311603+***
11604116041160511605#### Navigation
1160611606···11713117131171411714- `change`: Triggers when a property within the `Dimensions` object changes. The argument to the event handler is of type `DimensionsValue`.
11715117151171611716----
1171611716+***
11717117171171811718#### `get()`
1171911719···11731117311173211732**Parameters:**
11733117331173411734-| Name | Type | Description |
1173511735-| --- | --- | --- |
1173611736-| dimRequired | string | The name of the dimension as defined when calling `set`. Returns value for the dimension. |
1173411734+|Name|Type|Description|
1173511735+|-|-|-|
1173611736+|dimRequired|string|The name of the dimension as defined when calling `set`. Returns value for the dimension.|
11737117371173811738> Note: On Android, the `window` dimension excludes the size used by the status bar (if not translucent) and bottom navigation bar.
11739117391174011740----
1174011740+***
11741117411174211742### Type Definitions
1174311743···11745117451174611746**Properties:**
11747117471174811748-| Name | Type | Description |
1174911749-| ------ | ---------- | --------------------------------------- |
1175011750-| window | ScaledSize | Size of the visible Application window. |
1175111751-| screen | ScaledSize | Size of the device's screen. |
1174811748+|Name|Type|Description|
1174911749+|-|-|-|
1175011750+|window|ScaledSize|Size of the visible Application window.|
1175111751+|screen|ScaledSize|Size of the device's screen.|
11752117521175311753#### ScaledSize
11754117541175511755-| Type |
1175611756-| ------ |
1175711757-| object |
1175511755+|Type|
1175611756+|-|
1175711757+|object|
11758117581175911759**Properties:**
11760117601176111761-| Name | Type |
1176211762-| --------- | ------ |
1176311763-| width | number |
1176411764-| height | number |
1176511765-| scale | number |
1176611766-| fontScale | number |
1176111761+|Name|Type|
1176211762+|-|-|
1176311763+|width|number|
1176411764+|height|number|
1176511765+|scale|number|
1176611766+|fontScale|number|
11767117671176811768## Props in React Native
1176911769···11830118301183111831**Parameters:**
11832118321183311833-- **value**: _number_ (Required) - The new value to set.
1183311833+- **value**: *number* (Required) - The new value to set.
11834118341183511835##### `setOffset()`
1183611836···11842118421184311843**Parameters:**
11844118441184511845-- **offset**: _number_ (Required) - The offset value to apply.
1184511845+- **offset**: *number* (Required) - The offset value to apply.
11846118461184711847##### `flattenOffset()`
1184811848···11870118701187111871**Parameters:**
11872118721187311873-- **callback**: _function_ (Required) - A function receiving an object with a `value` key set to the new value.
1187311873+- **callback**: *function* (Required) - A function receiving an object with a `value` key set to the new value.
11874118741187511875##### `removeListener()`
1187611876···11882118821188311883**Parameters:**
11884118841188511885-- **id**: _string_ (Required) - The identifier of the listener being removed.
1188511885+- **id**: *string* (Required) - The identifier of the listener being removed.
11886118861188711887##### `removeAllListeners()`
1188811888···11902119021190311903**Parameters:**
11904119041190511905-- **callback**: _function_ (Optional) - A function receiving the final value after stopping the animation.
1190511905+- **callback**: *function* (Optional) - A function receiving the final value after stopping the animation.
11906119061190711907##### `resetAnimation()`
1190811908···11914119141191511915**Parameters:**
11916119161191711917-- **callback**: _function_ (Optional) - A function receiving the original value after resetting the animation.
1191711917+- **callback**: *function* (Optional) - A function receiving the original value after resetting the animation.
11918119181191911919##### `interpolate()`
1192011920···11926119261192711927**Parameters:**
11928119281192911929-- **config**: _object_ (Required) - Configuration object with keys:
1193011930- - **inputRange**: _array of numbers_
1193111931- - **outputRange**: _array of numbers or strings_
1193211932- - **easing** (optional): _function_ returning a number given an input number
1193311933- - **extrapolate** (optional): _string_ such as 'extend', 'identity', or 'clamp'
1193411934- - **extrapolateLeft** (optional): _string_ such as 'extend', 'identity', or 'clamp'
1193511935- - **extrapolateRight** (optional): _string_ such as 'extend', 'identity', or 'clamp'
1192911929+- **config**: *object* (Required) - Configuration object with keys:
1193011930+ - **inputRange**: *array of numbers*
1193111931+ - **outputRange**: *array of numbers or strings*
1193211932+ - **easing** (optional): *function* returning a number given an input number
1193311933+ - **extrapolate** (optional): *string* such as 'extend', 'identity', or 'clamp'
1193411934+ - **extrapolateLeft** (optional): *string* such as 'extend', 'identity', or 'clamp'
1193511935+ - **extrapolateRight** (optional): *string* such as 'extend', 'identity', or 'clamp'
11936119361193711937##### `animate()`
1193811938···11944119441194511945**Parameters:**
11946119461194711947-| Name | Type | Required | Description |
1194811948-| --------- | --------- | -------- | ------------------- |
1194911949-| animation | Animation | Yes | See `Animation.js`. |
1195011950-| callback | function | Yes | Callback function. |
1194711947+|Name|Type|Required|Description|
1194811948+|-|-|-|-|
1194911949+|animation|Animation|Yes|See `Animation.js`.|
1195011950+|callback|function|Yes|Callback function.|
11951119511195211952## Systrace
1195311953···12244122441224512245On iOS devices, vibration functionality is achieved using the `AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)` method.
12246122461224712247----
1224712247+***
12248122481224912249### Reference
1225012250···12258122581225912259This method stops any ongoing vibrations that were initiated with a repeating pattern by calling `vibrate()`.
12260122601226112261----
1226112261+***
12262122621226312263##### `vibrate()`
1226412264···12278122781227912279**Parameters:**
12280122801228112281-| Name | Type | Default | Description |
1228212282-| --- | --- | --- | --- |
1228312283-| pattern | number \| number\[] | `400` | Specifies either a single duration for vibration in milliseconds or an array of times. |
1228412284-| repeat | boolean | `false` | If true, the vibration pattern will continue until `cancel()` is called. |
1228112281+|Name|Type|Default|Description|
1228212282+|-|-|-|-|
1228312283+|pattern|number \| number\[]|`400`|Specifies either a single duration for vibration in milliseconds or an array of times.|
1228412284+|repeat|boolean|`false`|If true, the vibration pattern will continue until `cancel()` is called.|
12285122851228612286## Animated.ValueXY
1228712287···12289122891229012290### Example
12291122911229212292-_Example content not provided._
1229212292+*Example content not provided.*
12293122931229412294### Reference
1229512295···12464124641246512465This 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.
12466124661246712467----
1246712467+***
12468124681246912469#### `height`
1247012470···12474124741247512475Represents the height in pixels of the window or screen that your application occupies.
12476124761247712477----
1247712477+***
12478124781247912479#### `scale`
1248012480···1248712487- `1`: One point equals one pixel (commonly PPI/DPI of 96, 76 on some platforms).
1248812488- `2` or `3`: Indicates a Retina or high DPI display.
12489124891249012490----
1249012490+***
12491124911249212492#### `width`
1249312493···12526125261252712527**Parameters:**
12528125281252912529-| Name | Type | Description |
1253012530-| --- | --- | --- |
1253112531-| `eventType` | string | Identifies the event you're listening for. See list below. |
1253212532-| `listener` | function | The callback function executed when the event occurs. |
1252912529+|Name|Type|Description|
1253012530+|-|-|-|
1253112531+|`eventType`|string|Identifies the event you're listening for. See list below.|
1253212532+|`listener`|function|The callback function executed when the event occurs.|
12533125331253412534**Supported Events:**
1253512535···12657126571265812658**Parameters:**
12659126591266012660-| Name | Type | Required | Description |
1266112661-| ---------- | ------ | -------- | ---------------------------- |
1266212662-| permission | string | Yes | The permission to check for. |
1266012660+|Name|Type|Required|Description|
1266112661+|-|-|-|-|
1266212662+|permission|string|Yes|The permission to check for.|
12663126631266412664##### `request()`
1266512665···12682126821268312683**Parameters:**
12684126841268512685-| Name | Type | Required | Description |
1268612686-| ---------- | ------ | -------- | -------------------------- |
1268712687-| permission | string | Yes | The permission to request. |
1268812688-| rationale | object | No | See `rationale` below. |
1268512685+|Name|Type|Required|Description|
1268612686+|-|-|-|-|
1268712687+|permission|string|Yes|The permission to request.|
1268812688+|rationale|object|No|See `rationale` below.|
12689126891269012690**Rationale:**
12691126911269212692-| Name | Type | Required | Description |
1269312693-| -------------- | ------ | -------- | -------------------------------- |
1269412694-| title | string | Yes | The title of the dialog. |
1269512695-| message | string | Yes | The message of the dialog. |
1269612696-| buttonPositive | string | Yes | The text of the positive button. |
1269712697-| buttonNegative | string | No | The text of the negative button. |
1269812698-| buttonNeutral | string | No | The text of the neutral button. |
1269212692+|Name|Type|Required|Description|
1269312693+|-|-|-|-|
1269412694+|title|string|Yes|The title of the dialog.|
1269512695+|message|string|Yes|The message of the dialog.|
1269612696+|buttonPositive|string|Yes|The text of the positive button.|
1269712697+|buttonNegative|string|No|The text of the negative button.|
1269812698+|buttonNeutral|string|No|The text of the neutral button.|
12699126991270012700##### `requestMultiple()`
1270112701···12709127091271012710**Parameters:**
12711127111271212712-| Name | Type | Required | Description |
1271312713-| ----------- | ----- | -------- | -------------------------------- |
1271412714-| permissions | array | Yes | Array of permissions to request. |
1271212712+|Name|Type|Required|Description|
1271312713+|-|-|-|-|
1271412714+|permissions|array|Yes|Array of permissions to request.|
12715127151271612716## Signing Your Android Application for Distribution
1271712717
+25-2
src/prettier.ts
···11import { format } from 'prettier';
22+import { unified } from 'unified';
33+import remarkParse from 'remark-parse';
44+import remarkStringify from 'remark-stringify';
55+import remarkGfm from 'remark-gfm';
66+77+async function reformat(content: string): Promise<string> {
88+ // NOTE: We reformat with remark again to get rid of prettier's
99+ // table formatting mostly. This doesn't work well as LLM input
1010+ const md = await unified()
1111+ .use(remarkParse, { fragment: true })
1212+ .use(remarkGfm, {
1313+ tablePipeAlign: false,
1414+ tableCellPadding: false,
1515+ })
1616+ .use(remarkStringify, {
1717+ bullet: '-',
1818+ incrementListMarker: false,
1919+ ruleSpaces: false,
2020+ tightDefinitions: true,
2121+ })
2222+ .process(content);
2323+ return md.toString();
2424+}
225326export async function formatMarkdown(input: string) {
44- return format(input, {
2727+ return reformat(await format(input, {
528 semi: false,
629 singleQuote: false,
730 trailingComma: 'es5',
831 proseWrap: 'never',
932 parser: 'markdown',
1010- });
3333+ }));
1134}