Skip to content

Work / Seedha Ghar / Wiki / Decisions

2026-07-24-tailwind-and-uniwind-only

Decisioncanonicalverified 2026-07-24

DECISION.2026-07-24.TAILWIND-AND-UNIWIND-ONLY

Decision

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.css reduced to @import "tailwindcss" + @theme inline brand tokens. Body defaults live on <body> in layout.tsx.
  • Removed helper classes (.mono, .pattern-photo(-blurred), .map-canvas, .map-grid, custom scrollbar) — inlined at call sites across ~53 components.
  • apps/mobile gained uniwind, tailwindcss@^4, src/global.css, metro.config.js, and a className-based App.tsx.
  • Prototypes are light-only. theme.css and theme.js deleted 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 commit 7d373c3.

Status

Active