James Coombs is a design engineer who migrated a large frontend from Material UI to a custom design system (Radix, Tailwind). Four CSS systems had to coexist during migration. Three approaches to it had already been considered and rejected before anyone tested the CSS layer.

Four CSS systems running simultaneously: a CSS-in-JS framework (Material UI's emotion runtime), two legacy utility frameworks, one in-house and one open-source, alongside an in-house component library, and the new design system (Tailwind CSS 4). Migration required all four in the same bundles, on the same pages, without collision.

The received answer was that it could not be done without component-level isolation, and three approaches had already been considered and rejected on that basis. Nobody had tested it at the CSS layer.

Where the received answer came from

The assumption: coexistence requires component-level isolation. Wrap each component in a boundary (Shadow DOM, iframes, CSS Modules) so its styles can't leak. At roughly 960 files as of April 2026, spread across the whole monorepo, component-level isolation means touching every file before migration can begin. That's not a migration strategy. That's a rewrite.