Work / DwarSeva Property / Wiki / Decisions
2026-07-24-tailwind-and-uniwind-only
Decisioncanonicalverified 2026-07-24
DECISION.2026-07-24.TAILWIND-AND-UNIWIND-ONLYDecision
Web uses Tailwind CSS v4 directly. Expo mobile uses Uniwind (https://docs.uniwind.dev/). HTML design prototypes use Tailwind classes only, light-mode only. No global stylesheets, no ad-hoc StyleSheet.create, no per-surface theme.css, no shared packages/tokens, no changes to packages/ui.
Why
One utility-class vocabulary across all surfaces reduces context-switching and keeps prototypes visually in sync with implementation. Uniwind over NativeWind on RN for faster runtime, first-class Tailwind v4, no Babel preset. Sharing components across web ↔ native was not a requirement, so each app configures Tailwind independently; duplication of the small brand-color table is accepted.
Impact
apps/web/src/app/globals.cssreduced to@import "tailwindcss"+@theme inlinebrand tokens. Body defaults live on<body>inlayout.tsx.- Removed helper classes (
.mono,.pattern-photo(-blurred),.map-canvas,.map-grid, custom scrollbar) — inlined at call sites across ~53 components. apps/mobilegaineduniwind,tailwindcss@^4,src/global.css,metro.config.js, and aclassName-basedApp.tsx.- Prototypes are light-only.
theme.cssandtheme.jsdeleted from.context/designs/{web,mobile}. - Was tracked in the delta record
D-0002-tailwind-uniwind-styling, which was deleted with the Trunk control plane in commit7d373c3.
Status
Active
Every project of mine is written down like this.
Read the résumé