vybekiit 0.7.26 → 0.7.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/dist/bin.js +3891 -1301
  2. package/dist/global-skills/aws-cdk/SKILL.md +19 -5
  3. package/dist/global-skills/aws-cdk/references/fast-deployments.md +191 -0
  4. package/dist/global-skills/aws-cdk/references/troubleshooting-deployment.md +16 -0
  5. package/dist/global-skills/aws-cloudformation/SKILL.md +16 -26
  6. package/dist/global-skills/aws-cloudformation/references/check-cloudformation-template-compliance.script.md +7 -3
  7. package/dist/global-skills/aws-cloudformation/references/cloudformation-language-server.md +177 -0
  8. package/dist/global-skills/aws-cloudformation/references/cloudformation-pre-deploy-validation.script.md +8 -2
  9. package/dist/global-skills/aws-cloudformation/references/persist-template-context.script.md +5 -8
  10. package/dist/global-skills/aws-cloudformation/references/retrieve-template-context.script.md +1 -1
  11. package/dist/global-skills/aws-cloudformation/references/security-considerations.md +51 -0
  12. package/dist/global-skills/aws-cloudformation/references/troubleshoot-failed-stack.script.md +138 -0
  13. package/dist/global-skills/aws-cloudformation/references/{validate-cloudformation-template.script.md → validate-with-cfn-lint.script.md} +15 -27
  14. package/dist/global-skills/aws-cloudformation/references/validate-with-cloudformation-validate.script.md +181 -0
  15. package/dist/global-skills/aws-cloudformation/references/validation-tool-selection.md +44 -0
  16. package/dist/global-skills/aws-serverless/SKILL.md +9 -1
  17. package/dist/global-skills/aws-serverless/references/architecture.md +3 -1
  18. package/dist/global-skills/aws-serverless/references/lambda.md +3 -1
  19. package/dist/global-skills/aws-serverless/references/orchestration.md +1 -0
  20. package/dist/global-skills/better-auth-best-practices/SKILL.md +18 -8
  21. package/dist/global-skills/eas-app-stores/SKILL.md +31 -15
  22. package/dist/global-skills/eas-app-stores/agents/openai.yaml +2 -2
  23. package/dist/global-skills/eas-app-stores/references/ios-app-store.md +37 -32
  24. package/dist/global-skills/eas-app-stores/references/native-ios.md +167 -0
  25. package/dist/global-skills/eas-app-stores/references/play-store.md +3 -7
  26. package/dist/global-skills/eas-app-stores/references/testflight.md +39 -35
  27. package/dist/global-skills/eas-simulator/SKILL.md +48 -26
  28. package/dist/global-skills/eas-simulator/references/controllers.md +32 -3
  29. package/dist/global-skills/eas-simulator/references/run-your-app.md +34 -4
  30. package/dist/global-skills/eas-simulator/references/troubleshooting.md +8 -4
  31. package/dist/global-skills/eas-update/SKILL.md +146 -0
  32. package/dist/global-skills/eas-update/agents/openai.yaml +4 -0
  33. package/dist/global-skills/expo-animation/RECIPES.md +2 -2
  34. package/dist/global-skills/expo-animation/SKILL.md +9 -2
  35. package/dist/global-skills/expo-brownfield/SKILL.md +18 -11
  36. package/dist/global-skills/expo-brownfield/agents/openai.yaml +2 -2
  37. package/dist/global-skills/expo-brownfield/references/brownfield-integrated.md +94 -69
  38. package/dist/global-skills/expo-brownfield/references/brownfield-isolated.md +40 -42
  39. package/dist/global-skills/expo-brownfield/references/comparison.md +5 -5
  40. package/dist/global-skills/expo-brownfield/references/feature-integration.md +163 -0
  41. package/dist/global-skills/expo-brownfield/references/troubleshooting.md +17 -17
  42. package/dist/global-skills/expo-brownfield/references/version-compatibility.md +40 -0
  43. package/dist/global-skills/expo-data-fetching/SKILL.md +27 -6
  44. package/dist/global-skills/expo-design-system/SKILL.md +27 -7
  45. package/dist/global-skills/expo-design-system/references/audit.md +7 -2
  46. package/dist/global-skills/expo-design-system/references/native-slop.md +74 -0
  47. package/dist/global-skills/expo-examples/SKILL.md +0 -1
  48. package/dist/global-skills/expo-examples/references/catalog.md +1 -1
  49. package/dist/global-skills/expo-migrate-module/SKILL.md +21 -10
  50. package/dist/global-skills/expo-migrate-module/references/compatibility.md +80 -23
  51. package/dist/global-skills/expo-migrate-module/references/migration-map.md +162 -11
  52. package/dist/global-skills/expo-native-ui/SKILL.md +25 -16
  53. package/dist/global-skills/expo-native-ui/agents/openai.yaml +2 -2
  54. package/dist/global-skills/expo-native-ui/references/controls.md +5 -46
  55. package/dist/global-skills/expo-native-ui/references/icons.md +21 -2
  56. package/dist/global-skills/expo-native-ui/references/media.md +15 -20
  57. package/dist/global-skills/expo-native-ui/references/visual-effects.md +12 -11
  58. package/dist/global-skills/expo-overview/SKILL.md +17 -12
  59. package/dist/global-skills/expo-router/SKILL.md +5 -3
  60. package/dist/global-skills/expo-router/references/tabs.md +5 -5
  61. package/dist/global-skills/expo-upgrade/SKILL.md +3 -1
  62. package/dist/global-skills/expo-web-to-native/references/false-friends.md +2 -2
  63. package/dist/global-skills/expo-web-to-native/references/native-patterns.md +1 -1
  64. package/dist/global-skills/firebase-ai-logic-basics/SKILL.md +13 -16
  65. package/dist/global-skills/firebase-ai-logic-basics/references/ios_setup.md +4 -5
  66. package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_android.md +4 -4
  67. package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_web.md +3 -3
  68. package/dist/global-skills/firebase-auth-basics/SKILL.md +11 -6
  69. package/dist/global-skills/firebase-auth-basics/references/client_sdk_android.md +4 -5
  70. package/dist/global-skills/firebase-auth-basics/references/client_sdk_web.md +3 -3
  71. package/dist/global-skills/firebase-auth-basics/references/flutter_setup.md +24 -25
  72. package/dist/global-skills/firebase-auth-basics/references/security_rules.md +4 -2
  73. package/dist/global-skills/firebase-crashlytics/references/android_setup.md +7 -4
  74. package/dist/global-skills/firebase-crashlytics/references/ios_setup.md +2 -3
  75. package/dist/global-skills/firebase-data-connect/SKILL.md +2 -1
  76. package/dist/global-skills/firebase-data-connect/examples.md +4 -4
  77. package/dist/global-skills/firebase-data-connect/reference/config.md +5 -4
  78. package/dist/global-skills/firebase-data-connect/reference/realtime.md +1 -2
  79. package/dist/global-skills/firebase-data-connect/reference/sdk_flutter.md +2 -2
  80. package/dist/global-skills/firebase-data-connect/reference/sdk_ios.md +2 -2
  81. package/dist/global-skills/firebase-data-connect/reference/sdk_web.md +17 -6
  82. package/dist/global-skills/firebase-data-connect/reference/security.md +5 -5
  83. package/dist/global-skills/firebase-data-connect/templates.md +2 -1
  84. package/dist/global-skills/firebase-firestore/SKILL.md +20 -8
  85. package/dist/global-skills/firebase-firestore/references/enterprise/android_sdk_usage.md +5 -4
  86. package/dist/global-skills/firebase-firestore/references/enterprise/data_model.md +12 -3
  87. package/dist/global-skills/firebase-firestore/references/enterprise/indexes.md +16 -18
  88. package/dist/global-skills/firebase-firestore/references/enterprise/provisioning.md +1 -1
  89. package/dist/global-skills/firebase-firestore/references/enterprise/python_sdk_usage.md +5 -1
  90. package/dist/global-skills/firebase-firestore/references/enterprise/web_sdk_usage.md +7 -7
  91. package/dist/global-skills/firebase-firestore/references/standard/android_sdk_usage.md +5 -5
  92. package/dist/global-skills/firebase-firestore/references/standard/flutter_setup.md +4 -4
  93. package/dist/global-skills/firebase-firestore/references/standard/indexes.md +16 -18
  94. package/dist/global-skills/firebase-firestore/references/standard/provisioning.md +1 -1
  95. package/dist/global-skills/firebase-remote-config-basics/SKILL.md +0 -5
  96. package/dist/global-skills/firebase-remote-config-basics/references/android_setup.md +36 -8
  97. package/dist/global-skills/firebase-remote-config-basics/references/ios_setup.md +1 -7
  98. package/dist/global-skills/firebase-security-rules-auditor/SKILL.md +17 -6
  99. package/dist/global-skills/{firebase-firestore/references/standard/security_rules.md → firestore-rules-creation/SKILL.md} +24 -13
  100. package/dist/global-skills/grow-my-customers/SKILL.md +23 -0
  101. package/dist/global-skills/instrument-feature-flags/SKILL.md +25 -25
  102. package/dist/global-skills/instrument-feature-flags/references/adding-feature-flag-code.md +141 -285
  103. package/dist/global-skills/instrument-feature-flags/references/android.md +6 -15
  104. package/dist/global-skills/instrument-feature-flags/references/api.md +4 -11
  105. package/dist/global-skills/instrument-feature-flags/references/best-practices.md +1 -13
  106. package/dist/global-skills/instrument-feature-flags/references/django.md +14 -27
  107. package/dist/global-skills/instrument-feature-flags/references/dotnet.md +20 -79
  108. package/dist/global-skills/instrument-feature-flags/references/elixir.md +1 -9
  109. package/dist/global-skills/instrument-feature-flags/references/flask.md +13 -13
  110. package/dist/global-skills/instrument-feature-flags/references/flutter.md +3 -24
  111. package/dist/global-skills/instrument-feature-flags/references/go.md +3 -15
  112. package/dist/global-skills/instrument-feature-flags/references/ios.md +4 -17
  113. package/dist/global-skills/instrument-feature-flags/references/java.md +5 -13
  114. package/dist/global-skills/instrument-feature-flags/references/laravel.md +13 -17
  115. package/dist/global-skills/instrument-feature-flags/references/next-js.md +25 -32
  116. package/dist/global-skills/instrument-feature-flags/references/nodejs.md +8 -15
  117. package/dist/global-skills/instrument-feature-flags/references/php.md +1 -15
  118. package/dist/global-skills/instrument-feature-flags/references/python.md +2 -15
  119. package/dist/global-skills/instrument-feature-flags/references/react-native.md +13 -15
  120. package/dist/global-skills/instrument-feature-flags/references/react.md +17 -21
  121. package/dist/global-skills/instrument-feature-flags/references/ruby-on-rails.md +37 -83
  122. package/dist/global-skills/instrument-feature-flags/references/ruby.md +2 -15
  123. package/dist/global-skills/instrument-feature-flags/references/rust.md +13 -25
  124. package/dist/global-skills/instrument-feature-flags/references/usage.md +14 -63
  125. package/dist/global-skills/instrument-feature-flags/references/web.md +9 -14
  126. package/dist/global-skills/instrument-product-analytics/SKILL.md +29 -29
  127. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-hybrid.md +3 -1
  128. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-ssr.md +3 -1
  129. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-static.md +3 -1
  130. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-view-transitions.md +3 -1
  131. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby-on-rails.md +3 -1
  132. package/dist/global-skills/instrument-product-analytics/references/android.md +72 -107
  133. package/dist/global-skills/instrument-product-analytics/references/angular.md +26 -28
  134. package/dist/global-skills/instrument-product-analytics/references/astro.md +13 -24
  135. package/dist/global-skills/instrument-product-analytics/references/configuration.md +45 -63
  136. package/dist/global-skills/instrument-product-analytics/references/django.md +14 -27
  137. package/dist/global-skills/instrument-product-analytics/references/dotnet.md +20 -79
  138. package/dist/global-skills/instrument-product-analytics/references/elixir.md +47 -49
  139. package/dist/global-skills/instrument-product-analytics/references/flask.md +13 -13
  140. package/dist/global-skills/instrument-product-analytics/references/flutter.md +60 -90
  141. package/dist/global-skills/instrument-product-analytics/references/go.md +17 -56
  142. package/dist/global-skills/instrument-product-analytics/references/identify-users.md +15 -15
  143. package/dist/global-skills/instrument-product-analytics/references/ios.md +11 -15
  144. package/dist/global-skills/instrument-product-analytics/references/laravel.md +13 -17
  145. package/dist/global-skills/instrument-product-analytics/references/next-js.md +25 -32
  146. package/dist/global-skills/instrument-product-analytics/references/nuxt-js-3-6.md +13 -27
  147. package/dist/global-skills/instrument-product-analytics/references/nuxt-js.md +14 -28
  148. package/dist/global-skills/instrument-product-analytics/references/php.md +33 -84
  149. package/dist/global-skills/instrument-product-analytics/references/posthog-python.md +229 -9
  150. package/dist/global-skills/instrument-product-analytics/references/python.md +415 -106
  151. package/dist/global-skills/instrument-product-analytics/references/react-native.md +161 -155
  152. package/dist/global-skills/instrument-product-analytics/references/react-router-v6.md +12 -33
  153. package/dist/global-skills/instrument-product-analytics/references/react-router-v7-data-mode.md +15 -33
  154. package/dist/global-skills/instrument-product-analytics/references/react-router-v7-declarative-mode.md +12 -33
  155. package/dist/global-skills/instrument-product-analytics/references/react-router-v7-framework-mode.md +26 -41
  156. package/dist/global-skills/instrument-product-analytics/references/ruby-on-rails.md +37 -83
  157. package/dist/global-skills/instrument-product-analytics/references/ruby.md +48 -108
  158. package/dist/global-skills/instrument-product-analytics/references/svelte.md +18 -24
  159. package/dist/global-skills/instrument-product-analytics/references/tanstack-start.md +17 -19
  160. package/dist/global-skills/instrument-product-analytics/references/usage.md +14 -63
  161. package/dist/global-skills/instrument-product-analytics/references/vue-js.md +29 -28
  162. package/dist/global-skills/manifest.json +8 -2
  163. package/dist/global-skills/mongodb-search-and-ai/SKILL.md +28 -37
  164. package/dist/global-skills/mongodb-search-and-ai/references/automated-embedding.md +438 -0
  165. package/dist/global-skills/mongodb-search-and-ai/references/hybrid-search.md +60 -4
  166. package/dist/global-skills/mongodb-search-and-ai/references/vector-search.md +46 -108
  167. package/dist/global-skills/neon/SKILL.md +207 -213
  168. package/dist/global-skills/neon/references/auth.md +12 -0
  169. package/dist/global-skills/neon/references/claimable-neon.md +10 -14
  170. package/dist/global-skills/neon/references/function-triggers.md +53 -0
  171. package/dist/global-skills/neon/references/logs-loki.md +61 -0
  172. package/dist/global-skills/neon/references/parse-env.md +32 -0
  173. package/dist/global-skills/neon/references/sdk.md +7 -0
  174. package/dist/global-skills/neon-ai-gateway/SKILL.md +14 -16
  175. package/dist/global-skills/neon-auth/SKILL.md +155 -0
  176. package/dist/global-skills/neon-auth/references/managed-auth.md +173 -0
  177. package/dist/global-skills/neon-auth/references/self-managed.md +25 -0
  178. package/dist/global-skills/neon-functions/SKILL.md +159 -84
  179. package/dist/global-skills/neon-functions/references/ai-sdk.md +4 -6
  180. package/dist/global-skills/neon-functions/references/function-triggers.md +249 -0
  181. package/dist/global-skills/neon-functions/references/mastra-studio.md +3 -3
  182. package/dist/global-skills/neon-functions/references/mcp.md +1 -1
  183. package/dist/global-skills/neon-functions/references/production-hardening.md +340 -0
  184. package/dist/global-skills/neon-functions/references/sse.md +8 -5
  185. package/dist/global-skills/neon-object-storage/SKILL.md +10 -11
  186. package/dist/global-skills/neon-postgres/SKILL.md +120 -17
  187. package/dist/global-skills/neon-postgres/references/full-text-search.md +99 -0
  188. package/dist/global-skills/neon-postgres/references/hybrid-search.md +90 -0
  189. package/dist/global-skills/neon-postgres/references/lakebase-search-drizzle.md +172 -0
  190. package/dist/global-skills/neon-postgres/references/vector-search.md +137 -0
  191. package/dist/global-skills/neon-postgres-branches/SKILL.md +3 -3
  192. package/dist/global-skills/neon-postgres-egress-optimizer/SKILL.md +1 -1
  193. package/dist/global-skills/onboarding/SKILL.md +8 -6
  194. package/dist/global-skills/resend/SKILL.md +4 -2
  195. package/dist/global-skills/resend/references/broadcasts.md +6 -1
  196. package/dist/global-skills/resend/references/receiving.md +29 -10
  197. package/dist/global-skills/resend/references/sending/email-management.md +14 -4
  198. package/dist/global-skills/resend/references/topics.md +9 -6
  199. package/dist/global-skills/resend/references/usage.md +117 -0
  200. package/dist/global-skills/resend/references/webhooks.md +59 -2
  201. package/dist/global-skills/stripe-best-practices/SKILL.md +35 -29
  202. package/dist/global-skills/stripe-best-practices/references/billing.md +9 -2
  203. package/dist/global-skills/stripe-best-practices/references/payments.md +4 -2
  204. package/dist/global-skills/stripe-best-practices/references/security.md +3 -1
  205. package/dist/global-skills/stripe-best-practices/references/tax.md +39 -20
  206. package/dist/global-skills/supabase/SKILL.md +6 -0
  207. package/dist/global-skills/use-railway/SKILL.md +42 -22
  208. package/dist/global-skills/use-railway/references/analyze-db.md +7 -6
  209. package/dist/global-skills/use-railway/references/cloud-agents.md +70 -0
  210. package/dist/global-skills/use-railway/references/configure.md +17 -2
  211. package/dist/global-skills/use-railway/references/databases.md +107 -0
  212. package/dist/global-skills/use-railway/references/deploy.md +5 -5
  213. package/dist/global-skills/use-railway/references/feature-flags.md +25 -13
  214. package/dist/global-skills/use-railway/references/iac.md +66 -77
  215. package/dist/global-skills/use-railway/references/operate.md +26 -3
  216. package/dist/global-skills/use-railway/references/request.md +31 -23
  217. package/dist/global-skills/use-railway/references/setup.md +16 -5
  218. package/dist/global-skills/use-railway/references/tracing.md +261 -0
  219. package/dist/global-skills/use-railway/references/usage.md +52 -0
  220. package/dist/global-skills/validate-my-idea/SKILL.md +54 -0
  221. package/dist/global-skills/{feedback → vybekiit-feedback}/SKILL.md +16 -12
  222. package/dist/global-skills/watch-my-app/SKILL.md +53 -0
  223. package/dist/global-skills/workers-best-practices/SKILL.md +36 -103
  224. package/dist/global-skills/workers-best-practices/references/configuration.md +139 -0
  225. package/dist/global-skills/workers-best-practices/references/platform-apis.md +51 -0
  226. package/dist/global-skills/workers-best-practices/references/{rules.md → runtime-patterns.md} +13 -137
  227. package/dist/global-skills/wrangler/SKILL.md +48 -901
  228. package/dist/global-skills/xcode-project-setup/scripts/xcode_spm_setup/Sources/main.swift +19 -15
  229. package/package.json +9 -8
  230. package/dist/global-skills/expo-native-ui/references/animations.md +0 -220
  231. package/dist/global-skills/firebase-firestore/references/enterprise/security_rules.md +0 -577
  232. package/dist/global-skills/workers-best-practices/references/review.md +0 -174
@@ -3,19 +3,24 @@ import XcodeProj
3
3
  import PathKit
4
4
 
5
5
  func isUserScriptSandboxingEnabled(project: PBXProj) -> Bool {
6
- guard let target = project.projects.first else {
7
- print("Error: No project targets found")
8
- return false
9
- }
10
-
11
- for configuration in target.buildConfigurationList?.buildConfigurations ?? [] {
12
- if let userSandbox = configuration.buildSettings["ENABLE_USER_SCRIPT_SANDBOXING"] as? String {
13
- return userSandbox.uppercased() == "YES"
6
+ let targetConfigs =
7
+ project.nativeTargets.first?.buildConfigurationList?.buildConfigurations ?? []
8
+ let rootConfigs =
9
+ project.projects.first?.buildConfigurationList?.buildConfigurations ?? []
10
+ let buildConfigs = targetConfigs + rootConfigs
11
+ var hasExplicitSetting = false
12
+ for configuration in buildConfigs {
13
+ if let userSandbox =
14
+ configuration.buildSettings["ENABLE_USER_SCRIPT_SANDBOXING"] as? String {
15
+ hasExplicitSetting = true
16
+ if userSandbox.uppercased() == "YES" {
17
+ return true
18
+ }
14
19
  }
15
20
  }
16
21
 
17
22
  // If the value is absent, assume it is the default "YES"
18
- return true
23
+ return !hasExplicitSetting
19
24
  }
20
25
 
21
26
  func hasCrashlyticsRunScriptBuildPhase(project: PBXProj) -> Bool {
@@ -66,13 +71,12 @@ func addCrashlyticsRunScriptBuildPhase(project: PBXProj) {
66
71
  }
67
72
 
68
73
  func setDwarfWithDsymDebugInformationFormat(project: PBXProj) {
69
- guard let target = project.projects.first else {
70
- print("Error: No project targets found")
71
- return
74
+ let targetConfigs = project.nativeTargets.flatMap {
75
+ $0.buildConfigurationList?.buildConfigurations ?? []
72
76
  }
73
-
74
- for configuration in target.buildConfigurationList?.buildConfigurations ?? [] {
75
- // Set debug format for all configs
77
+ let rootConfigs =
78
+ project.projects.first?.buildConfigurationList?.buildConfigurations ?? []
79
+ for configuration in targetConfigs + rootConfigs {
76
80
  configuration.buildSettings["DEBUG_INFORMATION_FORMAT"] = "dwarf-with-dsym"
77
81
  }
78
82
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vybekiit",
3
- "version": "0.7.26",
3
+ "version": "0.7.27",
4
4
  "description": "Choose your services, sign in, create a VybeKiit app, and open its verified local welcome page.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -32,13 +32,14 @@
32
32
  "tsup": "8.5.1",
33
33
  "typescript": "5.7.2",
34
34
  "vitest": "3.2.6",
35
- "@vybekiit/core": "0.7.26",
36
- "@vybekiit/agent-mcp": "0.7.26",
37
- "@vybekiit/agent-kit": "0.7.26",
38
- "@vybekiit/deploy": "0.7.26",
39
- "@vybekiit/db": "0.7.26",
40
- "@vybekiit/report-mode": "0.7.26",
41
- "@vybekiit/payments": "0.7.26"
35
+ "@effect/vitest": "0.29.0",
36
+ "@vybekiit/agent-mcp": "0.7.27",
37
+ "@vybekiit/agent-kit": "0.7.27",
38
+ "@vybekiit/db": "0.7.27",
39
+ "@vybekiit/core": "0.7.27",
40
+ "@vybekiit/deploy": "0.7.27",
41
+ "@vybekiit/report-mode": "0.7.27",
42
+ "@vybekiit/payments": "0.7.27"
42
43
  },
43
44
  "scripts": {
44
45
  "build": "tsup && node scripts/bundleGlobalSkills.mjs",
@@ -1,220 +0,0 @@
1
- # Animations
2
-
3
- Use Reanimated v4. Avoid React Native's built-in Animated API.
4
-
5
- ## Entering and Exiting Animations
6
-
7
- Use Animated.View with entering and exiting animations. Layout animations can animate state changes.
8
-
9
- ```tsx
10
- import Animated, {
11
- FadeIn,
12
- FadeOut,
13
- LinearTransition,
14
- } from "react-native-reanimated";
15
-
16
- function App() {
17
- return (
18
- <Animated.View
19
- entering={FadeIn}
20
- exiting={FadeOut}
21
- layout={LinearTransition}
22
- />
23
- );
24
- }
25
- ```
26
-
27
- ## On-Scroll Animations
28
-
29
- Create high-performance scroll animations using Reanimated's hooks:
30
-
31
- ```tsx
32
- import Animated, {
33
- useAnimatedRef,
34
- useScrollViewOffset,
35
- useAnimatedStyle,
36
- interpolate,
37
- } from "react-native-reanimated";
38
-
39
- function Page() {
40
- const ref = useAnimatedRef();
41
- const scroll = useScrollViewOffset(ref);
42
-
43
- const style = useAnimatedStyle(() => ({
44
- opacity: interpolate(scroll.value, [0, 30], [0, 1], "clamp"),
45
- }));
46
-
47
- return (
48
- <Animated.ScrollView ref={ref}>
49
- <Animated.View style={style} />
50
- </Animated.ScrollView>
51
- );
52
- }
53
- ```
54
-
55
- ## Common Animation Presets
56
-
57
- ### Entering Animations
58
-
59
- - `FadeIn`, `FadeInUp`, `FadeInDown`, `FadeInLeft`, `FadeInRight`
60
- - `SlideInUp`, `SlideInDown`, `SlideInLeft`, `SlideInRight`
61
- - `ZoomIn`, `ZoomInUp`, `ZoomInDown`
62
- - `BounceIn`, `BounceInUp`, `BounceInDown`
63
-
64
- ### Exiting Animations
65
-
66
- - `FadeOut`, `FadeOutUp`, `FadeOutDown`, `FadeOutLeft`, `FadeOutRight`
67
- - `SlideOutUp`, `SlideOutDown`, `SlideOutLeft`, `SlideOutRight`
68
- - `ZoomOut`, `ZoomOutUp`, `ZoomOutDown`
69
- - `BounceOut`, `BounceOutUp`, `BounceOutDown`
70
-
71
- ### Layout Animations
72
-
73
- - `LinearTransition` — Smooth linear interpolation
74
- - `SequencedTransition` — Sequenced property changes
75
- - `FadingTransition` — Fade between states
76
-
77
- ## Customizing Animations
78
-
79
- ```tsx
80
- <Animated.View
81
- entering={FadeInDown.duration(500).delay(200)}
82
- exiting={FadeOut.duration(300)}
83
- />
84
- ```
85
-
86
- ### Modifiers
87
-
88
- ```tsx
89
- // Duration in milliseconds
90
- FadeIn.duration(300);
91
-
92
- // Delay before starting
93
- FadeIn.delay(100);
94
-
95
- // Spring physics
96
- FadeIn.springify();
97
- FadeIn.springify().damping(15).stiffness(100);
98
-
99
- // Easing curves
100
- FadeIn.easing(Easing.bezier(0.25, 0.1, 0.25, 1));
101
-
102
- // Chaining
103
- FadeInDown.duration(400).delay(200).springify();
104
- ```
105
-
106
- ## Shared Value Animations
107
-
108
- For imperative control over animations:
109
-
110
- ```tsx
111
- import {
112
- useSharedValue,
113
- withSpring,
114
- withTiming,
115
- } from "react-native-reanimated";
116
-
117
- const offset = useSharedValue(0);
118
-
119
- // Spring animation
120
- offset.value = withSpring(100);
121
-
122
- // Timing animation
123
- offset.value = withTiming(100, { duration: 300 });
124
-
125
- // Use in styles
126
- const style = useAnimatedStyle(() => ({
127
- transform: [{ translateX: offset.value }],
128
- }));
129
- ```
130
-
131
- ## Gesture Animations
132
-
133
- Combine with React Native Gesture Handler:
134
-
135
- ```tsx
136
- import { Gesture, GestureDetector } from "react-native-gesture-handler";
137
- import Animated, {
138
- useSharedValue,
139
- useAnimatedStyle,
140
- withSpring,
141
- } from "react-native-reanimated";
142
-
143
- function DraggableBox() {
144
- const translateX = useSharedValue(0);
145
- const translateY = useSharedValue(0);
146
-
147
- const gesture = Gesture.Pan()
148
- .onUpdate((e) => {
149
- translateX.value = e.translationX;
150
- translateY.value = e.translationY;
151
- })
152
- .onEnd(() => {
153
- translateX.value = withSpring(0);
154
- translateY.value = withSpring(0);
155
- });
156
-
157
- const style = useAnimatedStyle(() => ({
158
- transform: [
159
- { translateX: translateX.value },
160
- { translateY: translateY.value },
161
- ],
162
- }));
163
-
164
- return (
165
- <GestureDetector gesture={gesture}>
166
- <Animated.View style={[styles.box, style]} />
167
- </GestureDetector>
168
- );
169
- }
170
- ```
171
-
172
- ## Keyboard Animations
173
-
174
- Animate with keyboard height changes:
175
-
176
- ```tsx
177
- import Animated, {
178
- useAnimatedKeyboard,
179
- useAnimatedStyle,
180
- } from "react-native-reanimated";
181
-
182
- function KeyboardAwareView() {
183
- const keyboard = useAnimatedKeyboard();
184
-
185
- const style = useAnimatedStyle(() => ({
186
- paddingBottom: keyboard.height.value,
187
- }));
188
-
189
- return <Animated.View style={style}>{/* content */}</Animated.View>;
190
- }
191
- ```
192
-
193
- ## Staggered List Animations
194
-
195
- Animate list items with delays:
196
-
197
- ```tsx
198
- {
199
- items.map((item, index) => (
200
- <Animated.View
201
- key={item.id}
202
- entering={FadeInUp.delay(index * 50)}
203
- exiting={FadeOutUp}
204
- >
205
- <ListItem item={item} />
206
- </Animated.View>
207
- ));
208
- }
209
- ```
210
-
211
- ## Best Practices
212
-
213
- - Add entering and exiting animations for state changes
214
- - Use layout animations when items are added/removed from lists
215
- - Use `useAnimatedStyle` for scroll-driven animations
216
- - Prefer `interpolate` with "clamp" for bounded values
217
- - You can't pass `Color` (from expo-router) or `PlatformColor` values to reanimated views or styles; use static colors instead
218
- - Keep animations under 300ms for responsive feel
219
- - Use spring animations for natural movement
220
- - Avoid animating layout properties (width, height) when possible — prefer transforms