Repository navigation
chore(mobile): remove unused NativeWind tooling (#434) - #836
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
There was a problem hiding this comment.
ℹ️ The package and runtime cleanup is sound; one remaining residue set should be cleaned up.
Reviewed changes across the complete initial diff, including the mobile dependency graph, TypeScript/Vitest configuration, hoisting script, auth callback typing, generated lockfile changes, and repository documentation.
- NativeWind removal removes the mobile package, Tailwind config and CSS entrypoint, ambient types, JSX runtime aliases, test mocks, and package-specific hoisting links.
- Lockfile pruning removes NativeWind, React Native CSS interop, their private dependency tree, and the mobile-only Tailwind entry while retaining web Tailwind.
- Auth callback typing narrows the URL parameter accumulator to tuple entries without changing filtering or serialization behavior.
ℹ️ NativeWind residue remains in repository guidance
Six tracked references still describe NativeWind as the mobile styling adapter, and Sonar still excludes the deleted Tailwind config. Leaving these behind makes the parity and design guidance factually incorrect after this PR and leaves dead analysis configuration.
Technical details
# Remove the remaining NativeWind references
## Affected sites
- `CLAUDE.md:15` — parity guidance still names NativeWind as the mobile styling adapter.
- `.claude/skills/pr-review/rubric.md:214` — the review rubric retains the same obsolete adapter description.
- `design/brand/SETUP.md:66` — design setup says mobile uses the NativeWind idiom.
- `sonar-project.properties:19` — exclusions still list the deleted `apps/mobile/tailwind.config.js`.
- `sonar-project.properties:74` and `sonar-project.properties:90` — duplication rationale still attributes mobile presentation to NativeWind.
## Required outcome
- Describe mobile's current React Native `StyleSheet` adapter consistently and remove the dead Tailwind config exclusion so the repository no longer claims NativeWind remains in use.GPT Sol | 𝕏
There was a problem hiding this comment.
ℹ️ No critical issues in the new commit; one minor documentation correction is inline.
Reviewed changes since the prior Pullfrog review: commit 868790e7 added the Expo SDK pin decision record.
- Compatibility evidence: Recorded the base, branch, and installed Expo versions alongside the online compatibility check's expected patches.
- Scope boundary: Documented that round 2 changed no dependency, lockfile, runtime, or gate behavior and that the PR remains blocked.
GPT Sol | 𝕏
|
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes since the prior Pullfrog review at 868790e7: commit 76e84e16 completed the NativeWind residue cleanup and removed the answered Expo decision record.
- Updated styling guidance — Replaced the remaining NativeWind references in parity, review, and design guidance with React Native
StyleSheet. - Cleaned Sonar configuration — Removed the deleted mobile Tailwind config exclusion and updated stale platform-adapter rationale.
- Removed the answered question — Deleted
apps/mobile/questions.md, eliminating its unqualified private-ticket references while the Expo pin conflict remains separately tracked.
GPT Sol | 𝕏
Merge readiness disclosure (D83)Merging with The red is not caused by this branch. Reproduced on a clean The base fails with the identical seven packages. This branch changes no Expo resolution. A programmatic comparison of every parsed entry in An earlier round of this ticket wrongly blamed the branch for this failure. That was my error, corrected on the ticket. Filed separately as What is green: approved by Pullfrog at the exact head, zero unresolved threads, empty review body, 26 checks passing, and the Android release build passing, which is the evidence that matters for native module changes. 🤖 Generated with Claude Code |




Removes unused mobile NativeWind configuration, dependencies, and lockfile entries now that mobile uses React Native StyleSheet.
Closes thomasluizon/orbit-tickets#434.
Deletes mobile global.css, tailwind.config.js, and nativewind-env.d.ts; removes NativeWind JSX settings, test aliases and unused re-export files, and hoisting links. Mobile Tailwind had no consumer outside that scaffolding. Web retains its own Tailwind dependencies. Metro and Babel are unchanged.
Repository guidance now names React Native StyleSheet, and Sonar no longer excludes the deleted Tailwind configuration. The answered apps/mobile/questions.md is deleted, with no root question added.
The lockfile preserves the existing cleanup exactly: 340 deletions and one metadata insertion prune NativeWind, its private dependency tree, and mobile Tailwind; esprima becomes development-only. A complete parsed-entry comparison against untouched redesign/main at af6e346 finds zero Expo entry differences and zero retained package version differences.
The Google auth callback accumulator uses [string, string][], preserving runtime behavior while satisfying URLSearchParams after removal of NativeWind ambient types. The installed declaration at node_modules/@types/node/url.d.ts:913 accepts URLSearchParams | string | Record<string, string | readonly string[]> | Iterable<[string, string]> | ReadonlyArray<[string, string]>. No new external response fields are read.
Validation
All 1,893 mobile tests in 262 files, mobile type checking, both repository tooling and hook harnesses, Mobile StyleSheet Guard, residue searches, copy checks, dash checks, and commit hooks pass. Metro and Babel have no diff against the base. No browser or server was started.
The implementation's Android release build passed in run 33997526288, job 101390538846: https://github.com/thomasluizon/orbit-ui-mobile/actions/runs/33997526288/job/101390538846. This revision changes guidance and Sonar exclusions and deletes the answered question; it changes no mobile source, manifest, or lockfile.
D83: Known artifact
Expo SDK Pin is red and reproduces on the untouched redesign/main base at af6e346, as verified in the ticket's correction. It is tracked separately in thomasluizon/orbit-tickets#436 and is not a regression introduced by this cleanup. Run 33997547962, job 101390594315 (Expo SDK Pin), fails at CI=1 npx expo install --check: https://github.com/thomasluizon/orbit-ui-mobile/actions/runs/33997547962/job/101390594315.
The local online check reproduces the identical seven patch mismatches: expo 57.0.19 expects ~57.0.20; expo-build-properties 57.0.16 expects ~57.0.17; expo-image-picker 57.0.15 expects ~57.0.16; expo-modules-core 57.0.15 expects ~57.0.16; expo-notifications 57.0.16 expects ~57.0.17; expo-router 57.0.18 expects ~57.0.19; expo-sharing 57.0.17 expects ~57.0.18. Expo resolves its expected set from remote compatibility data. The Expo resolutions and gate are preserved as directed; no SDK upgrade or expo install --fix was performed.
Parity exemption: this removes unused mobile styling platform adapter tooling and tightens a type in the mobile authentication adapter, with no runtime or UI behavior change.
Assumptions