Embedding Tailwind Design System in Obsidian A developer built a React UI component library for an experimental agent SDK and needed to reuse those styled components in an Obsidian plugin without rewriting them. The challenge was that the plugin's components must coexist with Obsidian's existing styling system, requiring a strategy to map design tokens to the host application's CSS variables while winning the CSS cascade to ensure proper rendering. Over the last two months, I've been building my own experimental agent SDK https://github.com/franklin-md/franklin-mono . To get immediate feedback on how the agents were behaving, I built a set of React UI components in Electron and embedded them in a dedicated chat app. But I wasn't trying to build another chat app though; I was trying to create a Cursor experience within my favorite note-taking app, Obsidian. So when the MVP of the SDK was finished, it was time to build out the Obsidian plugin to house these agents. I obviously didn't want to rewrite from scratch the UI I had built. But I also couldn't just naively import it. Unlike my Electron app, I don't have complete ownership over the styling. My plugin just gets to contribute UI to the platform, along with all the other developers in the ecosystem writing plugins, themes or the core. And that means the final computed style for components depends on more than just my code. That led me to the topic of this post: How can you reuse styled UI components from an application you own in a plugin for an application you don't own? But could equally be softened to "how to reuse an existing styled UI component you found online". I'm going to focus on integrating specifically a ShadCN + Tailwind design system into Obsidian, although the principles may be extrapolated to other class-based design systems too. That means the rendered components look something like this: