top | item 45706487

Show HN: Shadcn/UI theme editor – Design and share Shadcn themes

136 points| miketromba | 4 months ago |shadcnthemer.com

Hey, I built https://ShadcnThemer.com - a web app for creating and sharing themes for shadcn/ui, made with my some of my favorites, Next.js 15, Tailwind CSS 4, Drizzle ORM, and Supabase.

The goal was to make it easy to visually design shadcn color themes, preview them live across various example UIs, and export them straight into your projects (as CSS or via the shadcn CLI registry command).

I had a bit of experience going into this because I built the Theme Studio for VS Code in the past, but it was fun using a modern stack and leveraging Cursor to help me along the way this time.

GitHub: https://github.com/miketromba/shadcn-themer

41 comments

order

lavela|4 months ago

I tried to open different themes in tabs for comparison, but I would have to first open each one and then manually copy the URL into a new tab because you implemented your links as <button> (which prevents both middle-click and 'open in new tab' context menu option to work).

miketromba|4 months ago

Just shipped a fix, middle-click should work now. Thanks for the feedback

tacker2000|4 months ago

Yup, this is the incompetence that we see all over the place since these new frameworks have come and front end devs have no idea what HTML actually is or how it works.

Buttons are for submitting forms and nothing else.

In HTML a link is created using an <a> element.

React has a <Link> element for this purpose, it will be rendered as <a>.

Please OP, at least try to learn a little bit about the underlying technologies.

meindnoch|4 months ago

>Sign in or create an account with your email

Into the trash it goes.

miketromba|4 months ago

I get this. Just shipped the ability to create and edit themes locally, no auth required. The local theme gets persisted to localstorage and you can optionally save/share it later. It also works seamlessly with the fork / import features, so those can be used without auth as well.

slig|4 months ago

That's unfair. You can browse, preview and get the CSS variables without signing up.

programmarchy|4 months ago

I spent some time attempting to "derive" a theme given a primary and secondary color, but realized my color theory wasn't strong enough to build something reliable (I tried with both hsl and oklch). Curious if that's really possible.

slig|4 months ago

Thanks for sharing! What's the difference between your app and tweakcn?

edit: would also love to be able to open preview on new tabs with middle-click.

miketromba|4 months ago

Tweakcn is a great tool too. Main difference is I'm hoping ShadcnThemer will be more of a community-driven hub for sharing, starring, and forking themes - similar to how color palette websites have 1000's of user-made palettes. (I took this approach when building the Theme Studio for VS Code and it worked really well, 1000's of themes were designed and shared.)

Tweakcn also charges $ users to be able to share and save themes which I think is silly for a tool like this, should be 100% free and open source.

I also prefer the simple UX of ShadcnThemer better but I'm biased of course.

sreekanth850|4 months ago

Not related to this directly, but shadcn drawer is built on the top of vaul which is unmintained, so who ever use this in production, keep this in your mind.

rochak|4 months ago

Gotta love the JS ecosystem where devs move faster than users.

jzig|4 months ago

The only changes I see are colors but what if I want eg a different border radius on buttons or margin on labels or specific fonts on elements etc? I don’t find changing only the colors of components particularly valuable but would like to see more variance in the actual shapes and looks of things.

miketromba|4 months ago

Global border radius is editable, that setting is at the bottom of the sidebar. The challenge with global shadcn theming is that you're limited to adjusting the css variables they provide. I believe there is a global spacing variable, but it is not so specific that you can target e.g. just label spacing. That would be something you could modify directly within your shadcn input components via adjusting the tailwind class(es).

QuantumNomad_|4 months ago

The infinite scroll makes it difficult to reach the links in the footer, at least on mobile.

Footer links:

GitHub repo https://github.com/miketromba/shadcn-themer

Three other links also in the footer but they only bring me to login screen:

Terms of Service https://shadcnthemer.com/terms

Privacy policy https://shadcnthemer.com/privacy

Contact https://shadcnthemer.com/contact

lardissone|4 months ago

I still can't believe this is still an issue. When lazy-loading/infinite-scroll appeared main problem was that your footer shouldn't contain any actionable information. And people still makes fall into the same issue years after.

imcritic|4 months ago

What is shadcn?

rafram|4 months ago

The Bootstrap of the 2020s. Just the default components people copy-paste into Tailwind-based SaaS apps.

ramon156|4 months ago

A customizable component library built on radix.

Not sure why this upsets people, is it because it's popular and therefore bad?

stravant|4 months ago

The key piece of the stack it gives you is sensible cross-platform component behaviors to put your styling / branding on to of.

icemelt8|4 months ago

default UI of the internet