█▀▀ █▀▀ █▀▀ ▀█▀ █ █ █▀█ █▀▀ █▀▄ █ ▀▀█ ▀▀█ █ █ █ █ █ █▀▀ █▀▄ ▀▀▀ ▀▀▀ ▀▀▀ ▀ ▀▀▀ ▀ ▀ ▀▀▀ ▀ ▀
The devtool overlay that lives in your app. Tweak colors, toggle dark mode, save to file. No context switching.
█▀▀ █▀▀ █▀▀ ▀█▀ █ █ █▀█ █▀▀ █▀▄ █ ▀▀█ ▀▀█ █ █ █ █ █ █▀▀ █▀▄ ▀▀▀ ▀▀▀ ▀▀▀ ▀ ▀▀▀ ▀ ▀ ▀▀▀ ▀ ▀
You tweak on a generic demo. You paste into your code. You refresh. You tweak again. Repeat.
External editors show their own UI, not yours. You never see how colors work on your actual components.
Generate a palette, copy the CSS, paste it, refresh, realize it's wrong, go back. Every. Single. Time.
Most editors generate one set of colors. You're on your own for dark mode. Two trips instead of one.
CssTuner lives inside your app. It reads your existing CSS variables, shows them on a panel next to your real pages, and writes changes back to your CSS file. You see every change instantly on your actual components. No external tool. No copy-paste.
2D lightness-chroma area + hue strip. Paste any format (hex, hsl, rgb, oklch) — it converts automatically. Gamut awareness with P3 indicator.
Detects your .dark variables automatically. Toggle between light and dark, edit each set independently. Syncs with your app's own toggle.
Click any element on your page. CssTuner shows the CSS variables that affect it — including inherited ones. Edit directly.
Click Save, changes are written to your CSS file. The companion detects the right file, preserves your format (oklch, hsl, hex). Hot-reload picks it up.
One line. Works with any React project.
npm install csstuner Drop the component. It auto-detects your framework and groups your variables.
<CssTuner /> Open the overlay, change colors on your real pages, click Save. Done. Your CSS file is updated.
npx csstuner Auto-detects your design system and groups variables accordingly.
Free and open source. One line to install.