npm tamagui 2.0.0-rc.27
v2.0.0-rc.27

latest releases: 2.0.0-rc.29, 2.0.0-rc.28
11 hours ago

Features

  • add onAnimationComplete callback to Sheet and Dialog (Hirvesh)
  • core: support opacity modifier on color tokens ($token/50 syntax) (natew)

Bug Fixes

  • site: fix Discord modal focus loss, 401 errors, and stale access cleanup (natew)
  • core: alert parent component child is focused (Drew Miller)
  • core: check focusWithinStyle exists on pseudos (Drew Miller)
  • core: fix focusWithinStyle and add comprehensive tests (natew)
  • avatar: replace fullscreen prop on Image with explicit position styles (Dan Kanefsky)
  • core: allow fallback radius and zIndex tokens in config-less type resolution (Tharaka De Silva)
  • animations-css: fire useAnimatedNumber onFinish after transition duration instead of immediately (natew)
  • tie sheet close opacity to animation completion instead of setTimeout(400) (Hirvesh)
  • animations-css: fix typecheck errors in useAnimatedNumber onFinish timer ref (natew)
  • test: skip focusWithinStyle animated tests on native driver, increase timeout for reanimated (natew)
  • kitchen-sink: re-export from index.native in fallback index.ts for Detox resolution (natew)
  • ci: revert unit test concurrency to 1, expo export times out with parallel builds (natew)
  • ci: increase Detox navigation timeout to 15s for grid render/settle time (natew)
  • kitchen-sink: remove web-only test cases from index.native.ts to fix Detox (natew)
  • core: avoid css transitions while switching from ssr to system theme (natew)
  • sheet: fix scroll drift during fast upward drag from non-top position (natew)
  • build: use package.json sideEffects field instead of custom removeSideEffects (natew)
  • ios: workaround expo-modules-core 55.x Swift 6 strict concurrency in Podfile (natew)
  • ios: add expo config plugin to workaround expo-modules-core 55.x Swift 6 concurrency (natew)
  • ios: use Swift 6 + minimal concurrency instead of Swift 5.10 for expo-modules-core (natew)
  • ios: add IsolatedConformances feature flag for expo-modules-core Swift 6.1 syntax (natew)
  • ci: pass IsolatedConformances and SWIFT_STRICT_CONCURRENCY via xcodebuild command line (natew)
  • ci: include package.json in build cache fingerprint to bust stale builds on dep upgrades (natew)
  • ci: use --no-dev Metro flag to prevent HMR crash on RN 0.83 (natew)
  • ci: disable HMR via Metro rewriteRequestUrl to fix RN 0.83 crash (natew)
  • align expo-router starter to SDK 55 / RN 0.83 and fix HMR crash (natew)
  • ensure tamagui config loads before any component imports (natew)
  • fallback to light theme when useColorScheme returns null on RN 0.83 (natew)
  • core: handle null defaultTheme in TamaguiProvider, enable prebuilt binaries (natew)
  • ci: fix Detox test failures on RN 0.83 — force light mode, fix noRngh reload (natew)
  • kitchen-sink: sync NavigationContainer theme with ThemeContext to fix dark/light mismatch on RN 0.83 (natew)
  • core: harden opacity modifier parsing and TamaguiProvider theme fallback (natew)
  • ci: fix typecheck, expo-router SDK 55 alignment, and native test setup (natew)
  • restore kitchen-sink-go Podfile, auto-boot simulator in native-ci (natew)
  • auto-install app on simulator for maestro tests (Expo Go + dev client) (natew)
  • set RCT_jsLocation in detox config so app finds metro (natew)
  • fix expo go download (extract into .app bundle), cache downloads, improve app detection (natew)
  • simplify app detection, add maestro debug output (natew)
  • use explicit simulator UDID throughout native-ci (fixes multi-simulator) (natew)
  • guard Platform.OS with optional chaining for node.js compat in babel extractor (natew)
  • e2e: increase timeout for second select visibility after sheet close animation (natew)
  • make check less strict, only validate actual duplications on non-leaf packages in lockfiles (natew)
  • split out spinner package as it says in docs (natew)
  • image: omit undefined width/height from style on native #3966 (Daniel Dimitrov)
  • image: merge incoming style prop instead of discarding it #3966 (Daniel Dimitrov)
  • core: Theme name changing to undefined stays stuck on previous theme (natew)
  • animations-motion: make useAnimate SSR-safe for Vite SSR bundling (natew)
  • ci: fix integration + sandbox tests, vite plugin improvements (natew)
  • menu: avoid warning/attempting to load zeego when not actively used (natew)
  • select: unused disablePreventBodyScroll prop #3965 (Thilo)
  • media-style: event styles in $platform #3959 (Quan Nguyen)
  • animations-react-native: only use native driver on Fabric, accept useNativeDriver option (natew)
  • revert peerDeps back to deps, use skipPublishIfUnchanged for release optimization (natew)
  • sheet: add 1s safety fallback for close opacity when animation callback fails (natew)
  • useAnimatedNumber uses isFabric directly, sheet fallback checks openRef (natew)

Documentation

Performance Improvements

  • tests: bump Playwright CI workers from 2 to 4 (natew)
  • ci: cache Playwright browsers and bump unit test concurrency to 2 (natew)
  • ci: shard integration tests across 3 parallel machines (natew)
  • tests: replace hardcoded sleep in setupPage with readiness poll (natew)
  • tests: replace waitForTimeout with polling in AnimationBehavior tests (natew)
  • tests: reuse single webpack server across all animation driver runs (natew)
  • animations-motion: remove useless useMemo and styleVersion tracking (natew)
  • animations-react-native: fabric can animate all style keys now so avoid fallback (natew)
  • add avoidReRenders to react-native animation driver (natew)

Tests

  • core: add test cases for focusWithinStyle (Drew Miller)
  • add DOM Node API integration tests for RN 0.82 compatibility (natew)
  • add theme conditional name test (natew)

Continuous Integration

  • skip integration tests for unrelated package changes (Geoffrey Sechter)
  • enable test workflows on rn82 branch (natew)
  • upgrade to macos-15 + Xcode 16.3 for Swift 6.1 support (expo-modules-core 55.x) (natew)
  • use Xcode 26.0.1 (Swift 6.2) for expo-modules-core 55.x SE-0434 support (natew)
  • fix WorkletJSCallInvoker and ContextMenuAuxiliaryPreview build errors on Xcode 26 (natew)
  • upgrade expo SDK 54 → 55 in kitchen-sink to fix expo-modules-core 55 ABI (natew)
  • update simulator device from iPhone 15 to iPhone 16 for macOS 15 / Xcode 26 runners (natew)
  • increase MAESTRO_DRIVER_STARTUP_TIMEOUT to 300s for Xcode 26 / iOS 26 simulators (natew)
  • speed up Maestro tests — upgrade to 2.3.0, skip clearState, parallelize boot+metro (natew)
  • enable Android Detox tests on rn82 branch (natew)
  • always reset metro cache in maestro tests (natew)

Chores

  • improve local testing setup for Playwright and Detox (Geoffrey Sechter)
  • move PLATFORM before check_prerequisites for readability (natew)
  • upgrade one, vxrn packages to canary 1.10.6-1773669958164 (natew)
  • upgrade one, vxrn packages to canary 1.10.6-1773682031882 (natew)
  • update bun.lock for vite resolution (natew)
  • fix formatting (natew)
  • fix formatting (natew)
  • fix formatting (natew)
  • upgrade react-native-reanimated to ~4.2.2 for expo SDK 55 compatibility (natew)
  • upgrade tamagui.dev expo packages to SDK 55 to fix hoisting conflict (natew)
  • upgrade to expo SDK 55, react-native 0.83.2, and align all RN ecosystem deps (natew)
  • simplify review — rename swift5→swift6 plugin, sync kitchen-sink-go, hoist hot-path lookups (natew)
  • note rn animation improvements (natew)
  • add unpublish-old-canaries script, fix native-ci build (natew)
  • allow leaf packages to avoid publish (natew)

Commits

  • f879c52: upgrade one, fix imports (natew)
  • b7c33be: canary2.0.0-rc.26-1773452370596 (natew)
  • 6e2e2bd: feat(sheet,dialog): add onAnimationComplete tests, fix CSS driver onFinish timing (natew)
  • b18244f: Revert "perf(tests): replace waitForTimeout with polling in AnimationBehavior tests" (natew)
  • 5b15dd6: fix ci (natew)
  • 80ba983: Merge branch 'main' of github.com:tamagui/tamagui (natew)
  • fae3f24: canary2.0.0-rc.26-1773683384816 (natew)
  • 8a9953e: Revert "fix(ios): workaround expo-modules-core 55.x Swift 6 strict concurrency in Podfile" (natew)
  • add bento source repo access to emails, docs, and purchase UI (natew)
  • 883266e: fix kitchen sink tsconfig (natew)
  • 4c3956e: upgrade one for perf (natew)
  • d92fc0c: fix lints (natew)
  • d3bd700: add dev (natew)
  • 299130b: cleanups and export comapt for pressability (natew)
  • f1e38e8: fix rnwlite resolution (natew)
  • 8b62050: fix missing types (natew)
  • bacb4cb: fix types in kitchen sink (natew)
  • ee1902b: up one canary for 83 compat (natew)
  • 22f19eb: canary2.0.0-rc.26-1773870098410 (natew)
  • 59a4755: improve canary skip publish detection (natew)
  • c454b24: improve canary skip publish detection (natew)
  • 029d432: preserve the entry .js in cjs mode for compat with node test runners and other environments that dont look for cjs (natew)
  • 19df9a8: canary2.0.0-rc.26-1773871134131 (natew)
  • 4262fed: skip flaky expo router test (natew)
  • 4358819: remove zx, fix tests (natew)
  • 807b965: canary2.0.0-rc.26-1773877899807 (natew)
  • 4491aed: remove zx (natew)
  • 7c02c2f: fix integration for new rn (natew)
  • 2d31916: fix types for vite 8 (natew)
  • ae1ea72: add stronger warning (natew)
  • e15a55f: restore missing package.json (natew)
  • 4f45fcf: fix check uses tamagui.build config (natew)
  • 7afdd9b: fix for vite 8 symlink issue (natew)
  • 35df9cc: fix sandbox and web (natew)
  • 31322e0: simplify and fix upstream in one (natew)
  • 45f3e40: fix tests (natew)
  • 11f8cdc: canary2.0.0-rc.26-1773894550979 (natew)
  • f7bfa1c: fix for rolldown in static tests (natew)
  • cfc7419: fix simple integration test (natew)
  • 8424817: up one, fix detox/ssr navigation (natew)
  • dc93849: lint (natew)
  • bf25e9a: v2.0.0-rc.27 (natew)

Don't miss a new tamagui release

NewReleases is sending notifications on new releases.