PolicyEngine / PolicyEngine/policyengine-app-v2

Migrate from Mantine to Tailwind + shadcn/ui

Open
#729 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
1
Forks
3
Avg merge
1d 50m
Merged PRs (30d)
39

Description

Summary

Migrate policyengine-app-v2 from Mantine 8 to Tailwind CSS v4 + shadcn/ui. Mantine works but creates upgrade pain (v6→v7→v8 were breaking migrations) and locks styling to one library's patterns. Tailwind + shadcn/ui gives us owned components (no library upgrades), Tailwind alignment with policyengine-slides, and the largest React component ecosystem.

Status: complete

All phases implemented in PR #730. Zero @mantine/* imports remain. All Mantine packages removed from dependencies. CI passes (2999 tests, typecheck, lint, build).

Scope

  • 287 files changed across the migration
  • 192 files previously imported Mantine — all migrated
  • 3 Mantine packages removed: @mantine/core, @mantine/dates, @mantine/hooks
  • 2 Mantine dev dependencies removed: eslint-config-mantine, postcss-preset-mantine

Phases (all complete)

  • Phase 0: Foundation — Tailwind CSS v4 + shadcn/ui installed
  • Phase 1: Wrapper components + hooks — Text, Stack, Group, Title, Container, Spinner + useMediaQuery, useViewportSize, useDisclosure
  • Phase 2: Static/presentational pagesshared/static/, home/, Footer
  • Phase 3: Blog, research, columns — Blog components, column renderers, brand pages
  • Phase 4: Report output pagespages/report-output/ + components/report/
  • Phase 5: Form controls — Mantine form components → shadcn equivalents
  • Phase 6: Charts + visualization — ChartContainer, maps, TwoColumnView
  • Phase 7: AppShell, layout, header, sidebar — MantineProvider + AppShell replaced with Tailwind flex layout
  • Phase 8: Pathways — Report/simulation/policy pathway wrappers and views
  • Phase 9: Cleanup — All Mantine dependencies removed, theme files deleted

Supersedes #728 (vanilla-extract approach).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue states that the migration is complete in PR #730, covering 287 files and removing all Mantine imports and dependencies. Start by reviewing PR #730 and the listed migration phases; the stated completion criteria are passing tests, typecheck, lint, and build with no remaining Mantine packages.

Written by the indexing model from the issue text.

Assessment

Tech stack
react, tailwindcss
Domain
frontend
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
10/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.